当前位置: 首页>>代码示例>>Python>>正文


Python PublicKey.ECC类代码示例

本文整理汇总了Python中Crypto.PublicKey.ECC的典型用法代码示例。如果您正苦于以下问题:Python ECC类的具体用法?Python ECC怎么用?Python ECC使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了ECC类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_export_openssh_compressed

    def test_export_openssh_compressed(self):
        key_file = load_file("ecc_p384_public_openssh.txt", "rt")
        pub_key = ECC.import_key(key_file)

        key_file_compressed = pub_key.export_key(format="OpenSSH", compress=True)
        assert len(key_file) > len(key_file_compressed)
        self.assertEquals(pub_key, ECC.import_key(key_file_compressed))
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:7,代码来源:test_import_ECC.py

示例2: test_compressed_curve

    def test_compressed_curve(self):

        # Compressed P-384 curve (Y-point is even)
        # openssl ecparam -name secp384p1 -genkey -noout -conv_form compressed -out /tmp/a.pem
        # openssl ec -in /tmp/a.pem -text -noout
        pem1 = """-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDAM0lEIhvXuekK2SWtdbgOcZtBaxa9TxfpO/GcDFZLCJ3JVXaTgwken
QT+C+XLtD6WgBwYFK4EEACKhZANiAATs0kZMhFDu8DoBC21jrSDPyAUn4aXZ/DM4
ylhDfWmb4LEbeszXceIzfhIUaaGs5y1xXaqf5KXTiAAYx2pKUzAAM9lcGUHCGKJG
k4AgUmVJON29XoUilcFrzjDmuye3B6Q=
-----END EC PRIVATE KEY-----"""

        # Compressed P-384 curve (Y-point is odd)
        pem2 = """-----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDDHPFTslYLltE16fHdSDTtE/2HTmd3M8mqy5MttAm4wZ833KXiGS9oe
kFdx9sNV0KygBwYFK4EEACKhZANiAASLIE5RqVMtNhtBH/u/p/ifqOAlKnK/+RrQ
YC46ZRsnKNayw3wATdPjgja7L/DSII3nZK0G6KOOVwJBznT/e+zudUJYhZKaBLRx
/bgXyxUtYClOXxb1Y/5N7txLstYRyP0=
-----END EC PRIVATE KEY-----"""

        key1 = ECC.import_key(pem1)
        low16 = int(key1.pointQ.y % 65536)
        self.assertEqual(low16, 0x07a4)

        key2 = ECC.import_key(pem2)
        low16 = int(key2.pointQ.y % 65536)
        self.assertEqual(low16, 0xc8fd)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:27,代码来源:test_import_ECC.py

示例3: test_import_private_pkcs8_clear

    def test_import_private_pkcs8_clear(self):
        key_file = load_file("ecc_p521_private_p8_clear.der")

        key = ECC._import_der(key_file, None)
        self.assertEqual(self.ref_private, key)

        key = ECC.import_key(key_file)
        self.assertEqual(self.ref_private, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:8,代码来源:test_import_ECC.py

示例4: test_import_private_pkcs8_encrypted_1

    def test_import_private_pkcs8_encrypted_1(self):
        key_file = load_file("ecc_p521_private_p8.der")

        key = ECC._import_der(key_file, "secret")
        self.assertEqual(self.ref_private, key)

        key = ECC.import_key(key_file, "secret")
        self.assertEqual(self.ref_private, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:8,代码来源:test_import_ECC.py

示例5: test_import_x509_der

    def test_import_x509_der(self):
        key_file = load_file("ecc_p521_x509.der")

        key = ECC._import_der(key_file, None)
        self.assertEqual(self.ref_public, key)

        key = ECC.import_key(key_file)
        self.assertEqual(self.ref_public, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:8,代码来源:test_import_ECC.py

示例6: test_import_openssh

    def test_import_openssh(self):
        key_file = load_file("ecc_p521_public_openssh.txt")

        key = ECC._import_openssh(key_file)
        self.assertEqual(self.ref_public, key)

        key = ECC.import_key(key_file)
        self.assertEqual(self.ref_public, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:8,代码来源:test_import_ECC.py

示例7: test_generate

    def test_generate(self):

        key = ECC.generate(curve="P-256")
        self.assertTrue(key.has_private())
        self.assertEqual(key.pointQ, EccPoint(_curve.Gx, _curve.Gy) * key.d)

        # Other names
        ECC.generate(curve="secp256r1")
        ECC.generate(curve="prime256v1")
开发者ID:shubhanus,项目名称:taiga,代码行数:9,代码来源:test_ECC.py

示例8: test_import_private_pem_encrypted

    def test_import_private_pem_encrypted(self):
        for algo in "des3", "aes128", "aes192", "aes256", "aes256_gcm":
            key_file = load_file("ecc_p521_private_enc_%s.pem" % algo)

            key = ECC.import_key(key_file, "secret")
            self.assertEqual(self.ref_private, key)

            key = ECC.import_key(tostr(key_file), b"secret")
            self.assertEqual(self.ref_private, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:9,代码来源:test_import_ECC.py

示例9: test_generate

    def test_generate(self):

        curve = _curves['p521']
        key = ECC.generate(curve="P-521")
        self.failUnless(key.has_private())
        self.assertEqual(key.pointQ, EccPoint(curve.Gx, curve.Gy, "p521") * key.d)

        # Other names
        ECC.generate(curve="secp521r1")
        ECC.generate(curve="prime521v1")
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:10,代码来源:test_ECC.py

示例10: create_ref_keys

def create_ref_keys():
    key_lines = load_file("ecc_p256.txt").splitlines()
    private_key_d = bytes_to_long(compact(key_lines[2:5]))
    public_key_xy = compact(key_lines[6:11])
    assert bord(public_key_xy[0]) == 4  # Uncompressed
    public_key_x = bytes_to_long(public_key_xy[1:33])
    public_key_y = bytes_to_long(public_key_xy[33:])

    return (ECC.construct(curve="P-256", d=private_key_d),
            ECC.construct(curve="P-256", point_x=public_key_x, point_y=public_key_y))
开发者ID:shubhanus,项目名称:taiga,代码行数:10,代码来源:test_import_ECC.py

示例11: test_import_private_der

    def test_import_private_der(self):
        key_file = load_file("ecc_p384_private.der")

        key = ECC._import_private_der(key_file, None)
        self.assertEqual(self.ref_private, key)

        key = ECC._import_der(key_file, None)
        self.assertEqual(self.ref_private, key)

        key = ECC.import_key(key_file)
        self.assertEqual(self.ref_private, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:11,代码来源:test_import_ECC.py

示例12: test_import_public_der

    def test_import_public_der(self):
        key_file = load_file("ecc_p521_public.der")

        key = ECC._import_subjectPublicKeyInfo(key_file)
        self.assertEqual(self.ref_public, key)

        key = ECC._import_der(key_file, None)
        self.assertEqual(self.ref_public, key)

        key = ECC.import_key(key_file)
        self.assertEqual(self.ref_public, key)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:11,代码来源:test_import_ECC.py

示例13: create_ref_keys_p521

def create_ref_keys_p521():
    key_len = 66
    key_lines = load_file("ecc_p521.txt").splitlines()
    private_key_d = bytes_to_long(compact(key_lines[2:7]))
    public_key_xy = compact(key_lines[8:17])
    assert bord(public_key_xy[0]) == 4  # Uncompressed
    public_key_x = bytes_to_long(public_key_xy[1:key_len+1])
    public_key_y = bytes_to_long(public_key_xy[key_len+1:])

    return (ECC.construct(curve="P-521", d=private_key_d),
            ECC.construct(curve="P-521", point_x=public_key_x, point_y=public_key_y))
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:11,代码来源:test_import_ECC.py

示例14: test_unsupported_curve

    def test_unsupported_curve(self):

        # openssl ecparam -name secp224r1 -genkey -noout -out strange-curve.pem -conv_form uncompressed
        curve = """-----BEGIN EC PRIVATE KEY-----
MGgCAQEEHEi7xTHW+5oT8wgpjoEKV7uwMuY8rt2YUZe4j1SgBwYFK4EEACGhPAM6
AATJgfOG+Bnki8robpNM8MtArji43GU9up4B0x9sVhqB+fZP+hXgV9ITN7YX4E/k
gVnJp9EBND/tHQ==
-----END EC PRIVATE KEY-----"""

        from Crypto.PublicKey.ECC import UnsupportedEccFeature
        try:
            ECC.import_key(curve)
        except UnsupportedEccFeature as uef:
            assert("1.3.132.0.33" in str(uef))
        else:
            assert(False)
开发者ID:Legrandin,项目名称:pycryptodome,代码行数:16,代码来源:test_import_ECC.py

示例15: decrypt_with_ecc

def decrypt_with_ecc(private_ecc_key, random_pubkey_str, nonce, ctx, tag):
    """Takes elliptic curve isntance (private_ecc_key) and a byte string
    (message), and decrypts the ciphertext (ctx) after verifying the
    tag.

    """
    assert isinstance(private_ecc_key, ECC.EccKey), \
        "private_ecc_key should be ECC key. Got {}" \
            .format(type(private_ecc_key))

    # parse the ciphertext
    random_ecc_key = ECC.import_key(random_pubkey_str)
    new_point = random_ecc_key.pointQ * private_ecc_key.d
    h = SHA256.new(str(new_point.x))
    h.update(str(new_point.y))
    key = h.digest()
    if not nonce:
        nonce = os.urandom(16)
    aes_engine = AES.new(key=key, mode=AES.MODE_EAX, nonce=nonce)
    msg = ''
    try:
        msg = aes_engine.decrypt_and_verify(ctx, tag)
    except ValueError:
        print "The tag verification failed. Means: ciphertext has been "\
            "tampered or key is incorrect" 
    return msg
开发者ID:rchatterjee,项目名称:pam-typopw,代码行数:26,代码来源:pwcryptolib.py


注:本文中的Crypto.PublicKey.ECC类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。