}
try {
if (storage == null) {
Object exArgs[] = { Constants._TAG_X509SUBJECTNAME };
KeyResolverException ex =
new KeyResolverException("KeyResolver.needStorageResolver", exArgs);
if (log.isDebugEnabled()) {
log.debug("", ex);
}
throw ex;
}
x509childObject = new XMLX509SubjectName[x509childNodes.length];
for (int i = 0; i < x509childNodes.length; i++) {
x509childObject[i] = new XMLX509SubjectName(x509childNodes[i], baseURI);
}
Iterator<Certificate> storageIterator = storage.getIterator();
while (storageIterator.hasNext()) {
X509Certificate cert = (X509Certificate)storageIterator.next();
XMLX509SubjectName certSN =
new XMLX509SubjectName(element.getOwnerDocument(), cert);
if (log.isDebugEnabled()) {
log.debug("Found Certificate SN: " + certSN.getSubjectName());
}
for (int i = 0; i < x509childObject.length; i++) {
if (log.isDebugEnabled()) {
log.debug("Found Element SN: "
+ x509childObject[i].getSubjectName());
}
if (certSN.equals(x509childObject[i])) {
if (log.isDebugEnabled()) {
log.debug("match !!! ");
}
return cert;
}
if (log.isDebugEnabled()) {
log.debug("no match...");
}
}
}
return null;
} catch (XMLSecurityException ex) {
if (log.isDebugEnabled()) {
log.debug("XMLSecurityException", ex);
}
throw new KeyResolverException("generic.EmptyMessage", ex);
}
}