Ejemplo n.º 1
0
def test_ecdh():
    # Try ECDH, see if we get the same answer
    (privA, pubA) = P256.key_pair()
    (privB, pubB) = P256.key_pair()

    Zab = P256.dh_z(privA, pubB)
    Zba = P256.dh_z(privB, pubA)

    assert Zab == Zba
Ejemplo n.º 2
0
def test_ecdh():
    # Try ECDH, see if we get the same answer
    (privA, pubA) = P256.key_pair()
    (privB, pubB) = P256.key_pair()

    Zab = P256.dh_z(privA, pubB)
    Zba = P256.dh_z(privB, pubA)

    assert Zab == Zba
Ejemplo n.º 3
0
def test_P256_verify_with_suite_B():
    _msg = ("54686973206973206f6e6c7920612074657374206d6573736167652e2049742069"
            "73203438206279746573206c6f6e67")
    msg = binascii.unhexlify(_msg)
    Qx = 0x8101ece47464a6ead70cf69a6e2bd3d88691a3262d22cba4f7635eaff26680a8
    Qy = 0xd8a12ba61d599235f67d9cb4d58f1783d3ca43e78f0a5abaa624079936c0c3a9
    R = 0x7214bc9647160bbd39ff2f80533f5dc6ddd70ddf86bb815661e805d5d4e6f27c
    S = 0x7d1ff961980f961bdaa3233b6209f4013317d3e3f9e1493592dbeaa1af2bc367

    h = int(hashlib.new("SHA256", msg).hexdigest(), 16)
    Q = (Qx, Qy)
    sig = P256.int2bytes(R) + P256.int2bytes(S)
    assert P256.verify(h, sig, Q)
Ejemplo n.º 4
0
def test_P256_verify_with_suite_B():
    _msg = (
        "54686973206973206f6e6c7920612074657374206d6573736167652e2049742069"
        "73203438206279746573206c6f6e67")
    msg = binascii.unhexlify(_msg)
    Qx = 0x8101ece47464a6ead70cf69a6e2bd3d88691a3262d22cba4f7635eaff26680a8
    Qy = 0xd8a12ba61d599235f67d9cb4d58f1783d3ca43e78f0a5abaa624079936c0c3a9
    R = 0x7214bc9647160bbd39ff2f80533f5dc6ddd70ddf86bb815661e805d5d4e6f27c
    S = 0x7d1ff961980f961bdaa3233b6209f4013317d3e3f9e1493592dbeaa1af2bc367

    h = int(hashlib.new("SHA256", msg).hexdigest(), 16)
    Q = (Qx, Qy)
    sig = P256.int2bytes(R) + P256.int2bytes(S)
    assert P256.verify(h, sig, Q)
Ejemplo n.º 5
0
def test_P256_sign_and_verify():
    d = 0x002a10b1b5b9fa0b78d38ed29cd9cec18520e0fe93023e3550bb7163ab4905c6
    _msg = ("5ff1fa17c2a67ce599a34688f6fb2d4a8af17532d15fa1868a598a8e6a0daf9b11"
            "edcc483d11ae003ed645c0aaccfb1e51cf448b737376d531a6dcf0429005f5e7be"
            "626b218011c6218ff32d00f30480b024ec9a3370d1d30a9c70c9f1ce6c61c9abe5"
            "08d6bc4d3f2a167756613af1778f3a94e7771d5989fe856fa4df8f8ae5")
    msg = binascii.unhexlify(_msg)
    Qx = 0xe9cd2e8f15bd90cb0707e05ed3b601aace7ef57142a64661ea1dd7199ebba9ac
    Qy = 0xc96b0115bed1c134b68f89584b040a194bfad94a404fdb37adad107d5a0b4c5e

    h = int(hashlib.new("SHA1", msg).hexdigest(), 16)
    Q = (Qx, Qy)
    sig = P256.sign(h, d)
    assert P256.verify(h, sig, Q)
Ejemplo n.º 6
0
def test_P256_sign_and_verify():
    d = 0x002a10b1b5b9fa0b78d38ed29cd9cec18520e0fe93023e3550bb7163ab4905c6
    _msg = (
        "5ff1fa17c2a67ce599a34688f6fb2d4a8af17532d15fa1868a598a8e6a0daf9b11"
        "edcc483d11ae003ed645c0aaccfb1e51cf448b737376d531a6dcf0429005f5e7be"
        "626b218011c6218ff32d00f30480b024ec9a3370d1d30a9c70c9f1ce6c61c9abe5"
        "08d6bc4d3f2a167756613af1778f3a94e7771d5989fe856fa4df8f8ae5")
    msg = binascii.unhexlify(_msg)
    Qx = 0xe9cd2e8f15bd90cb0707e05ed3b601aace7ef57142a64661ea1dd7199ebba9ac
    Qy = 0xc96b0115bed1c134b68f89584b040a194bfad94a404fdb37adad107d5a0b4c5e

    h = int(hashlib.new("SHA1", msg).hexdigest(), 16)
    Q = (Qx, Qy)
    sig = P256.sign(h, d)
    assert P256.verify(h, sig, Q)
Ejemplo n.º 7
0
def test_P256_verify():
    # Try ECDSA with one of the NIST test vectors
    _msg = ("5ff1fa17c2a67ce599a34688f6fb2d4a8af17532d15fa1868a598a8e6a0daf9b11"
            "edcc483d11ae003ed645c0aaccfb1e51cf448b737376d531a6dcf0429005f5e7be"
            "626b218011c6218ff32d00f30480b024ec9a3370d1d30a9c70c9f1ce6c61c9abe5"
            "08d6bc4d3f2a167756613af1778f3a94e7771d5989fe856fa4df8f8ae5")
    msg = binascii.unhexlify(_msg)

    Qx = 0xe9cd2e8f15bd90cb0707e05ed3b601aace7ef57142a64661ea1dd7199ebba9ac
    Qy = 0xc96b0115bed1c134b68f89584b040a194bfad94a404fdb37adad107d5a0b4c5e
    R = 0x15bf46937c7a1e2fa7adc65c89fe03ae602dd7dfa6722cdafa92d624b32b156e
    S = 0x59c591792ee94f0b202e7a590e70d01dd8a9774884e2b5ba9945437cfed01686

    h = int(hashlib.new("SHA1", msg).hexdigest(), 16)
    Q = (Qx, Qy)
    sig = P256.int2bytes(R) + P256.int2bytes(S)
    assert P256.verify(h, sig, Q)
Ejemplo n.º 8
0
def test_P256_verify():
    # Try ECDSA with one of the NIST test vectors
    _msg = (
        "5ff1fa17c2a67ce599a34688f6fb2d4a8af17532d15fa1868a598a8e6a0daf9b11"
        "edcc483d11ae003ed645c0aaccfb1e51cf448b737376d531a6dcf0429005f5e7be"
        "626b218011c6218ff32d00f30480b024ec9a3370d1d30a9c70c9f1ce6c61c9abe5"
        "08d6bc4d3f2a167756613af1778f3a94e7771d5989fe856fa4df8f8ae5")
    msg = binascii.unhexlify(_msg)

    Qx = 0xe9cd2e8f15bd90cb0707e05ed3b601aace7ef57142a64661ea1dd7199ebba9ac
    Qy = 0xc96b0115bed1c134b68f89584b040a194bfad94a404fdb37adad107d5a0b4c5e
    R = 0x15bf46937c7a1e2fa7adc65c89fe03ae602dd7dfa6722cdafa92d624b32b156e
    S = 0x59c591792ee94f0b202e7a590e70d01dd8a9774884e2b5ba9945437cfed01686

    h = int(hashlib.new("SHA1", msg).hexdigest(), 16)
    Q = (Qx, Qy)
    sig = P256.int2bytes(R) + P256.int2bytes(S)
    assert P256.verify(h, sig, Q)
Ejemplo n.º 9
0
def test_cmp_neq_ec():
    priv, pub = P256.key_pair()
    _key1 = ECKey(x=pub[0], y=pub[1], d=priv, crv="P-256")
    _key2 = ECKey(**ECKEY)

    try:
        assert _key1 == _key2
    except AssertionError:
        pass
    else:
        assert False
Ejemplo n.º 10
0
def test_cmp_neq_ec():
    priv, pub = P256.key_pair()
    _key1 = ECKey(x=pub[0], y=pub[1], d=priv, crv="P-256")
    _key2 = ECKey(**ECKEY)

    try:
        assert _key1 == _key2
    except AssertionError:
        pass
    else:
        assert False
Ejemplo n.º 11
0
def test_cmp_neq_ec():
    priv, pub = P256.key_pair()
    _key1 = ECKey(x=pub[0], y=pub[1], d=priv, crv="P-256")
    _key2 = ECKey(**ECKEY)

    assert _key1 != _key2
Ejemplo n.º 12
0
def test_create_eckey():
    priv, pub = P256.key_pair()
    ec = ECKey(x=pub[0], y=pub[1], d=priv, crv="P-256")
    exp_key = ec.serialize()
    assert _eq(list(exp_key.keys()), ["y", "x", "crv", "kty"])
Ejemplo n.º 13
0
def test_create_eckey():
    priv, pub = P256.key_pair()
    ec = ECKey(x=pub[0], y=pub[1], d=priv, crv="P-256")
    exp_key = ec.serialize()
    assert _eq(list(exp_key.keys()), ["y", "x", "crv", "kty"])
Ejemplo n.º 14
0
def test_cmp_neq_ec():
    priv, pub = P256.key_pair()
    _key1 = ECKey(x=pub[0], y=pub[1], d=priv, crv="P-256")
    _key2 = ECKey(**ECKEY)

    assert _key1 != _key2