Output
The output below corresponds to the results from two calls to sign
. The first call is made without setting the certificate store on the XML Digital Signature object (certStore
). The second call is made after setting the certificate store. The result from the first call contains only one <X509Data>
element. This is because when CERTIFICATES flag is passed in, sign
tries to get the copy of the certificate of the key used to sign and, when the certificate is found as the key is created using createKeyFromCSP
, it is inserted in the signed signature document.
The result from the second call contains four <X509Data>
elements. This is because the sign
method first tries to get the certificate of the key used and inserts any found certificate into the resultant signature document, as shown above. Because the certificate store is set, the sign method then gets all the certificates from that store and inserts them into the signed signature. In this case, there are three certificates in the store.
Output from first call
Sign with WriteKeyInfo = CERTIFICATES: The specified data was signed succesffully. Resultant signature: <?xml version="1.0"?> <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="#obj" Type="http://www.w3.org/2000/09/xmldsig#;Object"> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>8UIaiFvvufk+ybGUHcMk5+2Nmh4=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> IFILa99v5A6V1v37H+OiqO0bmGyRaprUzlV3dPbx88YzDdIu9GooyMcsGvpBshBbZPej8f2L HQoMso+/VctXUA== </ds:SignatureValue> <ds:Object Id="obj" MimeType="text/plain">Hello, World!</ds:Object> <ds:KeyInfo><X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Certificate> MIIE7jCCBK2gAwIBAgIKJMLTcgABAAAACDAJBgcqhkjOOAQDMIGYMSMwIQYJKoZIhvcNAQkB FhRpbmZvQHNlY3VyZW15eG1sLmNvbTELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVN0YXRlMQ0w CwYDVQQHEwRDaXR5MRYwFAYDVQQKEw1TZWN1cmUgTXkgWG1sMRUwEwYDVQQLEwxEZXBhcnRt ZW50IFgxFjAUBgNVBAMTDVNlY3VyZU15WG1sQ0EwHhcNMDIwMzE4MjEzNTIwWhcNMDMwMzE4 MjE0NTIwWjCBgDEfMB0GCSqGSIb3DQEJARYQbWVAbXljb21wYW55LmNvbTELMAkGA1UEBhMC VVMxDjAMBgNVBAgTBVN0YXRlMQ0wCwYDVQQHEwRDaXR5MRIwEAYDVQQKEwlteWNvbXBhbnkx EDAOBgNVBAsTB215Z3JvdXAxCzAJBgNVBAMTAm1lMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB AMGdnykEK7OBhAju8x27CMN+tn2uKpEMx0XJi2s/xOKmFA38gsKHxztEePqf8+wvj0s7riaj 2qMXkyi9NjXQc38CAwEAAaOCAvEwggLtMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUEDDAKBggr BgEFBQcDAzAdBgNVHQ4EFgQUhQuFAsfjwPOHH1OpWgDawmprtw8wgdQGA1UdIwSBzDCByYAU UCwn08rgfoE/tz+9LFiXnhsunGChgZ6kgZswgZgxIzAhBgkqhkiG9w0BCQEWFGluZm9Ac2Vj dXJlbXl4bWwuY29tMQswCQYDVQQGEwJVUzEOMAwGA1UECBMFU3RhdGUxDTALBgNVBAcTBENp dHkxFjAUBgNVBAoTDVNlY3VyZSBNeSBYbWwxFTATBgNVBAsTDERlcGFydG1lbnQgWDEWMBQG A1UEAxMNU2VjdXJlTXlYbWxDQYIQFyT67Mch3rJK5iPpWPqpsDCBsQYDVR0fBIGpMIGmMFCg TqBMhkpodHRwOi8va3VydGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2Vy dEVucm9sbC9TZWN1cmVNeVhtbENBLmNybDBSoFCgToZMZmlsZTovL1xca3VydGRpbmctMDEu cmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21cQ2VydEVucm9sbFxTZWN1cmVNeVhtbENBLmNy bDCCARoGCCsGAQUFBwEBBIIBDDCCAQgwgYAGCCsGAQUFBzAChnRodHRwOi8va3VydGRpbmct MDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2VydEVucm9sbC9rdXJ0ZGluZy0wMS5y ZWRtb25kLmNvcnAubWljcm9zb2Z0LmNvbV9TZWN1cmVNeVhtbENBKDEpLmNydDCBggYIKwYB BQUHMAKGdmZpbGU6Ly9cXGt1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3NvZnQuY29t XENlcnRFbnJvbGxca3VydGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21fU2Vj dXJlTXlYbWxDQSgxKS5jcnQwCQYHKoZIzjgEAwMwADAtAhUA6NJsENtI3g4k+zROZ9LYPb25 K50CFGPgAaP4Pl0wHAZXa3X9UyIfCsQQ </X509Certificate> </X509Data> </ds:KeyInfo> </ds:Signature>
Output from second call
certStore set on xmldsig. number of certificates in the store = 3 Sign with WriteKeyInfo = CERTIFICATES: The specified data was signed succesffully. Resultant signature: <?xml version="1.0"?> <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="#obj" Type="http://www.w3.org/2000/09/xmldsig#;Object"> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue>8UIaiFvvufk+ybGUHcMk5+2Nmh4=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> IFILa99v5A6V1v37H+OiqO0bmGyRaprUzlV3dPbx88YzDdIu9GooyMcsGvpBshBbZPej8f2L HQoMso+/VctXUA== </ds:SignatureValue> <ds:Object Id="obj" MimeType="text/plain">Hello, World!</ds:Object> <ds:KeyInfo> <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Certificate> MIIE7jCCBK2gAwIBAgIKJMLTcgABAAAACDAJBgcqhkjOOAQDMIGYMSMwIQYJKoZIhvcNAQkB FhRpbmZvQHNlY3VyZW15eG1sLmNvbTELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVN0YXRlMQ0w CwYDVQQHEwRDaXR5MRYwFAYDVQQKEw1TZWN1cmUgTXkgWG1sMRUwEwYDVQQLEwxEZXBhcnRt ZW50IFgxFjAUBgNVBAMTDVNlY3VyZU15WG1sQ0EwHhcNMDIwMzE4MjEzNTIwWhcNMDMwMzE4 MjE0NTIwWjCBgDEfMB0GCSqGSIb3DQEJARYQbWVAbXljb21wYW55LmNvbTELMAkGA1UEBhMC VVMxDjAMBgNVBAgTBVN0YXRlMQ0wCwYDVQQHEwRDaXR5MRIwEAYDVQQKEwlteWNvbXBhbnkx EDAOBgNVBAsTB215Z3JvdXAxCzAJBgNVBAMTAm1lMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB AMGdnykEK7OBhAju8x27CMN+tn2uKpEMx0XJi2s/xOKmFA38gsKHxztEePqf8+wvj0s7riaj 2qMXkyi9NjXQc38CAwEAAaOCAvEwggLtMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUEDDAKBggr BgEFBQcDAzAdBgNVHQ4EFgQUhQuFAsfjwPOHH1OpWgDawmprtw8wgdQGA1UdIwSBzDCByYAU UCwn08rgfoE/tz+9LFiXnhsunGChgZ6kgZswgZgxIzAhBgkqhkiG9w0BCQEWFGluZm9Ac2Vj dXJlbXl4bWwuY29tMQswCQYDVQQGEwJVUzEOMAwGA1UECBMFU3RhdGUxDTALBgNVBAcTBENp dHkxFjAUBgNVBAoTDVNlY3VyZSBNeSBYbWwxFTATBgNVBAsTDERlcGFydG1lbnQgWDEWMBQG A1UEAxMNU2VjdXJlTXlYbWxDQYIQFyT67Mch3rJK5iPpWPqpsDCBsQYDVR0fBIGpMIGmMFCg TqBMhkpodHRwOi8va3VydGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2Vy dEVucm9sbC9TZWN1cmVNeVhtbENBLmNybDBSoFCgToZMZmlsZTovL1xca3VydGRpbmctMDEu cmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21cQ2VydEVucm9sbFxTZWN1cmVNeVhtbENBLmNy bDCCARoGCCsGAQUFBwEBBIIBDDCCAQgwgYAGCCsGAQUFBzAChnRodHRwOi8va3VydGRpbmct MDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2VydEVucm9sbC9rdXJ0ZGluZy0wMS5y ZWRtb25kLmNvcnAubWljcm9zb2Z0LmNvbV9TZWN1cmVNeVhtbENBKDEpLmNydDCBggYIKwYB BQUHMAKGdmZpbGU6Ly9cXGt1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3NvZnQuY29t XENlcnRFbnJvbGxca3VydGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21fU2Vj dXJlTXlYbWxDQSgxKS5jcnQwCQYHKoZIzjgEAwMwADAtAhUA6NJsENtI3g4k+zROZ9LYPb25 K50CFGPgAaP4Pl0wHAZXa3X9UyIfCsQQ </X509Certificate> </X509Data> <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Certificate> MIIFIjCCBIugAwIBAgIKOMW2EAAAAAAAAjANBgkqhkiG9w0BAQUFADCBjTEkMCIGCSqGSIb3 DQEJARYVa2RlZGluZ0BtaWNyb3NvZnQuY29tMQswCQYDVQQGEwJVUzELMAkGA1UECBMCd2Ex EDAOBgNVBAcTB3JlZG1vbmQxEjAQBgNVBAoTCW1pY3Jvc29mdDEOMAwGA1UECxMFeG1sdWUx FTATBgNVBAMTDHRlc3RDQW1zRUNTUDAeFw0wMjAzMjIxODUwNDhaFw0wMzAzMjIxOTAwNDha MH4xJDAiBgkqhkiG9w0BCQEWFWtkZWRpbmdAbWljcm9zb2Z0LmNvbTELMAkGA1UEBhMCVVMx CzAJBgNVBAgTAndhMRAwDgYDVQQHEwdyZWRtb25kMQ0wCwYDVQQKEwRtc2Z0MQ4wDAYDVQQL EwV4bWx1ZTELMAkGA1UEAxMCbWUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA4yn1pJsP1PC8 Ii3961dqcHm8OGYRxMgGREwq5WyMEvnnQAinRoN6LFk0jKrBMNQqpt/KgeaIgkVKs4kfSwJD AwIDAQABo4IC2TCCAtUwDgYDVR0PAQH/BAQDAgbAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMB0G A1UdDgQWBBRwJHnJ2w26IBlunPoqzJREZEayNjCByQYDVR0jBIHBMIG+gBSAkq3y1qiTJL9F ajLJbP2Wktrqa6GBk6SBkDCBjTEkMCIGCSqGSIb3DQEJARYVa2RlZGluZ0BtaWNyb3NvZnQu Y29tMQswCQYDVQQGEwJVUzELMAkGA1UECBMCd2ExEDAOBgNVBAcTB3JlZG1vbmQxEjAQBgNV BAoTCW1pY3Jvc29mdDEOMAwGA1UECxMFeG1sdWUxFTATBgNVBAMTDHRlc3RDQW1zRUNTUIIQ TvdcKS97h49Pds+/biO1DjCBrwYDVR0fBIGnMIGkME+gTaBLhklodHRwOi8va3VydGRpbmct MDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2VydEVucm9sbC90ZXN0Q0Ftc0VDU1Au Y3JsMFGgT6BNhktmaWxlOi8vXFxrdXJ0ZGluZy0wMS5yZWRtb25kLmNvcnAubWljcm9zb2Z0 LmNvbVxDZXJ0RW5yb2xsXHRlc3RDQW1zRUNTUC5jcmwwggEPBggrBgEFBQcBAQSCAQEwgf4w fAYIKwYBBQUHMAKGcGh0dHA6Ly9rdXJ0ZGluZy0wMS5yZWRtb25kLmNvcnAubWljcm9zb2Z0 LmNvbS9DZXJ0RW5yb2xsL2t1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3NvZnQuY29t X3Rlc3RDQW1zRUNTUC5jcnQwfgYIKwYBBQUHMAKGcmZpbGU6Ly9cXGt1cnRkaW5nLTAxLnJl ZG1vbmQuY29ycC5taWNyb3NvZnQuY29tXENlcnRFbnJvbGxca3VydGRpbmctMDEucmVkbW9u ZC5jb3JwLm1pY3Jvc29mdC5jb21fdGVzdENBbXNFQ1NQLmNydDANBgkqhkiG9w0BAQUFAAOB gQCNHTpOxFuzk7x834gZz98Yr4OUNJnVtDbUrCEPbruZKGGOBxjSqg4ZEZO6e8GpT7+M5IzT IQSuwlJO5pkOQOOmYI9c4f+gE9pZGnJYnKPVrnhWMv+EWb/BQsX2BdEijOfLKWy+JqPP98YW 9xhGzxnqIcldcOwY/8Qw/o+6BaOIYA== </X509Certificate> </X509Data> <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Certificate> MIIE7jCCBK2gAwIBAgIKJMLTcgABAAAACDAJBgcqhkjOOAQDMIGYMSMwIQYJKoZIhvcNAQkB FhRpbmZvQHNlY3VyZW15eG1sLmNvbTELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVN0YXRlMQ0w CwYDVQQHEwRDaXR5MRYwFAYDVQQKEw1TZWN1cmUgTXkgWG1sMRUwEwYDVQQLEwxEZXBhcnRt ZW50IFgxFjAUBgNVBAMTDVNlY3VyZU15WG1sQ0EwHhcNMDIwMzE4MjEzNTIwWhcNMDMwMzE4 MjE0NTIwWjCBgDEfMB0GCSqGSIb3DQEJARYQbWVAbXljb21wYW55LmNvbTELMAkGA1UEBhMC VVMxDjAMBgNVBAgTBVN0YXRlMQ0wCwYDVQQHEwRDaXR5MRIwEAYDVQQKEwlteWNvbXBhbnkx EDAOBgNVBAsTB215Z3JvdXAxCzAJBgNVBAMTAm1lMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJB AMGdnykEK7OBhAju8x27CMN+tn2uKpEMx0XJi2s/xOKmFA38gsKHxztEePqf8+wvj0s7riaj 2qMXkyi9NjXQc38CAwEAAaOCAvEwggLtMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUEDDAKBggr BgEFBQcDAzAdBgNVHQ4EFgQUhQuFAsfjwPOHH1OpWgDawmprtw8wgdQGA1UdIwSBzDCByYAU UCwn08rgfoE/tz+9LFiXnhsunGChgZ6kgZswgZgxIzAhBgkqhkiG9w0BCQEWFGluZm9Ac2Vj dXJlbXl4bWwuY29tMQswCQYDVQQGEwJVUzEOMAwGA1UECBMFU3RhdGUxDTALBgNVBAcTBENp dHkxFjAUBgNVBAoTDVNlY3VyZSBNeSBYbWwxFTATBgNVBAsTDERlcGFydG1lbnQgWDEWMBQG A1UEAxMNU2VjdXJlTXlYbWxDQYIQFyT67Mch3rJK5iPpWPqpsDCBsQYDVR0fBIGpMIGmMFCg TqBMhkpodHRwOi8va3VydGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2Vy dEVucm9sbC9TZWN1cmVNeVhtbENBLmNybDBSoFCgToZMZmlsZTovL1xca3VydGRpbmctMDEu cmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21cQ2VydEVucm9sbFxTZWN1cmVNeVhtbENBLmNy bDCCARoGCCsGAQUFBwEBBIIBDDCCAQgwgYAGCCsGAQUFBzAChnRodHRwOi8va3VydGRpbmct MDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb20vQ2VydEVucm9sbC9rdXJ0ZGluZy0wMS5y ZWRtb25kLmNvcnAubWljcm9zb2Z0LmNvbV9TZWN1cmVNeVhtbENBKDEpLmNydDCBggYIKwYB BQUHMAKGdmZpbGU6Ly9cXGt1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3NvZnQuY29t XENlcnRFbnJvbGxca3VydGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21fU2Vj dXJlTXlYbWxDQSgxKS5jcnQwCQYHKoZIzjgEAwMwADAtAhUA6NJsENtI3g4k+zROZ9LYPb25 K50CFGPgAaP4Pl0wHAZXa3X9UyIfCsQQ </X509Certificate> </X509Data> <X509Data xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Certificate> MIIGPDCCBfugAwIBAgIKELG+IAABAAAABjAJBgcqhkjOOAQDMIGYMSMwIQYJKoZIhvcNAQkB FhRpbmZvQHNlY3VyZW15eG1sLmNvbTELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVN0YXRlMQ0w CwYDVQQHEwRDaXR5MRYwFAYDVQQKEw1TZWN1cmUgTXkgWG1sMRUwEwYDVQQLEwxEZXBhcnRt ZW50IFgxFjAUBgNVBAMTDVNlY3VyZU15WG1sQ0EwHhcNMDIwMzA1MDAxMzU0WhcNMDMwMzA1 MDAyMzU0WjCBhjEkMCIGCSqGSIb3DQEJARYVa2RlZGluZ0BtaWNyb3NvZnQuY29tMQswCQYD VQQGEwJVUzEOMAwGA1UECBMFU3RhdGUxDTALBgNVBAcTBENpdHkxCzAJBgNVBAoTAm1zMRUw EwYDVQQLEwxEZXBhcnRtZW50IFgxDjAMBgNVBAMTBWt1cnQxMIIBtzCCASsGByqGSM44BAEw ggEeAoGBAMCx8FaFGM9rcR5CpylEKDf7tX7Ql6sOtXnW/6QtVj7+hFehQV5dBPLxhx4385tm S5uBrv4/L7DV2A04vMxhV5oajjuTHtrFKToG1M2aXme2TdGDGhV1s4Hig4P4G/Q6yv1Eo+AR rngdxwM5hUE/ELukjP2ARmSqYeyU3XWF26HVAhUAnkI1onvHNR4tMSvPMc0rhOBHgMECgYBA Po5Q4h6Drie+29VunVFuXD56Gak8IiMbUCr7DrsLc8epF+iv18F4p/onoCnWLVCwEFJq7pI4 4suQe9HaPCyDIB1gxhK5RihMlnrqkaQzLZTvXbX+gquWQXwysRmHd6wDYl+8X6Hf3orZZr82 +X2zzFNwOHEt6lyd0B7AqHPmdgOBhQACgYEArv1GX+/qY99y0xGrdaJANlm7YjJ5/j7famSv 6cHVwtY79WXFFBDlFGNVOKGiYGsRG6BXX00G4yHLOndIsywsMYDejB+TuUfvkGcEPGDZErtP y1F/xgJ48jhPttwrv8Wy3k279+ufB27NpBC/vW2Rxf3bh22L7V0KNa0VuTwie2ijggLcMIIC 2DAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFOQijPYxF4NmsK0MPKspDu/WwipxMIHUBgNV HSMEgcwwgcmAFFAsJ9PK4H6BP7c/vSxYl54bLpxgoYGepIGbMIGYMSMwIQYJKoZIhvcNAQkB FhRpbmZvQHNlY3VyZW15eG1sLmNvbTELMAkGA1UEBhMCVVMxDjAMBgNVBAgTBVN0YXRlMQ0w CwYDVQQHEwRDaXR5MRYwFAYDVQQKEw1TZWN1cmUgTXkgWG1sMRUwEwYDVQQLEwxEZXBhcnRt ZW50IFgxFjAUBgNVBAMTDVNlY3VyZU15WG1sQ0GCEBck+uzHId6ySuYj6Vj6qbAwgbEGA1Ud HwSBqTCBpjBQoE6gTIZKaHR0cDovL2t1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3Nv ZnQuY29tL0NlcnRFbnJvbGwvU2VjdXJlTXlYbWxDQS5jcmwwUqBQoE6GTGZpbGU6Ly9cXGt1 cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3NvZnQuY29tXENlcnRFbnJvbGxcU2VjdXJl TXlYbWxDQS5jcmwwggEaBggrBgEFBQcBAQSCAQwwggEIMIGABggrBgEFBQcwAoZ0aHR0cDov L2t1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3NvZnQuY29tL0NlcnRFbnJvbGwva3Vy dGRpbmctMDEucmVkbW9uZC5jb3JwLm1pY3Jvc29mdC5jb21fU2VjdXJlTXlYbWxDQSgxKS5j cnQwgYIGCCsGAQUFBzAChnZmaWxlOi8vXFxrdXJ0ZGluZy0wMS5yZWRtb25kLmNvcnAubWlj cm9zb2Z0LmNvbVxDZXJ0RW5yb2xsXGt1cnRkaW5nLTAxLnJlZG1vbmQuY29ycC5taWNyb3Nv ZnQuY29tX1NlY3VyZU15WG1sQ0EoMSkuY3J0MAkGByqGSM44BAMDMAAwLQIUJd5wMUHb8aOe bPsuXLuf4sYFepcCFQCMKKcCTb7m9aR7Pm4+w0srdOrVGw== </X509Certificate> </X509Data> </ds:KeyInfo> </ds:Signature>