Смирнов написал:Randoom написал:вопрос не столько в добавлении - сколько в проверке, будет ли проверяться стандартным способом подпись у такого документа - или надо будет писать кастомизированую проверку ?
 Подпись будет проверяться стандартно, а вот брать и проверять штамп придётся самостоятельно.
 Если это возможно хотелось бы помощи с следующими моментами
1) XAdES-C (как расширение для XAdES-T) подразумевает два дополнительных списка - CompleteCertificateRefs (и CompleteRevocationRefs) вводящих меня в некоторое замешательство.
Из объекта TSPCOM мы получаем Serial и Hash(+алгоритм), соответственно вставляем их в поля : 
Код:
< UnsignedSignatureProperties >
   < CompleteCertificateRefs >
      < CertRefs >
         < Cert >
            < CertDigest >
               < DigestMethod xmlns=" http ://www.w3.org/2000/09/xmldsig #" Algorithm=" http ://www.w3.org/2000/09/xmldsig #sha1"/ >
               < DigestValue xmlns=" http ://www.w3.org/2000/09/xmldsig #">gkBzQxlGGptYR4pniNVJEGsgDio=< /DigestValue >
            < / CertDigest >
            < IssuerSerial>
               < X509IssuerName xmlns=" http ://www.w3.org/2000/09/xmldsig # " >C=EE,O=AS Sertifitseerimiskeskus,CN=Juur-SK,emailAddress=pki@sk.ee</X509IssuerName >
               < X509SerialNumber xmlns=" http ://www.w3.org/2000/09/xmldsig # " >1110287047< /X509SerialNumber >
            < / IssuerSerial >
         < / Cert >
      < / CertRefs >
   < / CompleteCertificateRefs >
 А где в объекте TSPStamp собственно cам TimeStamp  ?
UPDATE^ 
нашел случайно на форуме что-то в таком духе 
Код:Timestamp data itself is stored in base64 format in < EncapsulatedTimeStamp > child element.
 т.е. вроде как :
TSPStamp tspStamp = tspRequest.Send(true);
CAPICOM.Utilities utilities = new Utilities();
hashDataInfo.InnerText = utilities.Base64Encode(tspStamp.Export());
a) Я так понимаю - сам timestamp именно так и получается ? .... просто в примерах он обычно много меньше по размеру .... 
Код:
< SignatureTimeStamp Id="S0-T0" >
   < Include URI="#S0-SIG" >< /Include >
   < EncapsulatedTimeStamp >MIIMYzADAgEAMIIMWgYJKoZIhvcNAQcCoIIMSzCCDEcCAQMxCzAJBgUrDgMCGgUAZSQAy4ewaA==      
   < /EncapsulatedTimeStamp>
< /SignatureTimeStamp >
 а в тестовом случае получается 
Код:
MIIFYAYJKoZIhvcNAQcCoIIFUTCCBU0CAQMxDDAKBgYqhQMCAgkFADBxBgsqhkiG
9w0BCRABBKBiBGAwXgIBAQYHKoUDAgImBDAfMAcGBSsOAwIaBBRwG5mp5SsqVgEV
K6kl1fsFA+PhqQIOAJg6WMV2AAAAAANBFE4YDzIwMDkwODEwMDk0NzU3WjAEAgIH
CAIIVf3YAIp2lfWgggLwMIIC7DCCApmgAwIBAgIKFrU8PgACAAAnWDAKBgYqhQMC
AgMFADBlMSAwHgYJKoZIhvcNAQkBFhFpbmZvQGNyeXB0b3Byby5ydTELMAkGA1UE
BhMCUlUxEzARBgNVBAoTCkNSWVBUTy1QUk8xHzAdBgNVBAMTFlRlc3QgQ2VudGVy
IENSWVBUTy1QUk8wHhcNMDkwODA1MTE0NzQ4WhcNMTAwODA1MTE1NzQ4WjApMQsw
CQYDVQQGEwJSVTEaMBgGA1UEAxMRRGVtbyBUU0EgT3BlcmF0b3IwYzAcBgYqhQMC
AhMwEgYHKoUDAgIjAQYHKoUDAgIeAQNDAARA/0u5tRAd6aT5XRay1zRqHiJ52wGQ
dUyKrvqwzHtVyD2qzjfZpQkGeVkV0Fea9lvdruZFKPylmfkTilw0qMJ5k6OCAWEw
ggFdMA4GA1UdDwEB/wQEAwIGwDATBgNVHSUEDDAKBggrBgEFBQcDCDAdBgNVHQ4E
FgQUCxUeprj1nFjQvzhFGJUP+3uRKi0wHwYDVR0jBBgwFoAUbY9eBdlfrJEXlB6V
mgUwODd6ECowVQYDVR0fBE4wTDBKoEigRoZEaHR0cDovL3d3dy5jcnlwdG9wcm8u
cnUvY2VydGVucm9sbC9UZXN0JTIwQ2VudGVyJTIwQ1JZUFRPLVBSTygyKS5jcmww
gZ4GCCsGAQUFBwEBBIGRMIGOMDMGCCsGAQUFBzABhidodHRwOi8vd3d3LmNyeXB0
b3Byby5ydS9vY3NwbmMvb2NzcC5zcmYwVwYIKwYBBQUHMAKGS2h0dHA6Ly93d3cu
Y3J5cHRvcHJvLnJ1L0NlcnRFbnJvbGwvQ3J5cHRvX1Rlc3QlMjBDZW50ZXIlMjBD
UllQVE8tUFJPKDIpLmNydDAKBgYqhQMCAgMFAANBAB7MvtRfJNglXoomheod+/WR
vkY5pOqPow7R3mo6+ihP1SOllxMjiDBVsv5caiMp6k1zqgX74f3+gF0FGAg/Gocx
ggHRMIIBzQIBATBzMGUxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1
MQswCQYDVQQGEwJSVTETMBEGA1UEChMKQ1JZUFRPLVBSTzEfMB0GA1UEAxMWVGVz
dCBDZW50ZXIgQ1JZUFRPLVBSTwIKFrU8PgACAAAnWDAKBgYqhQMCAgkFAKCB+DAa
BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIGYgPzX5
shFvHhnSta24WMYmSzCddBZx5PG6n1czfySsMIGoBgsqhkiG9w0BCRACDDGBmDCB
lTCBkjCBjwQU91wXrGcSpk/0rWKBxzm3yeMuzlEwdzBppGcwZTEgMB4GCSqGSIb3
DQEJARYRaW5mb0BjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMRMwEQYDVQQKEwpD
UllQVE8tUFJPMR8wHQYDVQQDExZUZXN0IENlbnRlciBDUllQVE8tUFJPAgoWtTw+
AAIAACdYMAoGBiqFAwICEwUABED7sEGRqtlkYYUwLrVgbYXHtJQTf3wVIPOctcez
EjOEGT3jxTRDS8COMytg6yt+KReKRWHJpltMXuJY7IQ96ODl
 b) зачем в tspStamp.Import вторым параметром tspRequest ? т.е. как правильно поднимать объект timeStamp (и вообще - нужно ли? - не совсем понимаю технологию проверки) ?
2) Каким образом происходит проверка (интересуют оба варианта и онлайн (XAdES-T) и offline (XAdES-C и далее)) штампа времени, хотя бы "на пальцах"? Я смутно предполагаю, что это действие аналогичное проверке CAdES-T(-C и далее), а у Вас, вроде как есть опыт в этом вопросе.
перефразирую ... через TSP я могу получить метку времени системы долгосрочного хранения электронных документов (Serial?). 
a) Как я могу обратиться, в данном случае к TSA Крипто-Про (как к поставщику услуг) для проверки штампа времени документа ? 
b) Могу ли я сделать возможной offline проверку timestamp ? 
p.s. в свете того что информации по данной теме, да еще и в свете .net + XML  в инете ну очень мало - буду рад любой помощи.
p.p.s. пока жду ответа - часто меняю вопросы - так как приходит понимание и осознание глупости предшествующей формулировки, так что не обезсудьте ) 
Отредактировано пользователем 10 августа 2009 г. 18:23:43(UTC)
 | Причина: Не указана