Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline Андрей Писарев  
#11 Оставлено : 20 сентября 2019 г. 13:20:26(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,685
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
Закодируйте Content в base64, укажите перед инициализацией ContentEncoding,
пример:

Код:
  oSignedData.ContentEncoding = 1 
 oSignedData.Content = "U29tZSBEYXRhLg=="    




Пример :

Цитата:

// Предварительно закодированные в BASE64 бинарные данные
// В данном случае закодирована строка "Some Data."
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#12 Оставлено : 20 сентября 2019 г. 13:22:57(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,685
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
итого:

Техническую поддержку оказываем тут
Наша база знаний
Offline Setix  
#13 Оставлено : 20 сентября 2019 г. 13:48:16(UTC)
Setix

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2019(UTC)
Сообщений: 28
Российская Федерация
Откуда: МСК

В качестве: oSignedData.Content использовал вашу строку "U29tZSBEYXRhLg==" + oSignedData.ContentEncoding = 1 .

при флаге False:

MIINHwYJKoZIhvcNAQcCoIINEDCCDQwCAQExDDAKBgYqhQMCAgkFADALBgkqhkiG9w0BBwGgggkL
MIIJBzCCCLagAwIBAgIKRzalrwADAANs4TAIBgYqhQMCAgMwggFIMRgwFgYFKoUDZAESDTEwMzc3
MDAwODU0NDQxGjAYBggqhQMDgQMBARIMMDA3NzE3MTA3OTkxMTkwNwYDVQQJHjAEQwQ7AC4AIAQh
BEMESQRRBDIEQQQ6BDgEOQAgBDIEMAQ7ACwAIAQ0AC4AIAAxADgxITAfBgNVBAgeGAA3ADcAIAQz
AC4AIAQcBD4EQQQ6BDIEMDEVMBMGA1UEBx4MBBwEPgRBBDoEMgQwMSAwHgYJKoZIhvcNAQkBFhFp
bmZvQGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxKTAnBgNVBAoeIAQeBB4EHgAgACIEGgQgBBgE
HwQiBB4ALQQfBCAEHgAiMUEwPwYDVQQDHjgEIgQ1BEEEQgQ+BDIESwQ5ACAEIwQmACAEHgQeBB4A
IAAiBBoEIAQYBB8EIgQeAC0EHwQgBB4AIjAeFw0xOTA5MDkxMTAxMDBaFw0xOTEyMDkxMTExMDBa
MIICDzEYMBYGBSqFA2QBEg0xMjM0NTY3ODkwMTIzMRowGAYIKoUDA4EDAQESDDAwMTIzNDU2Nzg5
MDEbMBkGCSqGSIb3DQEJARYMaW5mb0B0ZXN0LnJ1MQswCQYDVQQGEwJSVTElMCMGA1UECAwc0JzQ
vtGB0LrQvtCy0YHQutCw0Y8g0L7QsdC7LjEfMB0GA1UEBwwW0LMuINCi0LXRgdGC0L7Qs9GA0LDQ
tDEnMCUGA1UECgwe0J7RgNCz0LDQvdC40LfQsNGG0LjRj9Ci0LXRgdGCMSswKQYDVQQLDCLQn9C+
0LTRgNCw0LfQtNC10LvQtdC90LjQtdCi0LXRgdGCMSIwIAYDVQQDDBnQotC10YHRgtC+0LLRi9C5
INCj0JrQrdCfMSswKQYDVQQJDCLRg9C7LiDQotC10YHRgtC+0LLQsNGPINC00L7QvC4gMTIzMUMw
QQYJKoZIhvcNAQkCDDTRgtC10YHRgtCd0LXRgdGC0YDRg9C60YLRg9GA0LjRgNC+0LLQsNC90L3Q
vtC10JjQvNGPMSMwIQYDVQQMDBrQlNC+0LvQttC90L7RgdGC0YzQotC10YHRgjEyMDAGA1UEKgwp
0JjQvNGP0KLQtdGB0YIyINCe0YLRh9C10YHRgtCy0L7QotC10YHRgjIxIDAeBgNVBAQMF9Ck0LDQ
vNC40LvQuNGP0KLQtdGB0YIyMGMwHAYGKoUDAgITMBIGByqFAwICJAAGByqFAwICHgEDQwAEQMWf
2rSE7EVTZjfboGYzZxUNZlZ0ZJKoEAr3wcUJ/Ar5WMPR593iwyUCziJnqX87PHWzXtpI8enwiq8c
1qduVAyjggSzMIIErzAOBgNVHQ8BAf8EBAMCBPAwJgYDVR0lBB8wHQYIKwYBBQUHAwQGByqFAwIC
IgYGCCsGAQUFBwMCMB0GA1UdDgQWBBRnzlL2NPMqC2BC9pyhQYjUGkg0RTCCAYkGA1UdIwSCAYAw
ggF8gBQrshA0ZoICrPDhqkCGeAFxRZ0z46GCAVCkggFMMIIBSDEYMBYGBSqFA2QBEg0xMDM3NzAw
MDg1NDQ0MRowGAYIKoUDA4EDAQESDDAwNzcxNzEwNzk5MTE5MDcGA1UECR4wBEMEOwAuACAEIQRD
BEkEUQQyBEEEOgQ4BDkAIAQyBDAEOwAsACAENAAuACAAMQA4MSEwHwYDVQQIHhgANwA3ACAEMwAu
ACAEHAQ+BEEEOgQyBDAxFTATBgNVBAceDAQcBD4EQQQ6BDIEMDEgMB4GCSqGSIb3DQEJARYRaW5m
b0BjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMSkwJwYDVQQKHiAEHgQeBB4AIAAiBBoEIAQYBB8E
IgQeAC0EHwQgBB4AIjFBMD8GA1UEAx44BCIENQRBBEIEPgQyBEsEOQAgBCMEJgAgBB4EHgQeACAA
IgQaBCAEGAQfBCIEHgAtBB8EIAQeACKCEESH2ldJk2CeSHb2gnNE/xcwXAYDVR0fBFUwUzBRoE+g
TYZLaHR0cDovL3d3dy5jcnlwdG9wcm8ucnUvcmEvY2RwLzJiYjIxMDM0NjY4MjAyYWNmMGUxYWE0
MDg2NzgwMTcxNDU5ZDMzZTMuY3JsMIGxBggrBgEFBQcBAQSBpDCBoTA0BggrBgEFBQcwAYYoaHR0
cDovL3d3dy5jcnlwdG9wcm8ucnUvb2NzcG5jMi9vY3NwLnNyZjAyBggrBgEFBQcwAYYmaHR0cDov
L3d3dy5jcnlwdG9wcm8ucnUvb2NzcDIvb2NzcC5zcmYwNQYIKwYBBQUHMAKGKWh0dHA6Ly93d3cu
Y3J5cHRvcHJvLnJ1L3JhL2NkcC9jYWNlcjMuY3J0MCsGA1UdEAQkMCKADzIwMTkwOTA5MTEwMTAw
WoEPMjAxOTEyMDkxMTAxMDBaMB0GA1UdIAQWMBQwCAYGKoUDZHEBMAgGBiqFA2RxAjA0BgUqhQNk
bwQrDCnQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQICjQstC10YDRgdC40Y8gMy42KTCCATMGBSqFA2Rw
BIIBKDCCASQMKyLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIiAo0LLQtdGA0YHQuNGPIDMuNikMUyLQ
o9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgItCa0YDQuNC/0YLQvtCf0YDQ
viDQo9CmIiDQstC10YDRgdC40LggMS41DE/QodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy
0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI0LTI3Mzgg0L7RgiAwMS4wNy4yMDE1DE/QodC10YDR
gtC40YTQuNC60LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI4LTI3Njgg
0L7RgiAzMS4xMi4yMDE1MAgGBiqFAwICAwNBAHBUWLLF8X0R2zOhUYOA+tt6w0qkpQdo8NY64/IY
eoNrnozow5qYydgAch8C+nGaIPFTjWyRuokJrsYq4Z1le9AxggPbMIID1wIBATCCAVgwggFIMRgw
FgYFKoUDZAESDTEwMzc3MDAwODU0NDQxGjAYBggqhQMDgQMBARIMMDA3NzE3MTA3OTkxMTkwNwYD
VQQJHjAEQwQ7AC4AIAQhBEMESQRRBDIEQQQ6BDgEOQAgBDIEMAQ7ACwAIAQ0AC4AIAAxADgxITAf
BgNVBAgeGAA3ADcAIAQzAC4AIAQcBD4EQQQ6BDIEMDEVMBMGA1UEBx4MBBwEPgRBBDoEMgQwMSAw
HgYJKoZIhvcNAQkBFhFpbmZvQGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxKTAnBgNVBAoeIAQe
BB4EHgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiMUEwPwYDVQQDHjgEIgQ1BEEEQgQ+BDIESwQ5
ACAEIwQmACAEHgQeBB4AIAAiBBoEIAQYBB8EIgQeAC0EHwQgBB4AIgIKRzalrwADAANs4TAKBgYq
hQMCAgkFAKCCAhowGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTkw
OTIwMTA0MjI2WjAvBgkqhkiG9w0BCQQxIgQg+qS4bo4cueZ00K5WP1zP9KF98T9pRBYjb9lFq/kQ
0m0wggGtBgsqhkiG9w0BCRACLzGCAZwwggGYMIIBlDCCAZAwCAYGKoUDAgIJBCC2LdxGPfNeKJo1
BBsN3JODvvbToRIdaWE/f0PgLza3XzCCAWAwggFQpIIBTDCCAUgxGDAWBgUqhQNkARINMTAzNzcw
MDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3MTcxMDc5OTExOTA3BgNVBAkeMARDBDsALgAgBCEE
QwRJBFEEMgRBBDoEOAQ5ACAEMgQwBDsALAAgBDQALgAgADEAODEhMB8GA1UECB4YADcANwAgBDMA
LgAgBBwEPgRBBDoEMgQwMRUwEwYDVQQHHgwEHAQ+BEEEOgQyBDAxIDAeBgkqhkiG9w0BCQEWEWlu
Zm9AY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEpMCcGA1UECh4gBB4EHgQeACAAIgQaBCAEGAQf
BCIEHgAtBB8EIAQeACIxQTA/BgNVBAMeOAQiBDUEQQRCBD4EMgRLBDkAIAQjBCYAIAQeBB4EHgAg
ACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiAgpHNqWvAAMAA2zhMAoGBiqFAwICEwUABEDNaSKxgUkf
Gf0ohpCTwJjQXlbkYNeVCeJhk/9DougNRoUZn7BvSqBpnQXPxtfNuHlTClBzomv+5Tmudz4w3qoI

при флаге TRue
MIINLQYJKoZIhvcNAQcCoIINHjCCDRoCAQExDDAKBgYqhQMCAgkFADAZBgkqhkiG9w0BBwGgDAQK
U29tZSBEYXRhLqCCCQswggkHMIIItqADAgECAgpHNqWvAAMAA2zhMAgGBiqFAwICAzCCAUgxGDAW
BgUqhQNkARINMTAzNzcwMDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3MTcxMDc5OTExOTA3BgNV
BAkeMARDBDsALgAgBCEEQwRJBFEEMgRBBDoEOAQ5ACAEMgQwBDsALAAgBDQALgAgADEAODEhMB8G
A1UECB4YADcANwAgBDMALgAgBBwEPgRBBDoEMgQwMRUwEwYDVQQHHgwEHAQ+BEEEOgQyBDAxIDAe
BgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJSVTEpMCcGA1UECh4gBB4E
HgQeACAAIgQaBCAEGAQfBCIEHgAtBB8EIAQeACIxQTA/BgNVBAMeOAQiBDUEQQRCBD4EMgRLBDkA
IAQjBCYAIAQeBB4EHgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiMB4XDTE5MDkwOTExMDEwMFoX
DTE5MTIwOTExMTEwMFowggIPMRgwFgYFKoUDZAESDTEyMzQ1Njc4OTAxMjMxGjAYBggqhQMDgQMB
ARIMMDAxMjM0NTY3ODkwMRswGQYJKoZIhvcNAQkBFgxpbmZvQHRlc3QucnUxCzAJBgNVBAYTAlJV
MSUwIwYDVQQIDBzQnNC+0YHQutC+0LLRgdC60LDRjyDQvtCx0LsuMR8wHQYDVQQHDBbQsy4g0KLQ
tdGB0YLQvtCz0YDQsNC0MScwJQYDVQQKDB7QntGA0LPQsNC90LjQt9Cw0YbQuNGP0KLQtdGB0YIx
KzApBgNVBAsMItCf0L7QtNGA0LDQt9C00LXQu9C10L3QuNC10KLQtdGB0YIxIjAgBgNVBAMMGdCi
0LXRgdGC0L7QstGL0Lkg0KPQmtCt0J8xKzApBgNVBAkMItGD0LsuINCi0LXRgdGC0L7QstCw0Y8g
0LTQvtC8LiAxMjMxQzBBBgkqhkiG9w0BCQIMNNGC0LXRgdGC0J3QtdGB0YLRgNGD0LrRgtGD0YDQ
uNGA0L7QstCw0L3QvdC+0LXQmNC80Y8xIzAhBgNVBAwMGtCU0L7Qu9C20L3QvtGB0YLRjNCi0LXR
gdGCMTIwMAYDVQQqDCnQmNC80Y/QotC10YHRgjIg0J7RgtGH0LXRgdGC0LLQvtCi0LXRgdGCMjEg
MB4GA1UEBAwX0KTQsNC80LjQu9C40Y/QotC10YHRgjIwYzAcBgYqhQMCAhMwEgYHKoUDAgIkAAYH
KoUDAgIeAQNDAARAxZ/atITsRVNmN9ugZjNnFQ1mVnRkkqgQCvfBxQn8CvlYw9Hn3eLDJQLOImep
fzs8dbNe2kjx6fCKrxzWp25UDKOCBLMwggSvMA4GA1UdDwEB/wQEAwIE8DAmBgNVHSUEHzAdBggr
BgEFBQcDBAYHKoUDAgIiBgYIKwYBBQUHAwIwHQYDVR0OBBYEFGfOUvY08yoLYEL2nKFBiNQaSDRF
MIIBiQYDVR0jBIIBgDCCAXyAFCuyEDRmggKs8OGqQIZ4AXFFnTPjoYIBUKSCAUwwggFIMRgwFgYF
KoUDZAESDTEwMzc3MDAwODU0NDQxGjAYBggqhQMDgQMBARIMMDA3NzE3MTA3OTkxMTkwNwYDVQQJ
HjAEQwQ7AC4AIAQhBEMESQRRBDIEQQQ6BDgEOQAgBDIEMAQ7ACwAIAQ0AC4AIAAxADgxITAfBgNV
BAgeGAA3ADcAIAQzAC4AIAQcBD4EQQQ6BDIEMDEVMBMGA1UEBx4MBBwEPgRBBDoEMgQwMSAwHgYJ
KoZIhvcNAQkBFhFpbmZvQGNyeXB0b3Byby5ydTELMAkGA1UEBhMCUlUxKTAnBgNVBAoeIAQeBB4E
HgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiMUEwPwYDVQQDHjgEIgQ1BEEEQgQ+BDIESwQ5ACAE
IwQmACAEHgQeBB4AIAAiBBoEIAQYBB8EIgQeAC0EHwQgBB4AIoIQRIfaV0mTYJ5IdvaCc0T/FzBc
BgNVHR8EVTBTMFGgT6BNhktodHRwOi8vd3d3LmNyeXB0b3Byby5ydS9yYS9jZHAvMmJiMjEwMzQ2
NjgyMDJhY2YwZTFhYTQwODY3ODAxNzE0NTlkMzNlMy5jcmwwgbEGCCsGAQUFBwEBBIGkMIGhMDQG
CCsGAQUFBzABhihodHRwOi8vd3d3LmNyeXB0b3Byby5ydS9vY3NwbmMyL29jc3Auc3JmMDIGCCsG
AQUFBzABhiZodHRwOi8vd3d3LmNyeXB0b3Byby5ydS9vY3NwMi9vY3NwLnNyZjA1BggrBgEFBQcw
AoYpaHR0cDovL3d3dy5jcnlwdG9wcm8ucnUvcmEvY2RwL2NhY2VyMy5jcnQwKwYDVR0QBCQwIoAP
MjAxOTA5MDkxMTAxMDBagQ8yMDE5MTIwOTExMDEwMFowHQYDVR0gBBYwFDAIBgYqhQNkcQEwCAYG
KoUDZHECMDQGBSqFA2RvBCsMKdCa0YDQuNC/0YLQvtCf0YDQviBDU1AgKNCy0LXRgNGB0LjRjyAz
LjYpMIIBMwYFKoUDZHAEggEoMIIBJAwrItCa0YDQuNC/0YLQvtCf0YDQviBDU1AiICjQstC10YDR
gdC40Y8gMy42KQxTItCj0LTQvtGB0YLQvtCy0LXRgNGP0Y7RidC40Lkg0YbQtdC90YLRgCAi0JrR
gNC40L/RgtC+0J/RgNC+INCj0KYiINCy0LXRgNGB0LjQuCAxLjUMT9Ch0LXRgNGC0LjRhNC40LrQ
sNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg0KHQpC8xMjQtMjczOCDQvtGCIDAxLjA3
LjIwMTUMT9Ch0LXRgNGC0LjRhNC40LrQsNGCINGB0L7QvtGC0LLQtdGC0YHRgtCy0LjRjyDihJYg
0KHQpC8xMjgtMjc2OCDQvtGCIDMxLjEyLjIwMTUwCAYGKoUDAgIDA0EAcFRYssXxfRHbM6FRg4D6
23rDSqSlB2jw1jrj8hh6g2uejOjDmpjJ2AByHwL6cZog8VONbJG6iQmuxirhnWV70DGCA9swggPX
AgEBMIIBWDCCAUgxGDAWBgUqhQNkARINMTAzNzcwMDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3
MTcxMDc5OTExOTA3BgNVBAkeMARDBDsALgAgBCEEQwRJBFEEMgRBBDoEOAQ5ACAEMgQwBDsALAAg
BDQALgAgADEAODEhMB8GA1UECB4YADcANwAgBDMALgAgBBwEPgRBBDoEMgQwMRUwEwYDVQQHHgwE
HAQ+BEEEOgQyBDAxIDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1MQswCQYDVQQGEwJS
VTEpMCcGA1UECh4gBB4EHgQeACAAIgQaBCAEGAQfBCIEHgAtBB8EIAQeACIxQTA/BgNVBAMeOAQi
BDUEQQRCBD4EMgRLBDkAIAQjBCYAIAQeBB4EHgAgACIEGgQgBBgEHwQiBB4ALQQfBCAEHgAiAgpH
NqWvAAMAA2zhMAoGBiqFAwICCQUAoIICGjAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqG
SIb3DQEJBTEPFw0xOTA5MjAxMDQ0MjZaMC8GCSqGSIb3DQEJBDEiBCD6pLhujhy55nTQrlY/XM/0
oX3xP2lEFiNv2UWr+RDSbTCCAa0GCyqGSIb3DQEJEAIvMYIBnDCCAZgwggGUMIIBkDAIBgYqhQMC
AgkEILYt3EY9814omjUEGw3ck4O+9tOhEh1pYT9/Q+AvNrdfMIIBYDCCAVCkggFMMIIBSDEYMBYG
BSqFA2QBEg0xMDM3NzAwMDg1NDQ0MRowGAYIKoUDA4EDAQESDDAwNzcxNzEwNzk5MTE5MDcGA1UE
CR4wBEMEOwAuACAEIQRDBEkEUQQyBEEEOgQ4BDkAIAQyBDAEOwAsACAENAAuACAAMQA4MSEwHwYD
VQQIHhgANwA3ACAEMwAuACAEHAQ+BEEEOgQyBDAxFTATBgNVBAceDAQcBD4EQQQ6BDIEMDEgMB4G
CSqGSIb3DQEJARYRaW5mb0BjcnlwdG9wcm8ucnUxCzAJBgNVBAYTAlJVMSkwJwYDVQQKHiAEHgQe
BB4AIAAiBBoEIAQYBB8EIgQeAC0EHwQgBB4AIjFBMD8GA1UEAx44BCIENQRBBEIEPgQyBEsEOQAg
BCMEJgAgBB4EHgQeACAAIgQaBCAEGAQfBCIEHgAtBB8EIAQeACICCkc2pa8AAwADbOEwCgYGKoUD
AgITBQAEQBeFpcnsCDzd945SBeqedCrlVrQTJfa3h5EzjGuEiGN8Ss2kopW8KLu67uf/eYrWdh1M
SiXpndxS41swR6G/9xE=
Offline Андрей Писарев  
#14 Оставлено : 20 сентября 2019 г. 15:35:41(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,685
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
Обе подписи проходят проверку.
Техническую поддержку оказываем тут
Наша база знаний
Offline Setix  
#15 Оставлено : 23 сентября 2019 г. 11:28:15(UTC)
Setix

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2019(UTC)
Сообщений: 28
Российская Федерация
Откуда: МСК

А можно тогда уточнить почему при подписи данных и следующей проверке их с помощью VerifyCades результат False?

sSignedData = oSignedData.SignCades(oSigner, CADES_BES, False, CAPICOM_ENCODE_BASE64)
oSignedData.VerifyCades sSignedData, CADES_BES, False

В описании функции должно возвращаться True.
Offline Андрей Писарев  
#16 Оставлено : 23 сентября 2019 г. 12:12:08(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,685
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
Автор: Setix Перейти к цитате
А можно тогда уточнить почему при подписи данных и следующей проверке их с помощью VerifyCades результат False?

sSignedData = oSignedData.SignCades(oSigner, CADES_BES, False, CAPICOM_ENCODE_BASE64)
oSignedData.VerifyCades sSignedData, CADES_BES, False

В описании функции должно возвращаться True.



Из моего примера или внесены исправления?
Снимок с ошибкой из vbs можно?

Сторонний софт - проверяет также успешно.
Техническую поддержку оказываем тут
Наша база знаний
Offline Setix  
#17 Оставлено : 23 сентября 2019 г. 12:36:18(UTC)
Setix

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2019(UTC)
Сообщений: 28
Российская Федерация
Откуда: МСК

Ваш код транслировал на Delphi - скажем так слово в слово.
подсветку сделал С чтобы код читаемым стал.

Код:

 procedure Test;
  var sSerialNumber : AnsiString;
  var oSigner : Olevariant;
  var outCTR : Olevariant;
  var oSignedData : OleVariant;
  var sSignedData : OleVariant;
  begin
   sSerialNumber := '6B00AF41000300036D76';                   {номер сертификата}
   oSigner := COMOBJ.CreateOleObject('CAdESCOM.CPSigner');    {}
   if GetSignerCertificate(sSerialNumber,outCTR) then         {если нашли указанный сертификат} 
   begin         
     oSigner.Certificate := outCTR;                           {} 
     oSignedData := COMOBJ.CreateOleObject('CAdESCOM.CadesSignedData'); {}
     oSignedData.ContentEncoding := 1;                                  {} 
     oSignedData.Content := 'U29tZSBEYXRhLg==';                         {}
     sSignedData := oSignedData.SignCades(oSigner,{CADES_BES}1,False,{CAPICOM_ENCODE_BASE64}0);   {получаем подписанные данные}
     if oSignedData.VerifyCades(sSignedData,{CADES_BES}1,False)=True  {проверяем подписанные данные}
      then ShowMessage('Подпись верна')  
      else ShowMessage('Подпись не верна')
   end
  end;

function  GetSignerCertificate(SerialNumber:AnsiString;var res:Olevariant) :boolean;
 var Store : Olevariant;
 var Crts : OleVariant;
 var count : longint;
 var ii : longint;
 var Crt : OleVariant;
 begin
  Result := False;
  Store := COMOBJ.CreateOleObject('CAdESCOM.Store');
  Store.Open(2);
  Crts := Store.Certificates;
  count := crts.Count;
  for ii:=1 to count do 
   begin
    Crt := crts.item[ii];
    if Crt.SerialNumber=SerialNumber then 
    begin res := Crt; Result := True; break; end;
   end;
 end;

Отредактировано пользователем 23 сентября 2019 г. 12:40:59(UTC)  | Причина: Не указана

Offline Setix  
#18 Оставлено : 23 сентября 2019 г. 12:42:53(UTC)
Setix

Статус: Участник

Группы: Участники
Зарегистрирован: 19.09.2019(UTC)
Сообщений: 28
Российская Федерация
Откуда: МСК

Автор: Setix Перейти к цитате
Ваш код транслировал на Delphi - скажем так слово в слово.
подсветку сделал С чтобы код читаемым стал. В {} комментарий.

Код:

 procedure Test;
  var sSerialNumber : AnsiString;
  var oSigner : Olevariant;
  var outCTR : Olevariant;
  var oSignedData : OleVariant;
  var sSignedData : OleVariant;
  begin
   sSerialNumber := '6B00AF41000300036D76';                   {номер сертификата}
   oSigner := COMOBJ.CreateOleObject('CAdESCOM.CPSigner');    {}
   if GetSignerCertificate(sSerialNumber,outCTR) then         {если нашли указанный сертификат} 
   begin         
     oSigner.Certificate := outCTR;                           {} 
     oSignedData := COMOBJ.CreateOleObject('CAdESCOM.CadesSignedData'); {}
     oSignedData.ContentEncoding := 1;                                  {} 
     oSignedData.Content := 'U29tZSBEYXRhLg==';                         {}
     sSignedData := oSignedData.SignCades(oSigner,{CADES_BES}1,False,{CAPICOM_ENCODE_BASE64}0);   {получаем подписанные данные}
     if oSignedData.VerifyCades(sSignedData,{CADES_BES}1,False)=True  {проверяем подписанные данные}
      then ShowMessage('Подпись верна')  
      else ShowMessage('Подпись не верна')
   end
  end;

function  GetSignerCertificate(SerialNumber:AnsiString;var res:Olevariant) :boolean;
 var Store : Olevariant;
 var Crts : OleVariant;
 var count : longint;
 var ii : longint;
 var Crt : OleVariant;
 begin
  Result := False;
  Store := COMOBJ.CreateOleObject('CAdESCOM.Store');
  Store.Open(2);
  Crts := Store.Certificates;
  count := crts.Count;
  for ii:=1 to count do 
   begin
    Crt := crts.item[ii];
    if Crt.SerialNumber=SerialNumber then 
    begin res := Crt; Result := True; break; end;
   end;
 end;


Offline Андрей Писарев  
#19 Оставлено : 23 сентября 2019 г. 13:56:14(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,685
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
1. В Delphi можно обращаться без COM, к MS CryptoAPI 2.0
2. Почитайте Объект CadesSignedData

если перейти по ссылкам в MSDN - то становится понятно поведение:
Цитата:

If this method fails, an error will be thrown. The Err object will contain additional information about the error.

Где написано, что возвращается boolean?

или Метод ICPSignedData2::VerifyCades



Работа через исключение + код\текст проблемы.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#20 Оставлено : 23 сентября 2019 г. 14:00:47(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,685
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2044 раз в 1585 постах
Код:

    try
      // поменяем исходные данные, чтобы поймать исключение и текст ошибки:
     oSignedData.Content := 'U19tZSBEYXRhLg==';
     oSignedData.VerifyCades(sSignedData, {CADES_BES}1, True);  {проверяем подписанные данные}

      ShowMessage('Подпись верна')
    except
       on E:Exception do
          ShowMessage('Подпись не верна: '+E.Message)
   end;
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.