diff options
author | Anders Broman <anders.broman@ericsson.com> | 2012-06-25 21:16:43 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2012-06-25 21:16:43 +0000 |
commit | b160466dd2c446265d660a0ab7311c61ab079222 (patch) | |
tree | 3a6a574f902b65124d6ddf4434229bae1528127b /asn1/x509ce | |
parent | 3814106d7e5333e887dcd9d4c8ced0c2e10cd22c (diff) | |
download | wireshark-b160466dd2c446265d660a0ab7311c61ab079222.tar.gz wireshark-b160466dd2c446265d660a0ab7311c61ab079222.tar.bz2 wireshark-b160466dd2c446265d660a0ab7311c61ab079222.zip |
From Martin Kaiser:
add X.509 certificate extensions for DVB-CI/CI+
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7397
svn path=/trunk/; revision=43485
Diffstat (limited to 'asn1/x509ce')
-rw-r--r-- | asn1/x509ce/CertificateExtensionsCiplus.asn | 47 | ||||
-rw-r--r-- | asn1/x509ce/Makefile.common | 3 | ||||
-rw-r--r-- | asn1/x509ce/packet-x509ce-template.c | 25 | ||||
-rw-r--r-- | asn1/x509ce/packet-x509ce-template.h | 3 | ||||
-rw-r--r-- | asn1/x509ce/x509ce.cnf | 9 |
5 files changed, 86 insertions, 1 deletions
diff --git a/asn1/x509ce/CertificateExtensionsCiplus.asn b/asn1/x509ce/CertificateExtensionsCiplus.asn new file mode 100644 index 0000000000..3bae673751 --- /dev/null +++ b/asn1/x509ce/CertificateExtensionsCiplus.asn @@ -0,0 +1,47 @@ +-- $Id$ +-- Module CertificateExtensionsCiplus +-- X.509 certificate extensions defined by CI+ (www.ci-plus.com) +CertificateExtensionsCiplus DEFINITIONS IMPLICIT TAGS ::= +BEGIN + +-- EXPORTS ALL +IMPORTS + id-pkix + FROM PKIX1Explicit93 {iso(1) identified-organization(3) dod(6) internet(1) + security(5) mechanisms(5) pkix(7) id-mod(0) id-pkix1-explicit-93(3)} + EXTENSION + FROM AuthenticationFramework { joint-iso-itu-t ds(5) + module(1) authenticationFramework(7) 3 }; + +scramblerCapabilities EXTENSION ::= { + SYNTAX ScramblerCapabilities + IDENTIFIED BY id-pe-scramblerCapabilities +} + +ScramblerCapabilities ::= SEQUENCE { + capability INTEGER (0..MAX), + version INTEGER (0..MAX) +} + + +ciplusInfo EXTENSION ::= { + SYNTAX CiplusInfo + IDENTIFIED BY id-pe-ciplusInfo +} + +CiplusInfo ::= BIT STRING + + +cicamBrandId EXTENSION ::= { + SYNTAX CicamBrandId + IDENTIFIED BY id-pe-cicamBrandId +} + +CicamBrandId ::= INTEGER(1..65535) + +-- Object identifier assignments +id-pe-scramblerCapabilities OBJECT IDENTIFIER ::= { id-pkix id-pe(1) 25 } +id-pe-ciplusInfo OBJECT IDENTIFIER ::= { id-pkix id-pe(1) 26 } +id-pe-cicamBrandId OBJECT IDENTIFIER ::= { id-pkix id-pe(1) 27 } + +END diff --git a/asn1/x509ce/Makefile.common b/asn1/x509ce/Makefile.common index c170347732..39f0120077 100644 --- a/asn1/x509ce/Makefile.common +++ b/asn1/x509ce/Makefile.common @@ -26,7 +26,8 @@ EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf EXT_ASN_FILE_LIST = -ASN_FILE_LIST = CertificateExtensions.asn +ASN_FILE_LIST = CertificateExtensions.asn \ + CertificateExtensionsCiplus.asn # The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn # files do not exist for all protocols: Please add/remove as required. diff --git a/asn1/x509ce/packet-x509ce-template.c b/asn1/x509ce/packet-x509ce-template.c index 3a6eeab9bc..7a9f501174 100644 --- a/asn1/x509ce/packet-x509ce-template.c +++ b/asn1/x509ce/packet-x509ce-template.c @@ -57,6 +57,31 @@ static const char *object_identifier_id; #include "packet-x509ce-fn.c" +/* CI+ (www.ci-plus.com) defines some X.509 certificate extensions + that use OIDs which are not officially assigned + dissection of these extensions can be enabled temporarily using the + functions below */ +void +x509ce_enable_ciplus(void) +{ + dissector_handle_t dh25, dh26, dh27; + + dh25 = create_dissector_handle(dissect_ScramblerCapabilities_PDU, proto_x509ce); + dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.25", dh25); + dh26 = create_dissector_handle(dissect_CiplusInfo_PDU, proto_x509ce); + dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.26", dh26); + dh27 = create_dissector_handle(dissect_CicamBrandId_PDU, proto_x509ce); + dissector_change_string("ber.oid", "1.3.6.1.5.5.7.1.27", dh27); +} + +void +x509ce_disable_ciplus(void) +{ + dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.25"); + dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.26"); + dissector_reset_string("ber.oid", "1.3.6.1.5.5.7.1.27"); +} + static void dissect_x509ce_invalidityDate_callback(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) diff --git a/asn1/x509ce/packet-x509ce-template.h b/asn1/x509ce/packet-x509ce-template.h index bf11cec3a2..985dcc28f0 100644 --- a/asn1/x509ce/packet-x509ce-template.h +++ b/asn1/x509ce/packet-x509ce-template.h @@ -28,5 +28,8 @@ #include "packet-x509ce-exp.h" +void x509ce_enable_ciplus(void); +void x509ce_disable_ciplus(void); + #endif /* PACKET_X509CE_H */ diff --git a/asn1/x509ce/x509ce.cnf b/asn1/x509ce/x509ce.cnf index b2eda8ff63..31ee0ae38e 100644 --- a/asn1/x509ce/x509ce.cnf +++ b/asn1/x509ce/x509ce.cnf @@ -87,6 +87,15 @@ SkipCerts StatusReferral StatusReferrals SubjectKeyIdentifier +ScramblerCapabilities +CiplusInfo +CicamBrandId + +#.PDU +ScramblerCapabilities +CiplusInfo +CicamBrandId + #.REGISTER CertificatePoliciesSyntax B "2.5.29.3" "id-ce-certificatePolicies" |