AAL2GenMessageActivation2

Prev Next

Activation Message 2 and Digipass instance generation functionality is only applicable to hardware or software Digipass authenticators compliant with the multi-device two-step activation (in the context of multi-device licensing). For more information, refer to the Authentication Suite Server SDK Product Guide.

Function prototype

aat_int32 AAL2GenMessageActivation2 (
                                   TDigipassBlob *DPMAData,
                                   aat_ascii     *PKBlob,
                                   TKernelParms  *CallParms,
                                   aat_ascii     *StaticVector,
                                   aat_ascii     *MessageVector,
                                   aat_ascii     *DeviceID,
                                   aat_int32     *pSeqNum,
                                   aat_ascii     *TokenType [6],
                                   aat_int16     *Appl_count,
                                   aat_ascii     *Serial_Appli [8][23],
                                   aat_ascii     *AuthMode [8][3],
                                   TDigipassBlob *DPData [8],
                                   aat_ascii     *Activation2Message,
                                   aat_ascii     *Activation2MessageLength);

Description

This function is used to generate a Activation Message 2 from themaster activation application (the license), the payload key BLOB, the static vector, the message vector, and the device ID provided. This Activation Message 2 allows activating a Digipass instance of a license into the device.

It is only applicable to hardware or software Digipass authenticators compliant with the multi-device two-step activation (in the context of multi-device licensing). For more information, refer to the Authentication Suite Server SDK Product Guide

The payload key BLOB must be used with this function only if the Secure Channel feature has been ordered (configured by OneSpan at the time of order). No payload key BLOB must be used (parameter NULL or empty string) if the Secure Channel feature has not been ordered.

In case of success, this function will also generate the new Digipass instance application BLOBs, directly bound to the specific device ID provided.

This function uses a new sequence number each time it successfully generates a new Digipass instance for a given license. The number of instances that can be issued from a license is limited to the threshold defined between 1 and 99 for the license (the sequence number threshold value; it can be obtained during the import of the master activation application).

If the instances exceed the defined sequence number threshold for a given license, the function will reject the generation attempt and it will fail.

Parameters

  Table: Parameters (AAL2GenMessageActivation1)
TypeNameUseDescription
TDigipassBlobDPMADataI/ODigipass master activation application BLOB of the Digipass serial number license that will be used for the activation. Upon return from the function call, this BLOB must be rewritten to the application database to reflect change
aat_ascii *PKBlobIContains the payload key BLOB of the Digipass serial number to activate. Mandatory if the Secure Channel feature has been ordered. Must be NULL or an empty string if the Secure Channel feature has not been ordered.
TKernelParms *CallParmsIStructure of runtime parameters to use during this function call.
aat_ascii *StaticVectorISoftware Digipass parameter settings, up to 4094 characters, null-terminated.
aat_ascii *MessageVectorIString of up to 26+1 characters containing the message parameter settings , null-terminated (obtained during import).
aat_ascii *DeviceIDIHexadecimal string containing thedevice ID value of the Digipass device to bind with (8 hexadecimal characters), obtained after the device code validation.
aat_int32 *pSeqNumOContains in output the sequence number of the generated Digipass instance (from 1 to 99).
aat_ascii [6] 

TokenType

O

An output string of 5+1 characters, null-terminated. It contains the Digipass type name given to the Digipass instance. Will return a Digipasstype of the form  with xx representing the device type coded on two decimal digits e.g. TYP07. 

aat_int16 *Appl_countONumber of Digipass applications returned. Points to a short integer where the function returns the number of applications found.
aat_ascii [8][23]Serial_AppliOSet of up to 8 x 22+1 character strings, null-terminated, each composed of the 10-character license serial number concatenated with the 12-character application name. Each array entry represents the logical instance of a Digipass cryptographic application with its unique secrets and parameters. The application name part will end with the sequence number coded on two decimal digits e.g. APPL1 03.
aat_ascii [8][3]AuthModeOSet of up to 8 x 2+1 character strings, null-terminated. Defines each returned authenticator application authentication mode. RO: Response-Only CR: Challenge/Response SG: Signature MM: Multi-Mode UL: Unlock V2 NOTE: Signature-mode devices may also be used for Challenge/Response authentication if they are programmed to accept a single input data field.
TDigipassBlob [8]DPDataOUp to 8 authenticator application BLOBs of the Digipass instance. Upon return from the function call, these BLOBs must be written to the application database.
aat_ascii *Activation2MessageOString of up to 124+1 hexadecimal characters, null-terminated. It contains the Activation Message 2 which is necessary during the activation process to provision the Digipass keys and the payload key to the Digipass device
aat_int32 *Activation2MessageLengthI/OIn input, this parameter must indicate the size of the allocated buffer for the Activation2Message parameter (recommended 125 bytes). In output, this parameter indicates the length of the Activation2Message string (without the null-terminated character).

Return codes

  Table: Return codes (AAL2GenMessageActivation1)
CodeMeaningCodeMeaning
0Success1279Invalid device ID
412Invalid checksum1285Master key derivation failed
413Invalid Base64 format Invalid serial number prefix1286Invalid payload key pointer
537Invalid static vector pointer1288Invalid serial number prefix
545Invalid static vector length1289Invalid serial number suffix
570Invalid static vector version1290Invalid sequence number pointer
571Invalid application index in static vector1291Invalid application count pointer
574Invalid serial number prefix in SV1292Sequence number threshold reached
807Serial number not equal1293Invalid sequence number
1000Function does not support EMV-CAP1289Invalid serial number suffix
1009Corrupt data received1295Invalid Digipass instance SM application in static vector
1019Missing mandatory data1296Key wrapping failed
1118Unsupported BLOB1297Invalid static vector
1119Unsupported payload key BLOB1298Invalid Digipass instance application in static vector
1025Buffer too small1302AES CTR encryption failed
1264Invalid master application1310Invalid payload key type
1265Invalid master application data pointer1311Null Digipass data
1266Invalid message vector pointer1312Null serial number
1267Invalid message vector length1313Null authentication mode
1268Invalid message vector version1314Null token type
1270Invalid activation message pointer1317Secure Channel supported. Payload key BLOB is mandatory
1271Invalid activation message length pointer1318Secure Channel not supported. Payload key BLOB has to be NULL or empty string
1272Invalid message body type1332Activation 2 not supported
1274Invalid message protocol version1335Invalid payload key type in payload key data
1275Invalid message protection type1336Inconsistent payload key type between payload key data and message vector
1277Invalid device ID pointer-1501Memory allocation failed