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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline olch  
#1 Оставлено : 20 ноября 2014 г. 15:43:52(UTC)
olch

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
Создаю запрос к тестовому TSP серверу, в ответ код 2, failInfo = #03020780
В чем ошибка? Где посмотреть расшифровку кодов?

В метод передаю дайджест значения подписи.
Код:

Код:
   public org.bouncycastle.tsp.TimeStampResponse timestampData(byte[] digest) throws IOException {

        String TSA_URL = conf.getTspServerAddress(); // "http://www.cryptopro.ru/tsp/tsp.srf"

        try {
            TimeStampRequestGenerator reqgen = new TimeStampRequestGenerator();
            TimeStampRequest req = reqgen.generate(TSPAlgorithms.GOST3411, digest);
            
            byte request[] = req.getEncoded();

            URL url = new URL(TSA_URL);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();

            con.setDoOutput(true);
            con.setDoInput(true);
            con.setRequestMethod("POST");
            con.setRequestProperty("Content-type", "application/timestamp-query");
            con.setRequestProperty("Content-length", String.valueOf(request.length));
            OutputStream out = con.getOutputStream();
            try {
                out.write(request);
                out.flush();
            } finally {
                out.close();
            }

            if (con.getResponseCode() != HttpURLConnection.HTTP_OK) {
                throw new IOException("Received HTTP error: " + con.getResponseCode() + " - " + con.getResponseMessage());
            }
            InputStream in = con.getInputStream();
            TimeStampResp resp = TimeStampResp.getInstance(new ASN1InputStream(in).readObject());
            TimeStampResponse response = new TimeStampResponse(resp);
            response.validate(req);
            System.out.println(response.getTimeStampToken().getTimeStampInfo().getGenTime());
            return response;
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
Offline olch  
#2 Оставлено : 20 ноября 2014 г. 16:04:27(UTC)
olch

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

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

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 1 раз в 1 постах
И еще: Где можно найти пример встраивания timestamp на java (Crypto Pro JCP - 1.0.54) ?
Offline Евгений Афанасьев  
#3 Оставлено : 21 ноября 2014 г. 11:37:16(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 4,033
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 730 раз в 688 постах
Примеров создания запросов и обработки штампов в samples (JCP) нет, но код может быть примерно таким:
Код:

TimeStampRequestGenerator reqgen = new TimeStampRequestGenerator();
BigInteger nonce = BigInteger.valueOf(System.currentTimeMillis());

// imprint - хеш данных, hashAlg - OID алгоритма хеширования
TimeStampRequest req = reqgen.generate(hashAlg, imprint, nonce);
byte request[] = req.getEncoded();


где imprint:

Код:

MessageDigest messageDigest = MessageDigest.getInstance(hashAlg);
messageDigest.update(signature, 0, signature.length);
byte[] imprint = messageDigest.digest();


Кроме того, в ASN1P есть все необходимые классы для работы со штампами.

Отредактировано пользователем 21 ноября 2014 г. 11:47:50(UTC)  | Причина: Не указана

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