Статус: Новичок
Группы: Участники
Зарегистрирован: 24.10.2025(UTC) Сообщений: 1  Откуда: Барнаул
|
Добрый день. Пытаюсь подписать Data для работы с api ЧЗ.
static void main() throws IOException, KeyStoreException, NoSuchProviderException, CertificateException, NoSuchAlgorithmException, UnrecoverableKeyException, SignatureException, InvalidKeyException { String password = "12345678"; String keyAlias = "Иванов Иван Иваныч";
InputStream privateKeyInputStream = new FileInputStream("file.pfx");
//загружаю в хранилище ключей подпись KeyStore keyStore = KeyStore.getInstance(JCSP.PFX_STORE_NAME, JCSP.PROVIDER_NAME); keyStore.load(privateKeyInputStream, password.toCharArray());
//получил закрытый ключ из подписи PrivateKey privateKey = (PrivateKey) keyStore.getKey(keyAlias, password.toCharArray()); System.out.println("privateKey " + privateKey.toString()); //получил сертификат var cert = keyStore.getCertificate(keyAlias); byte [] data = "sss-ssss-ssss".getBytes(); // то, что нужно подписать //создал подпись Signature sig = Signature.getInstance(JCP.GOST_SIGN_2012_256_NAME); // создал подпись с этой константой, потому что в сертификате из file.pfx увидел это GOST3411_2012_256withGOST3410_2012_256 //инициализировал sig.initSign(privateKey); byte[] signatureBytes = sig.sign(); String combined = Base64.getEncoder().encodeToString(cert.getEncoded())+ Base64.getEncoder().encodeToString(signatureBytes); System.out.println("Combined: " + combined);}
Подскажите, почему подпись не валидна? искренне пытался сам найти ответ в руководстве и в темах на форуме, но уже не понимаю сам куда копать и что не так делаю
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,062  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 738 раз в 696 постах
|
Добрый день.
Возможно, вам нужна не "голая" подпись (64 байта), а, например, CMS или CAdES? Тогда подписывать надо не данные, а атрибуты. В samples-sources.jar есть примеры: в пакете CMS - низкоуровневые, в CAdES - высокоуровневые. Посмотрите пример digital_marking.DigitalMarkingExample в samples-sources.jar. |
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close