Example #1
0
 def test_pack(self):
     pw = "password"
     jA, jB = JPAKE(pw, signerid="Alice"), JPAKE(pw, signerid="Bob")
     m1A, m1B = jA.one(), jB.one()
     m1Ap = jA.pack_one(m1A)
     #print "m1:", len(json.dumps(m1A)), len(m1Ap)
     m2A, m2B = jA.two(m1B), jB.two(jB.unpack_one(m1Ap))
     m2Ap = jA.pack_two(m2A)
     #print "m2:", len(json.dumps(m2A)), len(m2Ap)
     kA, kB = jA.three(m2B), jB.three(jB.unpack_two(m2Ap))
     self.failUnlessEqual(hexlify(kA), hexlify(kB))
     self.failUnlessEqual(len(kA), len(sha256().digest()))
Example #2
0
 def test_ascii(self):
     self.failUnlessRaises(SignerIDMustBeASCII,
                           JPAKE,
                           "pw",
                           signerid="not-ascii\xff")
     jA, jB = JPAKE("pw", signerid="Alice"), JPAKE("pw", signerid="Bob")
     m1A = jA.one()
     m1Ap = jA.pack_one(m1A)
     # now doctor m1Ap to contain non-ascii, to exercise the check in
     # unpack_one. We happen to know that the signerid is stored at the
     # end of the packed structure
     assert m1Ap[-5:] == "Alice"
     m1Ap_bad = m1Ap[:-5] + "Alic\xff"
     self.failUnlessRaises(SignerIDMustBeASCII, jA.unpack_one, m1Ap_bad)
     # same for message two
     m2A = jA.two(jB.one())
     m2Ap = jA.pack_two(m2A)
     assert m2Ap[-5:] == "Alice"
     m2Ap_bad = m2Ap[:-5] + "Alic\xff"
     self.failUnlessRaises(SignerIDMustBeASCII, jA.unpack_two, m2Ap_bad)