XAdES Manifest Signature

In XAdES, a Manifest signature is the case in which the document is not directly signed, but a manifest is signed that refers to it (uniquely identifying it by means of a fingerprint and a reference). What we do is sign the fingerprint of the document instead of the document as stated in the regulations:

https://www.w3.org/TR/2000/WD-xmldsig-core-20000510/#sec-o-Manifest.

The advantages of an XAdES Manifest signature are clear, instead of sending documents that can weigh several hundred Mb, the reference and fingerprint of the documents are sent, drastically reducing the size that you browse the net. Example of a 3-document signature request using the XAdES Manifest signature type, instead of passing the document object, a list of references is provided:

The parameters that are received (in 'application/json' format) have the following form:

{
    "userCode": "{{user_code}}",
    "signatureConfigurations": [
        {
            "references": [
                {
                    "uri": "src/test/examples/manifest/a_documento.pdf",
                    "digestValue": "GQBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS1sCfJ/w=="
                },
                {
                    "uri": "src/test/examples/manifest/b_documento.pdf",
                    "digestValue": "GSLCsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS1sJcF/g=="
                },
                {
                    "uri": "src/test/examples/manifest/c_documento.pdf",
                    "digestValue": "XMBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS2mDfJ/m=="
                }
            ],
            "digestAlgorithm": "SHA512",
            "signatureType": "XADES_B",
            "signatureAlgorithm": "RSA_SHA256",
            "packaging": "ENVELOPING",
            "xadesConfiguration": {
                "manifestSignature": true
            }
        }
    ]
}

Where:

Parameter Type Description
userCode string User who must perform the signature, if the client system does not inform this value, Viafirma Fortress will request the user to use in the authentication and authorization process of the signature request
signatureConfigurations/references array Reference Collection
signatureConfigurations/references/uri string Name of the document to be signed
signatureConfigurations/references/digestValue string Document to be signed, coded in Base64
signatureConfigurations/digestAlgorithm string Algorithm that will be used to encrypt the signature. Available values:
- 'SHA1'
- 'SHA224'
- 'SHA256'
- 'SHA384'
- 'SHA512'
signatureConfigurations/signatureType string Type of signature. Available values:
- 'CADES_B'
- 'CADES_T'
- 'CADES_LT'
- 'CADES_LTA'
- 'PADES_B'
- 'PADES_T'
- 'PADES_LT'
- 'PADES_LTA'
- 'XADES_B'
- 'XADES_T'
- 'XADES_LT'
- 'XADES_LTA'
- 'PKCS1'
signatureConfigurations/signatureAlgorithm string Algorithm that will be used to encrypt the signature. Available values:
- 'RSA_SHA1'
- 'RSA_SHA224'
- 'RSA_SHA256'
- 'RSA_SHA384'
- 'RSA_SHA512'
signatureConfigurations/packaging string Signature wrap. Available values:
- 'ENVELOPED'
- 'ENVELOPING'
- 'DETACHED'
signatureConfigurations/xadesConfiguration/manifestSignature boolean If true is indicated, instead of passing the document object, a list of references is provided.

When signing, we will be able to see within our XAdES a MANIFEST structure with the reference to the document (instead of the document itself):

<ds:Manifest Id="manifest">
    <ds:Reference URI="src/test/examples/manifest/a_documento.pdf">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
        <ds:DigestValue>GQBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1a 6LDhIJcKS1sCfJ/w==</ds:DigestValue>
    </ds:Reference>
    <ds:Reference URI="src/test/examples/manifest/a_documento.pdf">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
        <ds:DigestValue>GSLCsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS1sJcF/g==</ds:DigestValue>
    </ds:Reference>
    <ds:Reference URI="src/test/examples/manifest/a_documento.pdf">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
        <ds:DigestValue>XMBXsIg1NFp6IYYeAFuH6l7sjLv3FbvnpvvTX6f8ZEEr1TwgOuXFuEl9IVn1hseZJG+S1 a6LDhIJcKS2mDfJ/m==</ds:DigestValue>
    </ds:Reference>
</ds:Manifest>

results matching ""

    No results matching ""