I have a strange verification behaviour.
I'm trying to sign portions of a XML document using ds:XPath element,
as follows (the XML documents contains some users info: firstname, lastname, age and serial, each of one is represented by a XML element):

//... opening keystore
File keystoreFile= new File(...);
String privateKeyPass = ...;
String privateKeyAlias = ...;
String keystoreType = "pkcs12";
KeyStore ks = KeyStore.getInstance(keystoreType);
FileInputStream fis = new FileInputStream(keystoreFile);
ks.load(fis, keystorePass.toCharArray());
PrivateKey privateKey = (PrivateKey) ks.getKey(privateKeyAlias,
                  privateKeyPass.toCharArray());


// ...loading xml document
File xmlDocument = new File("generic-users.xml");

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
        
Document doc = db.parse(xmlDocument);

// ... signing it:
// Init signature file and base URI
File signatureFile = new File("enveloped-signature.xml");
String baseURI = signatureFile.toURL().toString();

// Generate signature element and append it to root
XMLSignature sig = new XMLSignature(doc, baseURI,
                        XMLSignature.ALGO_ID_SIGNATURE_RSA);
doc.getFirstChild().appendChild(sig.getElement());

// Add fragment resolver for uri=""
ResolverFragment fragmentResolver = new ResolverFragment();
sig.addResourceResolver(fragmentResolver);

// Add transform for enveloped signature
Transforms transforms = new Transforms(doc);
transforms.addTransform(Transforms.TRANSFORM_ENVELOPED_SIGNATURE);

// Set XPATH and adding as a transform
XPathContainer xpathContainer = new XPathContainer(doc);
xpathContainer.setXPathNamespaceContext("ds",
                        Constants.SignatureSpecNS);

// Setting elements 'lastname' to be signed
String xpath = "/users/user/lastname";
xpathContainer.setXPath(xpath);
transforms.addTransform(Transforms.TRANSFORM_XPATH,
                        xpathContainer.getElementPlusReturns());

// Setting 'to be signed' element
sig.addDocument("",transforms,Constants.ALGO_ID_DIGEST_SHA1);

// Adding data for verification
X509Certificate signerCert = (X509Certificate)
                        ks.getCertificate(certificateAlias);
sig.addKeyInfo(signerCert);

// ..and finally sign it!
sig.sign(privateKey);

// Saving on a file
FileOutputStream fos = new FileOutputStream(signatureFile);
XMLUtils.outputDOM(doc,fos);
fos.close();


I have different versions of signed file:
1) the original (enveloped-signature.xml);
2) with altered signature (altered-enveloped-signature.xml, see MORDOR initial sequence instead of original sequence RdqK3K);
3) with one 'firstname' element content altered;
4) with one 'lastname' element content altered;

When I verify these four files, with the following code:

// loading signed file
File signatureFile = new File(...one of the four files...);
String baseURI = signatureFile.toURL().toString();

// parsing it
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
DocumentBuilder db = dbf.newDocumentBuilder();
db.setErrorHandler(new IgnoreAllErrorHandler());
Document signedDoc = db.parse(signatureFile);

// finding signature element
Element nsContext = XMLUtils.createDSctx(signedDoc, "ds",
                                Constants.SignatureSpecNS);
Element signatureElement = (Element)
                        XPathAPI.selectSingleNode(signedDoc,
                                "//ds:Signature[1]",nsContext);
XMLSignature signature = new XMLSignature(signatureElement,baseURI);

ResolverFragment fragmentResolver = new ResolverFragment();
signature.addResourceResolver(fragmentResolver);

// Loading KeyInfo for verofying it     
KeyInfo ki = signature.getKeyInfo();
boolean result = signature.checkSignatureValue(ki.getX509Certificate());
// printing verification result
logger.info("Signature is " + (result ? "good" : "bad"));



I obtain these results:

1) 'Signature is good' (obviously)
2) 'Signature is bad' (right: the signature was altered)
3) 'Signature is bad' (wrong: I altered the content of one of the 'firstname' elements, but during signature I was specifying 'lastname' elements to be signed) 4) 'Signature is bad' (right: I altered the content of one of the 'lastname' elements)

If you see signatures and content digests, they are always the same, as if I hadn't specified an XPath to select portions of the document (wholedocument-enveloped-signature.xml is the same document signed as a whole).

What's wrong with my code?

Thanks

Daniele


--
-------------------------------------------
Daniele Gagliardi

Engiweb Security - Gruppo Engineering
Corso Stati Uniti 23/I
35127 Padova, Italia

Tel. ++39 0498692507
Fax. ++39 0498692566

http://www.engiweb.com

e-mail:   [EMAIL PROTECTED]
-------------------------------------------
<users>
  <user>
    <firstname>Bilbo</firstname>
    <lastname>Sackville</lastname>
    <age>52</age>
    <serial>Y10</serial>
  </user>
  <user>
    <firstname>Thorin</firstname>
    <lastname>Oakenshield</lastname>
    <age>195</age>
    <serial>Y5</serial>
  </user>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";>
<ds:XPath>/users/user/lastname</ds:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>jQZJrdoLk/1k4/KGyyHjP66Y1js=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
RdqK3KPAkHKZqsi2Os1XFSW1wKXGsQryfnTWJA4Erff6p0VMKixplMQqvV5myPnfBaiSRetoN4kH
/WqsinK2JHowtfMoccUjL/+Mk29TLhtRsJvX99VI4J4WawCg2lu1f0WS6Oy1onOnQDj/K9eJEHrs
i6zGCAoVNItVz82dqRA=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEBTCCAu2gAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCSVQxCzAJBgNVBAgT
AlBEMQ8wDQYDVQQHEwZQYWRvdmExIDAeBgNVBAoTF0VuZ2l3ZWIgU2VjdXJpdHkgcy5yLmwuMRsw
GQYDVQQLFhJSaWNlcmNhICYgU3ZpbHVwcG8xEDAOBgNVBAMTB1Jvb3QgQ0ExJzAlBgkqhkiG9w0B
CQEWGGRhbmllbGUuZ2FnbGlhcmRpQGVuZy5pdDAeFw0wNzA3MDUxMzE0NTNaFw0wODA3MDQxMzE0
NTNaMIH8MQswCQYDVQQGEwJJVDELMAkGA1UECBMCUEQxDzANBgNVBAcTBlBhZG92YTEgMB4GA1UE
ChMXRW5naXdlYiBTZWN1cml0eSBzLnIubC4xHzAdBgNVBAsTFlNlY3VyaXR5IEJ1c2luZXNzIFVu
aXQxGzAZBgNVBAMTEkRhbiB0aGUgWE1MIFNpZ25lcjEnMCUGCSqGSIb3DQEJARYYZGFuaWVsZS5n
YWdsaWFyZGlAZW5nLml0MRAwDgYDVQQqEwdEYW5pZWxlMRIwEAYDVQQEEwlHYWdsaWFyZGkxDDAK
BgNVBC4TA2RhbjESMBAGA1UEDBMJZGV2ZWxvcGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDE/3LhqnCssVfrWi65m4xkBIvrwon1rrJM9ggtixa3E58zxZwimgvDc9/ZSJsjnEpA98AaB1an
Jc2/NzXJl6T+7LMh+07zHCEU9/+BGtE/Do4O+0fzvu3Rho3QzCy/wbdB6OnaRY/kpgikZahGGUIk
GgSlzyFo2XWoogNmX1iqkQIDAQABo2swaTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIGQDAsBgNV
HR8EJTAjMCGgH6AdhhtodHRwOi8vZ2FnbGlhcmRpZC1kL2NybC5jcmwwHgYJYIZIAYb4QgENBBEW
D3hjYSBjZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQUFAAOCAQEAYru2Tqn8zN9I6YGRt5pbg5DtzxAp
+lSHLM8Xbmj3TEl6rCxeFdbUVyxWHb4ewVB7eQgAOiMH5dd2SrMnQqMHy7QKIYtYgxC+1/B2tNW4
RfituZ0ON1VWEc7AxSdGS6GRXoDXBjUpHj93QK77Tv7MP4glutS/t1eJKPpjtXmBMCPm/JzGcrGK
yu7jIp3V8vjJFyZzv9D/P+H/XclePGgASPg67voHibY78FTE5lNIZw6hYc4b6hXEH7WAtu60FY1s
V9IPJxiHzbgBFsGOgV+6HiXX1Q6nMODXWanUkPxx6zOxxtBCnnyFYmEw6uMlXn/E0GGgswhYrrPD
UciVxjpGYw==
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
xP9y4apwrLFX61ouuZuMZASL68KJ9a6yTPYILYsWtxOfM8WcIpoLw3Pf2UibI5xKQPfAGgdWpyXN
vzc1yZek/uyzIftO8xwhFPf/gRrRPw6ODvtH877t0YaN0Mwsv8G3Qejp2kWP5KYIpGWoRhlCJBoE
pc8haNl1qKIDZl9YqpE=
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature></users>
<users>
  <user>
    <firstname>Bilbo</firstname>
    <lastname>Baggins</lastname>
    <age>52</age>
    <serial>Y10</serial>
  </user>
  <user>
    <firstname>Thorin</firstname>
    <lastname>Oakenshield</lastname>
    <age>195</age>
    <serial>Y5</serial>
  </user>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315";></ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1";></ds:SignatureMethod>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature";></ds:Transform>
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";>
<ds:XPath>/users/user/lastname</ds:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></ds:DigestMethod>
<ds:DigestValue>jQZJrdoLk/1k4/KGyyHjP66Y1js=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
RdqK3KPAkHKZqsi2Os1XFSW1wKXGsQryfnTWJA4Erff6p0VMKixplMQqvV5myPnfBaiSRetoN4kH
/WqsinK2JHowtfMoccUjL/+Mk29TLhtRsJvX99VI4J4WawCg2lu1f0WS6Oy1onOnQDj/K9eJEHrs
i6zGCAoVNItVz82dqRA=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEBTCCAu2gAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCSVQxCzAJBgNVBAgT
AlBEMQ8wDQYDVQQHEwZQYWRvdmExIDAeBgNVBAoTF0VuZ2l3ZWIgU2VjdXJpdHkgcy5yLmwuMRsw
GQYDVQQLFhJSaWNlcmNhICYgU3ZpbHVwcG8xEDAOBgNVBAMTB1Jvb3QgQ0ExJzAlBgkqhkiG9w0B
CQEWGGRhbmllbGUuZ2FnbGlhcmRpQGVuZy5pdDAeFw0wNzA3MDUxMzE0NTNaFw0wODA3MDQxMzE0
NTNaMIH8MQswCQYDVQQGEwJJVDELMAkGA1UECBMCUEQxDzANBgNVBAcTBlBhZG92YTEgMB4GA1UE
ChMXRW5naXdlYiBTZWN1cml0eSBzLnIubC4xHzAdBgNVBAsTFlNlY3VyaXR5IEJ1c2luZXNzIFVu
aXQxGzAZBgNVBAMTEkRhbiB0aGUgWE1MIFNpZ25lcjEnMCUGCSqGSIb3DQEJARYYZGFuaWVsZS5n
YWdsaWFyZGlAZW5nLml0MRAwDgYDVQQqEwdEYW5pZWxlMRIwEAYDVQQEEwlHYWdsaWFyZGkxDDAK
BgNVBC4TA2RhbjESMBAGA1UEDBMJZGV2ZWxvcGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDE/3LhqnCssVfrWi65m4xkBIvrwon1rrJM9ggtixa3E58zxZwimgvDc9/ZSJsjnEpA98AaB1an
Jc2/NzXJl6T+7LMh+07zHCEU9/+BGtE/Do4O+0fzvu3Rho3QzCy/wbdB6OnaRY/kpgikZahGGUIk
GgSlzyFo2XWoogNmX1iqkQIDAQABo2swaTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIGQDAsBgNV
HR8EJTAjMCGgH6AdhhtodHRwOi8vZ2FnbGlhcmRpZC1kL2NybC5jcmwwHgYJYIZIAYb4QgENBBEW
D3hjYSBjZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQUFAAOCAQEAYru2Tqn8zN9I6YGRt5pbg5DtzxAp
+lSHLM8Xbmj3TEl6rCxeFdbUVyxWHb4ewVB7eQgAOiMH5dd2SrMnQqMHy7QKIYtYgxC+1/B2tNW4
RfituZ0ON1VWEc7AxSdGS6GRXoDXBjUpHj93QK77Tv7MP4glutS/t1eJKPpjtXmBMCPm/JzGcrGK
yu7jIp3V8vjJFyZzv9D/P+H/XclePGgASPg67voHibY78FTE5lNIZw6hYc4b6hXEH7WAtu60FY1s
V9IPJxiHzbgBFsGOgV+6HiXX1Q6nMODXWanUkPxx6zOxxtBCnnyFYmEw6uMlXn/E0GGgswhYrrPD
UciVxjpGYw==
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
xP9y4apwrLFX61ouuZuMZASL68KJ9a6yTPYILYsWtxOfM8WcIpoLw3Pf2UibI5xKQPfAGgdWpyXN
vzc1yZek/uyzIftO8xwhFPf/gRrRPw6ODvtH877t0YaN0Mwsv8G3Qejp2kWP5KYIpGWoRhlCJBoE
pc8haNl1qKIDZl9YqpE=
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature></users>
<users>
  <user>
    <firstname>Bilbo</firstname>
    <lastname>Baggins</lastname>
    <age>52</age>
    <serial>Y10</serial>
  </user>
  <user>
    <firstname>Thorin</firstname>
    <lastname>Oakenshield</lastname>
    <age>195</age>
    <serial>Y5</serial>
  </user>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";>
<ds:XPath>/users/user/lastname</ds:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>jQZJrdoLk/1k4/KGyyHjP66Y1js=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
MORDORPAkHKZqsi2Os1XFSW1wKXGsQryfnTWJA4Erff6p0VMKixplMQqvV5myPnfBaiSRetoN4kH
/WqsinK2JHowtfMoccUjL/+Mk29TLhtRsJvX99VI4J4WawCg2lu1f0WS6Oy1onOnQDj/K9eJEHrs
i6zGCAoVNItVz82dqRA=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEBTCCAu2gAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCSVQxCzAJBgNVBAgT
AlBEMQ8wDQYDVQQHEwZQYWRvdmExIDAeBgNVBAoTF0VuZ2l3ZWIgU2VjdXJpdHkgcy5yLmwuMRsw
GQYDVQQLFhJSaWNlcmNhICYgU3ZpbHVwcG8xEDAOBgNVBAMTB1Jvb3QgQ0ExJzAlBgkqhkiG9w0B
CQEWGGRhbmllbGUuZ2FnbGlhcmRpQGVuZy5pdDAeFw0wNzA3MDUxMzE0NTNaFw0wODA3MDQxMzE0
NTNaMIH8MQswCQYDVQQGEwJJVDELMAkGA1UECBMCUEQxDzANBgNVBAcTBlBhZG92YTEgMB4GA1UE
ChMXRW5naXdlYiBTZWN1cml0eSBzLnIubC4xHzAdBgNVBAsTFlNlY3VyaXR5IEJ1c2luZXNzIFVu
aXQxGzAZBgNVBAMTEkRhbiB0aGUgWE1MIFNpZ25lcjEnMCUGCSqGSIb3DQEJARYYZGFuaWVsZS5n
YWdsaWFyZGlAZW5nLml0MRAwDgYDVQQqEwdEYW5pZWxlMRIwEAYDVQQEEwlHYWdsaWFyZGkxDDAK
BgNVBC4TA2RhbjESMBAGA1UEDBMJZGV2ZWxvcGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDE/3LhqnCssVfrWi65m4xkBIvrwon1rrJM9ggtixa3E58zxZwimgvDc9/ZSJsjnEpA98AaB1an
Jc2/NzXJl6T+7LMh+07zHCEU9/+BGtE/Do4O+0fzvu3Rho3QzCy/wbdB6OnaRY/kpgikZahGGUIk
GgSlzyFo2XWoogNmX1iqkQIDAQABo2swaTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIGQDAsBgNV
HR8EJTAjMCGgH6AdhhtodHRwOi8vZ2FnbGlhcmRpZC1kL2NybC5jcmwwHgYJYIZIAYb4QgENBBEW
D3hjYSBjZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQUFAAOCAQEAYru2Tqn8zN9I6YGRt5pbg5DtzxAp
+lSHLM8Xbmj3TEl6rCxeFdbUVyxWHb4ewVB7eQgAOiMH5dd2SrMnQqMHy7QKIYtYgxC+1/B2tNW4
RfituZ0ON1VWEc7AxSdGS6GRXoDXBjUpHj93QK77Tv7MP4glutS/t1eJKPpjtXmBMCPm/JzGcrGK
yu7jIp3V8vjJFyZzv9D/P+H/XclePGgASPg67voHibY78FTE5lNIZw6hYc4b6hXEH7WAtu60FY1s
V9IPJxiHzbgBFsGOgV+6HiXX1Q6nMODXWanUkPxx6zOxxtBCnnyFYmEw6uMlXn/E0GGgswhYrrPD
UciVxjpGYw==
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
xP9y4apwrLFX61ouuZuMZASL68KJ9a6yTPYILYsWtxOfM8WcIpoLw3Pf2UibI5xKQPfAGgdWpyXN
vzc1yZek/uyzIftO8xwhFPf/gRrRPw6ODvtH877t0YaN0Mwsv8G3Qejp2kWP5KYIpGWoRhlCJBoE
pc8haNl1qKIDZl9YqpE=
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature></users>
<users>
  <user>
    <firstname>Frodo</firstname>
    <lastname>Baggins</lastname>
    <age>52</age>
    <serial>Y10</serial>
  </user>
  <user>
    <firstname>Thorin</firstname>
    <lastname>Oakenshield</lastname>
    <age>195</age>
    <serial>Y5</serial>
  </user>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116";>
<ds:XPath>/users/user/lastname</ds:XPath>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>jQZJrdoLk/1k4/KGyyHjP66Y1js=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
RdqK3KPAkHKZqsi2Os1XFSW1wKXGsQryfnTWJA4Erff6p0VMKixplMQqvV5myPnfBaiSRetoN4kH
/WqsinK2JHowtfMoccUjL/+Mk29TLhtRsJvX99VI4J4WawCg2lu1f0WS6Oy1onOnQDj/K9eJEHrs
i6zGCAoVNItVz82dqRA=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEBTCCAu2gAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCSVQxCzAJBgNVBAgT
AlBEMQ8wDQYDVQQHEwZQYWRvdmExIDAeBgNVBAoTF0VuZ2l3ZWIgU2VjdXJpdHkgcy5yLmwuMRsw
GQYDVQQLFhJSaWNlcmNhICYgU3ZpbHVwcG8xEDAOBgNVBAMTB1Jvb3QgQ0ExJzAlBgkqhkiG9w0B
CQEWGGRhbmllbGUuZ2FnbGlhcmRpQGVuZy5pdDAeFw0wNzA3MDUxMzE0NTNaFw0wODA3MDQxMzE0
NTNaMIH8MQswCQYDVQQGEwJJVDELMAkGA1UECBMCUEQxDzANBgNVBAcTBlBhZG92YTEgMB4GA1UE
ChMXRW5naXdlYiBTZWN1cml0eSBzLnIubC4xHzAdBgNVBAsTFlNlY3VyaXR5IEJ1c2luZXNzIFVu
aXQxGzAZBgNVBAMTEkRhbiB0aGUgWE1MIFNpZ25lcjEnMCUGCSqGSIb3DQEJARYYZGFuaWVsZS5n
YWdsaWFyZGlAZW5nLml0MRAwDgYDVQQqEwdEYW5pZWxlMRIwEAYDVQQEEwlHYWdsaWFyZGkxDDAK
BgNVBC4TA2RhbjESMBAGA1UEDBMJZGV2ZWxvcGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDE/3LhqnCssVfrWi65m4xkBIvrwon1rrJM9ggtixa3E58zxZwimgvDc9/ZSJsjnEpA98AaB1an
Jc2/NzXJl6T+7LMh+07zHCEU9/+BGtE/Do4O+0fzvu3Rho3QzCy/wbdB6OnaRY/kpgikZahGGUIk
GgSlzyFo2XWoogNmX1iqkQIDAQABo2swaTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIGQDAsBgNV
HR8EJTAjMCGgH6AdhhtodHRwOi8vZ2FnbGlhcmRpZC1kL2NybC5jcmwwHgYJYIZIAYb4QgENBBEW
D3hjYSBjZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQUFAAOCAQEAYru2Tqn8zN9I6YGRt5pbg5DtzxAp
+lSHLM8Xbmj3TEl6rCxeFdbUVyxWHb4ewVB7eQgAOiMH5dd2SrMnQqMHy7QKIYtYgxC+1/B2tNW4
RfituZ0ON1VWEc7AxSdGS6GRXoDXBjUpHj93QK77Tv7MP4glutS/t1eJKPpjtXmBMCPm/JzGcrGK
yu7jIp3V8vjJFyZzv9D/P+H/XclePGgASPg67voHibY78FTE5lNIZw6hYc4b6hXEH7WAtu60FY1s
V9IPJxiHzbgBFsGOgV+6HiXX1Q6nMODXWanUkPxx6zOxxtBCnnyFYmEw6uMlXn/E0GGgswhYrrPD
UciVxjpGYw==
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
xP9y4apwrLFX61ouuZuMZASL68KJ9a6yTPYILYsWtxOfM8WcIpoLw3Pf2UibI5xKQPfAGgdWpyXN
vzc1yZek/uyzIftO8xwhFPf/gRrRPw6ODvtH877t0YaN0Mwsv8G3Qejp2kWP5KYIpGWoRhlCJBoE
pc8haNl1qKIDZl9YqpE=
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature></users>
<?xml version="1.0" encoding="UTF-8"?>
<users>
  <user>
    <firstname>Bilbo</firstname>
    <lastname>Baggins</lastname>
    <age>52</age>
    <serial>Y10</serial>
  </user>
  <user>
    <firstname>Thorin</firstname>
    <lastname>Oakenshield</lastname>
    <age>195</age>
    <serial>Y5</serial>
  </user>
</users>
<users>
  <user>
    <firstname>Bilbo</firstname>
    <lastname>Baggins</lastname>
    <age>52</age>
    <serial>Y10</serial>
  </user>
  <user>
    <firstname>Thorin</firstname>
    <lastname>Oakenshield</lastname>
    <age>195</age>
    <serial>Y5</serial>
  </user>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315";></ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1";></ds:SignatureMethod>
<ds:Reference URI="">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature";></ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></ds:DigestMethod>
<ds:DigestValue>jQZJrdoLk/1k4/KGyyHjP66Y1js=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
GephRDnsuDrxFmhnt2qdo4dzd4JjwFafLslGdwdm85M5t6hoKUA5EIS1YXpROanJiNh3SPy6vsh1
mnKtRI7r/u50ySOtc+A38ICQG4zcgz4O+drNTCc/PZ9+OxI9KGd5YPfox2sEuVEuI6627DWPI6eX
4gD29sRXNKZD7rjmrho=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEBTCCAu2gAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBpTELMAkGA1UEBhMCSVQxCzAJBgNVBAgT
AlBEMQ8wDQYDVQQHEwZQYWRvdmExIDAeBgNVBAoTF0VuZ2l3ZWIgU2VjdXJpdHkgcy5yLmwuMRsw
GQYDVQQLFhJSaWNlcmNhICYgU3ZpbHVwcG8xEDAOBgNVBAMTB1Jvb3QgQ0ExJzAlBgkqhkiG9w0B
CQEWGGRhbmllbGUuZ2FnbGlhcmRpQGVuZy5pdDAeFw0wNzA3MDUxMzE0NTNaFw0wODA3MDQxMzE0
NTNaMIH8MQswCQYDVQQGEwJJVDELMAkGA1UECBMCUEQxDzANBgNVBAcTBlBhZG92YTEgMB4GA1UE
ChMXRW5naXdlYiBTZWN1cml0eSBzLnIubC4xHzAdBgNVBAsTFlNlY3VyaXR5IEJ1c2luZXNzIFVu
aXQxGzAZBgNVBAMTEkRhbiB0aGUgWE1MIFNpZ25lcjEnMCUGCSqGSIb3DQEJARYYZGFuaWVsZS5n
YWdsaWFyZGlAZW5nLml0MRAwDgYDVQQqEwdEYW5pZWxlMRIwEAYDVQQEEwlHYWdsaWFyZGkxDDAK
BgNVBC4TA2RhbjESMBAGA1UEDBMJZGV2ZWxvcGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
gQDE/3LhqnCssVfrWi65m4xkBIvrwon1rrJM9ggtixa3E58zxZwimgvDc9/ZSJsjnEpA98AaB1an
Jc2/NzXJl6T+7LMh+07zHCEU9/+BGtE/Do4O+0fzvu3Rho3QzCy/wbdB6OnaRY/kpgikZahGGUIk
GgSlzyFo2XWoogNmX1iqkQIDAQABo2swaTAJBgNVHRMEAjAAMA4GA1UdDwEB/wQEAwIGQDAsBgNV
HR8EJTAjMCGgH6AdhhtodHRwOi8vZ2FnbGlhcmRpZC1kL2NybC5jcmwwHgYJYIZIAYb4QgENBBEW
D3hjYSBjZXJ0aWZpY2F0ZTANBgkqhkiG9w0BAQUFAAOCAQEAYru2Tqn8zN9I6YGRt5pbg5DtzxAp
+lSHLM8Xbmj3TEl6rCxeFdbUVyxWHb4ewVB7eQgAOiMH5dd2SrMnQqMHy7QKIYtYgxC+1/B2tNW4
RfituZ0ON1VWEc7AxSdGS6GRXoDXBjUpHj93QK77Tv7MP4glutS/t1eJKPpjtXmBMCPm/JzGcrGK
yu7jIp3V8vjJFyZzv9D/P+H/XclePGgASPg67voHibY78FTE5lNIZw6hYc4b6hXEH7WAtu60FY1s
V9IPJxiHzbgBFsGOgV+6HiXX1Q6nMODXWanUkPxx6zOxxtBCnnyFYmEw6uMlXn/E0GGgswhYrrPD
UciVxjpGYw==
</ds:X509Certificate>
</ds:X509Data>
<ds:KeyValue>
<ds:RSAKeyValue>
<ds:Modulus>
xP9y4apwrLFX61ouuZuMZASL68KJ9a6yTPYILYsWtxOfM8WcIpoLw3Pf2UibI5xKQPfAGgdWpyXN
vzc1yZek/uyzIftO8xwhFPf/gRrRPw6ODvtH877t0YaN0Mwsv8G3Qejp2kWP5KYIpGWoRhlCJBoE
pc8haNl1qKIDZl9YqpE=
</ds:Modulus>
<ds:Exponent>AQAB</ds:Exponent>
</ds:RSAKeyValue>
</ds:KeyValue>
</ds:KeyInfo>
</ds:Signature></users>

Reply via email to