當前位置: 首頁>>代碼示例>>Python>>正文


Python DerSequence.decode方法代碼示例

本文整理匯總了Python中Cryptodome.Util.asn1.DerSequence.decode方法的典型用法代碼示例。如果您正苦於以下問題:Python DerSequence.decode方法的具體用法?Python DerSequence.decode怎麽用?Python DerSequence.decode使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Cryptodome.Util.asn1.DerSequence的用法示例。


在下文中一共展示了DerSequence.decode方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: testDecode6

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode6(self):
     # Two integers
     der = DerSequence()
     der.decode(b('0\x08\x02\x02\x01\x80\x02\x02\x00\xff'))
     self.assertEquals(len(der),2)
     self.assertEquals(der[0],0x180L)
     self.assertEquals(der[1],0xFFL)
開發者ID:chevah,項目名稱:python-package,代碼行數:9,代碼來源:test_asn1.py

示例2: testDecode4

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode4(self):
     # One very long integer
     der = DerSequence()
     der.decode(b('0\x82\x01\x05')+
     b('\x02\x82\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+
     b('\x00\x00\x00\x00\x00\x00\x00\x00\x00'))
     self.assertEquals(len(der),1)
     self.assertEquals(der[0],2L**2048)
開發者ID:chevah,項目名稱:python-package,代碼行數:27,代碼來源:test_asn1.py

示例3: rsa_public_from_der_certificate

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
def rsa_public_from_der_certificate(certificate):
    # Extract subject_public_key_info field from X.509 certificate (see RFC3280)
    try:
        # try to extract pubkey from scapy.layers.x509 X509Cert type in case
        # der_certificate is of type X509Cert
        # Note: der_certificate may not be of type X509Cert if it wasn't
        # received completely, in that case, we'll try to extract it anyway
        # using the old method.
        # TODO: get rid of the old method and always expect X509Cert obj ?
        return RSA.importKey(str(certificate.tbsCertificate.subjectPublicKeyInfo))
    except AttributeError:
        pass

    # Fallback method, may pot. allow to extract pubkey from incomplete der streams
    cert = DerSequence()
    cert.decode(certificate)

    tbs_certificate = DerSequence()
    tbs_certificate.decode(cert[0])       # first DER SEQUENCE

    # search for pubkey OID: rsaEncryption: "1.2.840.113549.1.1.1"
    # hex: 06 09 2A 86 48 86 F7 0D 01 01 01
    subject_public_key_info = None
    for seq in tbs_certificate:
        if not isinstance(seq, basestring):
            continue     # skip numerics and non sequence stuff
        if "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x01" in seq:
            subject_public_key_info = seq

    if subject_public_key_info is None:
        raise ValueError("could not find OID rsaEncryption 1.2.840.113549.1.1.1 in certificate")

    # Initialize RSA key
    return RSA.importKey(subject_public_key_info)
開發者ID:tintinweb,項目名稱:scapy-ssl_tls,代碼行數:36,代碼來源:ssl_tls_keystore.py

示例4: testDecode7

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode7(self):
     # One integer and 2 other types
     der = DerSequence()
     der.decode(b('0\x0A\x02\x02\x01\x80\x24\x02\xb6\x63\x12\x00'))
     self.assertEquals(len(der),3)
     self.assertEquals(der[0],0x180L)
     self.assertEquals(der[1],b('\x24\x02\xb6\x63'))
     self.assertEquals(der[2],b('\x12\x00'))
開發者ID:chevah,項目名稱:python-package,代碼行數:10,代碼來源:test_asn1.py

示例5: der2rsa

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
def der2rsa(der):
    # Extract subjectPublicKeyInfo field from X.509 certificate (see RFC3280)
    cert = DerSequence()
    cert.decode(der)
    tbs_certificate = DerSequence()
    tbs_certificate.decode(cert[0])
    subject_public_key_info = tbs_certificate[6]

    # Initialize RSA key
    return RSA.importKey(subject_public_key_info)
開發者ID:rebeckag,項目名稱:pyjwkest,代碼行數:12,代碼來源:jwk.py

示例6: testDecode8

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode8(self):
     # Only 2 other types
     der = DerSequence()
     der.decode(b('0\x06\x24\x02\xb6\x63\x12\x00'))
     self.assertEquals(len(der),2)
     self.assertEquals(der[0],b('\x24\x02\xb6\x63'))
     self.assertEquals(der[1],b('\x12\x00'))
     self.assertEquals(der.hasInts(), 0)
     self.assertEquals(der.hasInts(False), 0)
     self.failIf(der.hasOnlyInts())
     self.failIf(der.hasOnlyInts(False))
開發者ID:chevah,項目名稱:python-package,代碼行數:13,代碼來源:test_asn1.py

示例7: testDecode1

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode1(self):
     # Empty sequence
     der = DerSequence()
     der.decode(b('0\x00'))
     self.assertEquals(len(der),0)
     # One single-byte integer (zero)
     der.decode(b('0\x03\x02\x01\x00'))
     self.assertEquals(len(der),1)
     self.assertEquals(der[0],0)
     # Invariant
     der.decode(b('0\x03\x02\x01\x00'))
     self.assertEquals(len(der),1)
     self.assertEquals(der[0],0)
開發者ID:chevah,項目名稱:python-package,代碼行數:15,代碼來源:test_asn1.py

示例8: testDecode9

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode9(self):
     # Verify that decode returns itself
     der = DerSequence()
     self.assertEqual(der, der.decode(b('0\x06\x24\x02\xb6\x63\x12\x00')))
開發者ID:chevah,項目名稱:python-package,代碼行數:6,代碼來源:test_asn1.py

示例9: testDecode2

# 需要導入模塊: from Cryptodome.Util.asn1 import DerSequence [as 別名]
# 或者: from Cryptodome.Util.asn1.DerSequence import decode [as 別名]
 def testDecode2(self):
     # One single-byte integer (non-zero)
     der = DerSequence()
     der.decode(b('0\x03\x02\x01\x7f'))
     self.assertEquals(len(der),1)
     self.assertEquals(der[0],127)
開發者ID:chevah,項目名稱:python-package,代碼行數:8,代碼來源:test_asn1.py


注:本文中的Cryptodome.Util.asn1.DerSequence.decode方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。