def check_key_works(keys): verifying_key, signing_key = keys v = rsa.create_verifying_key_from_string(verifying_key) s = rsa.create_signing_key_from_string(signing_key) junk = os.urandom(42) sig = s.sign(junk) self.failUnless(v.verify(junk, sig))
def test_serialize_and_deserialize_verifying_key_and_test(self): signer = rsa.generate(KEYSIZE) verifier = signer.get_verifying_key() serstr = verifier.serialize() verifier = None newverifier = rsa.create_verifying_key_from_string(serstr) self._help_test_sign_and_check(signer, newverifier, "a") self._help_test_sign_and_check_random(signer, newverifier) self._help_test_sign_and_failcheck(signer, newverifier, "a") self._help_test_sign_and_failcheck_random(signer, newverifier)
def make_key_objs((verifying_key, signing_key)): v = rsa.create_verifying_key_from_string(verifying_key) s = rsa.create_signing_key_from_string(signing_key) return v, s
def _deserialize_pubkey(self, pubkey_s): verifier = rsa.create_verifying_key_from_string(pubkey_s) return verifier
def test_sign(self): signer = rsa.generate(KEYSIZE) result = signer.sign("abc") self.failUnlessEqual(len(result), ((KEYSIZE+7)/8)) # TODO: test against RSAInc. test vectors. def test_create_from_string_invalid(self): try: rsa.create_signing_key_from_string("invalid string") except rsa.Error, le: self.failUnless("decode error" in str(le), le) else: self.fail("Should have raised error from invalid string") try: rsa.create_verifying_key_from_string("invalid string") except rsa.Error, le: self.failUnless("decode error" in str(le), le) else: self.fail("Should have raised error from invalid string") class SignAndVerify(unittest.TestCase): def _help_test_sign_and_check(self, signer, verifier, msg): sig = signer.sign(msg) self.failUnlessEqual(len(sig), ((KEYSIZE+7)/8)) self.failUnless(verifier.verify(msg, sig)) def test_sign_and_check_a(self): signer = rsa.generate(KEYSIZE) verifier = signer.get_verifying_key() return self._help_test_sign_and_check(signer, verifier, "a")
def __init__(self, key_data = None): self.public_key = None if key_data: self.public_key = rsa.create_verifying_key_from_string(key_data)
def test_sign(self): signer = rsa.generate(KEYSIZE) result = signer.sign("abc") self.failUnlessEqual(len(result), ((KEYSIZE + 7) / 8)) # TODO: test against RSAInc. test vectors. def test_create_from_string_invalid(self): try: rsa.create_signing_key_from_string("invalid string") except rsa.Error, le: self.failUnless("decode error" in str(le), le) else: self.fail("Should have raised error from invalid string") try: rsa.create_verifying_key_from_string("invalid string") except rsa.Error, le: self.failUnless("decode error" in str(le), le) else: self.fail("Should have raised error from invalid string") class SignAndVerify(unittest.TestCase): def _help_test_sign_and_check(self, signer, verifier, msg): sig = signer.sign(msg) self.failUnlessEqual(len(sig), ((KEYSIZE + 7) / 8)) self.failUnless(verifier.verify(msg, sig)) def test_sign_and_check_a(self): signer = rsa.generate(KEYSIZE) verifier = signer.get_verifying_key()