Статус: Участник
Группы: Участники
Зарегистрирован: 30.01.2013(UTC) Сообщений: 10
|
Подскажите, каким образом добавить дату и время подписи в CMS сообщение (просто дату и время на компьютере, где выполняется подписание)? Я так полагаю, нужено атрибут с OID 1.2.840.113549.1.9.5 добавить в signedAttrs (ну или unsigned)? Никак не могу сообразить, что нужно записать в значение - т.е. примерно так: Attribute[] attr = new Attribute[1]; attr[0] = new Attribute(new int[] { 1, 2, 840, 113549, 1, 9, 5 }, new Attribute_values(1)); attr[0].values.elements[0] = А что писать сюда? SignedAttributes sattr = new SignedAttributes(1); sattr.elements[0] = attr[0]; cms.signerInfos.elements[0].signedAttrs = sattr;
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.01.2013(UTC) Сообщений: 10
|
Собственно сам и нашел: cms.signerInfos.elements[0].unsignedAttrs = new UnsignedAttributes(1); cms.signerInfos.elements[0].unsignedAttrs.elements[0] = new Attribute(new OID("1.2.840.113549.1.9.5").value, new Attribute_values(1)); final Time time = new Time(); final Asn1UTCTime UTCTime = new Asn1UTCTime(); UTCTime.setTime(Calendar.getInstance()); time.set_utcTime(UTCTime); cms.signerInfos.elements[0].unsignedAttrs.elements[0].values.elements[0] = time.getElement(); Вопрос - а http://notary.cryptopro.ru/Detached.aspx тут время создания ЭЦП: не определено и значение "1.2.840.113549.1.9.5" не пишет. Будет писать только для signedAttrs???
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,439 Сказал «Спасибо»: 551 раз Поблагодарили: 2235 раз в 1743 постах
|
Автор: asmirnov84 Собственно сам и нашел: cms.signerInfos.elements[0].unsignedAttrs = new UnsignedAttributes(1); cms.signerInfos.elements[0].unsignedAttrs.elements[0] = new Attribute(new OID("1.2.840.113549.1.9.5").value, new Attribute_values(1)); final Time time = new Time(); final Asn1UTCTime UTCTime = new Asn1UTCTime(); UTCTime.setTime(Calendar.getInstance()); time.set_utcTime(UTCTime); cms.signerInfos.elements[0].unsignedAttrs.elements[0].values.elements[0] = time.getElement(); Вопрос - а http://notary.cryptopro.ru/Detached.aspx тут время создания ЭЦП: не определено и значение "1.2.840.113549.1.9.5" не пишет. Будет писать только для signedAttrs??? для signedAttrs пишет так: Цитата: В проверенном атрибуте подписи (1.2.840.113549.1.9.5) указано время подписания 30 января 2013 20:50:37 UTC
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.01.2013(UTC) Сообщений: 10
|
Время сервисом для проверки проверил. Теперь не могу понять, как раскодировать атрибут со временем при проверке подписи и привести в человеко-читаемый вид. final Attribute[] signAttrElem = info.signedAttrs.elements; // элементы SignAttr final timeAttr = signAttrElem[0]; // Время final Asn1Type openTime = timeAttr.values.elements[0];
что дальше делать с openTime? Вижу что там есть element Asn1UTCTime со значением 130131122949Z. Как из него вытащить время?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,982 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 709 раз в 670 постах
|
Автор: asmirnov84 Как из него вытащить время? Здравствуйте. Код:
Time sigTime = (Time)signTimeAttr.values.elements[0];
Asn1UTCTime time = (Asn1UTCTime) sigTime.getElement();
System.out.println("Signing Time: " + time);
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close