mirror of https://gerrit.osmocom.org/asn1c
LDAP3
git-svn-id: https://asn1c.svn.sourceforge.net/svnroot/asn1c/trunk@1164 59561ff5-6e30-0410-9f3c-9617f08c8826
This commit is contained in:
parent
9e0ea0a7ea
commit
3ceb3261b3
|
@ -1,7 +1,8 @@
|
||||||
|
|
||||||
This directory contains a few examples.
|
This directory contains a few examples.
|
||||||
|
|
||||||
1. The ./sample.source.PKIX1 directory contains the X.509 Certificate decoder.
|
1. The ./sample.source.PKIX1 directory contains the X.509 Certificate decoder,
|
||||||
|
as specified in rfc3280.txt.
|
||||||
|
|
||||||
2. The ./sample.source.TAP3 directory contains the GSM TAP3 decoder.
|
2. The ./sample.source.TAP3 directory contains the GSM TAP3 decoder.
|
||||||
Before trying to compile, read the README file in that directory.
|
Before trying to compile, read the README file in that directory.
|
||||||
|
@ -13,11 +14,16 @@ This directory contains a few examples.
|
||||||
3. The ./sample.source.MEGACO directory contains the decoder for
|
3. The ./sample.source.MEGACO directory contains the decoder for
|
||||||
Media Gateway Control Protocol data units as specified in rfc3525.txt.
|
Media Gateway Control Protocol data units as specified in rfc3525.txt.
|
||||||
|
|
||||||
The crfc2asn1.pl script can be used to extract ASN.1 data from RFC texts.
|
4. The ./sample.source.LDAP3 directory contains the decoder for
|
||||||
For instance, it is used to extract X.509 ASN.1 modules from PKIX1 RFC
|
Lightweight Directory Access Protocol version 3 PDU as specified in
|
||||||
and MEGACO ASN.1 module from rfc3525.txt.
|
rfc4211.txt.
|
||||||
|
|
||||||
To regenerate the .asn1 files from the original RFC texts, do `rm *.asn1; make`.
|
The crfc2asn1.pl script can be used to extract ASN.1 data from RFC texts.
|
||||||
|
For instance, it is used to extract X.509, MEGACO, and LDAPv3 ASN.1 modules
|
||||||
|
from the corresponding RFC texts (rfc3280.txt, rfc3525.txt, rfc4211.txt).
|
||||||
|
|
||||||
|
To regenerate the .asn1 files from the original RFC texts, execute
|
||||||
|
`make clean; make` in the current directory.
|
||||||
|
|
||||||
The clyx2asn1.pl script can be used to extract ASN.1 data from LyX editor files.
|
The clyx2asn1.pl script can be used to extract ASN.1 data from LyX editor files.
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ while(<>) {
|
||||||
if($inasn == 0) {
|
if($inasn == 0) {
|
||||||
#
|
#
|
||||||
# The least correct way to find the start of ASN
|
# The least correct way to find the start of ASN
|
||||||
# definition.
|
# definition. That is, to ask a user.
|
||||||
#
|
#
|
||||||
if(/^[ \t]*END[ \t]*(--.*)?$/) {
|
if(/^[ \t]*END[ \t]*(--.*)?$/) {
|
||||||
print STDERR
|
print STDERR
|
||||||
|
@ -68,8 +68,19 @@ while(<>) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
next unless $inasn;
|
next unless $inasn;
|
||||||
|
} elsif(/^\s*DEFINITIONS\s*$/
|
||||||
|
&& $prevLine =~ /^\s*([A-Z][A-Za-z0-9-]*)\s*{[0-9a-z)( -]+}\s*$/) {
|
||||||
|
$_ = $prevLine . $prevComments . $_;
|
||||||
|
$modName = $1;
|
||||||
|
$currentFname = $rfcid . $modName. ".asn1";
|
||||||
|
$inasn = 1;
|
||||||
} else {
|
} else {
|
||||||
$prevLine = $_;
|
if(/^[ \t]*--/) {
|
||||||
|
$prevComments .= $_;
|
||||||
|
} else {
|
||||||
|
$prevComments = '';
|
||||||
|
$prevLine = $_;
|
||||||
|
}
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,200 @@
|
||||||
|
ASN_MODULE_SOURCES= \
|
||||||
|
LDAPMessage.c \
|
||||||
|
MessageID.c \
|
||||||
|
LDAPString.c \
|
||||||
|
LDAPOID.c \
|
||||||
|
LDAPDN.c \
|
||||||
|
RelativeLDAPDN.c \
|
||||||
|
AttributeDescription.c \
|
||||||
|
AttributeValue.c \
|
||||||
|
AttributeValueAssertion.c \
|
||||||
|
AssertionValue.c \
|
||||||
|
PartialAttribute.c \
|
||||||
|
Attribute.c \
|
||||||
|
MatchingRuleId.c \
|
||||||
|
LDAPResult.c \
|
||||||
|
Referral.c \
|
||||||
|
URI.c \
|
||||||
|
Controls.c \
|
||||||
|
Control.c \
|
||||||
|
BindRequest.c \
|
||||||
|
AuthenticationChoice.c \
|
||||||
|
SaslCredentials.c \
|
||||||
|
BindResponse.c \
|
||||||
|
UnbindRequest.c \
|
||||||
|
SearchRequest.c \
|
||||||
|
AttributeSelection.c \
|
||||||
|
Filter.c \
|
||||||
|
SubstringFilter.c \
|
||||||
|
MatchingRuleAssertion.c \
|
||||||
|
SearchResultEntry.c \
|
||||||
|
PartialAttributeList.c \
|
||||||
|
SearchResultReference.c \
|
||||||
|
SearchResultDone.c \
|
||||||
|
ModifyRequest.c \
|
||||||
|
ModifyResponse.c \
|
||||||
|
AddRequest.c \
|
||||||
|
AttributeList.c \
|
||||||
|
AddResponse.c \
|
||||||
|
DelRequest.c \
|
||||||
|
DelResponse.c \
|
||||||
|
ModifyDNRequest.c \
|
||||||
|
ModifyDNResponse.c \
|
||||||
|
CompareRequest.c \
|
||||||
|
CompareResponse.c \
|
||||||
|
AbandonRequest.c \
|
||||||
|
ExtendedRequest.c \
|
||||||
|
ExtendedResponse.c \
|
||||||
|
IntermediateResponse.c
|
||||||
|
|
||||||
|
ASN_MODULE_HEADERS= \
|
||||||
|
LDAPMessage.h \
|
||||||
|
MessageID.h \
|
||||||
|
LDAPString.h \
|
||||||
|
LDAPOID.h \
|
||||||
|
LDAPDN.h \
|
||||||
|
RelativeLDAPDN.h \
|
||||||
|
AttributeDescription.h \
|
||||||
|
AttributeValue.h \
|
||||||
|
AttributeValueAssertion.h \
|
||||||
|
AssertionValue.h \
|
||||||
|
PartialAttribute.h \
|
||||||
|
Attribute.h \
|
||||||
|
MatchingRuleId.h \
|
||||||
|
LDAPResult.h \
|
||||||
|
Referral.h \
|
||||||
|
URI.h \
|
||||||
|
Controls.h \
|
||||||
|
Control.h \
|
||||||
|
BindRequest.h \
|
||||||
|
AuthenticationChoice.h \
|
||||||
|
SaslCredentials.h \
|
||||||
|
BindResponse.h \
|
||||||
|
UnbindRequest.h \
|
||||||
|
SearchRequest.h \
|
||||||
|
AttributeSelection.h \
|
||||||
|
Filter.h \
|
||||||
|
SubstringFilter.h \
|
||||||
|
MatchingRuleAssertion.h \
|
||||||
|
SearchResultEntry.h \
|
||||||
|
PartialAttributeList.h \
|
||||||
|
SearchResultReference.h \
|
||||||
|
SearchResultDone.h \
|
||||||
|
ModifyRequest.h \
|
||||||
|
ModifyResponse.h \
|
||||||
|
AddRequest.h \
|
||||||
|
AttributeList.h \
|
||||||
|
AddResponse.h \
|
||||||
|
DelRequest.h \
|
||||||
|
DelResponse.h \
|
||||||
|
ModifyDNRequest.h \
|
||||||
|
ModifyDNResponse.h \
|
||||||
|
CompareRequest.h \
|
||||||
|
CompareResponse.h \
|
||||||
|
AbandonRequest.h \
|
||||||
|
ExtendedRequest.h \
|
||||||
|
ExtendedResponse.h \
|
||||||
|
IntermediateResponse.h
|
||||||
|
|
||||||
|
ASN_MODULE_HEADERS+=BOOLEAN.h
|
||||||
|
ASN_MODULE_SOURCES+=BOOLEAN.c
|
||||||
|
ASN_MODULE_HEADERS+=ENUMERATED.h
|
||||||
|
ASN_MODULE_SOURCES+=ENUMERATED.c
|
||||||
|
ASN_MODULE_HEADERS+=INTEGER.h
|
||||||
|
ASN_MODULE_HEADERS+=NativeEnumerated.h
|
||||||
|
ASN_MODULE_SOURCES+=INTEGER.c
|
||||||
|
ASN_MODULE_HEADERS+=NULL.h
|
||||||
|
ASN_MODULE_SOURCES+=NULL.c
|
||||||
|
ASN_MODULE_SOURCES+=NativeEnumerated.c
|
||||||
|
ASN_MODULE_HEADERS+=NativeInteger.h
|
||||||
|
ASN_MODULE_SOURCES+=NativeInteger.c
|
||||||
|
ASN_MODULE_HEADERS+=asn_SEQUENCE_OF.h
|
||||||
|
ASN_MODULE_SOURCES+=asn_SEQUENCE_OF.c
|
||||||
|
ASN_MODULE_HEADERS+=asn_SET_OF.h
|
||||||
|
ASN_MODULE_SOURCES+=asn_SET_OF.c
|
||||||
|
ASN_MODULE_HEADERS+=constr_CHOICE.h
|
||||||
|
ASN_MODULE_SOURCES+=constr_CHOICE.c
|
||||||
|
ASN_MODULE_HEADERS+=constr_SEQUENCE.h
|
||||||
|
ASN_MODULE_SOURCES+=constr_SEQUENCE.c
|
||||||
|
ASN_MODULE_HEADERS+=constr_SEQUENCE_OF.h
|
||||||
|
ASN_MODULE_SOURCES+=constr_SEQUENCE_OF.c
|
||||||
|
ASN_MODULE_HEADERS+=constr_SET_OF.h
|
||||||
|
ASN_MODULE_SOURCES+=constr_SET_OF.c
|
||||||
|
ASN_MODULE_HEADERS+=asn_application.h
|
||||||
|
ASN_MODULE_HEADERS+=asn_system.h
|
||||||
|
ASN_MODULE_HEADERS+=asn_codecs.h
|
||||||
|
ASN_MODULE_HEADERS+=asn_internal.h
|
||||||
|
ASN_MODULE_HEADERS+=OCTET_STRING.h
|
||||||
|
ASN_MODULE_SOURCES+=OCTET_STRING.c
|
||||||
|
ASN_MODULE_HEADERS+=BIT_STRING.h
|
||||||
|
ASN_MODULE_SOURCES+=BIT_STRING.c
|
||||||
|
ASN_MODULE_SOURCES+=asn_codecs_prim.c
|
||||||
|
ASN_MODULE_HEADERS+=asn_codecs_prim.h
|
||||||
|
ASN_MODULE_HEADERS+=ber_tlv_length.h
|
||||||
|
ASN_MODULE_SOURCES+=ber_tlv_length.c
|
||||||
|
ASN_MODULE_HEADERS+=ber_tlv_tag.h
|
||||||
|
ASN_MODULE_SOURCES+=ber_tlv_tag.c
|
||||||
|
ASN_MODULE_HEADERS+=ber_decoder.h
|
||||||
|
ASN_MODULE_SOURCES+=ber_decoder.c
|
||||||
|
ASN_MODULE_HEADERS+=der_encoder.h
|
||||||
|
ASN_MODULE_SOURCES+=der_encoder.c
|
||||||
|
ASN_MODULE_HEADERS+=constr_TYPE.h
|
||||||
|
ASN_MODULE_SOURCES+=constr_TYPE.c
|
||||||
|
ASN_MODULE_HEADERS+=constraints.h
|
||||||
|
ASN_MODULE_SOURCES+=constraints.c
|
||||||
|
ASN_MODULE_HEADERS+=xer_support.h
|
||||||
|
ASN_MODULE_SOURCES+=xer_support.c
|
||||||
|
ASN_MODULE_HEADERS+=xer_decoder.h
|
||||||
|
ASN_MODULE_SOURCES+=xer_decoder.c
|
||||||
|
ASN_MODULE_HEADERS+=xer_encoder.h
|
||||||
|
ASN_MODULE_SOURCES+=xer_encoder.c
|
||||||
|
ASN_MODULE_HEADERS+=per_support.h
|
||||||
|
ASN_MODULE_SOURCES+=per_support.c
|
||||||
|
ASN_MODULE_HEADERS+=per_decoder.h
|
||||||
|
ASN_MODULE_SOURCES+=per_decoder.c
|
||||||
|
ASN_MODULE_HEADERS+=per_encoder.h
|
||||||
|
ASN_MODULE_SOURCES+=per_encoder.c
|
||||||
|
|
||||||
|
|
||||||
|
lib_LTLIBRARIES=libsomething.la
|
||||||
|
libsomething_la_SOURCES=$(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
|
||||||
|
|
||||||
|
# This file may be used as an input for make(3)
|
||||||
|
# Remove the lines below to convert it into a pure .am file
|
||||||
|
TARGET = ldap3dump
|
||||||
|
CFLAGS += -I. -DHAVE_CONFIG_H
|
||||||
|
OBJS=${ASN_MODULE_SOURCES:.c=.o} $(TARGET).o
|
||||||
|
|
||||||
|
all: LDAPMessage.c $(TARGET)
|
||||||
|
|
||||||
|
$(TARGET): ${OBJS}
|
||||||
|
$(CC) $(CFLAGS) -o $(TARGET) ${OBJS} $(LDFLAGS) $(LIBS)
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .o
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
$(CC) $(CFLAGS) -o $@ -c $<
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGET)
|
||||||
|
rm -f $(OBJS)
|
||||||
|
|
||||||
|
regen: regenerate-from-asn1-source
|
||||||
|
|
||||||
|
regenerate-from-asn1-source:
|
||||||
|
../../asn1c/asn1c -fcompound-names -S ../../skeletons ../rfc4511-Lightweight-Directory-Access-Protocol-V3.asn1
|
||||||
|
|
||||||
|
|
||||||
|
LDAPMessage.c: regenerate.Makefile
|
||||||
|
./regenerate.Makefile
|
||||||
|
@touch LDAPMessage.c
|
||||||
|
make
|
||||||
|
|
||||||
|
ASN_CONVERTER=../../skeletons/converter-sample.c
|
||||||
|
$(TARGET).o: $(ASN_CONVERTER)
|
||||||
|
$(CC) $(CFLAGS) -DPDU=LDAPMessage -o $(TARGET).o -c $(ASN_CONVERTER)
|
||||||
|
|
||||||
|
distclean: clean
|
||||||
|
rm -f $(ASN_MODULE_SOURCES) $(ASN_MODULE_HEADERS)
|
||||||
|
rm -f Makefile.am.sample
|
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
GENERAL INFORMATION
|
||||||
|
===================
|
||||||
|
|
||||||
|
The LDAPv3 (Lightweight Directory Access Protocol) PDU decoder.
|
||||||
|
Invoking `make` will compile the ASN.1 specifications from the rfc4211.txt
|
||||||
|
in the above directory.
|
||||||
|
|
||||||
|
The ../../skeletons/converter-sample.c will supply the missing
|
||||||
|
"int main()" routine which drives the decoding process.
|
||||||
|
|
||||||
|
ldap3dump USAGE
|
||||||
|
==============
|
||||||
|
|
||||||
|
./ldap3dump LDAPMessage.ber # Print as XML (BASIC-XER)
|
||||||
|
|
||||||
|
The full list of recognized command line options may be obtained with
|
||||||
|
|
||||||
|
> ./ldap3dump -h
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
|
||||||
|
extern int opt_debug;
|
||||||
|
|
||||||
|
#define ASN_DEBUG(fmt, args...) do { \
|
||||||
|
if(opt_debug < 2) break; \
|
||||||
|
fprintf(stderr, fmt, ##args); \
|
||||||
|
fprintf(stderr, " (%s:%d)\n", \
|
||||||
|
__FILE__, __LINE__); \
|
||||||
|
} while(0)
|
||||||
|
|
Loading…
Reference in New Issue