Пример #1
0
  /**
   * Searches the per-KeyInfo KeyResolvers for public keys
   *
   * @return The public key contained in this Node.
   * @throws KeyResolverException
   */
  PublicKey getPublicKeyFromInternalResolvers() throws KeyResolverException {
    for (KeyResolverSpi keyResolver : internalKeyResolvers) {
      if (log.isLoggable(j86.java.util.logging.Level.FINE)) {
        log.log(j86.java.util.logging.Level.FINE, "Try " + keyResolver.getClass().getName());
      }
      keyResolver.setSecureValidation(secureValidation);
      Node currentChild = this.constructionElement.getFirstChild();
      String uri = this.getBaseURI();
      while (currentChild != null) {
        if (currentChild.getNodeType() == Node.ELEMENT_NODE) {
          for (StorageResolver storage : storageResolvers) {
            PublicKey pk =
                keyResolver.engineLookupAndResolvePublicKey((Element) currentChild, uri, storage);

            if (pk != null) {
              return pk;
            }
          }
        }
        currentChild = currentChild.getNextSibling();
      }
    }

    return null;
  }
Пример #2
0
 /**
  * This method uses each System-wide {@link KeyResolver} to search the child elements. Each
  * combination of {@link KeyResolver} and child element is checked against all {@link
  * StorageResolver}s.
  *
  * @return The certificate contained in this KeyInfo
  * @throws KeyResolverException
  */
 X509Certificate getX509CertificateFromStaticResolvers() throws KeyResolverException {
   if (log.isLoggable(j86.java.util.logging.Level.FINE)) {
     log.log(
         j86.java.util.logging.Level.FINE,
         "Start getX509CertificateFromStaticResolvers() with "
             + KeyResolver.length()
             + " resolvers");
   }
   String uri = this.getBaseURI();
   Iterator<KeyResolverSpi> it = KeyResolver.iterator();
   while (it.hasNext()) {
     KeyResolverSpi keyResolver = it.next();
     keyResolver.setSecureValidation(secureValidation);
     X509Certificate cert = applyCurrentResolver(uri, keyResolver);
     if (cert != null) {
       return cert;
     }
   }
   return null;
 }
Пример #3
0
  /**
   * Method getX509CertificateFromInternalResolvers
   *
   * @return The certificate contained in this KeyInfo
   * @throws KeyResolverException
   */
  X509Certificate getX509CertificateFromInternalResolvers() throws KeyResolverException {
    if (log.isLoggable(j86.java.util.logging.Level.FINE)) {
      log.log(
          j86.java.util.logging.Level.FINE,
          "Start getX509CertificateFromInternalResolvers() with "
              + this.lengthInternalKeyResolver()
              + " resolvers");
    }
    String uri = this.getBaseURI();
    for (KeyResolverSpi keyResolver : internalKeyResolvers) {
      if (log.isLoggable(j86.java.util.logging.Level.FINE)) {
        log.log(j86.java.util.logging.Level.FINE, "Try " + keyResolver.getClass().getName());
      }
      keyResolver.setSecureValidation(secureValidation);
      X509Certificate cert = applyCurrentResolver(uri, keyResolver);
      if (cert != null) {
        return cert;
      }
    }

    return null;
  }
Пример #4
0
  /**
   * Searches the library wide KeyResolvers for public keys
   *
   * @return The public key contained in this Node.
   * @throws KeyResolverException
   */
  PublicKey getPublicKeyFromStaticResolvers() throws KeyResolverException {
    Iterator<KeyResolverSpi> it = KeyResolver.iterator();
    while (it.hasNext()) {
      KeyResolverSpi keyResolver = it.next();
      keyResolver.setSecureValidation(secureValidation);
      Node currentChild = this.constructionElement.getFirstChild();
      String uri = this.getBaseURI();
      while (currentChild != null) {
        if (currentChild.getNodeType() == Node.ELEMENT_NODE) {
          for (StorageResolver storage : storageResolvers) {
            PublicKey pk =
                keyResolver.engineLookupAndResolvePublicKey((Element) currentChild, uri, storage);

            if (pk != null) {
              return pk;
            }
          }
        }
        currentChild = currentChild.getNextSibling();
      }
    }
    return null;
  }
Пример #5
0
  /**
   * Searches the library wide KeyResolvers for Private keys
   *
   * @return the private key contained in this KeyInfo
   * @throws KeyResolverException
   */
  PrivateKey getPrivateKeyFromStaticResolvers() throws KeyResolverException {
    Iterator<KeyResolverSpi> it = KeyResolver.iterator();
    while (it.hasNext()) {
      KeyResolverSpi keyResolver = it.next();
      keyResolver.setSecureValidation(secureValidation);

      Node currentChild = this.constructionElement.getFirstChild();
      String uri = this.getBaseURI();
      while (currentChild != null) {
        if (currentChild.getNodeType() == Node.ELEMENT_NODE) {
          // not using StorageResolvers at the moment
          // since they cannot return private keys
          PrivateKey pk =
              keyResolver.engineLookupAndResolvePrivateKey((Element) currentChild, uri, null);

          if (pk != null) {
            return pk;
          }
        }
        currentChild = currentChild.getNextSibling();
      }
    }
    return null;
  }
Пример #6
0
  private X509Certificate applyCurrentResolver(String uri, KeyResolverSpi keyResolver)
      throws KeyResolverException {
    Node currentChild = this.constructionElement.getFirstChild();
    while (currentChild != null) {
      if (currentChild.getNodeType() == Node.ELEMENT_NODE) {
        for (StorageResolver storage : storageResolvers) {
          X509Certificate cert =
              keyResolver.engineLookupResolveX509Certificate((Element) currentChild, uri, storage);

          if (cert != null) {
            return cert;
          }
        }
      }
      currentChild = currentChild.getNextSibling();
    }
    return null;
  }