diff --git a/AWS_PAYMENT_CRYPTOGRAPHY_RECIPES.md b/AWS_PAYMENT_CRYPTOGRAPHY_RECIPES.md index 3ba574fd..f3869ec6 100644 --- a/AWS_PAYMENT_CRYPTOGRAPHY_RECIPES.md +++ b/AWS_PAYMENT_CRYPTOGRAPHY_RECIPES.md @@ -158,8 +158,8 @@ Preferred chain: - `Derive ECDH Key Material` - KDF if needed - `AES Key Wrap` or `AES Key Unwrap` -- `Parse TR-31 key block` -- `Parse TR-34 B9 envelope` +- `TR-31 Parse Key Block` +- `TR-34 Parse Key Transport` Important assumption: - this is a recipe chain, not a single HSM-like rewrap boundary @@ -209,4 +209,4 @@ Method: - `Derive ECDH Key Material` - `AES Key Unwrap` - `AES Key Wrap` -- `Parse TR-31 key block` +- `TR-31 Parse Key Block` diff --git a/PAYMENT_RECIPES.md b/PAYMENT_RECIPES.md index c2264e53..bf0d4bea 100644 --- a/PAYMENT_RECIPES.md +++ b/PAYMENT_RECIPES.md @@ -22,12 +22,7 @@ Pattern: `[Domain Prefix] [Verb] [Qualifier]` ## UI Arrangement -The `Payments` category is arranged in this order: -- payment-facing wrappers (Payment Encrypt/Decrypt/Re-Encrypt) first -- MAC and EMV flows next -- PAN, card, and PIN flows after that -- key derivation, generation, KCV, and parser utilities next -- HSM command parsers last +The `Payments` category is sorted alphabetically. The domain-prefix naming convention means related operations naturally cluster together in the list (all EMV ops together, all PIN Block ops together, etc.). ## 1) Encrypt / Decrypt / Re-Encrypt Payment Data @@ -228,8 +223,8 @@ Important assumptions: Operations: - `HSM Parse Thales Command` - `HSM Parse Futurex Command` -- `Parse TR-31 Key Block` -- `Parse TR-34 Key Transport` +- `TR-31 Parse Key Block` +- `TR-34 Parse Key Transport` Use this when: - you need to inspect vendor HSM command syntax, wrapped-key material, or transport frames during testing @@ -237,14 +232,14 @@ Use this when: Input: - `HSM Parse Thales Command`: raw legacy host command or response text - `HSM Parse Futurex Command`: raw bracketed Excrypt command or response text -- `Parse TR-31 Key Block` / `Parse TR-34 Key Transport`: full payload as text or hex, depending on the operation comment +- `TR-31 Parse Key Block` / `TR-34 Parse Key Transport`: full payload as text or hex, depending on the operation comment Important assumptions: - the Thales and Futurex parsers currently focus on visible message syntax, delimiters, command identification, and field splitting rather than deep per-command semantic decoding - `HSM Parse Thales Command` expects the configured message-header length to be supplied in the op args - `HSM Parse Futurex Command` treats Excrypt messages as delimiter-based tag/value fields and commonly uses the `AO` field as the command code -- `Parse TR-31 Key Block` decodes all X9.143 header fields with descriptions and PCI compliance flags -- `Parse TR-34 Key Transport` handles B0–B9 message types, error codes, and peeks at the outer ASN.1 SEQUENCE of the CMS envelope +- `TR-31 Parse Key Block` decodes all X9.143 header fields with descriptions and PCI compliance flags +- `TR-34 Parse Key Transport` handles B0–B9 message types, error codes, and peeks at the outer ASN.1 SEQUENCE of the CMS envelope ## Chaining Patterns diff --git a/src/core/config/Categories.json b/src/core/config/Categories.json index 4787ed82..8a30c292 100644 --- a/src/core/config/Categories.json +++ b/src/core/config/Categories.json @@ -586,39 +586,39 @@ { "name": "Payments", "ops": [ - "Payment Encrypt Data", - "Payment Decrypt Data", - "Payment Re-Encrypt Data", - "MAC Generate", - "MAC Verify", - "EMV Generate MAC", - "EMV Verify MAC", - "EMV Generate ARQC", - "EMV Verify ARQC", - "EMV Generate ARPC", - "EMV Generate MAC (PIN Change)", - "PAN Generate", - "PAN Parse", + "AS2805 Generate KEK Validation", "Card Validation Data Generate", "Card Validation Data Verify", - "PIN Data Generate", - "PIN Data Verify", + "DUKPT Derive AES Key", + "DUKPT Derive TDES Key", + "EMV Generate ARPC", + "EMV Generate ARQC", + "EMV Generate MAC", + "EMV Generate MAC (PIN Change)", + "EMV Verify ARQC", + "EMV Verify MAC", + "HSM Parse Futurex Command", + "HSM Parse Thales Command", + "IBM 3624 Generate PIN Offset", + "IBM 3624 Verify PIN", + "Key Generate", + "MAC Generate", + "MAC Verify", + "PAN Generate", + "PAN Parse", + "Payment Calculate KCV", + "Payment Decrypt Data", + "Payment Encrypt Data", + "Payment Re-Encrypt Data", "PIN Block Build", "PIN Block Parse", "PIN Block Translate", - "IBM 3624 Generate PIN Offset", - "IBM 3624 Verify PIN", + "PIN Data Generate", + "PIN Data Verify", + "TR-31 Parse Key Block", + "TR-34 Parse Key Transport", "VISA PVV Generate", - "VISA PVV Verify", - "DUKPT Derive TDES Key", - "DUKPT Derive AES Key", - "Key Generate", - "Payment Calculate KCV", - "AS2805 Generate KEK Validation", - "HSM Parse Thales Command", - "HSM Parse Futurex Command", - "Parse TR-31 Key Block", - "Parse TR-34 Key Transport" + "VISA PVV Verify" ] }, { diff --git a/src/core/operations/ParseTR31KeyBlock.mjs b/src/core/operations/ParseTR31KeyBlock.mjs index 8988bade..18c78239 100644 --- a/src/core/operations/ParseTR31KeyBlock.mjs +++ b/src/core/operations/ParseTR31KeyBlock.mjs @@ -120,7 +120,7 @@ class ParseTR31KeyBlock extends Operation { constructor() { super(); - this.name = "Parse TR-31 Key Block"; + this.name = "TR-31 Parse Key Block"; this.module = "Payment"; this.description = [ "Parses a TR-31 (ANSI X9.143) key block and decodes every header field into a human-readable description.", diff --git a/src/core/operations/ParseTR34B9Envelope.mjs b/src/core/operations/ParseTR34B9Envelope.mjs index cae41f9a..c196ab21 100644 --- a/src/core/operations/ParseTR34B9Envelope.mjs +++ b/src/core/operations/ParseTR34B9Envelope.mjs @@ -106,7 +106,7 @@ class ParseTR34B9Envelope extends Operation { constructor() { super(); - this.name = "Parse TR-34 Key Transport"; + this.name = "TR-34 Parse Key Transport"; this.module = "Payment"; this.description = [ "Parses a TR-34 key transport message frame (hex input) and decodes each section.", diff --git a/tests/operations/tests/Payment.mjs b/tests/operations/tests/Payment.mjs index 8efab5d2..fb202f4f 100644 --- a/tests/operations/tests/Payment.mjs +++ b/tests/operations/tests/Payment.mjs @@ -213,7 +213,7 @@ TestRegister.addTests([ }, null, 4), recipeConfig: [ { - op: "Parse TR-31 Key Block", + op: "TR-31 Parse Key Block", args: [true] } ] @@ -255,7 +255,7 @@ TestRegister.addTests([ }, null, 4), recipeConfig: [ { - op: "Parse TR-34 Key Transport", + op: "TR-34 Parse Key Transport", args: [] } ]