Итак, я новичок в смарт-картах и пытаюсь вычислить подпись по некоторым случайным байтам. Операционная система на карте - cardos v4.3. Я могу использовать формат PKCS # 15 и стандарт ISO 7816.
Мой рабочий процесс для вычисления подписи выглядит следующим образом:
выберите приложение SigG APDU = 00 A4 01 0 C 02 1F FF 00. status = 90 00
проверьте сигн. Пин в текущем APDU DF = 00 20 00 81 08 31 32 33 34 35 36 37 38 00 status = 90 00
пытается подписать 40 случайных байтов с помощью PSO_CDS APDU = 00 2A 9E 9A 08 01 02 03 04 05 06 07 08 .... 28 (шестнадцатеричное) 00 status = 6A88
Смарт-карта находится в состоянии свежего сброса.
Я отсутствует команда, необходимое условие или что-то еще? Каков общий рабочий процесс при подписании ha sh, который был вычислен, например, с помощью openssl?
Я знаю, что для PSO_CDS должна быть текущая среда безопасности, в которой должен быть указан действительный PSO_PrivateKey, но я не Я понимаю, как включить это в поток команд.
Я планирую создать c ++ - функцию, которая получит ha sh, вычислит подпись с помощью смарт-карты, а затем вернет подпись.