AAL2VerifyMessageSignature
  • 22 Jan 2025
  • 4 Minutes à lire
  • Sombre
    Lumière
  • PDF

AAL2VerifyMessageSignature

  • Sombre
    Lumière
  • PDF

The content is currently unavailable in French. You are viewing the default English version.
Résumé de l’article

Function prototype

aat_int32 AAL2VerifyMessageSignature (
                                    TDigipassBlob*  DPData,
                                    TKernelParms*   CallParms,
                                    aat_int32       MessageExpirationTime,
                                    aat_ascii*      Signature,
                                    aat_ascii*      SignedMessage,
                                    aat_int32       DeferredSignatureData
                                    aat_ascii*      ConfirmationCode,
                                    aat_ascii*      ConfirmationCodeLength);

Description

This function verifies the signature provided by the Digipass device:

  • in response to Activation Message 2 (generated with AAL2GenMessageActivation2) during the multi-device activation process
  • or in response to the request message (generated with AAL2GenMessageRequest) during a Secure Channel request process (optionally; depending on whether the request requires a signature validation or not).

In case of verifying the signature of an Activation Message 2, the authenticator application BLOB used for the validation must correspond to the crypto application of the Digipass instance defined for the post-activation step. Information on the crypto application used for post-activation is part of the Digipass client configuration.

In case of verifying the signature of a request message, (that was containing a Secure Channel transaction), the authenticator application BLOB used for the validation must correspond to the crypto application of the Digipass instance selected for signing the message. Information on the crypto application selected for signing the message is part of the request body; it allows the Digipass device to perform the operation with the proper application.

The OnlineSG kernel parameter is also applied to the present function and is used as described in OnLineSG.

Signed message optional expiration check

This function allows optionally checking a maximum amount of time authorized since the generation of the Activation Message 2 or request message for which the signature validation is performed. This message time validity check depends on the MessageExpirationTime parameter.

If MessageExpirationTime = 0, the function will not perform any message time validity check.

If MessageExpirationTime > 0, MessageExpirationTime represents the maximum amount of time (expressed in seconds) authorized since the generation of the message (Activation Message 2 or a request message).

The instances of Activation Message 2 or request messages must have been MANDATORILLY generated by Authentication Suite Server SDK version 3.15.1 or later if checking the time validity (i.e. MessageExpirationTime > 0).

The timestamp of the generation time is embedded in the instances of Activation Message 2 and request messages only since Authentication Suite Server SDK 3.15.1.

Score-based Digipass

For Digipass devices that integrate the score-based algorithm, Authentication Suite Server SDK performs a score-based message signature validation which allows retrieving the Digipass scoring value. Once Authentication Suite Server SDK has successfully validated the signature, it returns either SUCCESS or SUCCESS with the relevant scoring warning code. See the list of return codes in Table: Return codes (AAL2VerifyMessageSignature) for more details.

Parameters

   
 Table: Parameters (AAL2VerifyMessageSignature)
TypeNameUseDescription
TDigipassBlob *DPDataI/Oauthenticator application BLOB. Upon return from the function call, this BLOB must be rewritten to the application database to reflect changes.
TKernelParms *CallParmsIStructure of runtime parameters to use during this function call.
aat_int32Message expiration timeI

Must be mandatorily equal or greater to 0.

  • If MessageExpirationTime = 0: No message time validity check.
  • If MessageExpirationTime > 0: MessageExpirationTime represents the maximum amount of time (expressed in seconds) authorized since the generation of the message (Activation Message 2 or a request message).
aat_ascii *SignatureIString of up to 17 numeric characters, left-justified, null-terminated, or right-padded with spaces.
aat_ascii *SignedMessageIHexadecimal character string containing the message that has been used by the Digipass device to generate the signature. String length must be a multiple of 2. This can be either an Activation Message 2 or a request message.
aat_int32Deferred signature dataI
  • Must be 0 if signature is validated in online mode (OnlineSG=1 or 2).
  • If signature is validated in offline mode with OnlineSG=0, this parameter can receive the Digipass date of the signature generation (number of elapsed seconds since January 1, 1970) or 0. (With 0, the current time is used.)

    If this parameter is >0, the filled parameter must be the Digipass time, not the host time.

  • If the signature is validated in offline mode with OnlineSG=3, this parameter must receive counter of the Digipass instance used for the signature generation.
aat_ascii *ConfirmationcodeOString of up to 16+1 numeric or hexadecimal characters, left-justified, null-terminated, or right-padded with spaces. This is the confirmation code generated by Authentication Suite Server SDK for this signature.
aat_int32 *ConfirmationCodeLengthO

In input, this parameter must indicate the size of the allocated buffer for the ConfirmationCode parameter (recommended 17 bytes). In output, this parameter indicates the length of the ConfirmationCode string (without the null-terminated character).

Return codes

   
 Table:  Return codes (AAL2VerifyMessageSignature)
CodeMeaningCodeMeaning
0Success1117Challenge check digit not allowed
10001Success with context warning*1118Unsupported BLOB
10002Success with user warning*1299Signed message not hexadecimal
10003Success with user & context warning*1300Invalid signed message length
10004Success with platform warning*1301Invalid signed message pointer
10005Success with platform & context warning*1309Application can not be used for Secure Channel transactions
10006Success with platform & user warning*1337Unsupported message protocol version
10007Success with platform & user & context warning*1339Invalid message length
1Signature not verified1363Invalid message expiration time value
132Unsupported token type1364Message time validity expired
139Invalid signature pointer-102Data field too long
141Invalid field count-103Data field check digit wrong
203Sign error threshold reached-105Challenge minimum length not allowed
204Duplicate signature found-106Challenge maximum length not allowed
205Inactive days reached-107Challenge number wrong
206Chronological signature error-108Challenge character invalid
207Deferred signature not allowed with OnLineSG not Null-201Response length out of bounds
208Application disabled-202Response too short
412Invalid checksum-203Response too long
413Invalid Base64 format-204Response check digit wrong
510Invalid Digipass data pointer-205Response character not decimal
1000Function does not support EMV-CAP-206Response character not hexadecimal
1103Unlock Version 2 not supported-207Response character set not specified
1116Response check digit not allowed-1501Memory allocation failed

* Specific score-based authentication codes; for more information, refer to Score-based Digipass


Cet article vous a-t-il été utile ?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.
ESC

Ozzy, facilitant la découverte de connaissances grâce à l’intelligence conversationnelle