RFID Reprocessing
Overview
The server-side RFID reprocessing lets you perform complete server-side verification for electronic document chips. While reading is performed on mobile via NFC, the server is involved in the process for generation and storage of session keys and challenges.
This allows further reprocessing of the captured reading session in the “zero-trust to mobile” model to validate the chip and its data authenticity and validity via Chip Authentication, Active Authentication and Passive Authentication on the server-side.
How to perform server-side RFID reprocessing
To enable the server-side RFID processing, make sure to deploy a local service and an S3 storage for the session keys and challenges.
Then, take the following steps:
-
Enable returning the package for reprocessing to the processing results:
DocumentReader.Instance().processParams().shouldReturnPackageForReprocess = true;
DocumentReader.Instance().processParams().shouldReturnPackageForReprocess = true
-
To use your local server (not the Regula one), set
serviceURL
and indicate the local service URL:ReprocParams reprocParams = new ReprocParams("https://service-url.com"); DocumentReader.Instance().rfidScenario().setReprocessParams(reprocParams);
-
To guarantee check fail in case the service is not available, set
setFailIfNoService
:ReprocParams reprocParams = new ReprocParams("https://service-url.com"); reprocParams.setFailIfNoService(true); DocumentReader.Instance().rfidScenario().setReprocessParams(reprocParams);
-
When you get the result, envoke the
results.getEncryptedContainers()
function. -
Send the request to the web service. Use the following endpoint to process Identity Documents in encrypted presentation:
POST /api/process
Body of the request should include 3 nodes:
processParam
- params that have to be used during the document processingContainerList
- the list of encrypted containters, such as license and other encrypted dataTransactionInfo
- the transaction metadata
{
"processParam": {
"scenario": "FullProcess",
"alreadyCropped": true
},
"ContainerList": {
"List": [
{
"License": "",
...
"result_type": 50
},
{
"EncryptedRCL": "",
...
"result_type": 49
}
]
},
"TransactionInfo": {
...
}
}
Request example
curl --request POST \
--url "https://api.regulaforensics.com/api/process" \
--header "Content-Type: application/json" \
--data '{ "processParam": { "scenario": "FullProcess", "alreadyCropped": true }, "ContainerList": { "List": [ { "License": "...", ... "result_type": 50 }, { "EncryptedRCL": "...", ... "result_type": 49 } ] }, "TransactionInfo": { ... } }'