Ethereal-dev: Re: [Ethereal-dev] Question for packet-ber.c gurus
Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.
From: "Ronnie Sahlberg" <ronnie_sahlberg@xxxxxxxxxxxxxx>
Date: Mon, 3 May 2004 20:18:10 +1000
Great stuff. Any news about the updated h235 machinegenerated dissector? If not, I can hack up a temporary fix to dissect those missing constructs in the current handwritten one so that Michael Oliveras can run his captures through ethereal. ----- Original Message ----- From: "Tomas Kukosa" Sent: Monday, May 03, 2004 6:25 PM Subject: Re: [Ethereal-dev] Question for packet-ber.c gurus > The EXPLICIT tags do not need any special handling as it is 'default' behaviour for the > BER dissector (the BER dissector was created for Kerberos and it contains all values > tagged explicitly). But values tagged implicitly and without tag need special handling. > > See below or into attached files for recommended structures. > (Attached files are only uncompileable code fragments from ASN2ETH compiler but it could > help you.) > > Regards, > Tom > > static ber_sequence Certificate_sequence[] = { > { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, > dissect_hf_rfc3280_tbsCertificate }, > { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, > dissect_hf_rfc3280_signatureAlgorithm }, > { BER_CLASS_UNI, BER_UNI_TAG_BITSTRING, BER_FLAGS_NOOWNTAG, > dissect_hf_rfc3280_signatureValue }, > { 0, 0, 0, NULL } > }; > > static ber_sequence TBSCertificate_sequence[] = { > { BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL, dissect_hf_rfc3280_version }, > { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, > dissect_hf_rfc3280_serialNumber }, > { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_hf_rfc3280_signature }, > { -1 , -1, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_hf_rfc3280_issuer }, > { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_hf_rfc3280_validity }, > { -1 , -1, BER_FLAGS_NOOWNTAG|BER_FLAGS_NOTCHKTAG, dissect_hf_rfc3280_subject }, > { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, > dissect_hf_rfc3280_subjectPublicKeyInfo }, > { BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, > dissect_hf_rfc3280_issuerUniqueID_impl }, > { BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, > dissect_hf_rfc3280_subjectUniqueID_impl }, > { BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL, dissect_hf_rfc3280_extensions }, > { 0, 0, 0, NULL } > }; > > > Yaniv Kaul wrote: > > I'm trying to add support for dissecting X.509 certificates to Ethereal > > (which can then be used in IKE, SSL, anything else that uses them). > > (I know it's DER, not BER, but still). > > I'm having a bit of a trouble with it, I suspect it's due to EXPLICIT tags. > > From RFC 3280: > > Certificate ::= SEQUENCE { > > tbsCertificate TBSCertificate, > > signatureAlgorithm AlgorithmIdentifier, > > signatureValue BIT STRING } > > > > TBSCertificate ::= SEQUENCE { > > version [0] EXPLICIT Version DEFAULT v1, > > serialNumber CertificateSerialNumber, > > > > > > I tried creating and dissecting it through the following structures: > > static ber_sequence Certificate_sequence[] = { > > { BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, 0, dissect_tbsCertificate }, > > { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, 0, > > dissect_TBSCertificate_serialNumber }, > > ... > > > > and > > static ber_sequence TBSCertificate_sequence[1] = { > > { BER_CLASS_UNI, BER_UNI_TAG_INTEGER, BER_FLAGS_NOOWNTAG, > > dissect_TBSCertificate_version } > > }; > > > > and it seems to work - up to the point that it does not dissect the > > serial number - it hops over it. > > Any ideas? > > > > Do we have anything special for dissecting EXPLICIT tags? > > > > Attached is my effort thus far. > > > > TIA, > > Y. > > > > > ---------------------------------------------------------------------------- ---- > _______________________________________________ > Ethereal-dev mailing list > Ethereal-dev@xxxxxxxxxxxx > http://www.ethereal.com/mailman/listinfo/ethereal-dev >
- References:
- [Ethereal-dev] Question for packet-ber.c gurus
- From: Yaniv Kaul
- Re: [Ethereal-dev] Question for packet-ber.c gurus
- From: Tomas Kukosa
- [Ethereal-dev] Question for packet-ber.c gurus
- Prev by Date: Re: [Ethereal-dev] enabling libethereal.dll with MSVC (update)
- Next by Date: [Ethereal-dev] Name resolution for Conversations/Endpoints?
- Previous by thread: Re: [Ethereal-dev] Question for packet-ber.c gurus
- Next by thread: [Ethereal-dev] MQ dissectors + SNA LU 6.2 ?
- Index(es):