Команда HSM PIN для выбранного PIN-кода - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь создать решение с помощью PIN-кода карты, благодаря которому клиенты могут войти на веб-портал и установить собственный PIN-код карты, а затем сгенерировать значение PVV нового PIN-кода.

Список команд Iпытается использовать

  • JG \ JH (преобразовать PIN)
  • DG \ DH (создать PVV)

Для команды JG \ JH требуется PINпод LMK, что означает, что мне нужно сначала выполнить команду BA \ BB на ПИН-коде клиента, прежде чем я смогу продолжить.Для этого HSM должен находиться в авторизованном состоянии.

Есть ли другой способ достичь этого?

1 Ответ

0 голосов
/ 04 февраля 2019

Что ж, правильный путь - это сделать так же, как это было бы на терминале банкомата.

1.Создайте прозрачный блок PIN-кода

For ex.
PIN = 1234
PAN = 400000000000002

Block 1 [0+Pin Length+Filler to make it 16]: 0+   4+1234+FFFFFFFFFF = 41234FFFFFFFFFF
Block 2 [0000 + PAN(12, exclude first 3 and last check digit)]: 0000 +    000000000000 = 0000000000000000 

Clear PIN Block = XOR(Block 1 , Block 2)

2.Зашифруйте (примените 3DES) прозрачный блок PIN под ZPK.

Если вы используете Java, попробуйте javax.crypto.Cipher.

3.Используйте зашифрованную блокировку PIN в команде «FW» для генерации PVV

  • Код команды (FW)
  • Тип ключа шифрования PIN (001 для ZPK)
  • Ключ шифрования PIN (ZPK)
  • Ключ подтверждения PIN
  • Блок PIN
  • Код формата блокировки PIN
  • PAN / Account (12)
  • PVKI
...