This function processes a reply from the HSM to a decrypt QABlob code command generated with the AAL2GenQADecryptQABlobCmd function.
The Digipass Question/Answer Authentication Service on the HSM is identical to the functionality available with the Authentication Suite Server SDK Software Question/Answer Authentication Service. For information on the associated functions, refer to the Authentication Suite Server SDK C-C++ Programmer's Guide.
Score-based Digipass
For Digipass devices that integrate the score-based algorithm, the HSM module performs a score-based authentication to decrypt the QA BLOB. This allows retrieving the Digipass scoring value. Once the HSM module has successfully decrypted the QA BLOB, it returns either SUCCESS or SUCCESS with the relevant scoring warning code. See the list of return codes in Table: Return codes (AAL2ProcQADecryptQABlobRpl) for more details.
Parameters
Table: Parameters (AAL2ProcQADecryptQABlobRpl)
Type
Name
Use
Description
aat_byte *
InReply
I
Up to 576 bytes that contain the decrypt QABlob command type and the output data from the decrypt function on the HSM:
Command type - 2 bytes
An authenticator application BLOB - 192 bytes
Return code - 4 bytes
Decrypted QABlob - up to 358 bytes
QABlob size - 4 bytes
Plus 16 bytes for Authentication Suite Server SDK internal use.
aat_int32
ReplySize
I
The length of the InReply message.
TDigipassBlob*
DPData
O
Digipass application BLOB. Upon return from the function call, this BLOB must be rewritten to the application database to reflect changes.
aat_ascii *
aQABlobOut
O
String of up to 358+1 alpha-numeric characters, null-terminated containing the BLOB resulting from the formatted answer hash :
UserID - 32 chars
BLOB version - 2 chars
Hash number - 2 chars
Decrypted answer hashes - up to 10 times 32 hexadecimal characters
Checksum - 2 decimal characters
Each answer hash contains:
2 hexadecimal characters representing the index (01 to 0A)
30 hexadecimal characters containing the decrypted answer hash
aat_int32 *
QABlobSize
I/O
In input, this parameter must indicate the size of the allocated buffer for the QABlobOut parameter (recommended 359 bytes).
In output, this parameter indicates the length of the QABlobOut string (without the null-terminated character).
Return codes
Table: Return codes (AAL2ProcQADecryptQABlobRpl)
Code
Meaning
Code
Meaning
0
Success
802
Change password mandatory
10001
Success with context warning*
803
New password too short
10002
Success with user warning*
804
New password too long
10003
Success with user & context warning*
910
Invalid HSM command in reply
10004
Success with platform warning*
912
HSM invalid BLOB status
10005
Success with platform & context warning*
913
Invalid HSM key property
10006
Success with platform & user warning*
951
Invalid HSM key type for HSM decryption
10007
Success with platform & user & context warning*
1009
Invalid TLV total length
1
Code not verified
1018
Invalid TLV item pointer
2
Static password validation failed
1019
Missing mandatory TLV item
131
Missing required challenge
1025
Data buffer too small
140
Challenge corrupted
1039
Invalid response length with DP algorithm
201
Code replay attempt
1040
Invalid host code length with DP algorithm
202
Identification error threshold reached
1103
Unlock Version 2 not supported
205
Inactive days reached
1118
Unsupported BLOB
208
Application disabled
-101
Challenge too short
272
Invalid wrapped key
-102
Challenge too long
412
Invalid checksum (software)
-103
Challenge check digit wrong
413
Invalid Base64 format
-105
Challenge minimum length not allowed
414
Invalid checksum (HSM)
-106
Challenge maximum length not allowed
510
Invalid Digipass data pointer
-107
Challenge number wrong
530
Invalid QA data pointer
-108
Challenge character invalid
532
Invalid QA data length
-201
Response length out of bounds
535
Invalid QA number
-202
Response too short
536
Invalid encrypted QA data
-203
Response too long
600
Invalid Gordian root information
-204
Response check digit wrong
601
Invalid Gordian today information
-205
Response character not decimal
602
Invalid Gordian tomorrow information
-206
Response character not hexadecimal
603
Invalid Gordian stimulus information
-207
Response character set not specified
701
Invalid input buffer pointer
-1501
Memory allocation failed
* Specific score-based authentication codes; for more information, refer to Score-based Digipass.
Cet article vous a-t-il été utile ?
Merci pour vos commentaires! Notre équipe vous répondra