/** * This method returns the List of certificates with the same SignerId. * * @param signerId * expected signerId. * @return If no match is found then an empty list is returned. */ @SuppressWarnings("unchecked") public List<CertificateToken> getBySignerId(SignerId signerId) { Collection<CertificatePoolEntity> values = entriesByPublicKeyHash.values(); for (CertificatePoolEntity entity : values) { List<CertificateToken> equivalentCertificates = entity.getEquivalentCertificates(); CertificateToken token = equivalentCertificates.iterator().next(); X509CertificateHolder x509CertificateHolder = DSSASN1Utils.getX509CertificateHolder(token); Store<X509CertificateHolder> store = new CollectionStore<X509CertificateHolder>(Collections.singleton(x509CertificateHolder)); Collection<X509CertificateHolder> matches = store.getMatches(signerId); if (!matches.isEmpty()) { return equivalentCertificates; } } return Collections.emptyList(); }
/** * This method returns a new IssuerSerial based on the certificate token * * @param certToken * the certificate token * @return a IssuerSerial */ public static IssuerSerial getIssuerSerial(final CertificateToken certToken) { final X500Name issuerX500Name = getX509CertificateHolder(certToken).getIssuer(); final GeneralName generalName = new GeneralName(issuerX500Name); final GeneralNames generalNames = new GeneralNames(generalName); final BigInteger serialNumber = certToken.getCertificate().getSerialNumber(); return new IssuerSerial(generalNames, serialNumber); }
/** * Returns the {@code CertificateID} for the given certificate and its * issuer's certificate. * * @param cert * {@code CertificateToken} for which the id is created * @param issuerCert * {@code CertificateToken} issuer certificate of the {@code cert} * @return {@code CertificateID} */ public static CertificateID getOCSPCertificateID(final CertificateToken cert, final CertificateToken issuerCert) { try { final BigInteger serialNumber = cert.getSerialNumber(); final DigestCalculator digestCalculator = getSHA1DigestCalculator(); final X509CertificateHolder x509CertificateHolder = DSSASN1Utils.getX509CertificateHolder(issuerCert); return new CertificateID(digestCalculator, x509CertificateHolder, serialNumber); } catch (OCSPException e) { throw new DSSException("Unable to create CertificateID", e); } }
@Test public void getCertificateHolder() { CertificateToken token = DSSUtils.loadCertificate(new File("src/test/resources/ec.europa.eu.crt")); X509CertificateHolder certificateHolder = DSSASN1Utils.getX509CertificateHolder(token); assertNotNull(certificateHolder); CertificateToken token2 = DSSASN1Utils.getCertificate(certificateHolder); assertEquals(token, token2); }