def test_raw(self): sk_s = "\x00" * 32 # usually urandom(32) vk_s, skvk_s = raw.publickey(sk_s) self.failUnlessEqual(len(vk_s), 32) exp_vks = unhexlify("3b6a27bcceb6a42d62a3a8d02a6f0d73" "653215771de243a63ac048a18b59da29") self.failUnlessEqual(vk_s, exp_vks) self.failUnlessEqual(skvk_s[:32], sk_s) self.failUnlessEqual(skvk_s[32:], vk_s) msg = "hello world" msg_and_sig = raw.sign(msg, skvk_s) sig = msg_and_sig[:-len(msg)] self.failUnlessEqual(len(sig), 64) exp_sig = unhexlify("b0b47780f096ae60bfff8d8e7b19c36b" "321ae6e69cca972f2ff987ef30f20d29" "774b53bae404485c4391ddf1b3f37aaa" "8a9747f984eb0884e8aa533386e73305") self.failUnlessEqual(sig, exp_sig) ret = raw.open(sig + msg, vk_s) # don't raise exception self.failUnlessEqual(ret, msg) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + msg + ".. NOT!", vk_s) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + flip_bit(msg), vk_s) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + msg, flip_bit(vk_s)) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + msg, flip_bit(vk_s, in_byte=2)) self.failUnlessRaises(raw.BadSignatureError, raw.open, flip_bit(sig) + msg, vk_s) self.failUnlessRaises(raw.BadSignatureError, raw.open, flip_bit(sig, in_byte=33) + msg, vk_s)
def test_raw(self): sk_s = "\x00" * 32 # usually urandom(32) vk_s, skvk_s = raw.publickey(sk_s) self.failUnlessEqual(len(vk_s), 32) exp_vks = unhexlify("3b6a27bcceb6a42d62a3a8d02a6f0d73" "653215771de243a63ac048a18b59da29") self.failUnlessEqual(vk_s, exp_vks) self.failUnlessEqual(skvk_s[:32], sk_s) self.failUnlessEqual(skvk_s[32:], vk_s) msg = "hello world" msg_and_sig = raw.sign(msg, skvk_s) sig = msg_and_sig[: -len(msg)] self.failUnlessEqual(len(sig), 64) exp_sig = unhexlify( "b0b47780f096ae60bfff8d8e7b19c36b" "321ae6e69cca972f2ff987ef30f20d29" "774b53bae404485c4391ddf1b3f37aaa" "8a9747f984eb0884e8aa533386e73305" ) self.failUnlessEqual(sig, exp_sig) ret = raw.open(sig + msg, vk_s) # don't raise exception self.failUnlessEqual(ret, msg) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + msg + ".. NOT!", vk_s) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + flip_bit(msg), vk_s) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + msg, flip_bit(vk_s)) self.failUnlessRaises(raw.BadSignatureError, raw.open, sig + msg, flip_bit(vk_s, in_byte=2)) self.failUnlessRaises(raw.BadSignatureError, raw.open, flip_bit(sig) + msg, vk_s) self.failUnlessRaises(raw.BadSignatureError, raw.open, flip_bit(sig, in_byte=33) + msg, vk_s)
def test_raw(self): return sk_s = "\x00" * 32 # usually urandom(32) self.log("computing public key..") vk_s = raw.publickey(sk_s) self.failUnlessEqual(len(vk_s), 32) exp_vks = unhexlify("3b6a27bcceb6a42d62a3a8d02a6f0d73" "653215771de243a63ac048a18b59da29") self.failUnlessEqual(vk_s, exp_vks) msg = "hello world" self.log("signing..") sig = raw.signature(msg, sk_s, vk_s) self.failUnlessEqual(len(sig), 64) exp_sig = unhexlify( "b0b47780f096ae60bfff8d8e7b19c36b" "321ae6e69cca972f2ff987ef30f20d29" "774b53bae404485c4391ddf1b3f37aaa" "8a9747f984eb0884e8aa533386e73305" ) self.failUnlessEqual(sig, exp_sig) self.log("checking (good)..") ret = raw.checkvalid(sig, msg, vk_s) # don't raise exception self.failUnlessEqual(ret, None) self.log("checking (bad msg 1)..") self.failUnlessRaises(Exception, raw.checkvalid, sig, msg + ".. NOT!", vk_s) self.log("checking (bad msg 2)..") self.failUnlessRaises(Exception, raw.checkvalid, sig, flip_bit(msg), vk_s) self.log("checking (bad key 1)..") self.failUnlessRaises(Exception, raw.checkvalid, sig, msg, flip_bit(vk_s)) self.log("checking (bad key 2)..") self.failUnlessRaises(Exception, raw.checkvalid, sig, msg, flip_bit(vk_s, in_byte=2)) self.log("done")