} catch (NoSuchAlgorithmException nsae) {
throw new SignatureException("SHA1withDSA Signature not found");
}
}
_dsaSignature.initVerify((PublicKey) publicKey);
SignerOutputStream sos = new SignerOutputStream(_dsaSignature);
if(si.getSignedInfo() != null){
XMLStreamReaderEx signedInfo = (XMLStreamReaderEx) si.getSignedInfo();
if(_exc14nSBCanonicalizer == null){
_exc14nSBCanonicalizer = new EXC14nStAXReaderBasedCanonicalizer();
}
NamespaceContextEx nsContext = signedInfo.getNamespaceContext();
Iterator<NamespaceContextEx.Binding> itr = nsContext.iterator();
ArrayList list = new ArrayList();
while(itr.hasNext()){
NamespaceContextEx.Binding binding = itr.next();
AttributeNS ans = new AttributeNS();
ans.setPrefix( binding.getPrefix());
ans.setUri(binding.getNamespaceURI());
list.add(ans);
}
_exc14nSBCanonicalizer.addParentNamespaces(list);
try {
_exc14nSBCanonicalizer.canonicalize(signedInfo,sos,null);
} catch (XMLStreamException ex) {
logger.log(Level.SEVERE, LogStringsMessages.WSS_1724_SIGTYPE_VERIFICATION_FAILED("SHA1withDSA"));
throw new SignatureException(LogStringsMessages.WSS_1724_SIGTYPE_VERIFICATION_FAILED("SHA1withDSA"),ex);
} catch (IOException ex) {
logger.log(Level.SEVERE, LogStringsMessages.WSS_1724_SIGTYPE_VERIFICATION_FAILED("SHA1withDSA"));
throw new SignatureException(LogStringsMessages.WSS_1724_SIGTYPE_VERIFICATION_FAILED("SHA1withDSA"),ex);
}
}else{
sos.write(si.getCanonicalizedSI());
}
try {
return _dsaSignature.verify(convertXMLDSIGtoASN1(signatureValue));
} catch (SignatureException ex) {
logger.log(Level.SEVERE, LogStringsMessages.WSS_1724_SIGTYPE_VERIFICATION_FAILED("SHA1withDSA"));