/* See LICENSE for licensing and NOTICE for copyright. */ package org.cryptacular.bean; import java.io.File; import java.security.PrivateKey; import org.cryptacular.FailListener; import org.cryptacular.io.FileResource; import org.cryptacular.io.Resource; import org.testng.annotations.DataProvider; import org.testng.annotations.Listeners; import org.testng.annotations.Test; import static org.testng.Assert.assertTrue; /** * Unit test for {@link ResourceBasedPrivateKeyFactoryBean}. * * @author Middleware Services */ @Listeners(FailListener.class) public class ResourceBasedPrivateKeyFactoryBeanTest { private static final String KEY_PATH = "src/test/resources/keys/"; @DataProvider(name = "keys") public Object[][] getKeys() { return new Object[][] { new Object[] {KEY_PATH + "dsa-pkcs8-nopass.pem", null}, new Object[] {KEY_PATH + "dsa-openssl-nopass.pem", null}, new Object[] {KEY_PATH + "rsa-pkcs8-nopass.pem", null}, new Object[] {KEY_PATH + "rsa-openssl-nopass.pem", null}, new Object[] { KEY_PATH + "ec-openssl-sect571r1-explicit-nopass.pem", null, }, new Object[] {KEY_PATH + "dsa-openssl-des3.pem", "vtcrypt"}, new Object[] {KEY_PATH + "dsa-pkcs8-v2-des3.der", "vtcrypt"}, new Object[] { KEY_PATH + "ec-pkcs8-sect571r1-explicit-v2-aes128.pem", "vtcrypt", }, new Object[] { KEY_PATH + "ec-pkcs8-sect571r1-named-v1-sha1-rc2-64.der", "vtcrypt", }, new Object[] {KEY_PATH + "rsa-openssl-des.pem", "vtcrypt"}, new Object[] {KEY_PATH + "rsa-pkcs8-v2-aes256.der", "vtcrypt"}, }; } @Test(dataProvider = "keys") public void testNewInstance(final String path, final String password) throws Exception { final Resource resource = new FileResource(new File(path)); final ResourceBasedPrivateKeyFactoryBean factory = new ResourceBasedPrivateKeyFactoryBean(resource, password); assertTrue(factory.newInstance() instanceof PrivateKey); } }