@Test public void testEncryptCustomKeyEntry() { String keyEntry = "keyEntry"; AsymmetricCrypto asymmetricCrypto = new AsymmetricCrypto( SecurityProviderConnectorFactory.getSecurityProviderConnector(), keyEntry); Certificates certificates = new Certificates( SecurityProviderConnectorFactory.getSecurityProviderConnector(), "issuer", keyEntry, null); StringWriter stringWriter = new StringWriter(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); certificates.create("test", "123".toCharArray(), stringWriter, byteArrayOutputStream); String cert = stringWriter.toString(); StringReader stringReader = new StringReader(cert); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); byte[] plain = "secret".getBytes(); byte[] encrypted = asymmetricCrypto.encrypt(plain, stringReader); byte[] decrypted = asymmetricCrypto.decrypt(encrypted, "123".toCharArray(), byteArrayInputStream); Assert.assertArrayEquals(plain, decrypted); }
@Test public void testEncryptPublicPrivate() throws Exception { AsymmetricCrypto asymmetricCrypto = new AsymmetricCrypto(SecurityProviderConnectorFactory.getSecurityProviderConnector()); Certificates certificates = new Certificates(SecurityProviderConnectorFactory.getSecurityProviderConnector()); StringWriter stringWriter = new StringWriter(); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); X509Certificate cert = certificates.create("test", "123".toCharArray(), stringWriter, byteArrayOutputStream); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray()); byte[] plain = "secret".getBytes(); byte[] encrypted = asymmetricCrypto.encrypt(plain, cert.getPublicKey()); byte[] decrypted = asymmetricCrypto.decrypt( encrypted, new PrivateKeyExtractor().extractPrivateKey("123".toCharArray(), byteArrayInputStream)); Assert.assertArrayEquals(plain, decrypted); }