Rename Derive DUKPT Key to Derive DUKPT TDES Key

Mirrors the naming convention of Derive DUKPT AES Key.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
J8k3 2026-05-17 21:56:03 -04:00
parent 01f396d121
commit f246a7dcf9
5 changed files with 9 additions and 9 deletions

View File

@ -40,7 +40,7 @@ Preferred operation:
- `Encrypt Payment Data` - `Encrypt Payment Data`
Good chain: Good chain:
- `Derive DUKPT Key` -> `Triple DES Encrypt` - `Derive DUKPT TDES Key` -> `Triple DES Encrypt`
- `Derive ECDH Key Material` -> KDF if needed -> `AES Encrypt` - `Derive ECDH Key Material` -> KDF if needed -> `AES Encrypt`
Notes: Notes:
@ -52,7 +52,7 @@ Preferred operation:
- `Decrypt Payment Data` - `Decrypt Payment Data`
Good chain: Good chain:
- `Derive DUKPT Key` -> `Triple DES Decrypt` - `Derive DUKPT TDES Key` -> `Triple DES Decrypt`
- `Derive ECDH Key Material` -> KDF if needed -> `AES Decrypt` - `Derive ECDH Key Material` -> KDF if needed -> `AES Decrypt`
## AWS `ReEncryptData` ## AWS `ReEncryptData`

View File

@ -206,7 +206,7 @@ Important assumptions:
## 9) Key Derivation, Generation, And Validation ## 9) Key Derivation, Generation, And Validation
Operations: Operations:
- `Derive DUKPT Key` — TDES DUKPT (10-byte KSN, IPEK-based) - `Derive DUKPT TDES Key` — TDES DUKPT (10-byte KSN, IPEK-based)
- `Derive DUKPT AES Key` — AES-128 DUKPT per ANSI X9.24-3 (12-byte KSN, IK-based) - `Derive DUKPT AES Key` — AES-128 DUKPT per ANSI X9.24-3 (12-byte KSN, IK-based)
- `Derive ECDH Key Material` - `Derive ECDH Key Material`
- `Generate Key` — random AES-128/192/256, TDES, or custom bytes; optional AES CMAC KCV - `Generate Key` — random AES-128/192/256, TDES, or custom bytes; optional AES CMAC KCV
@ -217,7 +217,7 @@ Use this when:
- you need transaction keys, shared secrets, random test keys, KCVs, or AS2805-style KEK-validation lab values - you need transaction keys, shared secrets, random test keys, KCVs, or AS2805-style KEK-validation lab values
Important assumptions: Important assumptions:
- `Derive DUKPT Key` is TDES DUKPT — do not confuse IPEK (TDES) with IK (AES DUKPT) - `Derive DUKPT TDES Key` is TDES DUKPT — do not confuse IPEK (TDES) with IK (AES DUKPT)
- `Derive DUKPT AES Key` implements AES-128 via AES-CMAC per ANSI X9.24-3; AES-192/256 are not yet implemented - `Derive DUKPT AES Key` implements AES-128 via AES-CMAC per ANSI X9.24-3; AES-192/256 are not yet implemented
- `Generate Key` is for test use only — production keys must be generated in an approved HSM - `Generate Key` is for test use only — production keys must be generated in an approved HSM
- `Generate AS2805 KEK Validation` is an emulation-oriented helper and explicitly documents its simplifications in the operation comments - `Generate AS2805 KEK Validation` is an emulation-oriented helper and explicitly documents its simplifications in the operation comments
@ -250,7 +250,7 @@ Important assumptions:
## A) TDES DUKPT MAC ## A) TDES DUKPT MAC
Operations: Operations:
- `Derive DUKPT Key` - `Derive DUKPT TDES Key`
- `Generate Payment MAC` - `Generate Payment MAC`
Flow: Flow:

View File

@ -610,7 +610,7 @@
"Verify IBM 3624 PIN", "Verify IBM 3624 PIN",
"Generate VISA PVV", "Generate VISA PVV",
"Verify VISA PVV", "Verify VISA PVV",
"Derive DUKPT Key", "Derive DUKPT TDES Key",
"Derive DUKPT AES Key", "Derive DUKPT AES Key",
"Generate Key", "Generate Key",
"Calculate Payment KCV", "Calculate Payment KCV",

View File

@ -196,7 +196,7 @@ class DeriveDUKPTKey extends Operation {
constructor() { constructor() {
super(); super();
this.name = "Derive DUKPT Key"; this.name = "Derive DUKPT TDES Key";
this.module = "Payment"; this.module = "Payment";
this.description = "Paste the Base Derivation Key (BDK) into the input field as a 16-byte hex value.<br><br>Put the 10-byte Key Serial Number in the <b>KSN</b> argument field.<br><br><b>Input:</b> BDK in hex.<br><b>Arguments:</b> choose whether to derive the IPEK or the transaction key, provide the KSN, choose the variant, and optionally return JSON.<br><br>This operation derives TDES DUKPT keys (ANSI X9.24 Part 1) in software for test and interoperability work. It uses a 16-byte BDK and a 10-byte KSN. AES DUKPT (ANSI X9.24 Part 3), which uses a 12-byte KSN and AES keys, is not implemented here."; this.description = "Paste the Base Derivation Key (BDK) into the input field as a 16-byte hex value.<br><br>Put the 10-byte Key Serial Number in the <b>KSN</b> argument field.<br><br><b>Input:</b> BDK in hex.<br><b>Arguments:</b> choose whether to derive the IPEK or the transaction key, provide the KSN, choose the variant, and optionally return JSON.<br><br>This operation derives TDES DUKPT keys (ANSI X9.24 Part 1) in software for test and interoperability work. It uses a 16-byte BDK and a 10-byte KSN. AES DUKPT (ANSI X9.24 Part 3), which uses a 12-byte KSN and AES keys, is not implemented here.";
this.inlineHelp = "<strong>Input:</strong> BDK hex.<br><strong>Args:</strong> add the KSN, choose IPEK or transaction-key derivation, then optionally apply a variant."; this.inlineHelp = "<strong>Input:</strong> BDK hex.<br><strong>Args:</strong> add the KSN, choose IPEK or transaction-key derivation, then optionally apply a variant.";

View File

@ -316,12 +316,12 @@ TestRegister.addTests([
] ]
}, },
{ {
name: "Derive DUKPT Key: known IPEK vector", name: "Derive DUKPT TDES Key: known IPEK vector",
input: "0123456789ABCDEFFEDCBA9876543210", input: "0123456789ABCDEFFEDCBA9876543210",
expectedOutput: "6AC292FAA1315B4D858AB3A3D7D5933A", expectedOutput: "6AC292FAA1315B4D858AB3A3D7D5933A",
recipeConfig: [ recipeConfig: [
{ {
op: "Derive DUKPT Key", op: "Derive DUKPT TDES Key",
args: ["Derive IPEK", "FFFF9876543210E00008", "None", false] args: ["Derive IPEK", "FFFF9876543210E00008", "None", false]
} }
] ]