The information message processing functionality is applicable:
For more information, refer to the Authentication Suite Server SDK Product Guide.
Function prototype
aat_int32 AAL2ProcMessageInformation (
aat_ascii *PKBlob,
TKernelParms *CallParms,
aat_ascii *InformationMessage,
aat_ascii *InformationBody,
aat_int32 *InformationBodyLength);
Description
This function is used to extract a clear response body from a information message, using the payload key embedded into the payload key BLOB.
The payload key BLOB, required only if the information message is protected (encrypted and/or signed), must be mandatorily the one corresponding to the Digipass serial number of the client device that generated the information message.
For Digipass client devices supporting the information, the information message will be sent by the device to a server.
The information message processing is only applicable to software Digipass authenticators compliant with the Secure Channel protocol and able to generate Secure Channel information messages.
Parameters
Table: Parameters (AAL2ProcMessageInformation) | Type | Name | Use | Description |
|---|
| aat_ascii * | PKBlob | I | Contains the payload key BLOB that has been generated for the Digipass instances activated with a particular serial number license (in case of the multi-device licensing model) or that has been imported for the Digipass authenticator with a particular serial number license (in case of single-device licensing model). The payload key BLOB parameter is mandatory only if the information message is protected (encrypted and/or signed); can be NULL or empty if the information message is not protected (neither encrypted nor signed). |
| TKernelParms * | CallParms | I | Structure of runtime parameters to use during this function call. |
| aat_ascii * | InformationMessage | I | Hexadecimal character string containing the information message that has been generated by the Digipass client device.The string length must be a multiple of 2 with a maximum length of 1070 characters. |
| aat_ascii * | InformationBody | O | String of up to 1024+1 hexadecimal characters, null-terminated. In case of a successful operation, this parameter contains the clear response body extracted from the InformationMessage. |
| aat_int32 * | InformationBodyLength | I/O | In input, this parameter must indicate the size of the allocated buffer for the InformationBody parameter (recommended are 1025 bytes). In output, this parameter indicates the length of the InformationBody string (without the null-terminated character). |
Return codes
Table: Return codes (AAL2ProcMessageInformation) | Code | Meaning | Code | Meaning |
|---|
| 0 | Success | 1341 | Message is not hexadecimal |
| 412 | Invalid checksum | 1343 | Invalid information message length |
| 413 | Invalid Base64 format | 1347 | Invalid information message protection type |
| 807 | Serial number not equal | 1353 | Payload key BLOB is mandatoryBLOB |
| 1000 | Function does not support EMV-CAP | 1356 | Invalid information message pointer |
| 1119 | Unsupported payload key BLOB | 1357 | Invalid information body pointer |
| 1285 | Master key derivation failed | 1358 | Invalid information body length pointer |
| 1288 | Invalid serial number prefix | 1359 | Information body buffer is too small |
| 1289 | Invalid serial number suffix | 1360 | Invalid information message type |
| 1302 | AES CTR encryption failed | 1361 | Invalid authentication tag |
| 1337 | Unsupported message protocol version | -1501 | Memory allocation failed |
| 1338 | Unsupported message type | | |