Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline alexey777  
#1 Оставлено : 27 июля 2024 г. 11:13:21(UTC)
alexey777

Статус: Участник

Группы: Участники
Зарегистрирован: 19.06.2024(UTC)
Сообщений: 23
Российская Федерация
Откуда: Moscow

Добрый день. Кодируем данные из ЧЗ. При этом получаем только часть закодированных данных. В чем может быть проблема?

Код:

byte[] result =  createMixedSignatureWith2Signers(
                    iConfiguration, SimpleConfiguration.getTempFileName(null), "BMCKLPZSZHWOEZGITRZRTSMIYUZJPA");
            System.out.println((new Encoder()).encode(result));
            System.out.println(Base64.getEncoder().encodeToString(result));
            System.out.println(new String(Base64.getEncoder().encodeToString(result).getBytes()));


Код:

public static byte[] createMixedSignatureWith2Signers(IConfiguration
                                                                       config, String outFileName, String data) throws Exception {

        CAdESSignature cadesSignature = new CAdESSignature(config.detached());

        cadesSignature.setCertificateStore(config.getCertificateStore());
        cadesSignature.setCRLStore(config.getCRLStore());
        cadesSignature.addSigner(
                JCSP.PROVIDER_NAME, // signature provider // провайдер подписи
                config.getDigestOid(),//null,
                config.getPublicKeyOid(), //null,
                config.getPrivateKey(), // signing key // ключ подписанта
                config.getChain(),      // signing certificate chain // цепочка сертификатов подписанта
                CAdESType.CAdES_BES,
                null,
                false,
                config.getSignedAttributes(), //null,
                config.getUnsignedAttributes(),//null,  //null,
                config.getCRLs(),//null, //config.getCRLs(),//null, // no CRL files
                true  // add the signing certificate chain to the signature // добавить цепочку подписанта в подпись
        );
       
        ByteArrayOutputStream signatureStream
                = new ByteArrayOutputStream();

        try {

            cadesSignature.open(signatureStream);
            cadesSignature.update(data.getBytes(StandardCharsets.UTF_8));
            FileOutputStream fos = new FileOutputStream("sign9");
            fos.write(Base64.getEncoder().encodeToString(signatureStream.toByteArray()).getBytes());
            fos.close();
            //cadesSignature.close();

        } finally {
            signatureStream.close();
        }

        return signatureStream.toByteArray();
}


Результат такой: MIAGCSqGSIb3DQEHAqCAMIACAQExDjAMBggqhQMHAQECAgUAMIAGCSqGSIb3DQEHAQ==
Информации намного меньше, чем если бы кодировали через онлайн ресурс https://www.cryptopro.ru...ge/cades_bes_sample.html
Offline Андрей *  
#2 Оставлено : 27 июля 2024 г. 15:26:29(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 13,281
Мужчина
Российская Федерация

Сказал «Спасибо»: 548 раз
Поблагодарили: 2196 раз в 1714 постах
Здравствуйте.

В указанном результате - base64 от значения подписи (64 байта).

Страница с плагином делает base64 от CMS ( asn1 структура, сертификат, сведение по УЦ, хеш, дата\время подписания, подпись)
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.