Esempio n. 1
0
class TestDH(unittest.TestCase):
    # create a DH object and
    # set a fixed prvsecret instead of a random number
    def setUp(self):
        self.alice = DH(321, 2203)
        self.alice.prvsecret = 12
        self.bob = DH(321, 2203)
        self.bob.prvsecret = 19

    def test_gen_pubkey(self):
        self.assertEqual(self.alice.gen_pubkey(), 486)
        self.assertEqual(self.bob.gen_pubkey(), 1876)

    def test_gen_shared_secret(self):
        self.assertEqual(self.alice.gen_shared_secret(1876), 956)
        self.assertEqual(self.bob.gen_shared_secret(486), 956)

    def test_set_shared_secret(self):
        self.alice.set_shared_secret(1876)
        self.bob.set_shared_secret(486)
        self.assertEqual(self.alice.sharedsecret, self.bob.sharedsecret)

    def test_DH_init(self):
        self.assertRaises(ValueError, DH, 2, 2)
Esempio n. 2
0
#!/usr/bin/env python
"""
example diffie-hellman keyexchange

for more information about DH see:
http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
"""
from DH import DH

PRIMITIVE_ROOT = 42
PRIME = 44318

ALICE = DH(PRIMITIVE_ROOT, PRIME)
print "ALICE: g=%i, p=%i" % (ALICE.in_g, ALICE.in_p)
print "ALICE: secret: %i" % ALICE.prvsecret
print "ALICE: pubkey: %s\n" % ALICE.gen_pubkey()

BOB = DH(PRIMITIVE_ROOT, PRIME)
print "BOB: g=%i, p=%i" % (BOB.in_g, BOB.in_p)
print "BOB: secret: %i" % BOB.prvsecret
print "BOB: pubkey: %s\n" % BOB.gen_pubkey()

print "keyexchange..."
ALICE.set_shared_secret(BOB.gen_pubkey())
BOB.set_shared_secret(ALICE.gen_pubkey())

print "ALICE shared: %s" % ALICE.sharedsecret
print "BOB shared: %s" % BOB.sharedsecret