X-Git-Url: http://www.git.cypherpunks.ru/?p=pyderasn.git;a=blobdiff_plain;f=doc%2Fexamples.rst;h=512c8f8f1a9041daf61c4eee9a3ae0dcddb2e487;hp=5f76200f7af150f6bc28d2e0f3300cf50afeea8a;hb=78833daa9b9637827bfb570135e699b5871aefd3;hpb=cc1605aa800ea590610865a1c4b28f53f796ba10 diff --git a/doc/examples.rst b/doc/examples.rst index 5f76200..512c8f8 100644 --- a/doc/examples.rst +++ b/doc/examples.rst @@ -272,13 +272,13 @@ As command line utility You can decode DER files using command line abilities and get the same picture as above by executing:: - % python -mpyderasn --schema tests.test_crts:Certificate path/to/file + % python -m pyderasn --schema tests.test_crts:Certificate path/to/file If there is no schema for you file, then you can try parsing it without, but of course IMPLICIT tags will often make it impossible. But result is good enough for the certificate above:: - % python -mpyderasn path/to/file + % python -m pyderasn path/to/file 0 [1,3,1604] . >: SEQUENCE OF 4 [1,3,1453] . . >: SEQUENCE OF 8 [0,0, 5] . . . . >: [0] ANY @@ -320,7 +320,7 @@ from ``tests/test_crts.py``:: then you can pass it to pretty printer to see human readable OIDs:: - % python -mpyderasn --oids tests.test_crts:some_oids path/to/file + % python -m pyderasn --oids tests.test_crts:some_oids path/to/file [...] 37 [1,1, 11] . . . . . . >: SET OF 39 [1,1, 9] . . . . . . . . >: SEQUENCE OF @@ -341,14 +341,14 @@ Descriptive errors If you have bad DER, then errors will show you where error occurred:: - % python -mpyderasn --schema tests.test_crts:Certificate path/to/bad/file + % python -m pyderasn --schema tests.test_crts:Certificate path/to/bad/file Traceback (most recent call last): [...] pyderasn.DecodeError: UTCTime (tbsCertificate.validity.notAfter.utcTime) (at 328) invalid UTCTime format :: - % python -mpyderasn path/to/bad/file + % python -m pyderasn path/to/bad/file [...] pyderasn.DecodeError: UTCTime (0.SequenceOf.4.SequenceOf.1.UTCTime) (at 328) invalid UTCTime format @@ -415,3 +415,54 @@ Let's create some simple self-signed X.509 certificate from the ground:: crt.encode() And we will get the same certificate used in Go's library tests. + +DEFINED BY fields +----------------- + +Here is only very simple example how you can define Any/OctetString +fields automatic decoding:: + + class AttributeTypeAndValue(Sequence): + schema = ( + ((("type",), AttributeType(defines=("value", { + id_at_countryName: PrintableString(), + id_at_stateOrProvinceName: PrintableString(), + id_at_localityName: PrintableString(), + id_at_organizationName: PrintableString(), + id_at_commonName: PrintableString(), + }))),), + ("value", AttributeValue()), + ) + +And when you will try to decode X.509 certificate with it, your pretty +printer will show:: + + 34 [0,0, 149] . . issuer: Name CHOICE rdnSequence + 34 [1,2, 146] . . . rdnSequence: RDNSequence SEQUENCE OF + 37 [1,1, 11] . . . . 0: RelativeDistinguishedName SET OF + 39 [1,1, 9] . . . . . 0: AttributeTypeAndValue SEQUENCE + 41 [1,1, 3] . . . . . . type: AttributeType OBJECT IDENTIFIER id-at-countryName (2.5.4.6) + 46 [0,0, 4] . . . . . . value: [UNIV 19] AttributeValue ANY + . . . . . . . 13:02:58:58 + 46 [1,1, 2] . . . . . . . DEFINED BY (2.5.4.6): PrintableString PrintableString XX + 50 [1,1, 19] . . . . 1: RelativeDistinguishedName SET OF + 52 [1,1, 17] . . . . . 0: AttributeTypeAndValue SEQUENCE + 54 [1,1, 3] . . . . . . type: AttributeType OBJECT IDENTIFIER id-at-stateOrProvinceName (2.5.4.8) + 59 [0,0, 12] . . . . . . value: [UNIV 19] AttributeValue ANY + . . . . . . . 13:0A:53:6F:6D:65:2D:53:74:61:74:65 + 59 [1,1, 10] . . . . . . . DEFINED BY (2.5.4.8): PrintableString PrintableString Some-State + 71 [1,1, 13] . . . . 2: RelativeDistinguishedName SET OF + 73 [1,1, 11] . . . . . 0: AttributeTypeAndValue SEQUENCE + 75 [1,1, 3] . . . . . . type: AttributeType OBJECT IDENTIFIER id-at-localityName (2.5.4.7) + 80 [0,0, 6] . . . . . . value: [UNIV 19] AttributeValue ANY + . . . . . . . 13:04:43:69:74:79 + 80 [1,1, 4] . . . . . . . DEFINED BY (2.5.4.7): PrintableString PrintableString City + 86 [1,1, 33] . . . . 3: RelativeDistinguishedName SET OF + 88 [1,1, 31] . . . . . 0: AttributeTypeAndValue SEQUENCE + 90 [1,1, 3] . . . . . . type: AttributeType OBJECT IDENTIFIER id-at-organizationName (2.5.4.10) + 95 [0,0, 26] . . . . . . value: [UNIV 19] AttributeValue ANY + . . . . . . . 13:18:49:6E:74:65:72:6E:65:74:20:57:69:64:67:69 + . . . . . . . 74:73:20:50:74:79:20:4C:74:64 + 95 [1,1, 24] . . . . . . . DEFINED BY (2.5.4.10): PrintableString PrintableString Internet Widgits Pty Ltd + +:ref:`Read more ` about that feature.