Comments (17)
I tested again with version 0.3.4 directly from pypi and it works fine! looks like I had pyasn1 half installed or something.
Thanks a lot for fixing!
from pyasn1.
Thank you for rising this!
It looks like a bug to me. I am able to reproduce it. Hold on... ;)
from pyasn1.
Alright, this should be fixed in master by now (commit 9441a1c). I'd appreciate you giving it a try.
from pyasn1.
If your certificate is actually encapsulated into a PKCS#7 container (as variable name suggests), may be you'd better decode (or try decoding) the PKCS#7 container along with the X.509 certificate being stored inside?
If it is not PKCS#7, why do you need to remove part of the serialised data manually? That does not sound right. ;-)
from pyasn1.
Thanks for the quick fix! I'll test it tomorrow!
regarding the pkcs7: These are android/jar signing certificates. They are inside the APK/JAR file and contain the public key of the developer. The ASN1JS tool says that the OID 1.2.840.113549.1.7.2 is signedData(PKCS #7), so this might be actually right.
What I did in the code is quite sloppy (but works :D): The certificate is always the 4th item in the sequence, thus I take message[1][3]
. If I do this, there is still the A0 82 02 D0
in front...
But I'll look at the container!
from pyasn1.
This is interesting! I checked it now with the latest master, and it seems it removes now the tag in front, thus this is all I need to do:
message, _ = decode(pkcs7message)
cert = encode(message[1][3])
certificate = x509.load_der_x509_certificate(cert, default_backend())
Was this actually a bug, that the tag would stay there?
from pyasn1.
I also tested the SignedData
but it does not work. I had a closer look and it appears that it is not SignedData, but some custom format, which is partly explained here: http://securitypad.blogspot.co.at/2014/12/jar-signature-block-file-format.html
from pyasn1.
Could you give me a simple reproducer that shows the difference in the decoding (?) result across pyasn1 versions please? I'm not sure I understand where the problem is yet.
Thanks!
from pyasn1.
Sure!
Here is an example:
import binascii
from pyasn1.codec.der.decoder import decode
from pyasn1.codec.der.encoder import encode
from cryptography import x509
from cryptography.hazmat.backends import default_backend
certhex = b"3082039506092a864886f70d010702a082038630820382020101310b300906052b0e03021a0500300b06092a864886f70d010701a08202d0308202cc30820289a003020102020466eda548300b06072a8648ce380403050030363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e06035504031307736961766173683020170d3136303132353037323533305a180f32303534303532353037323533305a30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368308201b83082012c06072a8648ce3804013082011f02818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c70215009760508f15230bccb292b982a2eb840bf0581cf502818100f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a0381850002818100e9b46a500aabcbb7b42e93477db9f8ac7c819eadd392f4fa2dd7c10973c399d00d45796052bfb376567a518cfe1432a0f845e4be75aa76462335bf7f84b6c634bb6c884b6ae2e7b6f1cc78c3be6f98b65980832c40d9da3d2b047cba98b24c877b2ace7908b0af56fd62367df355e011a0482c9b8751c373a8d131076cd01421a321301f301d0603551d0e04160414eeac32e5f08781bb6f2f392814951b328868ae4c300b06072a8648ce3804030500033000302d0215009209eb12e966aafae281620e7da9743774d7846302144bf36a9634967ca47639bbc10712571b036e13d531818e30818b020101303e30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368020466eda548300906052b0e03021a0500300b06072a8648ce3804010500042e302c02145de23a86f0c2e45dcad93ef8cab675ec56a6ff4b021404c1a9f7f791631ae00d61fe8ae23f502c33fe84"
pkcs7message = binascii.unhexlify(certhex)
message, _ = decode(pkcs7message)
cert = encode(message[1][3])
res = binascii.hexlify(cert)
print(res)
# pyasn1 0.2.1:
output_021 = b'a08202d0308202cc30820289a003020102020466eda548300b06072a8648ce380403050030363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e06035504031307736961766173683020170d3136303132353037323533305a180f32303534303532353037323533305a30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368308201b83082012c06072a8648ce3804013082011f02818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c70215009760508f15230bccb292b982a2eb840bf0581cf502818100f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a0381850002818100e9b46a500aabcbb7b42e93477db9f8ac7c819eadd392f4fa2dd7c10973c399d00d45796052bfb376567a518cfe1432a0f845e4be75aa76462335bf7f84b6c634bb6c884b6ae2e7b6f1cc78c3be6f98b65980832c40d9da3d2b047cba98b24c877b2ace7908b0af56fd62367df355e011a0482c9b8751c373a8d131076cd01421a321301f301d0603551d0e04160414eeac32e5f08781bb6f2f392814951b328868ae4c300b06072a8648ce3804030500033000302d0215009209eb12e966aafae281620e7da9743774d7846302144bf36a9634967ca47639bbc10712571b036e13d5'
# pyasn1 0.3.4:
output_034 = b'308202ca30820287a003020102020466eda548300b06072a8648ce380403050030363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e06035504031307736961766173683020170d3136303132353037323533305a180f32303534303532353037323533305a30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368308201b83082012c06072a8648ce3804013082011f02818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c70215009760508f15230bccb292b982a2eb840bf0581cf502818100f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a0381850002818100e9b46a500aabcbb7b42e93477db9f8ac7c819eadd392f4fa2dd7c10973c399d00d45796052bfb376567a518cfe1432a0f845e4be75aa76462335bf7f84b6c634bb6c884b6ae2e7b6f1cc78c3be6f98b65980832c40d9da3d2b047cba98b24c877b2ace7908b0af56fd62367df355e011a0482c9b8751c373a8d131076cd01421301f301d0603551d0e04160414eeac32e5f08781bb6f2f392814951b328868ae4c300b06072a8648ce3804030500033000302d0215009209eb12e966aafae281620e7da9743774d7846302144bf36a9634967ca47639bbc10712571b036e13d5'
if res == output_034:
print("looks like pyasn1 0.3.4")
# but this one will fail:
certificate = x509.load_der_x509_certificate(cert, default_backend())
else:
if res == output_021:
print("at least we know how to transform")
if cert[0] == 0xA0:
l = cert[1]
# Python2 compliance
if not isinstance(l, int):
l = ord(l)
cert = cert[2 + (l & 0x7F) if l & 0x80 > 1 else 2:]
certificate = x509.load_der_x509_certificate(cert, default_backend())
if binascii.hexlify(cert) == output_034:
print("Now everything matches again.")
else:
print("That did not worked.")
print(binascii.hexlify(cert))
print(output_034)
I also found out that the output is slightly different now and pycryptography fails to load the certificate.
from pyasn1.
So far I am unable to reproduce the output_021
blob with pyasn1-0.2.1 and Python 2.7/3.6 on Linux. Is your environment anyhow different? Can you still reproduce it with the script above?
Now I am trying to locate the X.509 certificate in the printout of the parsed blob. I am not sure it is strictly PKCS#7 as mentioned by the link you referred to. If you need to extract the certificate out of the data, I believe it's better to do with the parsed structure compared to peeking at blob...
This is what message.prettyPrint()
returns:
Sequence:
field-0=1.2.840.113549.1.7.2
field-1=Sequence:
field-0=1
field-1=SetOf:
Sequence:
field-0=1.3.14.3.2.26
field-1=
field-2=SequenceOf:
1.2.840.113549.1.7.1
field-3=Sequence:
field-0=Sequence:
field-0=2
field-1=1726850376
field-2=Sequence:
field-0=1.2.840.10040.4.3
field-1=
field-3=Sequence:
field-0=SetOf:
Sequence:
field-0=2.5.4.6
field-1=siavash
field-1=SetOf:
Sequence:
field-0=2.5.4.10
field-1=siavash
field-2=SetOf:
Sequence:
field-0=2.5.4.3
field-1=siavash
field-4=Sequence:
field-0=160125072530Z
field-1=20540525072530Z
field-5=Sequence:
field-0=SetOf:
Sequence:
field-0=2.5.4.6
field-1=siavash
field-1=SetOf:
Sequence:
field-0=2.5.4.10
field-1=siavash
field-2=SetOf:
Sequence:
field-0=2.5.4.3
field-1=siavash
field-6=Sequence:
field-0=Sequence:
field-0=1.2.840.10040.4.1
field-1=Sequence:
field-0=178011905478542266528237562450159990145232156369120674273274450314442865788737020770612695252123463079567156784778466449970650770920727857050009668388144034129745221171818506047231150039301079959358067395348717066319802262019714966524135060945913707594956514672855690606794135837542707371727429551343320695239
field-1=864205495604807476120572616017955259175325408501
field-2=174068207532402095185811980123523436538604490794561350978495831040599953488455823147851597408940950725307797094915759492368300574252438761037084473467180148876118103083043754985190983472601550494691329488083395492313850000361646482644608492304078721818959999056496097769368017749273708962006689187956744210730
field-1='000000101000000110000001000000001110100110110100011010100101000000001010101010111100101110110111101101000010111010010011010001110111110110111001111110001010110001111100100000011001111010101101110100111001001011110100111110100010110111010111110000010000100101110011110000111001100111010000000011010100010101111001011000000101001010111111101100110111011001010110011110100101000110001100111111100001010000110010101000001111100001000101111001001011111001110101101010100111011001000110001000110011010110111111011111111000010010110110110001100011010010111011011011001000100001001011011010101110001011100111101101101111000111001100011110001100001110111110011011111001100010110110010110011000000010000011001011000100000011011001110110100011110100101011000001000111110010111010100110001011001001001100100001110111101100101010110011100111100100001000101100001010111101010110111111010110001000110110011111011111001101010101111000000001000110100000010010000010110010011011100001110101000111000011011100111010100011010001001100010000011101101100110100000001010000100001'
field-7=SequenceOf:
Sequence:
field-0=2.5.29.14
field-1=0x0414eeac32e5f08781bb6f2f392814951b328868ae4c
field-1=Sequence:
field-0=1.2.840.10040.4.3
field-1=
field-2='0011000000101101000000100001010100000000100100100000100111101011000100101110100101100110101010101111101011100010100000010110001000001110011111011010100101110100001101110111010011010111100001000110001100000010000101000100101111110011011010101001011000110100100101100111110010100100011101100011100110111011110000010000011100010010010101110001101100000011011011100001001111010101'
field-4=SetOf:
Sequence:
field-0=1
field-1=Sequence:
field-0=Sequence:
field-0=SetOf:
Sequence:
field-0=2.5.4.6
field-1=siavash
field-1=SetOf:
Sequence:
field-0=2.5.4.10
field-1=siavash
field-2=SetOf:
Sequence:
field-0=2.5.4.3
field-1=siavash
field-1=1726850376
field-2=Sequence:
field-0=1.3.14.3.2.26
field-1=
field-3=Sequence:
field-0=1.2.840.10040.4.1
field-1=
field-4=0x302c02145de23a86f0c2e45dcad93ef8cab675ec56a6ff4b021404c1a9f7f791631ae00d61fe8ae23f502c33fe84
from pyasn1.
Yes, the format is quite weird... And there is not much docoumentation out there, even this format is used in million of APK files and JAR's.
I put the thing into the asn1js thing and marked the part red, which is actually the certificate:
Hope that helps!
When I extract it using message[1][3]
I'll get the red part plus A0 82 02 D0
in front (which is the tag plus the length of it's content).
So the result of message[1][3]
should be a08202d0308202cc30820289a003020102020466eda548300b06072a8648ce380403050030363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e06035504031307736961766173683020170d3136303132353037323533305a180f32303534303532353037323533305a30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368308201b83082012c06072a8648ce3804013082011f02818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c70215009760508f15230bccb292b982a2eb840bf0581cf502818100f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a0381850002818100e9b46a500aabcbb7b42e93477db9f8ac7c819eadd392f4fa2dd7c10973c399d00d45796052bfb376567a518cfe1432a0f845e4be75aa76462335bf7f84b6c634bb6c884b6ae2e7b6f1cc78c3be6f98b65980832c40d9da3d2b047cba98b24c877b2ace7908b0af56fd62367df355e011a0482c9b8751c373a8d131076cd01421a321301f301d0603551d0e04160414eeac32e5f08781bb6f2f392814951b328868ae4c300b06072a8648ce3804030500033000302d0215009209eb12e966aafae281620e7da9743774d7846302144bf36a9634967ca47639bbc10712571b036e13d5
Then I remove the tag in front manually and should get the correct result.
I can still reproduce it on my machine using Python 2.7.13 and pyasn1 (0.1.9) and pyasn1-modules (0.0.7).
from pyasn1.
Thank you for the detailed report!
It now looks to me that there is a bug in pyasn1 0.3.3 which reveals when you decode explicitly tagged item and not passing ASN.1 schema to the decoder.
I am looking into it...
from pyasn1.
Just to let you know that the encoding bug you run into is fixed by now in the master branch.
from pyasn1.
Here is how you could strip the unwanted tag off the certificate:
...
message, _ = decode(pkcs7message)
# strip the non-standard EXPLICIT tag at the outermost SEQUENCE
# by re-creating the Sequence object and copying over the contents
tagged_cert = message[1][3]
untagged_cert = univ.Sequence()
for idx, component in enumerate(tagged_cert.values()):
untagged_cert[idx] = component
# print out the structure and tags of the certs
print(tagged_cert.prettyPrintType())
print(untagged_cert.prettyPrintType())
# canonical X.509 cert structure, just for reference
# from pyasn1_modules import rfc2459
print(rfc2459.Certificate().prettyPrintType())
ber_cert = encode(cert)
from pyasn1.
I tested it but it does not work:
import binascii
from pyasn1.codec.der.decoder import decode
from pyasn1.codec.der.encoder import encode
from pyasn1.type import univ
from cryptography import x509
from cryptography.hazmat.backends import default_backend
certhex = b"3082039506092a864886f70d010702a082038630820382020101310b300906052b0e03021a0500300b06092a864886f70d010701a08202d0308202cc30820289a003020102020466eda548300b06072a8648ce380403050030363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e06035504031307736961766173683020170d3136303132353037323533305a180f32303534303532353037323533305a30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368308201b83082012c06072a8648ce3804013082011f02818100fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400c31e3f80b6512669455d402251fb593d8d58fabfc5f5ba30f6cb9b556cd7813b801d346ff26660b76b9950a5a49f9fe8047b1022c24fbba9d7feb7c61bf83b57e7c6a8a6150f04fb83f6d3c51ec3023554135a169132f675f3ae2b61d72aeff22203199dd14801c70215009760508f15230bccb292b982a2eb840bf0581cf502818100f7e1a085d69b3ddecbbcab5c36b857b97994afbbfa3aea82f9574c0b3d0782675159578ebad4594fe67107108180b449167123e84c281613b7cf09328cc8a6e13c167a8b547c8d28e0a3ae1e2bb3a675916ea37f0bfa213562f1fb627a01243bcca4f1bea8519089a883dfe15ae59f06928b665e807b552564014c3bfecf492a0381850002818100e9b46a500aabcbb7b42e93477db9f8ac7c819eadd392f4fa2dd7c10973c399d00d45796052bfb376567a518cfe1432a0f845e4be75aa76462335bf7f84b6c634bb6c884b6ae2e7b6f1cc78c3be6f98b65980832c40d9da3d2b047cba98b24c877b2ace7908b0af56fd62367df355e011a0482c9b8751c373a8d131076cd01421a321301f301d0603551d0e04160414eeac32e5f08781bb6f2f392814951b328868ae4c300b06072a8648ce3804030500033000302d0215009209eb12e966aafae281620e7da9743774d7846302144bf36a9634967ca47639bbc10712571b036e13d531818e30818b020101303e30363110300e06035504061307736961766173683110300e060355040a1307736961766173683110300e0603550403130773696176617368020466eda548300906052b0e03021a0500300b06072a8648ce3804010500042e302c02145de23a86f0c2e45dcad93ef8cab675ec56a6ff4b021404c1a9f7f791631ae00d61fe8ae23f502c33fe84"
pkcs7message = binascii.unhexlify(certhex)
message, _ = decode(pkcs7message)
print(message.prettyPrintType())
gives me
[0:32:16] -> Sequence {
}
I used the master 4d9db10
from pyasn1.
Could you please make sure you are testing against 4d9db10? The script above that I cut&pasted into Python2/3 prompt seems to work like this:
[0:32:16] -> Sequence {
"field-0" = [0:0:6] -> ObjectIdentifier
"field-1" = [0:32:16]+[128:32:0] -> Sequence {
"field-0" = [0:0:2] -> Integer
"field-1" = [0:32:17] -> SetOf {
}
"field-2" = [0:32:16] -> SequenceOf {
}
"field-3" = [0:32:16]+[128:32:0] -> Sequence {
"field-0" = [0:32:16] -> Sequence {
"field-0" = [0:0:2]+[128:32:0] -> Integer
"field-1" = [0:0:2] -> Integer
"field-2" = [0:32:16] -> Sequence {
"field-0" = [0:0:6] -> ObjectIdentifier
"field-1" = [0:0:5] -> Null
}
"field-3" = [0:32:16] -> Sequence {
"field-0" = [0:32:17] -> SetOf {
}
"field-1" = [0:32:17] -> SetOf {
}
"field-2" = [0:32:17] -> SetOf {
}
}
"field-4" = [0:32:16] -> Sequence {
"field-0" = [0:0:23] -> UTCTime
"field-1" = [0:0:24] -> GeneralizedTime
}
"field-5" = [0:32:16] -> Sequence {
"field-0" = [0:32:17] -> SetOf {
}
"field-1" = [0:32:17] -> SetOf {
}
"field-2" = [0:32:17] -> SetOf {
}
}
"field-6" = [0:32:16] -> Sequence {
"field-0" = [0:32:16] -> Sequence {
"field-0" = [0:0:6] -> ObjectIdentifier
"field-1" = [0:32:16] -> Sequence {
"field-0" = [0:0:2] -> Integer
"field-1" = [0:0:2] -> Integer
"field-2" = [0:0:2] -> Integer
}
}
"field-1" = [0:0:3] -> BitString
}
"field-7" = [0:32:16]+[128:32:3] -> SequenceOf {
}
}
"field-1" = [0:32:16] -> Sequence {
"field-0" = [0:0:6] -> ObjectIdentifier
"field-1" = [0:0:5] -> Null
}
"field-2" = [0:0:3] -> BitString
}
"field-4" = [0:32:17] -> SetOf {
}
}
}
And the .prettyPrint()
reports populated schema like this:
Sequence:
field-0=1.2.840.113549.1.7.2
field-1=Sequence:
field-0=1
field-1=SetOf:
Sequence:
field-0=1.3.14.3.2.26
field-1=
field-2=SequenceOf:
1.2.840.113549.1.7.1
field-3=Sequence:
field-0=Sequence:
field-0=2
field-1=1726850376
field-2=Sequence:
field-0=1.2.840.10040.4.3
field-1=
field-3=Sequence:
field-0=SetOf:
Sequence:
field-0=2.5.4.6
field-1=siavash
field-1=SetOf:
Sequence:
field-0=2.5.4.10
field-1=siavash
field-2=SetOf:
Sequence:
field-0=2.5.4.3
field-1=siavash
field-4=Sequence:
field-0=160125072530Z
field-1=20540525072530Z
field-5=Sequence:
field-0=SetOf:
Sequence:
field-0=2.5.4.6
field-1=siavash
field-1=SetOf:
Sequence:
field-0=2.5.4.10
field-1=siavash
field-2=SetOf:
Sequence:
field-0=2.5.4.3
field-1=siavash
field-6=Sequence:
field-0=Sequence:
field-0=1.2.840.10040.4.1
field-1=Sequence:
field-0=178011905478542266528237562450159990145232156369120674273274450314442865788737020770612695252123463079567156784778466449970650770920727857050009668388144034129745221171818506047231150039301079959358067395348717066319802262019714966524135060945913707594956514672855690606794135837542707371727429551343320695239
field-1=864205495604807476120572616017955259175325408501
field-2=174068207532402095185811980123523436538604490794561350978495831040599953488455823147851597408940950725307797094915759492368300574252438761037084473467180148876118103083043754985190983472601550494691329488083395492313850000361646482644608492304078721818959999056496097769368017749273708962006689187956744210730
field-1='000000101000000110000001000000001110100110110100011010100101000000001010101010111100101110110111101101000010111010010011010001110111110110111001111110001010110001111100100000011001111010101101110100111001001011110100111110100010110111010111110000010000100101110011110000111001100111010000000011010100010101111001011000000101001010111111101100110111011001010110011110100101000110001100111111100001010000110010101000001111100001000101111001001011111001110101101010100111011001000110001000110011010110111111011111111000010010110110110001100011010010111011011011001000100001001011011010101110001011100111101101101111000111001100011110001100001110111110011011111001100010110110010110011000000010000011001011000100000011011001110110100011110100101011000001000111110010111010100110001011001001001100100001110111101100101010110011100111100100001000101100001010111101010110111111010110001000110110011111011111001101010101111000000001000110100000010010000010110010011011100001110101000111000011011100111010100011010001001100010000011101101100110100000001010000100001'
field-7=SequenceOf:
Sequence:
field-0=2.5.29.14
field-1=0x0414eeac32e5f08781bb6f2f392814951b328868ae4c
field-1=Sequence:
field-0=1.2.840.10040.4.3
field-1=
field-2='0011000000101101000000100001010100000000100100100000100111101011000100101110100101100110101010101111101011100010100000010110001000001110011111011010100101110100001101110111010011010111100001000110001100000010000101000100101111110011011010101001011000110100100101100111110010100100011101100011100110111011110000010000011100010010010101110001101100000011011011100001001111010101'
field-4=SetOf:
Sequence:
field-0=1
field-1=Sequence:
field-0=Sequence:
field-0=SetOf:
Sequence:
field-0=2.5.4.6
field-1=siavash
field-1=SetOf:
Sequence:
field-0=2.5.4.10
field-1=siavash
field-2=SetOf:
Sequence:
field-0=2.5.4.3
field-1=siavash
field-1=1726850376
field-2=Sequence:
field-0=1.3.14.3.2.26
field-1=
field-3=Sequence:
field-0=1.2.840.10040.4.1
field-1=
field-4=0x302c02145de23a86f0c2e45dcad93ef8cab675ec56a6ff4b021404c1a9f7f791631ae00d61fe8ae23f502c33fe84
from pyasn1.
BTW, 0.3.4 is out on PyPi
from pyasn1.
Related Issues (20)
- 0.4.8: sphinx warning
- 0.4.8: pytest warning
- Stacktrace when enabling debugging
- 0.4.8: pyasn1-module pytest warnings
- KeyError when processing some PySNMP MIB modules HOT 1
- Need "Questions" enabled on GitHub? HOT 2
- Decoded object results in empty infinitely nested SequenceOf HOT 1
- Error on connection bind pyasn1 version 0.4.8 and 0.4.6
- http://snmplabs.com is domain parked HOT 2
- do you have plan HOT 1
- Unexpected error with tagging
- [PSA] Transfer of ownership HOT 1
- parsing LDAP search message openldap HOT 1
- Sad news and transfer of ownership - pyasn1 and pyasn1-modules
- Merging ASN.1 files HOT 1
- Is pyasn1 v0.4.8 is compatible with python3.11 HOT 2
- is it support python 3.6 ? HOT 1
- Attempted "__hash__" operation on ASN.1 schema object
- pyasn1.error.PyAsn1Error: Read 100 bytes instead of expected 92 HOT 2
- Link to ftp.rsasecurity.com is broken HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pyasn1.