Як витягти 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 об’єкт.
Питання:
- Чи є інструменти/бібліотеки (Go, Python тощо), які підтримують DSTU-4145-2002 і можуть витягти private key з .jks у .p12 з потрібним сертифікатом?
- Як правильно розшифрувати JSON від id.gov.ua, якщо є .jks? Може, є приклади коду чи утиліти від українських розробників?
- Чи потрібно звертатися до IIT чи іншого ЦСК за спец.софтом?
Буду вдячний за будь-які поради, код чи лінки!
2 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів