{ "definitions": { "attribute": { "type": "object", "description": "Contains information about the signature certificate", "required": [], "properties": { "attribute_name": { "type": "array", "description": "Names or OIDs of the attributes/properties to be included in the signature.", "items": { "type": "string", "description": "Name or OID" } }, "attribute_value": { "type": "array", "description": "Contains values to be used for the corresponding attributes/properties to be included in the signature", "items": { "type": "string", "description": "A single value" } } } }, "authInfo": { "type": "string", "description": "Specifies if the information on the authorization mechanisms supported by this credential shall be returned" }, "authMode": { "type": "string", "description": "Specifies one of the authorization modes" }, "authType": { "type": "array", "description": "List of the authentication mechanisms supported by the service for API methods access.", "items": { "type": "string", "description": "Authentication mechanism" } }, "cert": { "type": "object", "description": "Contains information about the signature certificate", "required": [], "properties": { "status": { "type": "string", "description": "The certificate status" }, "certificates": { "type": "array", "description": "Contains one or more Base64-encoded X.509v3 certificates from the certificate chain", "items": { "type": "string", "description": "A single Base64-encoded X.509v3 certificate" } }, "validFrom": { "type": "string", "description": "The validity start date from the X.509v3 certificate in printable string format" }, "validTo": { "type": "string", "description": "The validity end date from the X.509v3 certificate in printable string format" }, "issuerDN": { "type": "string", "description": "The Issuer Subject Distinguished Name from the X.509v3 end entity certificate in printable string format" }, "serialNumber": { "type": "string", "description": "The Serial Number from the X.509v3 certificate in hex encoded format" }, "subjectDN": { "type": "string", "description": "The Distinguished Name from the X.509v3 certificate in printable string format" } } }, "certificates": { "type": "array", "description": "Contains one or more Base64-encoded X.509v3 certificates from the signing certificate chain", "items": { "type": "string", "description": "Base64-encoded X.509v3 certificate" } }, "certInfo": { "type": "boolean", "description": "Specifies if the information on the end entity certificate shall be returned as printable strings" }, "conformance_level": { "type": "string", "description": "Baseline profiles conformarce level." }, "credentialID": { "type": "string", "description": "The identifier associated to the private key and corresponding certificate." }, "credentialIDs": { "type": "array", "description": "One or more credentialID associated with the provided or implicit signer identification.", "items": { "type": "string", "description": "Single more credentialID" } }, "description": { "type": "string", "desciption": "A short description of the service" }, "documentDigests": { "type": "object", "description": "JSON Object containing hash(es) to be signed and digest algorithm OID used to calculate di hash(es). ", "required": [], "properties": { "hashes": { "type": "array", "description": "Base64-encoded document(s) hash(es), to be signed.", "items": { "type": "string", "description": "Base64-encoded document hash" } }, "hashAlgorithmOID": { "type": "string", "description": "Hashing algorithm OID used to calculate document hash(es)" } } }, "documents": { "type": "array", "description": "Base64-encoded document(s) content(s), to be signed.", "items": { "type": "string", "description": "Base64-encoded document" } }, "documentWithSignature": { "type": "array", "description": "Base64-encoded signatures enveloped within the documents.", "items": { "type": "string", "description": "Base64-encoded signature" } }, "error": { "type": "string", "description": "An error code string" }, "error_description": { "type": "string", "description": "A human readable description" }, "key": { "type": "object", "description": "Information about the key", "required": [ "status", "algo", "len" ], "properties": { "status": { "type": "string", "description": "The status of enablement of the signing key of the credential", "pattern": "^(enabled|disabled)$" }, "algo": { "type": "array", "description": "The list of OIDs of the supported key algorithms", "items": { "type": "string", "description": "A single OID" } }, "len": { "type": "integer", "description": "The length of the cryptographic key in bits" }, "curve": { "type": "integer", "description": "The OID of the ECDSA curve" } } }, "lang": { "type": "string", "description": "The preferred language of the SCS responses, specified according to RFC5646." }, "logo": { "type": "string", "description": "The URI of the image file containing the logo of the Service." }, "methods": { "type": "array", "description": "List of the supported API methods names.", "items": { "type": "string", "description": "API method name." } }, "multisign": { "type": "boolean", "description": "Specifies if the credential supports multiple signatures to be created with a single authorization request" }, "name": { "type": "string", "description": "The name of the service." }, "numSignatures": { "type": "number", "description": "The number of signatures to be performed in the context of the transaction." }, "operationMode": { "type": "string", "description": "The type of operation mode requested to the SCS." }, "operationModes": { "type": "array", "description": "List of the supported operation modes.", "items": { "type": "string", "description": "Operation mode" } }, "optionalData": { "type": "object", "description": "List of element names identifying the data that are requested to be returned.", "properties": { "returnSigningCertificateInfo": { "$ref": "#/definitions/returnSigningCertificateInfo" }, "returnSupportMultiSignatureInfo": { "$ref": "#/definitions/returnSupportMultiSignatureInfo " }, "returnServicePolicyInfo": { "$ref": "#/definitions/returnServicePolicyInfo" }, "returnSignatureCreationPolicyInfo": { "$ref": "#/definitions/returnSignatureCreationPolicyInfo" }, "returnCredentialAuthorizationModeInfo": { "$ref": "#/definitions/returnCredentialAuthorizationModeInfo" }, "returnSoleControlAssuranceLevelInfo": { "$ref": "#/definitions/returnSoleControlAssuranceLevelInfo" } } }, "policy": { "type": "string", "description": "The element that identifies a particular service policy associated with the SCS." }, "profile": { "type": "string", "description": "String that identifies the protocol being used by the client to communicate to SCS." }, "protocol": { "type": "string", "description": "The name of the protocol supported by the SCS." }, "region": { "type": "string", "description": "The ISO 3166-1 alpha-2 code where the service is operating." }, "requestID": { "type": "string", "description": "Data from the client application generally used to handle a signature transaction identifier." }, "response_uri": { "type": "string", "description": "The element shall have the value of one location where the SCS will notify the signature creation operation completion, as an URI value." }, "responseID": { "type": "string", "description": "Arbitrary string value generated by the SCS uniquely identifying the response originated from the SCS itself." }, "returnSigningCertificateInfo": { "type": "boolean", "description": "to obtain various information concerning the signing certificate/chain/key used by the SCS" }, "returnSupportMultiSignatureInfo": { "type": "boolean", "description": "to obtain the information concerning the support from the signing key of multiple signatures creation with a single authorization request" }, "returnServicePolicyInfo": { "type": "boolean", "description": "to obtain the name of the service policy used by the server to perform the requested operation" }, "returnSignatureCreationPolicyInfo": { "type": "boolean", "description": "to obtain the name of the signature creation policy used by the server to perform the requested signature creation operation" }, "returnCredentialAuthorizationModeInfo": { "type": "boolean", "description": "to obtain the authorization mode required by the signing key identified in the certificate information retrieval request" }, "returnSoleControlAssuranceLevelInfo": { "type": "boolean", "description": "to obtain the sole control assurance level required by the signing key identified in the certificate information retrieval request" }, "SAD": { "type": "string", "description": "Authentication data used to authorize the use of the signing key." }, "SCAL": { "type": "string", "description": "Specifies the Sole Control Assurance Level required by the credential, as defined in CEN EN 419 241-1" }, "servicePolicies": { "type": "array", "description": "List of the supported service policies names.", "items": { "type": "string", "description": "Service policy name" } }, "signAlgo": { "type": "string", "description": "The element specifies the algorithm OID used for signing." }, "signAlgoParams": { "type": "string", "description": "The element specifies the Base64-encoded of DER-encoded ASN.1 signature parameters." }, "signature_format": { "type": "string", "description": "The required signature format." }, "signatureFormats": { "type": "array", "description": "List of JSONObjects specifying the signature formats supported by the SCS.", "items": { "type": "object", "description": "JSONObject specifying the signature formats supported by the SCS", "required": [], "properties": { "signature_format": { "$ref": "#/definitions/signature_format" }, "conformance_level": { "$ref": "#/definitions/conformance_level" }, "signed_envelope_property": { "$ref": "#/definitions/signed_envelope_property" } } } }, "signatureObject": { "type": "array", "description": "Base64-encoded signatures detached from the the documents.", "items": { "type": "string", "description": "Base64-encoded signature" } }, "signaturePolicies": { "type": "array", "description": "List of the supported signature policies names.", "items": { "type": "string", "description": "Signature policy name" } }, "signaturePolicyID": { "type": "string", "description": "The element that identifies a particular signature creation policy associated with the SCS." }, "signaturePolicyLocations": { "type": "array", "description": "Every string element shall have the value of one location where the signature creation policy document can be accessed", "items": { "type": "string", "description": "Signature policy location" } }, "signatures": { "type": "array", "description": "One or more base64-encoded signature value(s).", "items": { "type": "string", "description": "Base64-encoded signature value." } }, "signed_envelope_property": { "type": "string", "description": "Signature further property" }, "signed_props": { "type": "array", "description": "List of signed attributes.", "items": { "$ref": "#/definitions/attribute" } }, "signerIdentity": { "type": "string", "description": "The identifier associated to the signer identity." }, "validity_period": { "type": "number", "description": "The element name" }, "versions": { "type": "array", "description": "The versions of the protocol specifications supported by the SCS", "items": { "type": "string", "description": "Single version" } }, "signature-request": { "type": "object", "description": "Profile for signature request", "required": [ "profile", "documents", "documentDigests" ], "properties": { "operationMode": { "$ref": "#/definitions/operationMode" }, "requestID": { "$ref": "#/definitions/requestID" }, "SAD": { "$ref": "#/definitions/SAD" }, "optionalData": { "$ref": "#/definitions/optionalData" }, "validity_period": { "$ref": "#/definitions/validity_period" }, "credentialID": { "$ref": "#/definitions/credentialID" }, "lang": { "$ref": "#/definitions/lang" }, "numSignatures": { "$ref": "#/definitions/numSignatures" }, "policy": { "$ref": "#/definitions/policy" }, "signaturePolicyID": { "$ref": "#/definitions/signaturePolicyID" }, "signAlgo": { "$ref": "#/definitions/signAlgo" }, "signAlgoParams": { "$ref": "#/definitions/signAlgoParams" }, "signed_props": { "$ref": "#/definitions/signed_props" }, "profile": { "$ref": "#/definitions/profile" }, "signature_format": { "$ref": "#/definitions/signature_format" }, "conformance_level": { "$ref": "#/definitions/conformance_level" }, "signed_envelope_property": { "$ref": "#/definitions/signed_envelope_property" }, "response_uri": { "$ref": "#/definitions/response_uri" }, "documents": { "$ref": "#/definitions/documents" }, "documentDigests": { "$ref": "#/definitions/documentDigests" } } }, "signature-response": { "type": "object", "description": "Profile for signature response", "required": [ "error", "error_description", ], "properties": { "DocumentWithSignature": { "$ref": "#/definitions/documentWithSignature" }, "SignatureObject": { "$ref": "#/definitions/signatureObject" }, "cert": { "$ref": "#/definitions/cert" }, "key": { "$ref": "#/definitions/key" }, "multisign": { "$ref": "#/definitions/multisign" }, "error": { "$ref": "#/definitions/error" }, "error_description": { "$ref": "#/definitions/error_description" }, "policy": { "$ref": "#/definitions/policy" }, "responseID": { "$ref": "#/definitions/responseID" }, "signaturePolicyID": { "$ref": "#/definitions/signaturePolicyID" }, "signaturePolicyLocations": { "$ref": "#/definitions/signaturePolicyLocations" } } }, "DSV-creation-request": { "type": "object", "description": "Profile for DSVs creation request", "required": [ "profile", "documents", "documentDigests" ], "properties": { "operationMode": { "$ref": "#/definitions/operationMode" }, "requestID": { "$ref": "#/definitions/requestID" }, "SAD": { "$ref": "#/definitions/SAD" }, "optionalData": { "$ref": "#/definitions/optionalData" }, "validity_period": { "$ref": "#/definitions/validity_period" }, "credentialID": { "$ref": "#/definitions/credentialID" }, "lang": { "$ref": "#/definitions/lang" }, "numSignatures": { "$ref": "#/definitions/numSignatures" }, "policy": { "$ref": "#/definitions/policy" }, "signaturePolicyID": { "$ref": "#/definitions/signaturePolicyID" }, "signAlgo": { "$ref": "#/definitions/signAlgo" }, "signAlgoParams": { "$ref": "#/definitions/signAlgoParams" }, "signed_props": { "$ref": "#/definitions/signed_props" }, "signature_format": { "$ref": "#/definitions/signature_format" }, "conformance_level": { "$ref": "#/definitions/conformance_level" }, "response_uri": { "$ref": "#/definitions/response_uri" }, "documents": { "$ref": "#/definitions/documents" }, "documentDigests": { "$ref": "#/definitions/documentDigests" } } }, "DSV-creation-response": { "type": "object", "description": "Profile for digital signature value response", "required": [ "error", "error_description" ], "properties": { "cert": { "$ref": "#/definitions/cert" }, "key": { "$ref": "#/definitions/key" }, "multisign": { "$ref": "#/definitions/multisign" }, "error": { "$ref": "#/definitions/error" }, "error_description": { "$ref": "#/definitions/error_description" }, "policy": { "$ref": "#/definitions/policy" }, "responseID": { "$ref": "#/definitions/responseID" }, "signaturePolicyID": { "$ref": "#/definitions/signaturePolicyID" }, "signaturePolicyLocations": { "$ref": "#/definitions/signaturePolicyLocations" }, "signatures": { "$ref": "#/definitions/signatures" } } }, "asynchronous-processing": { "type": "object", "description": "Profile for asynchronous processing", "required": [ "profile" ], "properties": { "requestID": { "$ref": "#/definitions/requestID" }, "lang": { "$ref": "#/definitions/lang" }, "profile": { "$ref": "#/definitions/profile" } } }, "signing-certificates-list-request": { "type": "object", "description": "Profile for signing certificates list request", "required": [ "profile", "signerIdentity" ], "properties": { "requestID": { "$ref": "#/definitions/requestID" }, "lang": { "$ref": "#/definitions/lang" }, "certificates": { "$ref": "#/definitions/certificates" }, "certInfo": { "$ref": "#/definitions/certInfo" }, "authInfo": { "$ref": "#/definitions/authInfo" }, "profile": { "$ref": "#/definitions/profile" }, "signerIdentity": { "$ref": "#/definitions/signerIdentity" } } }, "signing-certificates-list-response": { "type": "object", "description": "Profile for signing certificates list response", "required": [ "error", "error_description" ], "properties": { "error": { "$ref": "#/definitions/error" }, "error_description": { "$ref": "#/definitions/error_description" }, "policy": { "$ref": "#/definitions/policy" }, "responseID": { "$ref": "#/definitions/responseID" } } }, "certificate-information-retrieval-request": { "type": "object", "description": "Profile for certificate information retrieval request", "required": [ "profile" ], "properties": { "requestID": { "$ref": "#/definitions/requestID" }, "credentialID": { "$ref": "#/definitions/credentialID" }, "lang": { "$ref": "#/definitions/lang" }, "certificates": { "$ref": "#/definitions/certificates" }, "certInfo": { "$ref": "#/definitions/certInfo" }, "authInfo": { "$ref": "#/definitions/authInfo" }, "profile": { "$ref": "#/definitions/profile" } } }, "certificate-information-retrieval-response": { "type": "object", "description": "Profile for certificate information retrieval response", "required": [ "error", "error_description" ], "properties": { "cert": { "$ref": "#/definitions/cert" }, "key": { "$ref": "#/definitions/key" }, "multisign": { "$ref": "#/definitions/multisign" }, "error": { "$ref": "#/definitions/error" }, "error_description": { "$ref": "#/definitions/error_description" }, "authMode": { "$ref": "#/definitions/authMode" }, "SCAL": { "$ref": "#/definitions/SCAL" } } }, "service-information-request": { "type": "object", "description": "Profile for service information request", "required": [], "properties": { "lang": { "$ref": "#/definitions/lang" } } }, "service-information-response": { "type": "object", "description": "Profile for service information response", "required": [ "error", "error_description" ], "properties": { "description": { "$ref": "#/definitions/description" }, "name": { "$ref": "#/definitions/name" }, "logo": { "$ref": "#/definitions/logo" }, "region": { "$ref": "#/definitions/region" }, "protocol": { "$ref": "#/definitions/protocol" }, "versions": { "$ref": "#/definitions/versions" }, "lang": { "type": "array", "description": "List of the supported languages in the service responses, specified according to RFC5646", "items": { "$ref": "#/definitions/lang" } }, "signaturePolicies": { "$ref": "#/definitions/signaturePolicies" }, "servicePolicies": { "$ref": "#/definitions/servicePolicies" }, "operationModes": { "$ref": "#/definitions/operationModes" }, "authType": { "$ref": "#/definitions/authType" }, "signatureFormats": { "$ref": "#/definitions/signatureFormats" }, "methods": { "$ref": "#/definitions/methods" } } } }, "$schema": "http://json-schema.org/draft-07/schema#", "$id": "http://www.etsi.org/ts19432/v1", "type": "object", "description": "The ETSI 119 432 version 1 schema objects", "required": [], "properties": { "signature-request": { "$ref": "#/definitions/signature-request" }, "signature-response": { "$ref": "#/definitions/signature-response" }, "DSV-creation-request": { "$ref": "#/definitions/DSV-creation-request" }, "DSV-creation-response": { "$ref": "#/definitions/DSV-creation-response" }, "asynchronous-processing": { "$ref": "#/definitions/asynchronous-processing" }, "signing-certificates-list-request": { "$ref": "#/definitions/signing-certificates-list-request" }, "signing-certificates-list-response": { "$ref": "#/definitions/signing-certificates-list-response" }, "certificate-information-retrieval-request": { "$ref": "#/definitions/certificate-information-retrieval-request" }, "certificate-information-retrieval-response": { "$ref": "#/definitions/certificate-information-retrieval-response" }, "service-information-request": { "$ref": "#/definitions/service-information-request" }, "service-information-response": { "$ref": "#/definitions/service-information-response" } } }