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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AntonPetrov  
#1 Оставлено : 2 июня 2021 г. 12:24:13(UTC)
AntonPetrov

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.05.2021(UTC)
Сообщений: 5

Здравствуйте, пытаюсь создать подпись со штампом времени. получаю ошибку

For online validation by CRLDP parameter 'com.sun.security.enableCRLDP' (Oracle) or 'com.ibm.security.enableCRLDP' (IBM) must be set 'true' to enable or 'ocsp.enable' must be set 'true' (OCSP), or CRL passed for offline validation

Проверка CRL онлайн отключена, поскольку по непонятным причинам библиотека пытается пойти не по тому URL который указан в сертификате
cp.log (43kb) загружен 4 раз(а). chain.cer (2kb) загружен 1 раз(а).

Код:
private byte[] signTest(File file, String senderAlias, char[] senderPassword, boolean detached) throws Exception {

//        System.setProperty("com.sun.security.enableCRLDP", "true");
//        System.setProperty("com.ibm.security.enableCRLDP", "true");


        //CAdESUtility.initJCPAlgorithms();

        //Загрузка хранилища
        final KeyStore hdImageStore = KeyStore.getInstance(CMStools.STORE_TYPE);
        hdImageStore.load(null, null);

        //ключ отправителя
        final PrivateKey senderKey = (PrivateKey) hdImageStore.getKey(senderAlias, senderPassword);
        final List<Certificate> certificateChain = Arrays.asList(hdImageStore.getCertificateChain(senderAlias));

        // Конвертируем цепочку в X509Certificate.
        final List<X509Certificate> chain = Arrays.asList(certificateChain.toArray(new X509Certificate[certificateChain.size()]));

        File crlFile = new File("C:\\Temp\\crl_5.crl");
        Set<X509CRL> crlList = new HashSet<>();
        // Если задан CRL, то читаем его из файла.
        if (crlFile.exists()) {
            X509CRL crl = (X509CRL) CertificateFactory.getInstance("X.509")
                    .generateCRL(new FileInputStream(crlFile));
            crlList.add(crl);
        }

        CAdESSignature cadesSignature = new CAdESSignature(false);
        cadesSignature.addSigner(
                JCP.PROVIDER_NAME,
                "1.2.643.7.1.1.2.2",
                JCP.GOST_DIGEST_2012_256_OID,
                senderKey,
                chain,
                CAdESType._AdES_X_Long_Type_1,
                tspUri,
                false,
                null,
                null,
                crlList,
                true);


        File initialFile = file.getAbsoluteFile();
        InputStream data = new FileInputStream(initialFile);

        // Будущая подпись в виде потока в файл.
        ByteArrayOutputStream signatureStream = new ByteArrayOutputStream();

        cadesSignature.open(signatureStream); // подготовка контекста

        int buffer_size = 1024 * 1024;
        byte[] buffer = new byte[buffer_size];
        int read;

        // Чтение файла и хеширование данных
        while ( (read = data.read(buffer, 0, buffer_size)) > 0 ) {
            cadesSignature.update(buffer, 0, read);
        }

        cadesSignature.close(); // создание подписи с выводом в signatureStream
        data.close();
        signatureStream.close();

        return signatureStream.toByteArray();
    }

Отредактировано пользователем 2 июня 2021 г. 16:09:53(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.