Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.10.2011(UTC) Сообщений: 74 Откуда: Moscow
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
заметил странное поведение Asn1GeneralizedTime.getTime() и Asn1GeneralizedTime.compareTo(). Asn1GeneralizedTime.getTime() меняется от вызова к вызову на кол-во миллисекунд. Asn1GeneralizedTime.compareTo() сравнивает две даты след. образом: если a > b, то a.compareTo(b) < 0. Должно быть a>b -> a.compareTo(b) > 0. код: Код:public void test() throws IOException, CodecException, Asn1Exception, InterruptedException {
byte[] data = getFile("/home/pls/Desktop/error.sig");
data = Base64.decode(data);
ContentInfo contentInfo = ASN1Utils.toASN1Obj(ContentInfo.class, data);
SignedData sd = (SignedData) contentInfo.content;
SignerInfo info = sd.signerInfos.elements[0];
for (Attribute a : info.unsignedAttrs.elements) {
if (a.values.elements[0] instanceof RevocationValues) {
RevocationValues rv = (RevocationValues) a.values.elements[0];
BasicOCSPResponse response = rv.ocspVals.elements[0];
for (int i = 0; i < 20; i++) {
System.out.println(response.tbsResponseData.producedAt.getTime().getTimeInMillis());
Thread.sleep(17);
}
System.out.println("thisUpdate:" + response.tbsResponseData.responses.elements[0].thisUpdate.value);
System.out.println("producedAt:" + response.tbsResponseData.producedAt.value);
System.out.println("nextUpdate:" + response.tbsResponseData.responses.elements[0].nextUpdate.value);
System.out.println("producedAt < nextUpdate " +
(response.tbsResponseData.producedAt.compareTo(response.tbsResponseData.responses.elements[0].nextUpdate) < 0));
}
}
}
вывод: Цитата: 1324549092878 1324549092895 1324549092913 1324549092930 1324549092947 1324549092965 1324549092982 1324549092999 1324549092016 1324549092034 1324549092051 1324549092068 1324549092086 1324549092108 1324549092125 1324549092142 1324549092160 1324549092177 1324549092194 1324549092212 thisUpdate:20111222101812Z producedAt:20111222101812Z nextUpdate:20111123114502Z producedAt < nextUpdate true
Вложение(я): error.sig (19kb) загружен 9 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.10.2011(UTC) Сообщений: 74 Откуда: Moscow
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
фидбэка нет, проблема у меня в коде?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 08.05.2008(UTC) Сообщений: 41 Откуда: Крипто-Про Поблагодарили: 1 раз в 1 постах
|
Нет, проблема не у вас в коде, проблема в классах objsys. Я посмотрю, что можно сделать.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 08.05.2008(UTC) Сообщений: 41 Откуда: Крипто-Про Поблагодарили: 1 раз в 1 постах
|
По поводу первого метода: как вы, наверное, догадываетесь, дело в том, что дата producedAt хранится с точностью до секунды. Она устанавливается в методе getTime в объект Calendar, который инициализируется при создании текущим временем (с точностью до миллисекунды). Поскольку при установки нового значения заменяются только значимые поля, установленные при инициализации объекта миллисекунды не обнуляются, а остаются текущими.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 08.05.2008(UTC) Сообщений: 41 Откуда: Крипто-Про Поблагодарили: 1 раз в 1 постах
|
По поводу второго вопроса: в классах asn1 runtime есть ошибка приведения типов (long к int), где возникает переполнение int. В следующих версиях провайдера мы выложим исправленный asn1 runtime.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 08.05.2008(UTC) Сообщений: 41 Откуда: Крипто-Про Поблагодарили: 1 раз в 1 постах
|
Спасибо за ваше сообщение об ошибке.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 04.10.2011(UTC) Сообщений: 74 Откуда: Moscow
Сказал(а) «Спасибо»: 1 раз Поблагодарили: 1 раз в 1 постах
|
ок, жду исправления, если возможно отошлите мыл/сообщение когда выйдет патч.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close