/** * Converts a byte stream to an X509Certificate. The byte stream can either be an encoded X509Certificate or a PKCS12 byte stream. * <p> * If the stream is a PKCS12 representation, then an empty ("") pass phrase is used to decrypt the stream. In addition the resulting X509Certificate * implementation will contain the private key. * @param data The byte stream representation to convert. * @return An X509Certificate representation of the byte stream. */ public static X509Certificate toX509Certificate(byte[] data) { return toX509Certificate(data, ""); }
/** * Creates an X509Certificate object from an existing file. The file should be a DER encoded representation of the certificate. * @param certFile The file to load into a certificate object. * @return An X509Certificate loaded from the file. */ public X509Certificate certFromFile(String certFile) { final File theCertFile = new File(certFile); try { return toX509Certificate(FileUtils.readFileToByteArray(theCertFile)); } catch (Exception e) { // this is used as a factory method, so just return null if the certificate could not be loaded // instead of throwing an exception, but make sure the error is logged return null; } }
signingCert = CertUtils.toX509Certificate(certData);
@Test public void testSetData_setCertAndKeyData() throws Exception { final byte[] certData = FileUtils.readFileToByteArray(new File("./src/test/resources/certs/gm2552.der")); final byte[] keyData = FileUtils.readFileToByteArray(new File("./src/test/resources/certs/gm2552Key.der")); final byte[] rawCertData = CertUtils.certAndWrappedKeyToRawByteFormat(keyData, CertUtils.toX509Certificate(certData)); Certificate cert = new Certificate(); cert.setData(rawCertData); // just make sure an exception didn't happen here } }
newSigningCert = CertUtils.toX509Certificate(bundleData.getSigningCertificateData());
final X509Certificate anchorToAdd = CertUtils.toX509Certificate(anchor.getCertificateData()); if (anchor.isIncoming()) incomingAnchors.get(anchor.getOwner()).add(anchorToAdd); final X509Certificate anchorToAdd = CertUtils.toX509Certificate(anchor.getAnchorData()); if (domainAssoc.isIncoming()) incomingAnchors.get(domainAssoc.getDomain().getDomainName()).add(anchorToAdd);
@Test public void testWrapToRawBytes_assertConverted() throws Exception { final byte[] key = FileUtils.readFileToByteArray(new File("./src/test/resources/certs/gm2552Key.der")); final X509Certificate cert = CertUtils.toX509Certificate(FileUtils.readFileToByteArray(new File("./src/test/resources/certs/gm2552.der"))); byte[] rawBytes = CertUtils.certAndWrappedKeyToRawByteFormat(key, cert); assertNotNull(rawBytes); // convert back; final CertContainer container = CertUtils.toCertContainer(rawBytes); assertEquals(cert, container.getCert()); assertTrue(Arrays.equals(key, container.getWrappedKeyData())); assertNull(container.getKey()); }
signingCert = CertUtils.toX509Certificate(certData);
newSigningCert = CertUtils.toX509Certificate(bundleData.getSigningCertificateData());
@Test public void saveWithCertAndPrivKeyData() throws Exception { cleanDatabase(); final byte[] certData = FileUtils.readFileToByteArray(new File("./src/test/resources/certs/gm2552.der")); final byte[] keyData = FileUtils.readFileToByteArray(new File("./src/test/resources/certs/gm2552Key.der")); Certificate addCert = new Certificate(); addCert.setData(CertUtils.certAndWrappedKeyToRawByteFormat(keyData, CertUtils.toX509Certificate(certData))); addCert.setOwner("gm2552@cerner.com"); certificateDao.save(addCert); final Collection<Certificate> certificates = certificateDao.list((String)null); assertEquals(1, certificates.size()); final Certificate cert = certificates.iterator().next(); assertTrue(cert.isPrivateKey()); CertUtils.CertContainer container = CertUtils.toCertContainer(certData); assertEquals(container.getCert(), CertUtils.toCertContainer(cert.getData()).getCert()); }
@Test public void testStripP12ProtectionTest_X509CertAndWrappedData_noMager_assertX509Returned() throws Exception { cleanDatabase(); final byte[] certData = loadCertificateData("gm2552.der"); final byte[] keyData = loadCertificateData("gm2552Key.der"); Certificate addCert = new Certificate(); addCert.setData(CertUtils.certAndWrappedKeyToRawByteFormat(keyData, CertUtils.toX509Certificate(certData))); addCert.setOwner("gm2552@cerner.com"); certificateDao.save(addCert); final Collection<Certificate> certificates = certificateDao.list((String)null); assertEquals(1, certificates.size()); final Certificate cert = certificates.iterator().next(); assertTrue(cert.isPrivateKey()); CertUtils.CertContainer container = CertUtils.toCertContainer(certData); assertEquals(container.getCert(), CertUtils.toCertContainer(cert.getData()).getCert()); }