Search in sources :

Example 1 with X509CertificatePair

use of sun.security.provider.certpath.X509CertificatePair in project jdk8u_jdk by JetBrains.

the class LDAPCertStore method getCertPairs.

/*
     * Gets certificate pairs from an attribute id and location in the LDAP
     * directory.
     *
     * @param name the location holding the attribute
     * @param id the attribute identifier
     * @return a Collection of X509CertificatePairs found
     * @throws CertStoreException       if an exception occurs
     */
private Collection<X509CertificatePair> getCertPairs(LDAPRequest request, String id) throws CertStoreException {
    /* fetch the encoded cert pairs from storage */
    byte[][] encodedCertPair;
    try {
        encodedCertPair = request.getValues(id);
    } catch (NamingException namingEx) {
        throw new CertStoreException(namingEx);
    }
    int n = encodedCertPair.length;
    if (n == 0) {
        return Collections.emptySet();
    }
    List<X509CertificatePair> certPairs = new ArrayList<>(n);
    /* decode each cert pair and add it to the Collection */
    for (int i = 0; i < n; i++) {
        try {
            X509CertificatePair certPair = X509CertificatePair.generateCertificatePair(encodedCertPair[i]);
            certPairs.add(certPair);
        } catch (CertificateException e) {
            if (debug != null) {
                debug.println("LDAPCertStore.getCertPairs() encountered exception " + "while parsing cert, skipping the bad data: ");
                HexDumpEncoder encoder = new HexDumpEncoder();
                debug.println("[ " + encoder.encodeBuffer(encodedCertPair[i]) + " ]");
            }
        }
    }
    return certPairs;
}
Also used : X509CertificatePair(sun.security.provider.certpath.X509CertificatePair) HexDumpEncoder(sun.misc.HexDumpEncoder) NamingException(javax.naming.NamingException)

Example 2 with X509CertificatePair

use of sun.security.provider.certpath.X509CertificatePair in project jdk8u_jdk by JetBrains.

the class LDAPCertStore method getMatchingCrossCerts.

/*
     * Looks at certificate pairs stored in the crossCertificatePair attribute
     * at the specified location in the LDAP directory. Returns a Collection
     * containing all Certificates stored in the forward component that match
     * the forward CertSelector and all Certificates stored in the reverse
     * component that match the reverse CertSelector.
     * <p>
     * If either forward or reverse is null, all certificates from the
     * corresponding component will be rejected.
     *
     * @param name the location to look in
     * @param forward the forward CertSelector (or null)
     * @param reverse the reverse CertSelector (or null)
     * @return a Collection of Certificates found
     * @throws CertStoreException       if an exception occurs
     */
private Collection<X509Certificate> getMatchingCrossCerts(LDAPRequest request, X509CertSelector forward, X509CertSelector reverse) throws CertStoreException {
    // Get the cert pairs
    Collection<X509CertificatePair> certPairs = getCertPairs(request, CROSS_CERT);
    // Find Certificates that match and put them in a list
    ArrayList<X509Certificate> matchingCerts = new ArrayList<>();
    for (X509CertificatePair certPair : certPairs) {
        X509Certificate cert;
        if (forward != null) {
            cert = certPair.getForward();
            if ((cert != null) && forward.match(cert)) {
                matchingCerts.add(cert);
            }
        }
        if (reverse != null) {
            cert = certPair.getReverse();
            if ((cert != null) && reverse.match(cert)) {
                matchingCerts.add(cert);
            }
        }
    }
    return matchingCerts;
}
Also used : X509CertificatePair(sun.security.provider.certpath.X509CertificatePair)

Aggregations

X509CertificatePair (sun.security.provider.certpath.X509CertificatePair)2 NamingException (javax.naming.NamingException)1 HexDumpEncoder (sun.misc.HexDumpEncoder)1