def test_serialize_keys_passphrase(self): key = Key() key.create_key("rsa", 4096) pem = key.serialize("test_store_keys_passphrase") prvkey = key.load(pem, "test_store_keys_passphrase") self.assertIsInstance(prvkey.key, rsa.RSAPrivateKey) self.assertEqual(prvkey.key.key_size, 4096)
def test_store_keys_wrong_passphrase(self): key = Key() key.create_key("rsa", 2048) pem = key.serialize("test_store_keys_wrong_passphrase") with self.assertRaisesMessage(ValueError, "Bad decrypt. Incorrect password?"): key.load(pem, "test_store_keys_passphrase")
def test_store_keys_no_passphrase(self): key = Key() key.create_key("ed25519", None) pem = key.serialize() key = Key() prvkey = key.load(pem) self.assertIsInstance(prvkey.key, ed25519.Ed25519PrivateKey)
def test_store_keys_no_passphrase(self): key = Key() key.create_key("rsa", 2048) pem = key.serialize() key = Key() prvkey = key.load(pem) self.assertIsInstance(prvkey.key, rsa.RSAPrivateKey) self.assertEqual(prvkey.key.key_size, 2048)
def test_generate_private_key(self): keyhandler = Key() keyhandler.create_key("ed25519", None) data = b"testdata" signature = keyhandler.key.sign(data) pkey = keyhandler.key.public_key() self.assertIsNotNone(pkey) # would throw InvalidSignature if not correct pkey.verify(signature, data) self.assertIsNotNone(keyhandler.key)
def test_serialize_pkcs12_nopassphrase(self): subject = DistinguishedNameFactory( localityName="Amsterdam", organizationalUnitName="BounCA Root", ) key = Key() key.create_key("rsa", 4096) certificate_request = CertificateFactory(dn=subject) certhandler = Certificate() certhandler.create_certificate(certificate_request, key.serialize()) crt = certhandler.certificate pkcs12 = key.serialize_pkcs12("test_pkcs12", crt) pkcs12_obj = load_pkcs12(pkcs12, None) self.assertEqual(pkcs12_obj.key.key_size, 4096) self.assertEqual(pkcs12_obj.cert.friendly_name.decode("utf-8"), "test_pkcs12") self.assertEqual(pkcs12_obj.cert.certificate.serial_number, crt.serial_number)
def test_serialize_pkcs12_no_certificate(self): key = Key() key.create_key("rsa", 4096) with self.assertRaisesMessage(ValueError, "No certificate provided"): key.serialize_pkcs12("test_pkcs12", None)
def test_check_passphrase_invalid(self): key = Key() key.create_key("rsa", 2048) pem = key.serialize("test_check_passphrase_invalid") self.assertFalse(key.check_passphrase(pem, "check_passphrase"))
def test_generate_private_key_2048(self): keyhandler = Key() keyhandler.create_key("rsa", 2048) self.assertEqual(keyhandler.key.key_size, 2048) pkey = keyhandler.key.public_key() self.assertIsInstance(pkey.public_numbers(), rsa.RSAPublicNumbers)
def test_check_passphrase_invalid(self): key = Key() key.create_key("ed25519", None) pem = key.serialize("test_check_passphrase_invalid") self.assertFalse(key.check_passphrase(pem, "check_passphrase"))