예제 #1
0
파일: KeyInfo.java 프로젝트: ronshapiro/j86
 /**
  * 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;
 }
예제 #2
0
파일: KeyInfo.java 프로젝트: ronshapiro/j86
  /**
   * 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;
  }
예제 #3
0
파일: KeyInfo.java 프로젝트: ronshapiro/j86
  /**
   * 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;
  }