if(_rsaSignature == null ){
try {
_rsaSignature = Signature.getInstance(signatureAlgo);
} catch (NoSuchAlgorithmException ex) {
// shud never come here
throw new XWSSecurityRuntimeException(ex);
}
}
_rsaSignature.initSign((PrivateKey) privateKey);
SignerOutputStream signerOutputStream = new SignerOutputStream(_rsaSignature);
Marshaller marshaller;
try {
marshaller = getMarshaller();
_exc14nCanonicalizer.reset();
setNamespaceAndPrefixList();
_exc14nCanonicalizer.setStream(signerOutputStream);
marshaller.marshal(signedInfo,_exc14nCanonicalizer);
if(logger.isLoggable(Level.FINEST)){
java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
_exc14nCanonicalizer.reset();
_exc14nCanonicalizer.setStream(baos);
marshaller.marshal(signedInfo,_exc14nCanonicalizer);
logger.log(Level.FINEST, LogStringsMessages.WSS_1756_CANONICALIZED_SIGNEDINFO_VALUE(baos.toString()));
}
} catch (JAXBException ex) {
throw new XWSSecurityRuntimeException(ex);
}
try {
return _rsaSignature.sign();