Visa Secure Messaging
Derive a VIS session key, encrypt a PIN block and calculate a command MAC.
Use test data. No commands are sent to a card.
Session key
VIS ATC XOR derivation. Raw key bytes are returned, without parity adjustment, to match the tutorial.
PIN encryption
VIS PIN-change format without current PIN. The UDK is the separate card key used for PIN-block formatting (ICC MK-AC in PyEMV); use the key required by your profile.
MAC
Enter the exact authenticated bytes, including any required header and transaction data. The tutorial includes its final 80 padding marker; choose the matching input mode.
Calculator reference
Verification evidence and limitations →
What it calculates
Derive a VIS session key, encrypt a PIN block and calculate a command MAC.
Inputs and methods
Enter the HEX and decimal fields labelled on each tab. Profile-specific lengths are enforced.
Worked example
Worked Session key example: UDK · HEX, 16 bytes: 0123456789ABCDEFFEDCBA9876543210; ATC · HEX, 2 bytes: 0001
Session key: 0123456789ABCDEEFEDCBA987654CDEE KCV: 2CE56C
Specification and limits
This demonstrates the first tab only. Other stages need their own profile inputs; outputs do not prove issuer authorization.
PyEMV ↗