X509SKIResolverpublic class X509SKIResolver extends KeyResolverSpi
Fields Summary |
---|
static Logger | log{@link java.util.logging} logging facility | private Element[] | _x509childNodesField _x509childNodes | private XMLX509SKI[] | _x509childObjectField _x509childObject[] |
Methods Summary |
---|
public boolean | engineCanResolve(org.w3c.dom.Element element, java.lang.String BaseURI, com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver storage)Method engineCanResolve
if (true) {
if (log.isLoggable(java.util.logging.Level.FINE)) log.log(java.util.logging.Level.FINE, "Can I resolve " + element.getTagName() + "?");
}
if (!XMLUtils.elementIsInSignatureSpace(element,
Constants._TAG_X509DATA)) {
if (log.isLoggable(java.util.logging.Level.FINE)) log.log(java.util.logging.Level.FINE, "I can't");
return false;
}
this._x509childNodes = XMLUtils.selectDsNodes(element,
Constants._TAG_X509SKI);
if ((this._x509childNodes != null)
&& (this._x509childNodes.length > 0)) {
if (log.isLoggable(java.util.logging.Level.FINE)) log.log(java.util.logging.Level.FINE, "Yes Sir, I can");
return true;
}
if (log.isLoggable(java.util.logging.Level.FINE)) log.log(java.util.logging.Level.FINE, "I can't");
return false;
| public java.security.PublicKey | engineResolvePublicKey(org.w3c.dom.Element element, java.lang.String BaseURI, com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver storage)Method engineResolvePublicKey
X509Certificate cert = this.engineResolveX509Certificate(element,
BaseURI, storage);
if (cert != null) {
return cert.getPublicKey();
}
return null;
| public javax.crypto.SecretKey | engineResolveSecretKey(org.w3c.dom.Element element, java.lang.String BaseURI, com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver storage)Method engineResolveSecretKey
return null;
| public java.security.cert.X509Certificate | engineResolveX509Certificate(org.w3c.dom.Element element, java.lang.String BaseURI, com.sun.org.apache.xml.internal.security.keys.storage.StorageResolver storage)Method engineResolveX509Certificate
try {
if (this._x509childNodes == null) {
boolean weCanResolve = this.engineCanResolve(element, BaseURI,
storage);
if (!weCanResolve || (this._x509childNodes == null)) {
return null;
}
}
if (storage == null) {
Object exArgs[] = { Constants._TAG_X509SKI };
KeyResolverException ex =
new KeyResolverException("KeyResolver.needStorageResolver",
exArgs);
if (log.isLoggable(java.util.logging.Level.INFO)) log.log(java.util.logging.Level.INFO, "", ex);
throw ex;
}
this._x509childObject =
new XMLX509SKI[this._x509childNodes.length];
for (int i = 0; i < this._x509childNodes.length; i++) {
this._x509childObject[i] =
new XMLX509SKI(this._x509childNodes[i], BaseURI);
}
while (storage.hasNext()) {
X509Certificate cert = storage.next();
XMLX509SKI certSKI = new XMLX509SKI(element.getOwnerDocument(), cert);
for (int i = 0; i < this._x509childObject.length; i++) {
if (certSKI.equals(this._x509childObject[i])) {
if (log.isLoggable(java.util.logging.Level.FINE)) log.log(java.util.logging.Level.FINE, "Return PublicKey from "
+ cert.getSubjectDN().getName());
return cert;
}
}
}
} catch (XMLSecurityException ex) {
throw new KeyResolverException("empty", ex);
}
return null;
|
|