Як витягти private key з .jks для розшифрування JSON від id.gov.ua (DSTU-4145-2002)?

Привіт, спільното! Потрібна допомога з криптографією. Маю JSON від id.gov.ua, який зашифрований моїм публічним ключем шифрування (encryption certificate). Приватний ключ лежить у файлі .jks (з паролем, 4 сертифікати в ланцюжку: Root CA, Intermediate CA, Signing Cert, Encryption Cert). Хочу розшифрувати дані, але стикаюся з проблемою: не можу витягти private key разом із сертифікатом шифрування (KeyUsage: Key_Agreement), бо стандартні інструменти (OpenSSL, keytool) не підтримують DSTU-4145-2002.

Що пробував:

  • KeyStore Explorer: Експортує .p12, але тільки з Signing Cert, Encryption Cert пропадає.
  • OpenSSL: openssl pkcs12 -in temp.p12 -out temp.pem видає unsupported private key algorithm: TYPE=DSTU 4145-2002 little endian.
  • Go з keystore-go: Пишу PEM, але OpenSSL не може його обробити через DSTU.
  • Java з Bouncy Castle: Складно для мене, не розібрався.

Мета: отримати .p12 з приватним ключем і сертифікатом шифрування (або напряму розшифрувати JSON). JSON від id.gov.ua виглядає як base64 (приклад: «eyJ...==»), думаю, це зашифрований DSTU-4145 об’єкт.

Питання:

  1. Чи є інструменти/бібліотеки (Go, Python тощо), які підтримують DSTU-4145-2002 і можуть витягти private key з .jks у .p12 з потрібним сертифікатом?
  2. Як правильно розшифрувати JSON від id.gov.ua, якщо є .jks? Може, є приклади коду чи утиліти від українських розробників?
  3. Чи потрібно звертатися до IIT чи іншого ЦСК за спец.софтом?

Буду вдячний за будь-які поради, код чи лінки!

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

id.gov.ua/...​ads/IDInfoProcessingD.pdf
ст. 40, посилання на бібліотеки з прикладами використання

Не дуже в темі, але ось таке не підходить? github.com/dstucrypt/jkurwa

Підписатись на коментарі