XAdES external signing using client privateKey

205 views Asked by At

I'm trying to digitally sign XML document using client-server signing. The certificate is in a Workstation, I'm using a C# desktop app to read the certificates and do the signing with the private key.

The server generates digest of XML and sends the digest to client, the client signs the digest/hash with client`s private key and sends it to server then the server merges the signed hash with the XML file to get the signed XML.

I have a REST service with two endpoints one to getDataToSign and the other one to generate and add the signature value to document.

The signed file is generated successfully then when I try to validate the signature seems to be that is incorrect, I got the following message:

Qualification: N/A
Qualification Details : Unable to build a certificate chain up to a trusted list!
The signature/seal is not a valid AdES digital signature!
Signature format: XAdES-BASELINE-B
Indication: TOTAL_FAILED 
Sub indication: HASH_FAILURE
AdES Validation Details : The reference data object is not intact!
//SERVER SIDE
1. getDataToSign

// Initialize the rest client
RestDocumentSignatureService restClient = new RestDocumentSignatureServiceImpl();

// Initialize parameters
RemoteSignatureParameters parameters = new RemoteSignatureParameters();
parameters.setSignatureLevel(SignatureLevel.XAdES_BASELINE_B);
parameters.setSignaturePackaging(SignaturePackaging.ENVELOPING);
parameters.setDigestAlgorithm(DigestAlgorithm.SHA256);
parameters.getBLevelParams().setSigningDate(new Date());
parameters.setGenerateTBSWithoutCertificate(true);

@PostMapping("/getDataToSign")
ResponseEntity<?> getDataToSign(@RequestBody DataToSignOneDocumentDTO dataToSignDTO) {
    
// Add parameters
dataToSignDTO.setParameters(parameters);

// Compute the digest to be signed
ToBeSignedDTO dataToSign = restClient.getDataToSign(dataToSignDTO);
    
return ResponseEntity.ok().body(dataToSign);
}
// CLIENT SIDE
2. Get the signature value for signed information using the private key and specified algorithm

// Using C# desktop app to read workstation certificates

public byte[] SignData(byte[] dataToSign, X509Certificate2 certificate)
{  
    using (RSA rsa = certificate.GetRSAPrivateKey())
    {
        signatureValue = rsa.SignData(dataToSign, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
        return signatureValue;
    }
}
// SERVER SIDE
3. POST /signDocument
   ResponseEntity<?> signDocument(@RequestBody SignOneDocumentDTO signDocument)
    // Add parameters
    dataToSignDTO.setParameters(parameters);
    
    // Add the signature value to the document
    RemoteDocument signedDocument = restClient.signDocument(signDocument);

First request:

curl --location --request POST 'http://localhost:8080/getDataToSign' \
--header 'Content-Type: application/json' \
--data-raw '{
  "toSignDocument" : {
    "bytes" : "PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8Y2F0YWxvZz4NCiAgIDxib29rIGlkPSJiazEwMSI+DQogICAgICA8YXV0aG9yPkdhbWJhcmRlbGxhLCBNYXR0aGV3PC9hdXRob3I+DQogICAgICA8dGl0bGU+WE1MIERldmVsb3BlcidzIEd1aWRlPC90aXRsZT4NCiAgICAgIDxnZW5yZT5Db21wdXRlcjwvZ2VucmU+DQogICAgICA8cHJpY2U+NDQuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTEwLTAxPC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+QW4gaW4tZGVwdGggbG9vayBhdCBjcmVhdGluZyBhcHBsaWNhdGlvbnMgDQogICAgICB3aXRoIFhNTC48L2Rlc2NyaXB0aW9uPg0KICAgPC9ib29rPg0KICAgPGJvb2sgaWQ9ImJrMTAyIj4NCiAgICAgIDxhdXRob3I+UmFsbHMsIEtpbTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPk1pZG5pZ2h0IFJhaW48L3RpdGxlPg0KICAgICAgPGdlbnJlPkZhbnRhc3k8L2dlbnJlPg0KICAgICAgPHByaWNlPjUuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTEyLTE2PC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+QSBmb3JtZXIgYXJjaGl0ZWN0IGJhdHRsZXMgY29ycG9yYXRlIHpvbWJpZXMsIA0KICAgICAgYW4gZXZpbCBzb3JjZXJlc3MsIGFuZCBoZXIgb3duIGNoaWxkaG9vZCB0byBiZWNvbWUgcXVlZW4gDQogICAgICBvZiB0aGUgd29ybGQuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwMyI+DQogICAgICA8YXV0aG9yPkNvcmV0cywgRXZhPC9hdXRob3I+DQogICAgICA8dGl0bGU+TWFldmUgQXNjZW5kYW50PC90aXRsZT4NCiAgICAgIDxnZW5yZT5GYW50YXN5PC9nZW5yZT4NCiAgICAgIDxwcmljZT41Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0xMS0xNzwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPkFmdGVyIHRoZSBjb2xsYXBzZSBvZiBhIG5hbm90ZWNobm9sb2d5IA0KICAgICAgc29jaWV0eSBpbiBFbmdsYW5kLCB0aGUgeW91bmcgc3Vydml2b3JzIGxheSB0aGUgDQogICAgICBmb3VuZGF0aW9uIGZvciBhIG5ldyBzb2NpZXR5LjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMDQiPg0KICAgICAgPGF1dGhvcj5Db3JldHMsIEV2YTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPk9iZXJvbidzIExlZ2FjeTwvdGl0bGU+DQogICAgICA8Z2VucmU+RmFudGFzeTwvZ2VucmU+DQogICAgICA8cHJpY2U+NS45NTwvcHJpY2U+DQogICAgICA8cHVibGlzaF9kYXRlPjIwMDEtMDMtMTA8L3B1Ymxpc2hfZGF0ZT4NCiAgICAgIDxkZXNjcmlwdGlvbj5JbiBwb3N0LWFwb2NhbHlwc2UgRW5nbGFuZCwgdGhlIG15c3RlcmlvdXMgDQogICAgICBhZ2VudCBrbm93biBvbmx5IGFzIE9iZXJvbiBoZWxwcyB0byBjcmVhdGUgYSBuZXcgbGlmZSANCiAgICAgIGZvciB0aGUgaW5oYWJpdGFudHMgb2YgTG9uZG9uLiBTZXF1ZWwgdG8gTWFldmUgDQogICAgICBBc2NlbmRhbnQuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwNSI+DQogICAgICA8YXV0aG9yPkNvcmV0cywgRXZhPC9hdXRob3I+DQogICAgICA8dGl0bGU+VGhlIFN1bmRlcmVkIEdyYWlsPC90aXRsZT4NCiAgICAgIDxnZW5yZT5GYW50YXN5PC9nZW5yZT4NCiAgICAgIDxwcmljZT41Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMS0wOS0xMDwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPlRoZSB0d28gZGF1Z2h0ZXJzIG9mIE1hZXZlLCBoYWxmLXNpc3RlcnMsIA0KICAgICAgYmF0dGxlIG9uZSBhbm90aGVyIGZvciBjb250cm9sIG9mIEVuZ2xhbmQuIFNlcXVlbCB0byANCiAgICAgIE9iZXJvbidzIExlZ2FjeS48L2Rlc2NyaXB0aW9uPg0KICAgPC9ib29rPg0KICAgPGJvb2sgaWQ9ImJrMTA2Ij4NCiAgICAgIDxhdXRob3I+UmFuZGFsbCwgQ3ludGhpYTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPkxvdmVyIEJpcmRzPC90aXRsZT4NCiAgICAgIDxnZW5yZT5Sb21hbmNlPC9nZW5yZT4NCiAgICAgIDxwcmljZT40Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0wOS0wMjwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPldoZW4gQ2FybGEgbWVldHMgUGF1bCBhdCBhbiBvcm5pdGhvbG9neSANCiAgICAgIGNvbmZlcmVuY2UsIHRlbXBlcnMgZmx5IGFzIGZlYXRoZXJzIGdldCBydWZmbGVkLjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMDciPg0KICAgICAgPGF1dGhvcj5UaHVybWFuLCBQYXVsYTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPlNwbGlzaCBTcGxhc2g8L3RpdGxlPg0KICAgICAgPGdlbnJlPlJvbWFuY2U8L2dlbnJlPg0KICAgICAgPHByaWNlPjQuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTExLTAyPC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+QSBkZWVwIHNlYSBkaXZlciBmaW5kcyB0cnVlIGxvdmUgdHdlbnR5IA0KICAgICAgdGhvdXNhbmQgbGVhZ3VlcyBiZW5lYXRoIHRoZSBzZWEuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwOCI+DQogICAgICA8YXV0aG9yPktub3JyLCBTdGVmYW48L2F1dGhvcj4NCiAgICAgIDx0aXRsZT5DcmVlcHkgQ3Jhd2xpZXM8L3RpdGxlPg0KICAgICAgPGdlbnJlPkhvcnJvcjwvZ2VucmU+DQogICAgICA8cHJpY2U+NC45NTwvcHJpY2U+DQogICAgICA8cHVibGlzaF9kYXRlPjIwMDAtMTItMDY8L3B1Ymxpc2hfZGF0ZT4NCiAgICAgIDxkZXNjcmlwdGlvbj5BbiBhbnRob2xvZ3kgb2YgaG9ycm9yIHN0b3JpZXMgYWJvdXQgcm9hY2hlcywNCiAgICAgIGNlbnRpcGVkZXMsIHNjb3JwaW9ucyAgYW5kIG90aGVyIGluc2VjdHMuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwOSI+DQogICAgICA8YXV0aG9yPktyZXNzLCBQZXRlcjwvYXV0aG9yPg0KICAgICAgPHRpdGxlPlBhcmFkb3ggTG9zdDwvdGl0bGU+DQogICAgICA8Z2VucmU+U2NpZW5jZSBGaWN0aW9uPC9nZW5yZT4NCiAgICAgIDxwcmljZT42Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0xMS0wMjwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPkFmdGVyIGFuIGluYWR2ZXJ0YW50IHRyaXAgdGhyb3VnaCBhIEhlaXNlbmJlcmcNCiAgICAgIFVuY2VydGFpbnR5IERldmljZSwgSmFtZXMgU2Fsd2F5IGRpc2NvdmVycyB0aGUgcHJvYmxlbXMgDQogICAgICBvZiBiZWluZyBxdWFudHVtLjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMTAiPg0KICAgICAgPGF1dGhvcj5PJ0JyaWVuLCBUaW08L2F1dGhvcj4NCiAgICAgIDx0aXRsZT5NaWNyb3NvZnQgLk5FVDogVGhlIFByb2dyYW1taW5nIEJpYmxlPC90aXRsZT4NCiAgICAgIDxnZW5yZT5Db21wdXRlcjwvZ2VucmU+DQogICAgICA8cHJpY2U+MzYuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTEyLTA5PC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+TWljcm9zb2Z0J3MgLk5FVCBpbml0aWF0aXZlIGlzIGV4cGxvcmVkIGluIA0KICAgICAgZGV0YWlsIGluIHRoaXMgZGVlcCBwcm9ncmFtbWVyJ3MgcmVmZXJlbmNlLjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMTEiPg0KICAgICAgPGF1dGhvcj5PJ0JyaWVuLCBUaW08L2F1dGhvcj4NCiAgICAgIDx0aXRsZT5NU1hNTDM6IEEgQ29tcHJlaGVuc2l2ZSBHdWlkZTwvdGl0bGU+DQogICAgICA8Z2VucmU+Q29tcHV0ZXI8L2dlbnJlPg0KICAgICAgPHByaWNlPjM2Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0xMi0wMTwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPlRoZSBNaWNyb3NvZnQgTVNYTUwzIHBhcnNlciBpcyBjb3ZlcmVkIGluIA0KICAgICAgZGV0YWlsLCB3aXRoIGF0dGVudGlvbiB0byBYTUwgRE9NIGludGVyZmFjZXMsIFhTTFQgcHJvY2Vzc2luZywgDQogICAgICBTQVggYW5kIG1vcmUuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazExMiI+DQogICAgICA8YXV0aG9yPkdhbG9zLCBNaWtlPC9hdXRob3I+DQogICAgICA8dGl0bGU+VmlzdWFsIFN0dWRpbyA3OiBBIENvbXByZWhlbnNpdmUgR3VpZGU8L3RpdGxlPg0KICAgICAgPGdlbnJlPkNvbXB1dGVyPC9nZW5yZT4NCiAgICAgIDxwcmljZT40OS45NTwvcHJpY2U+DQogICAgICA8cHVibGlzaF9kYXRlPjIwMDEtMDQtMTY8L3B1Ymxpc2hfZGF0ZT4NCiAgICAgIDxkZXNjcmlwdGlvbj5NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA3IGlzIGV4cGxvcmVkIGluIGRlcHRoLA0KICAgICAgbG9va2luZyBhdCBob3cgVmlzdWFsIEJhc2ljLCBWaXN1YWwgQysrLCBDIywgYW5kIEFTUCsgYXJlIA0KICAgICAgaW50ZWdyYXRlZCBpbnRvIGEgY29tcHJlaGVuc2l2ZSBkZXZlbG9wbWVudCANCiAgICAgIGVudmlyb25tZW50LjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQo8L2NhdGFsb2c+",
    "digestAlgorithm" : null,
    "name" : "Books.xml"
  }
}'

Second Request

curl --location --request POST 'http://localhost:8080/signDocument' \
--header 'Content-Type: application/json' \
--data-raw '{
  "parameters" : {
    "signingCertificate" : {
      "encodedCertificate" : "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"
    },
    "certificateChain" : [ ],
    "detachedContents" : null,
    "asicContainerType" : null,
    "signatureLevel" : "XAdES_BASELINE_B",
    "signaturePackaging" : "ENVELOPED",
    "signatureAlgorithm" : "RSA_SHA256",
    "digestAlgorithm" : "SHA256",
    "encryptionAlgorithm" : "RSA",
    "referenceDigestAlgorithm" : null,
    "contentTimestampParameters" : {
      "digestAlgorithm" : "SHA256",
      "canonicalizationMethod" : "http://www.w3.org/2001/10/xml-exc-c14n#"
    },
    "signatureTimestampParameters" : {
      "digestAlgorithm" : "SHA256",
      "canonicalizationMethod" : "http://www.w3.org/2001/10/xml-exc-c14n#"
    },
    "archiveTimestampParameters" : {
      "digestAlgorithm" : "SHA256",
      "canonicalizationMethod" : "http://www.w3.org/2001/10/xml-exc-c14n#"
    },
    "signWithExpiredCertificate" : false,
    "generateTBSWithoutCertificate" : false,
    "blevelParams" : {
      "trustAnchorBPPolicy" : true,
      "signingDate" : 1669156519000,
      "claimedSignerRoles" : null,
      "policyId" : null,
      "policyQualifier" : null,
      "policyDescription" : null,
      "policyDigestAlgorithm" : null,
      "policyDigestValue" : null,
      "policySpuri" : null,
      "commitmentTypeIndications" : null,
      "signerLocationPostalAddress" : [ ],
      "signerLocationPostalCode" : null,
      "signerLocationLocality" : null,
      "signerLocationStateOrProvince" : null,
      "signerLocationCountry" : null,
      "signerLocationStreet" : null
    }
  },
  "signatureValue" : {
    "algorithm" : "RSA_SHA256",
    "value" : "MZ8NFMXPO3PuIvmwC2DpPP369SuhXkaETP9xEbAl3nPrks9RdOHgzhrv29z+YtGFOeX28gCkg+XiRFGCqxnxJ6TzfHBJbzt3c3C1cs9NKrR8wt4P4YYIL9Kw1qLHJax/MwrmKzJj3+GBdplXMjT9RfFIMp9V9EDpLN2XqHbZtOfPR8cBD8Yd8ZOwqHaw0ExvcER4ZB0WfrtMU67Xo/xTLrADYXE2yB5GK1qRjM12dArdvRKzjSqspzANxbX7p0/hNTHIIAWDxUFtcs0bJ6KIr3m71FKkx4Helzcy2VBFFEEuO2qBRh/9IwquRdPIrdnUaejcjIjR2105M0P0HfUXQw=="
  },
  "toSignDocument" : {
    "bytes" : "PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8Y2F0YWxvZz4NCiAgIDxib29rIGlkPSJiazEwMSI+DQogICAgICA8YXV0aG9yPkdhbWJhcmRlbGxhLCBNYXR0aGV3PC9hdXRob3I+DQogICAgICA8dGl0bGU+WE1MIERldmVsb3BlcidzIEd1aWRlPC90aXRsZT4NCiAgICAgIDxnZW5yZT5Db21wdXRlcjwvZ2VucmU+DQogICAgICA8cHJpY2U+NDQuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTEwLTAxPC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+QW4gaW4tZGVwdGggbG9vayBhdCBjcmVhdGluZyBhcHBsaWNhdGlvbnMgDQogICAgICB3aXRoIFhNTC48L2Rlc2NyaXB0aW9uPg0KICAgPC9ib29rPg0KICAgPGJvb2sgaWQ9ImJrMTAyIj4NCiAgICAgIDxhdXRob3I+UmFsbHMsIEtpbTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPk1pZG5pZ2h0IFJhaW48L3RpdGxlPg0KICAgICAgPGdlbnJlPkZhbnRhc3k8L2dlbnJlPg0KICAgICAgPHByaWNlPjUuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTEyLTE2PC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+QSBmb3JtZXIgYXJjaGl0ZWN0IGJhdHRsZXMgY29ycG9yYXRlIHpvbWJpZXMsIA0KICAgICAgYW4gZXZpbCBzb3JjZXJlc3MsIGFuZCBoZXIgb3duIGNoaWxkaG9vZCB0byBiZWNvbWUgcXVlZW4gDQogICAgICBvZiB0aGUgd29ybGQuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwMyI+DQogICAgICA8YXV0aG9yPkNvcmV0cywgRXZhPC9hdXRob3I+DQogICAgICA8dGl0bGU+TWFldmUgQXNjZW5kYW50PC90aXRsZT4NCiAgICAgIDxnZW5yZT5GYW50YXN5PC9nZW5yZT4NCiAgICAgIDxwcmljZT41Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0xMS0xNzwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPkFmdGVyIHRoZSBjb2xsYXBzZSBvZiBhIG5hbm90ZWNobm9sb2d5IA0KICAgICAgc29jaWV0eSBpbiBFbmdsYW5kLCB0aGUgeW91bmcgc3Vydml2b3JzIGxheSB0aGUgDQogICAgICBmb3VuZGF0aW9uIGZvciBhIG5ldyBzb2NpZXR5LjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMDQiPg0KICAgICAgPGF1dGhvcj5Db3JldHMsIEV2YTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPk9iZXJvbidzIExlZ2FjeTwvdGl0bGU+DQogICAgICA8Z2VucmU+RmFudGFzeTwvZ2VucmU+DQogICAgICA8cHJpY2U+NS45NTwvcHJpY2U+DQogICAgICA8cHVibGlzaF9kYXRlPjIwMDEtMDMtMTA8L3B1Ymxpc2hfZGF0ZT4NCiAgICAgIDxkZXNjcmlwdGlvbj5JbiBwb3N0LWFwb2NhbHlwc2UgRW5nbGFuZCwgdGhlIG15c3RlcmlvdXMgDQogICAgICBhZ2VudCBrbm93biBvbmx5IGFzIE9iZXJvbiBoZWxwcyB0byBjcmVhdGUgYSBuZXcgbGlmZSANCiAgICAgIGZvciB0aGUgaW5oYWJpdGFudHMgb2YgTG9uZG9uLiBTZXF1ZWwgdG8gTWFldmUgDQogICAgICBBc2NlbmRhbnQuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwNSI+DQogICAgICA8YXV0aG9yPkNvcmV0cywgRXZhPC9hdXRob3I+DQogICAgICA8dGl0bGU+VGhlIFN1bmRlcmVkIEdyYWlsPC90aXRsZT4NCiAgICAgIDxnZW5yZT5GYW50YXN5PC9nZW5yZT4NCiAgICAgIDxwcmljZT41Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMS0wOS0xMDwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPlRoZSB0d28gZGF1Z2h0ZXJzIG9mIE1hZXZlLCBoYWxmLXNpc3RlcnMsIA0KICAgICAgYmF0dGxlIG9uZSBhbm90aGVyIGZvciBjb250cm9sIG9mIEVuZ2xhbmQuIFNlcXVlbCB0byANCiAgICAgIE9iZXJvbidzIExlZ2FjeS48L2Rlc2NyaXB0aW9uPg0KICAgPC9ib29rPg0KICAgPGJvb2sgaWQ9ImJrMTA2Ij4NCiAgICAgIDxhdXRob3I+UmFuZGFsbCwgQ3ludGhpYTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPkxvdmVyIEJpcmRzPC90aXRsZT4NCiAgICAgIDxnZW5yZT5Sb21hbmNlPC9nZW5yZT4NCiAgICAgIDxwcmljZT40Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0wOS0wMjwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPldoZW4gQ2FybGEgbWVldHMgUGF1bCBhdCBhbiBvcm5pdGhvbG9neSANCiAgICAgIGNvbmZlcmVuY2UsIHRlbXBlcnMgZmx5IGFzIGZlYXRoZXJzIGdldCBydWZmbGVkLjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMDciPg0KICAgICAgPGF1dGhvcj5UaHVybWFuLCBQYXVsYTwvYXV0aG9yPg0KICAgICAgPHRpdGxlPlNwbGlzaCBTcGxhc2g8L3RpdGxlPg0KICAgICAgPGdlbnJlPlJvbWFuY2U8L2dlbnJlPg0KICAgICAgPHByaWNlPjQuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTExLTAyPC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+QSBkZWVwIHNlYSBkaXZlciBmaW5kcyB0cnVlIGxvdmUgdHdlbnR5IA0KICAgICAgdGhvdXNhbmQgbGVhZ3VlcyBiZW5lYXRoIHRoZSBzZWEuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwOCI+DQogICAgICA8YXV0aG9yPktub3JyLCBTdGVmYW48L2F1dGhvcj4NCiAgICAgIDx0aXRsZT5DcmVlcHkgQ3Jhd2xpZXM8L3RpdGxlPg0KICAgICAgPGdlbnJlPkhvcnJvcjwvZ2VucmU+DQogICAgICA8cHJpY2U+NC45NTwvcHJpY2U+DQogICAgICA8cHVibGlzaF9kYXRlPjIwMDAtMTItMDY8L3B1Ymxpc2hfZGF0ZT4NCiAgICAgIDxkZXNjcmlwdGlvbj5BbiBhbnRob2xvZ3kgb2YgaG9ycm9yIHN0b3JpZXMgYWJvdXQgcm9hY2hlcywNCiAgICAgIGNlbnRpcGVkZXMsIHNjb3JwaW9ucyAgYW5kIG90aGVyIGluc2VjdHMuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazEwOSI+DQogICAgICA8YXV0aG9yPktyZXNzLCBQZXRlcjwvYXV0aG9yPg0KICAgICAgPHRpdGxlPlBhcmFkb3ggTG9zdDwvdGl0bGU+DQogICAgICA8Z2VucmU+U2NpZW5jZSBGaWN0aW9uPC9nZW5yZT4NCiAgICAgIDxwcmljZT42Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0xMS0wMjwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPkFmdGVyIGFuIGluYWR2ZXJ0YW50IHRyaXAgdGhyb3VnaCBhIEhlaXNlbmJlcmcNCiAgICAgIFVuY2VydGFpbnR5IERldmljZSwgSmFtZXMgU2Fsd2F5IGRpc2NvdmVycyB0aGUgcHJvYmxlbXMgDQogICAgICBvZiBiZWluZyBxdWFudHVtLjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMTAiPg0KICAgICAgPGF1dGhvcj5PJ0JyaWVuLCBUaW08L2F1dGhvcj4NCiAgICAgIDx0aXRsZT5NaWNyb3NvZnQgLk5FVDogVGhlIFByb2dyYW1taW5nIEJpYmxlPC90aXRsZT4NCiAgICAgIDxnZW5yZT5Db21wdXRlcjwvZ2VucmU+DQogICAgICA8cHJpY2U+MzYuOTU8L3ByaWNlPg0KICAgICAgPHB1Ymxpc2hfZGF0ZT4yMDAwLTEyLTA5PC9wdWJsaXNoX2RhdGU+DQogICAgICA8ZGVzY3JpcHRpb24+TWljcm9zb2Z0J3MgLk5FVCBpbml0aWF0aXZlIGlzIGV4cGxvcmVkIGluIA0KICAgICAgZGV0YWlsIGluIHRoaXMgZGVlcCBwcm9ncmFtbWVyJ3MgcmVmZXJlbmNlLjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQogICA8Ym9vayBpZD0iYmsxMTEiPg0KICAgICAgPGF1dGhvcj5PJ0JyaWVuLCBUaW08L2F1dGhvcj4NCiAgICAgIDx0aXRsZT5NU1hNTDM6IEEgQ29tcHJlaGVuc2l2ZSBHdWlkZTwvdGl0bGU+DQogICAgICA8Z2VucmU+Q29tcHV0ZXI8L2dlbnJlPg0KICAgICAgPHByaWNlPjM2Ljk1PC9wcmljZT4NCiAgICAgIDxwdWJsaXNoX2RhdGU+MjAwMC0xMi0wMTwvcHVibGlzaF9kYXRlPg0KICAgICAgPGRlc2NyaXB0aW9uPlRoZSBNaWNyb3NvZnQgTVNYTUwzIHBhcnNlciBpcyBjb3ZlcmVkIGluIA0KICAgICAgZGV0YWlsLCB3aXRoIGF0dGVudGlvbiB0byBYTUwgRE9NIGludGVyZmFjZXMsIFhTTFQgcHJvY2Vzc2luZywgDQogICAgICBTQVggYW5kIG1vcmUuPC9kZXNjcmlwdGlvbj4NCiAgIDwvYm9vaz4NCiAgIDxib29rIGlkPSJiazExMiI+DQogICAgICA8YXV0aG9yPkdhbG9zLCBNaWtlPC9hdXRob3I+DQogICAgICA8dGl0bGU+VmlzdWFsIFN0dWRpbyA3OiBBIENvbXByZWhlbnNpdmUgR3VpZGU8L3RpdGxlPg0KICAgICAgPGdlbnJlPkNvbXB1dGVyPC9nZW5yZT4NCiAgICAgIDxwcmljZT40OS45NTwvcHJpY2U+DQogICAgICA8cHVibGlzaF9kYXRlPjIwMDEtMDQtMTY8L3B1Ymxpc2hfZGF0ZT4NCiAgICAgIDxkZXNjcmlwdGlvbj5NaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA3IGlzIGV4cGxvcmVkIGluIGRlcHRoLA0KICAgICAgbG9va2luZyBhdCBob3cgVmlzdWFsIEJhc2ljLCBWaXN1YWwgQysrLCBDIywgYW5kIEFTUCsgYXJlIA0KICAgICAgaW50ZWdyYXRlZCBpbnRvIGEgY29tcHJlaGVuc2l2ZSBkZXZlbG9wbWVudCANCiAgICAgIGVudmlyb25tZW50LjwvZGVzY3JpcHRpb24+DQogICA8L2Jvb2s+DQo8L2NhdGFsb2c+",
    "digestAlgorithm" : null,
    "name" : "Books.xml"
  }
}

'

0

There are 0 answers