payShield host commands

PIN operations

payShield CA — Translate PIN TPK→ZPK/BDK (DUKPT)

answers with CB

Translate a PIN from TPK to ZPK or BDK (3DES DUKPT) encryption — a key-block destination with usage B0/41 selects the DUKPT path; under a variant LMK the wire flags it with * (BDK-1) or ~ (BDK-2)

Fields

FieldWhat it holds
TPK under LMK32 or 48 or 97 or 129 charsS… key block (97/129 chars), or 32/48 hex under a variant LMK
ZPK under LMK32 or 48 or 97 or 129 charsS… key block (97/129 chars); CA: a BDK block (usage B0/41) selects DUKPT — '*' is the variant-LMK flag
KSN Descriptor3 chars3 hex: BDK-id len / reserved / device-id len (e.g. A05) — BDK destination only
Key Serial Number20 chars20 hex digits — BDK/DUKPT path only
Maximum PIN Length4-12 (default 12)
PIN Block (HEX)16 or 32 chars16 hex chars, or 32 for format 48
Source PIN Block Format2 chars01 (ISO 0), 05 (ISO 1), 34 (ISO 2), 47 (ISO 3), 48 (ISO 4), 04 (PLUS), 35 (Pay Now/Later)
Destination PIN Block Format2 charsdefaults to the source format
PAN12-19 digit card number

On the wire

Complete host messages. Each runs against the KeyLab simulator as printed. The header is four zeros here; the device echoes back whatever you send.

To a ZPK

0000CAS10096P0TE00N00007DCE180AA9A0A8B71990F210BD972B88539513781E3179C7484AC0F661421449E594BB84BBFE3250S10096P0TE00N00004648B9AA7F4428AADA1F0FAF8F1F5CD4A7857B6300AC04678A05A8989368E22F903C80379DD51A0E12890EF2F47E6D9A8A01014000001234567899

4-char headercommand232 chars of fields
To a BDK (DUKPT, selected by key usage)

0000CAS10096P0TE00N00007DCE180AA9A0A8B71990F210BD972B88539513781E3179C7484AC0F661421449E594BB84BBFE3250S10096B0TE00N0000EE37F83E9258D4FCEB4E3237826F2CB0448889847058BACD30000834C30E2CD1D36EE41BDF56D8C3A05BC75601102A00040001F12890EF2F47E6D9A8A01014000001234567899

4-char headercommand255 chars of fields
Send CA to the simulator

Opens the simulator with this command already filled in.

PIN operations