Получение метки времени из XML

Добрый день!

Для верификации XML в KalkanCryptCom есть соответствующий метод, который возвращает суммарную информацию о верификации в текствовом удобочитаемом для человека виде. Я попытался вручную вытащить из XML подпись, чтобы получить из неё отдельно метку времени, но у меня не вышло. Есть ли возможность сделать такое, и если да, то как?

Добрый день!

То есть Вы взяли подпись из тега: ,
вычислили хэш от нее и отправили запрос на сервис TSP.
Если так, то все верно.
Что именно у Вас не получилось?

Нет, подпись я не хешировал и на TSP запрос не отправлял. Метка времени была устновлена калканом в момент подписи самого XML.
Т.е. у меня есть подписанный с меткой времени XML и я хочу оттуда получить исключительно метку времени, а не суммарную информацию о верификации.

Такой возможности нет.
Метод TSAGetTimeFromSig() работает исключительно с CAdES-T
Сейчас только ручками извлекать время из ответа VerifyXML().

У меня сейчас VerifyXML() возвращает:

Signature N 1
Id = sig-c663ae41-6860-6a18-94d3-77eb6b009ac0
certificateSerialNumber=1A2A453185B0D85AEC82ED714F18AD4D18FEEB5B
signatureAlgorithm=GOST 34.311-95 with GOST 34.310-2004(1.2.398.3.10.1.1.1.2)
serialNumber=IIN123456789011
Signature is OK

Как из этих данных добыть время не ясно.

При этом VerifyData() отдает информацию о метке времени.

Важно понимать отличия:

  • VerifyData предназначен для проверки CMS подписей.
  • VerifyXML предназначен для проверки XML подписей.

VerifyData вернет время подписи, если в подписи есть TSP метка времени. TSP может и не быть, тогда VerifyData не вернет время. TSP проверка осуществляется благодаря стандарту CAdES-T (CMS Advanced Electronic Signatures with Time-Stamp).

По поводу VerifyXML, точно не помню поддерживается ли проверка TSP метки времени. Сколько я видел XML подписей, ни в одной из них не встречал реализацию XAdES-T (XML Advanced Electronic Signature with Time-Stamp).

Спасибо за инофрмацию.

Получается в XML без TSP никак не получить время выполнения подписи?

Да, абсолютно верно.