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


Python asn1.DerSequence方法代碼示例

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


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

示例1: from_string

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def from_string(key_pem, is_x509_cert):
      """Construct a Verified instance from a string.

      Args:
        key_pem: string, public key in PEM format.
        is_x509_cert: bool, True if key_pem is an X509 cert, otherwise it is
          expected to be an RSA key in PEM format.

      Returns:
        Verifier instance.
      """
      if is_x509_cert:
        pemLines = key_pem.replace(' ', '').split()
        certDer = _urlsafe_b64decode(''.join(pemLines[1:-1]))
        certSeq = DerSequence()
        certSeq.decode(certDer)
        tbsSeq = DerSequence()
        tbsSeq.decode(certSeq[0])
        pubkey = RSA.importKey(tbsSeq[6])
      else:
        pubkey = RSA.importKey(key_pem)
      return PyCryptoVerifier(pubkey) 
開發者ID:mortcanty,項目名稱:earthengine,代碼行數:24,代碼來源:crypt.py

示例2: testEncode2

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

示例3: testEncode4

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def testEncode4(self):
		# One very long integer
		der = DerSequence()
		der.append(2**2048)
		self.assertEquals(der.encode(), 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')) 
開發者ID:mortcanty,項目名稱:earthengine,代碼行數:26,代碼來源:test_asn1.py

示例4: testDecode4

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [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],2**2048) 
開發者ID:mortcanty,項目名稱:earthengine,代碼行數:27,代碼來源:test_asn1.py

示例5: test_certificate_matches_private_key

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def test_certificate_matches_private_key(self):
        """
        A certificate matches the private key it is meant to
        be paired with.
        """
        path = FilePath(self.mktemp())
        path.makedirs()
        ca = RootCredential.initialize(path, b"mycluster")
        priv = ca.credential.keypair.keypair.original
        pub = ca.credential.certificate.getPublicKey().original
        pub_asn1 = crypto.dump_privatekey(crypto.FILETYPE_ASN1, pub)
        priv_asn1 = crypto.dump_privatekey(crypto.FILETYPE_ASN1, priv)
        pub_der = asn1.DerSequence()
        pub_der.decode(pub_asn1)
        priv_der = asn1.DerSequence()
        priv_der.decode(priv_asn1)
        pub_modulus = pub_der[1]
        priv_modulus = priv_der[1]
        self.assertEqual(pub_modulus, priv_modulus) 
開發者ID:ClusterHQ,項目名稱:flocker,代碼行數:21,代碼來源:test_ca.py

示例6: from_string

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def from_string(key_pem, is_x509_cert):
        """Construct a Verified instance from a string.

        Args:
            key_pem: string, public key in PEM format.
            is_x509_cert: bool, True if key_pem is an X509 cert, otherwise it
                          is expected to be an RSA key in PEM format.

        Returns:
            Verifier instance.
        """
        if is_x509_cert:
            key_pem = _to_bytes(key_pem)
            pemLines = key_pem.replace(b' ', b'').split()
            certDer = _urlsafe_b64decode(b''.join(pemLines[1:-1]))
            certSeq = DerSequence()
            certSeq.decode(certDer)
            tbsSeq = DerSequence()
            tbsSeq.decode(certSeq[0])
            pubkey = RSA.importKey(tbsSeq[6])
        else:
            pubkey = RSA.importKey(key_pem)
        return PyCryptoVerifier(pubkey) 
開發者ID:Deltares,項目名稱:aqua-monitor,代碼行數:25,代碼來源:_pycrypto_crypt.py

示例7: verify_signature

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def verify_signature(data, signature, x509_certificate):
    """Verifies a signature using the given x.509 public key certificate."""

    # PyCrypto 2.6 doesn't support x.509 certificates directly, so we'll need
    # to extract the public key from it manually.
    # This code is based on https://github.com/google/oauth2client/blob/master
    # /oauth2client/_pycrypto_crypt.py
    pem_lines = x509_certificate.replace(b' ', b'').split()
    cert_der = base64.urlsafe_b64decode(b''.join(pem_lines[1:-1]))
    cert_seq = DerSequence()
    cert_seq.decode(cert_der)
    tbs_seq = DerSequence()
    tbs_seq.decode(cert_seq[0])
    public_key = RSA.importKey(tbs_seq[6])

    signer = PKCS1_v1_5.new(public_key)
    digest = SHA256.new(data)

    return signer.verify(digest, signature) 
開發者ID:GoogleCloudPlatform,項目名稱:python-docs-samples,代碼行數:21,代碼來源:main.py

示例8: from_string

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def from_string(key_pem, is_x509_cert):
        """Construct a Verified instance from a string.

        Args:
            key_pem: string, public key in PEM format.
            is_x509_cert: bool, True if key_pem is an X509 cert, otherwise it
                          is expected to be an RSA key in PEM format.

        Returns:
            Verifier instance.
        """
        if is_x509_cert:
            key_pem = _helpers._to_bytes(key_pem)
            pemLines = key_pem.replace(b' ', b'').split()
            certDer = _helpers._urlsafe_b64decode(b''.join(pemLines[1:-1]))
            certSeq = DerSequence()
            certSeq.decode(certDer)
            tbsSeq = DerSequence()
            tbsSeq.decode(certSeq[0])
            pubkey = RSA.importKey(tbsSeq[6])
        else:
            pubkey = RSA.importKey(key_pem)
        return PyCryptoVerifier(pubkey) 
開發者ID:fniephaus,項目名稱:alfred-gmail,代碼行數:25,代碼來源:_pycrypto_crypt.py

示例9: verifyMsg

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def verifyMsg(text, imported_key, sig):

    seq2 = asn1.DerSequence()
    data = '\n'.join(imported_key.strip().split('\n')[1:-1]).decode('base64')
    seq2.decode(data)
    p, q, g, y, x = seq2[1:]

    key2 = DSA.construct((y, g, p, q, x))
    
    k1 = random.StrongRandom().randint(1,key2.q-1)

    h = SHA.new(text).digest()

    a = key2.verify(h, sig)
    
    return a 
開發者ID:lockedbyte,項目名稱:cryptovenom,代碼行數:18,代碼來源:main.py

示例10: signMsg

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def signMsg(text, imported_key):

    seq2 = asn1.DerSequence()
    data = '\n'.join(imported_key.strip().split('\n')[1:-1]).decode('base64')
    seq2.decode(data)
    p, q, g, y, x = seq2[1:]

    key2 = DSA.construct((y, g, p, q, x))
    
    k1 = random.StrongRandom().randint(1,key2.q-1)

    h = SHA.new(text).digest()

    sig = key2.sign(h, k1)
    
    return sig 
開發者ID:lockedbyte,項目名稱:cryptovenom,代碼行數:18,代碼來源:main.py

示例11: test_generate_1024_DSA_key_in_pem_and_reconstruct_key_der

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def test_generate_1024_DSA_key_in_pem_and_reconstruct_key_der(self):
        generate_dto = plugin.GenerateDTO('dsa', 1024, None, None)
        kek_meta_dto = self._get_mocked_kek_meta_dto()

        private_dto, public_dto, passwd_dto = self.plugin.generate_asymmetric(
            generate_dto,
            kek_meta_dto,
            mock.MagicMock()
        )

        decrypt_dto = plugin.DecryptDTO(private_dto.cypher_text)
        private_dto = self.plugin.decrypt(decrypt_dto,
                                          kek_meta_dto,
                                          private_dto.kek_meta_extended,
                                          mock.MagicMock())

        prv_seq = asn1.DerSequence()
        prv_seq.decode(private_dto)
        p, q, g, y, x = prv_seq[1:]

        private_dto = DSA.construct((y, g, p, q, x))
        self.assertTrue(private_dto.has_private()) 
開發者ID:cloud-security-research,項目名稱:sgx-kms,代碼行數:24,代碼來源:test_crypto.py

示例12: _import_pkcs1_private

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def _import_pkcs1_private(encoded, *kwargs):
    # RSAPrivateKey ::= SEQUENCE {
    #           version Version,
    #           modulus INTEGER, -- n
    #           publicExponent INTEGER, -- e
    #           privateExponent INTEGER, -- d
    #           prime1 INTEGER, -- p
    #           prime2 INTEGER, -- q
    #           exponent1 INTEGER, -- d mod (p-1)
    #           exponent2 INTEGER, -- d mod (q-1)
    #           coefficient INTEGER -- (inverse of q) mod p
    # }
    #
    # Version ::= INTEGER
    der = DerSequence().decode(encoded, nr_elements=9, only_ints_expected=True)
    if der[0] != 0:
        raise ValueError("No PKCS#1 encoding of an RSA private key")
    return construct(der[1:6] + [Integer(der[4]).inverse(der[5])]) 
開發者ID:vcheckzen,項目名稱:FODI,代碼行數:20,代碼來源:RSA.py

示例13: testEncode1

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def testEncode1(self):
		# Empty sequence
		der = DerSequence()
		self.assertEquals(der.encode(), b('0\x00'))
		self.failIf(der.hasOnlyInts())
		# One single-byte integer (zero)
		der.append(0)
		self.assertEquals(der.encode(), b('0\x03\x02\x01\x00'))
		self.failUnless(der.hasOnlyInts())
		# Invariant
		self.assertEquals(der.encode(), b('0\x03\x02\x01\x00')) 
開發者ID:mortcanty,項目名稱:earthengine,代碼行數:13,代碼來源:test_asn1.py

示例14: testEncode5

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def testEncode5(self):
		# One single-byte integer (looks negative)
		der = DerSequence()
		der.append(0xFFL)
		self.assertEquals(der.encode(), b('0\x04\x02\x02\x00\xff')) 
開發者ID:mortcanty,項目名稱:earthengine,代碼行數:7,代碼來源:test_asn1.py

示例15: testEncode6

# 需要導入模塊: from Crypto.Util import asn1 [as 別名]
# 或者: from Crypto.Util.asn1 import DerSequence [as 別名]
def testEncode6(self):
		# Two integers
		der = DerSequence()
		der.append(0x180L)
		der.append(0xFFL)
		self.assertEquals(der.encode(), b('0\x08\x02\x02\x01\x80\x02\x02\x00\xff'))
		self.failUnless(der.hasOnlyInts())
		#
		der.append(0x01)
		der[1:] = [9,8]
		self.assertEquals(len(der),3)
		self.assertEqual(der[1:],[9,8])
		self.assertEqual(der[1:-1],[9])
		self.assertEquals(der.encode(), b('0\x0A\x02\x02\x01\x80\x02\x01\x09\x02\x01\x08')) 
開發者ID:mortcanty,項目名稱:earthengine,代碼行數:16,代碼來源:test_asn1.py


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