Статус: Участник
Группы: Участники
Зарегистрирован: 27.04.2012(UTC) Сообщений: 15
Сказал(а) «Спасибо»: 4 раз
|
Добрый день! Занимаюсь созданием подписи стандарта CadES-T средствами JCP. Штамп времени и подпись PKCS7 создаётся нормально. A вот после прикладывания штампа в неподписываемый аттрибут, получаю что-то несовместимое ни с чем. вот код вложения штампа: Код:public byte[] injectTSinCMS(byte[] cmsData, byte[] tsData) throws Exception {
TimeStampResp response = new TimeStampResp();
response.decode(new Asn1DerDecodeBuffer(tsData));
TimeStampToken tsToken = response.timeStampToken;
Asn1DerEncodeBuffer encData = new Asn1DerEncodeBuffer();
tsToken.encode(encData);
byte[] contbytes = encData.getMsgCopy();
ContentInfo contentTS = new ContentInfo();
contentTS.decode(new Asn1DerDecodeBuffer(contbytes));
Attribute[] newvalues = new Attribute[1];
newvalues[0] = new Attribute(new int[] { 1, 2, 840, 113549, 1, 9, 16, 2, 14 }, new Attribute_values(1));
newvalues[0].values.elements[0] = contentTS.content;
UnsignedAttributes unattr = new UnsignedAttributes(1);
unattr.elements[0] = newvalues[0];
Asn1BerDecodeBuffer asnBuf = new Asn1BerDecodeBuffer(cmsData);
ContentInfo сInfo = new ContentInfo();
сInfo.decode(asnBuf);
SignedData cms = (SignedData) сInfo.content;
SignerInfo info = cms.signerInfos.elements[0];
SignerInfo newInf = new SignerInfo(info.version, info.sid, info.digestAlgorithm, info.signedAttrs, info.signatureAlgorithm, info.signature, unattr);
SignerInfos newInfos = new SignerInfos(1);
newInfos.elements[0] = newInf;
SignedData cmsM = new SignedData(cms.version, cms.digestAlgorithms, cms.encapContentInfo, cms.certificates, cms.crls, newInfos);
ContentInfo сInfoM = new ContentInfo();
сInfoM.contentType = сInfo.contentType;
сInfoM.content = cmsM;
Asn1BerEncodeBuffer asnBuf2 = new Asn1BerEncodeBuffer();
сInfoM.encode(asnBuf2, true);
return asnBuf2.getMsgCopy();
}
Может я что-то совсем не правильно делаю? Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) cadesT_cms_ts (3kb) загружен 6 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Здравствуйте. У подписи некорректная структура, я не нашел подписанный аттрибут signingCertificateV2 в подписи, он есть только у самого штампа. Пример подписи приложил, посмотрите отличия. Отредактировано пользователем 22 января 2013 г. 15:54:07(UTC)
| Причина: Не указана Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) CAdEST (3kb) загружен 23 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.04.2012(UTC) Сообщений: 15
Сказал(а) «Спасибо»: 4 раз
|
Вот тоже файлик, без аттрибута signingCertificateV2 в подписи, однако он валидный. Правда создан он не средствами JCP. Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) cms_TS (4kb) загружен 8 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Тут есть аттрибут 1.2.840.113549.1.9.16.2.47 (signingCertificateV2) в подписанных аттрибутах + аналогичный в штампе. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 27.04.2012(UTC) Сообщений: 15
Сказал(а) «Спасибо»: 4 раз
|
Вроде как получился валидный файл. Спасибо за помощь! Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) cadesT_cms_ts (4kb) загружен 16 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2016(UTC) Сообщений: 12
Сказал(а) «Спасибо»: 1 раз
|
dirt, можешь показать, как ты вставил штамп времени в подпись? И что ты передавал на вход в качестве параметра tsData ? Отредактировано пользователем 15 сентября 2016 г. 15:18:55(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Судя по коду, это ответ службы штампов. В CAdES.jar появилась возможность создать подпись формата CAdES-T. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2016(UTC) Сообщений: 12
Сказал(а) «Спасибо»: 1 раз
|
afev, можешь объяснить, что из чего расчитывается хеш и передается службе штампов времени?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: evgeni1 ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) из чего расчитывается хеш и передается службе штампов времени? Для штампа подписи - хеш подписи (64 байта). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 19.05.2016(UTC) Сообщений: 12
Сказал(а) «Спасибо»: 1 раз
|
А вы можете описать порядок, что зачем расчитывается? есть данные, берем от данных хеш подписываем хеш и получаеам подпись.
Как правильно делать?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close