SANTUARIO-444 - Signing of big XMLs fails on Windows 8/10 using smart cards.
Thanks to Adrian Greiler for the patch
git-svn-id: https://svn.apache.org/repos/asf/santuario/xml-security-java/trunk@1746546 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/xml/security/signature/XMLSignature.java b/src/main/java/org/apache/xml/security/signature/XMLSignature.java
index 330f747..3fd8c90 100644
--- a/src/main/java/org/apache/xml/security/signature/XMLSignature.java
+++ b/src/main/java/org/apache/xml/security/signature/XMLSignature.java
@@ -624,11 +624,12 @@
SignatureAlgorithm sa = si.getSignatureAlgorithm();
OutputStream so = null;
try {
+ // generate digest values for all References in this SignedInfo
+ si.generateDigestValues();
+
// initialize SignatureAlgorithm for signing
sa.initSign(signingKey);
- // generate digest values for all References in this SignedInfo
- si.generateDigestValues();
so = new UnsyncBufferedOutputStream(new SignerOutputStream(sa));
// get the canonicalized bytes from SignedInfo
si.signInOctetStream(so);