def _2user(): # 1st user exp1 = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) public1 = nacl.crypto_scalarmult_curve25519_base(exp1) # print "public1: \t%s\nexp1: \t%s" % (b85encode(public1), b85encode(exp1)) print # 2nd user exp2 = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) public2 = nacl.crypto_scalarmult_curve25519_base(exp2) key = nacl.crypto_scalarmult_curve25519(exp2, public1) print "key: \t%s" % (b85encode(key)) # print "public2: \t%s\nkey: \t%s" % (b85encode(public2), b85encode(key)) print # 1st user completing DH key = nacl.crypto_scalarmult_curve25519(exp1, public2) print "key: \t%s" % (b85encode(key))
def _2user(): # 1st user exp1 = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) public1 = nacl.crypto_scalarmult_curve25519_base(exp1) #print("public1: \t%s\nexp1: \t%s" % (b85encode(public1), b85encode(exp1))) print() # 2nd user exp2 = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) public2 = nacl.crypto_scalarmult_curve25519_base(exp2) key = nacl.crypto_scalarmult_curve25519(exp2, public1) print("key: \t%s" % (b85encode(key))) #print("public2: \t%s\nkey: \t%s" % (b85encode(public2), b85encode(key))) print() # 1st user completing DH key = nacl.crypto_scalarmult_curve25519(exp1, public2) print("key: \t%s" % (b85encode(key)))
def test_mpecdh(): peers = [MPECDH(9) for _ in range(9)] for i, peer in enumerate(peers): peer.next = peers[(i + 1) % (len(peers))] peers[0].mpecdh() for i, peer in enumerate(peers): print(i, b85encode(peer.secret))
def test_mpecdh(): peers = [MPECDH(9) for _ in range(9)] for i, peer in enumerate(peers): peer.next = peers[(i + 1) % (len(peers))] peers[0].mpecdh() for i, peer in enumerate(peers): print i, b85encode(peer.secret)
def _3user(): eA = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) pA = nacl.crypto_scalarmult_curve25519_base(eA) print("A public: \t%s\nA exp: \t%s" % (b85encode(pA), b85encode(eA))) eB = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) pB = nacl.crypto_scalarmult_curve25519_base(eB) print("B public: \t%s\nB exp: \t%s" % (b85encode(pB), b85encode(eB))) eC = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) pC = nacl.crypto_scalarmult_curve25519_base(eC) print("C public: \t%s\nC exp: \t%s" % (b85encode(pC), b85encode(eC))) print() pAB = nacl.crypto_scalarmult_curve25519(eB, pA) print("public AB", b85encode(pAB)) pBA = nacl.crypto_scalarmult_curve25519(eA, pB) print("public BA", b85encode(pBA)) pCA = nacl.crypto_scalarmult_curve25519(eA, pC) print("public CA", b85encode(pCA)) print() key = nacl.crypto_scalarmult_curve25519(eB, pCA) print("key: \t%s" % (b85encode(key))) key = nacl.crypto_scalarmult_curve25519(eC, pBA) print("key: \t%s" % (b85encode(key))) key = nacl.crypto_scalarmult_curve25519(eC, pAB) print("key: \t%s" % (b85encode(key)))
def __str__(self): return b85encode(self.public)
def __str__(self): return b85encode(self.shared)
def _3user(): eA = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) pA = nacl.crypto_scalarmult_curve25519_base(eA) print "A public: \t%s\nA exp: \t%s" % (b85encode(pA), b85encode(eA)) eB = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) pB = nacl.crypto_scalarmult_curve25519_base(eB) print "B public: \t%s\nB exp: \t%s" % (b85encode(pB), b85encode(eB)) eC = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) pC = nacl.crypto_scalarmult_curve25519_base(eC) print "C public: \t%s\nC exp: \t%s" % (b85encode(pC), b85encode(eC)) print pAB = nacl.crypto_scalarmult_curve25519(eB, pA) print "public AB", b85encode(pAB) pBA = nacl.crypto_scalarmult_curve25519(eA, pB) print "public BA", b85encode(pBA) pCA = nacl.crypto_scalarmult_curve25519(eA, pC) print "public CA", b85encode(pCA) print key = nacl.crypto_scalarmult_curve25519(eB, pCA) print "key: \t%s" % (b85encode(key)) key = nacl.crypto_scalarmult_curve25519(eC, pBA) print "key: \t%s" % (b85encode(key)) key = nacl.crypto_scalarmult_curve25519(eC, pAB) print "key: \t%s" % (b85encode(key))