I am currently working on a project to migrate keys from a Thales HSM to a Futurex HSM. Given that I have a large number of keys that need to be exported and then imported using the console would be too time consuming. It also has the risk of human error.
So I have a python script that goes through a file with the cryptograms of the keys to be exported along with the key types. The script basically sends an A8 command to the Thales HSM and then sends an A6 command to the Futurex HSM with the exported cryptogram in the response from the A8 command. The issue that I am seeing is that the Thales HSM returns an error code 29 even though the command is allowed.
Please see below example of the command:
SENT -
AAAAA8000T151B73744EA79E851153D7B32BACEB76B79A19CDA9DC85BEUC9DF187DA1FB381DA752CF474D64EE57U
RECV - AAAAA929
Below is the current configuration that I have enabled:
Online-AUTH>GETCMDS
List of enabled Host commands:
A0 A2 A4 A6 A8 AA AC AE AG AS AU AW AY B0 B2
BA BC BE BG BI BK BM BQ BS BU BW BY CA CC CE
CG CI CK CM CO CQ CS CU CW CY DA DC DE DG DI
DK DM DO DQ DS DU DW DY EA EC EE EG EI EK EM
EO EQ ES EU EW EY FA FC FE FG FI FK FM FO FQ
FS FU FW G0 GA GC GE GG GI GK GM GO GQ GS GU
GW GY HA HC IA JA JC JE JG K0 KA KC KQ KS KU
KW KY LA LC LE LG LI LK LM LO M6 M8 MA MC ME
MG MI MK MM MO MQ MS MY NC NE NG NI NK NO OA
OC OE PA PC PE PG PM Q0 Q2 Q4 Q6 Q8 QA QC RA
RC RI RK RM RO RQ RS RU RW RY TA
Online-AUTH>CONFIGPB
List of enabled PIN Block formats:
01 - ISO 9564-1 & ANSI X9.8 format 0
05 - ISO 9564-1 format 1
35 - MasterCard Pay Now and Pay Later format
41 - Visa/Amex new PIN only format
42 - Visa/Amex new & old PIN format
47 - ISO 9564-1 & ANSI X9.8 format 3
Online-AUTH>QS
PIN length: 04
Encrypted PIN length: 05
Echo: OFF
Atalla ZMK variant support: ON
Transaction key support: AUSTRALIAN
User storage key length: TRIPLE
Select clear PINs: NO
Enable ZMK translate command: YES
Enable X9.17 for import: YES
Enable X9.17 for export: YES
Solicitation batch size: 1024
Single-DES: ENABLED
Prevent Single-DES keys masquerading as double or triple-length keys: YES
ZMK length: DOUBLE
Decimalization tables: ENCRYPTED
Decimalization table checks: ENABLED
PIN encryption algorithm: A
Card/password authorisation (local): C
Press "Enter" to view additional security settings...Q
Authorised State required when Importing DES key under RSA key: YES
Minimum HMAC key length in bytes: 10
Enable PKCS#11 import and export for HMAC keys: NO
Enable ANSI X9.17 import and export for HMAC keys: YES
Enable ZEK encryption of all printable ASCII chars: NO
Enable ZEK encryption of "Base94" ASCII chars: YES
Enable ZEK encryption of "Base64" ASCII chars: YES
Enable ZEK encryption of "Hex-only" ASCII chars: YES
Restrict Key Check Values to 6 hex chars: YES
Enable multiple authorised activities: YES
Allow persistent authorised activities: YES
Enable variable length PIN offset: YES
Enable weak PIN checking: YES
Enable Pin Block Format 34 as output format for PIN Translations to ZPK: YES
Default LMK identifier: 00
Management LMK identifier: 00
Use HSM clock for date/time validation: YES
Additional padding to disguise key length: NO
Key export and import in trusted format only: NO
Has anyone encountered this issue? Were you able to resolve it and how?