Availability: Authentication Suite Server SDK 4.0.2 and later
Service: Digipass Multi-Device Activation
Function prototype
aat_int32 AAL2GenMessageActivation1Ex(TDigipassBlob *DPMAData,
TKernelParms *CallParms,
aat_ascii *Challenge,
aat_ascii *StaticVector,
aat_ascii *MessageVector,
aat_ascii *ActivationVector,
aat_byte *Fido2PublicKey,
aat_int32 Fido2PublicKeyLength,
aat_ascii *Activation1Message,
aat_int32 *Activation1MessageLength);Description
AAL2GenMessageActivation1Ex() overloads AAL2GenMessageActivation1(), exposing additional Fido2PublicKey and Fido2PublicKeyLength parameters to provide device binding support for FIDO2–capable authenticators, such as DIGIPASS FX2.
This function generates an Activation Message 1 from the master activation application (the license), the static vector, the message vector, and the activation vector. The Activation Message 1 allows to activate an authenticator license in the device.
It is only applicable to hardware or software authenticators compliant with the multi-device two-step activation (in context of multi-device licensing).
The Activation Message 1 is used in the multi-device activation process for all authenticator instances of a particular license.
A challenge can be used to optionally generate an Activation Message 1 bound to a particular challenge. Using challenges allows generating different Activation Messages 1 for the same license. With this, it is possible to verify afterwards that the device code returned by the Digipass device corresponds to the license activated with a particular challenge (except for bound FIDO2 devices). This also makes it possible to create a new Activation Message 1 for a given license and to invalidate the previous one. If used, the challenge must contain 16 numeric or hexadecimal characters, and the same challenge will have to be reused afterwards to validate the device code returned by the Digipass device with the AAL2VerifyDeviceCodeEx() function. The AAL2GenerateChallenge() function can be used to generate a challenge with 16 numeric characters.
Parameters
| Type | Name | Use | Description |
|---|---|---|---|
| TDigipassBlob | DPMAData | I | Digipass master activation application BLOB of the Digipass serial number license to use for the activation. |
| TKernelParms * | CallParms | I | Structure of runtime parameters to use during this function call. |
| aat_ascii * | Challenge | I | Optional string of 16 numeric or hexadecimal characters, left-justified, null-terminated or right-padded with spaces. This parameter holds the challenge which must be used to generate the Activation Message 1. If no challenge must be used to generate the Activation Message 1, this parameter must be NULL. The challenge is not used to validate the device code (using AAL2VerifyDeviceCodeEx()) in case of device binding for FIDO2-capable authenticators. |
| aat_ascii * | StaticVector | I | Software Digipass parameter settings, up to 4094 characters, null-terminated. |
| aat_ascii * | MessageVector | I | String of up to 26+1 characters containing the message parameter settings , null-terminated (obtained during import). |
| aat_ascii * | ActivationVector | I | String containing the activation vector corresponding to the Digipass serial number to activate (obtained during import). |
| aat_byte * | Fido2PublicKey | I | A buffer of length of Fido2PublicKeyLength bytes that contains the public key generated by the authenticator during the FIDO2 registration ceremony. It is used to bind the authenticator instance with the FIDO2 instance. |
| aat_int32 | Fido2PublicKeyLength | I | The size of the allocated buffer for the FIDO2 public key parameter. |
| aat_ascii * | Activation1Message | O | String of up to 4202+1 hexadecimal characters, null-terminated. It contains the Activation Message 1 necessary during the activation process of the Digipass instances of a particular license. |
| aat_int32 * | Activation1MessageLength | I/O | In input, this parameter must indicate the size of the allocated buffer for the Activation1Message parameter (recommended 4203 bytes). In output, this parameter indicates the length of the Activatin1Message string (without the null-terminated character). |
Return codes
| Code | Meaning | Code | Meaning |
|---|---|---|---|
| 0 | Success | 1268 | Invalid message vector version |
| 412 | Invalid checksum | 1269 | Invalid message vector pointer |
| 413 | Invalid Base64 format | 1270 | Invalid activation message pointer |
| 537 | Invalid static vector pointer | 1271 | Invalid activation message length pointer |
| 545 | Invalid static vector length | 1272 | Invalid message body type |
| 580 | Static vector light not found | 1273 | Invalid activation vector length |
| 1000 | Function does not support EMV-CAP | 1274 | Invalid message protocol version |
| 1118 | Unsupported BLOB | 1275 | Invalid message protection type |
| 1025 | Buffer too small | 1288 | Invalid serial number prefix |
| 1264 | Invalid master application | 1289 | Invalid serial number suffix |
| 1265 | Invalid master application data pointer | 1331 | Activation 1 not supported |
| 1266 | Invalid message vector pointer | -101 | Challenge too short |
| 1267 | Invalid message vector length | -102 | Challenge too long |