Function Prototype
aat_int32 AAL2ProcGenMessageRequestRpl(
aat_byte *InReply,
aat_int32 ReplySize,
aat_ascii *RequestMessage,
aat_int32 *RequestMessageLength);
Description
This function processes a reply from the HSM to a request message generation command which has been generated with AAL2GenGenMessageRequestCmd.
The request message generation on the HSM is identical to the functionality available with the Authentication Suite Server SDK Software Digipass Secure Channel Service. For information on the associated functions, refer to the Authentication Suite Server SDK C-C++ Programmer's Guide.
This function serializes an important amount of data. The InReply buffer must be allocated with a sufficient size. For more information about the allocation of the Cmd and InReply buffers, refer to Cmd and InReply buffers allocation.
Parameters
Table: Parameters (AAL2ProcGenMessageRequestRpl) | Type | Name | Use | Description |
|---|
| aat_byte * | InReply | I | Up to 1092 bytes that contain the REQUEST MESSAGE GENERATION command type and the output data from the request message generation function on the HSM: - Command type - 2 bytes
- Request Message - 1070 characters
- Request Message Length - 4 bytes
- Return code - 4 bytes
Plus 12 bytes for Authentication Suite Server SDK internal use. |
| aat_int32 | ReplySize | I | The length of the InReply message. |
| aat_ascii * | RequestMessage | O | A string of up to 1070+1 hexadecimal characters, null-terminated. In case of a successful operation, this parameter contains the generated RequestMessage. |
| aat_int32 * | RequestMessageLength | I/O | In input, this parameter must indicate the size of the allocated buffer for the RequestMessage parameter (recommended 1071 bytes). In output, this parameter indicates the length of the RequestMessage string (without the null-terminated character). |
Return codes
Table: Return codes (AAL2ProcGenMessageRequestRpl) | Code | Meaning | Code | Meaning |
|---|
| 0 | Success | 1268 | Invalid message vector version |
| 701 | Invalid input buffer pointer | 1274 | Invalid message protocol version |
| 910 | Invalid HSM command in reply | 1275 | Invalid message protection type |
| 913 | Invalid HSM key property | 1285 | Master key derivation failed |
| 917 | Key type inconsistent | 1288 | Invalid serial number prefix |
| 951 | Invalid HSM key type for HSM decryption | 1289 | Invalid serial number suffix |
| 1009 | Invalid TLV total length | 1302 | AES CTR encryption failed |
| 1018 | Invalid TLV item pointer | 1303 | Invalid request message pointer |
| 1019 | Missing mandatory TLV item | 1304 | Invalid request message length pointer |
| 1025 | Buffer too small | 1334 | Transaction request not supported |
| 1118 | Unsupported BLOB | 1335 | Invalid payload key type in payload key data |
| 1267 | Invalid message vector length | 1336 | Inconsistent payload key type between payload key data and message vector |