Доброго времени суток всем!
Столкнулись с проблемой с одним сертификатом. При подписи выходит ошибка "Указан неправильный алгоритм. (0x80090008)".
Алгоритм создания подписи:
Берем сертификат. (1.2.643.7.1.1.3.2-ГОСТ Р 34.11-2012/34.10-2012 256 бит.)
CertGetCertificateContextProperty(CERT_KEY_PROV_INFO_PROP_ID), CryptAcquireContext.
Получаем криптопровайдер. (ProvName=Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider. ProvType=80.) (установлен v4.0.9017 KC1 Release Ver:4.0.9944)
В криптопровайдере ищем первый алгоритм хэширования, находим. (1.2.643.7.1.1.2.2 - ГОСТ Р 34.11-2012 256 бит.)
Кладём всё в CMSG_SIGNER_ENCODE_INFO.
И вот тут при вызове CryptMsgOpenToEncode выходит описанная ошибка.
Подозрение упало на алгоритм открытого ключа, который 512, хотя подпись и хэш пишет 256. В свойствах сертификата:
Цитата:Алгоритм подписи ГОСТ Р 34.11-2012/34.10-2012 256 бит
Алгорит хеширования ГОСТ Р 34.11-2012 256 бит
Открытый ключ ГОСТ Р 34.10-2012 512 бит
В КриптоАрм ошибка повторяется.
Через командную строку стало интереснее:
Код:C:\Program Files\Crypto Pro\CSP>csptest -sfsign -sign -add -detached -in file.ext -out file.ext.sig -my "...удалено..."
#0:
Subject: ...удалено...
Valid : 18.12.2018 07:37:00 - 18.12.2019 07:37:00 (UTC)
Issuer : ...удалено...
A CSP has been acquired.
Source message length: 57408
Calculated signature (or signed message) length: 3684
Signature was done. Signature (or signed message) length: 3684
Output file (file.ext.sig) has been saved
Total: SYS: 0,172 sec USR: 0,109 sec UTC: 2,201 sec
[ErrorCode: 0x00000000]
Но если указать алгоритм хеширования 256, то ошибка повторяется:
Код:C:\Program Files\Crypto Pro\CSP>csptest -sfsign -sign -add -detached -alg GOST12_256 -in file.ext -out file.ext.alg.sig -my "...удалено..."
#0:
Subject: ...удалено...
Valid : 18.12.2018 07:37:00 - 18.12.2019 07:37:00 (UTC)
Issuer : ...удалено...
A CSP has been acquired.
Source message length: 57408
An error occurred in running the program.
signtsf.c:596:Signature creation error
Error number 0x80090008 (-2146893816).
Указан неправильный алгоритм.
Total: SYS: 0,140 sec USR: 0,140 sec UTC: 2,335 sec
[ErrorCode: 0x80090008]
Попробовали получить сертификат у вас в тестовом 2012 УЦ, и даже смогли повторить чтобы выдал так же
Цитата:Алгоритм подписи ГОСТ Р 34.11-2012/34.10-2012 256 бит
Алгорит хеширования ГОСТ Р 34.11-2012 256 бит
Открытый ключ ГОСТ Р 34.10-2012 512 бит
Но ошибка не повторяется только в нашей АС, в КриптоАрме и в вашей командной строке без указания алгоритма.
Если указать -alg GOST12_256, то такая же ошибка.
Заметили еще такое поведение:
1) в панели КриптоПро CSP при просмотре проблемного сертификата в контейнере, когда поиск делаешь по контейнеру в нижнем комбобоксе выбирает 512 (Strong) провайдер, а если поиск по сертификату, то 256, у вашего в обоих случаях 512 (Strong).
2) в КриптоАрме при подписи при выборе проблемного сертификата говорит что он 256, а если выбрать ваш, то 512.
При просмотре сертификатов в ASN1 ничего подозрительного не нашел, алгоритмы обоих совпадают насколько я смог понять :)
Подскажите, как нам быть, в чём может быть проблема? И как правильно поступать с этими битностями? Что дополнительно проверить и приложить?
Прикладываю сертификаты:
Проблемный
-----BEGIN CERTIFICATE-----
MIII8zCCCJ6gAwIBAgIQAdSWpD63mpAAAAhFGlcCDzAMBggqhQMHAQEDAgUAMIIB
qDEpMCcGA1UEAwwg0J7QntCeICLQntGC0LrRgNGL0YLRi9C5INC60L7QtCIxKTAn
BgNVBAoMINCe0J7QniAi0J7RgtC60YDRi9GC0YvQuSDQutC+0LQiMUkwRwYDVQQL
DEDQntGC0LTQtdC7INC40L3RhNC+0YDQvNCw0YbQuNC+0L3QvdC+0Lkg0LHQtdC3
0L7Qv9Cw0YHQvdC+0YHRgtC4MQswCQYDVQQGEwJSVTEtMCsGA1UECAwkNjMg0KHQ
sNC80LDRgNGB0LrQsNGPINC+0LHQu9Cw0YHRgtGMMRUwEwYDVQQHDAzQodCw0LzQ
sNGA0LAxIjAgBgkqhkiG9w0BCQEWE3N1cHBvcnRjYUBvLWNvZGUucnUxWDBWBgNV
BAkMT9GD0LvQuNGG0LAg0KPQu9GM0Y/QvdC+0LLRgdC60LDRjywg0LTQvtC8IDUy
LzU1LCDRjdGC0LDQtiAxNSwg0LrQvtC80L3QsNGC0LAgMTQxGjAYBggqhQMDgQMB
ARIMMDA2MzEzMDA3MzAxMRgwFgYFKoUDZAESDTEwMzYzMDAyMjIxMDAwHhcNMTgx
MjE4MDczNzAwWhcNMTkxMjE4MDczNzAwWjCCAa4xSjBIBgNVBAMMQdCY0J8g0JrQ
uNGA0L/QuNGH0L3QuNC60L7QsiDQmNCz0L7RgNGMINCQ0LvQtdC60YHQsNC90LTR
gNC+0LLQuNGHMUowSAYDVQQKDEHQmNCfINCa0LjRgNC/0LjRh9C90LjQutC+0LIg
0JjQs9C+0YDRjCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhzELMAkGA1UEBhMC
UlUxLTArBgNVBAgMJDYzINCh0LDQvNCw0YDRgdC60LDRjyDQvtCx0LvQsNGB0YLR
jDEVMBMGA1UEBwwM0KHQsNC80LDRgNCwMSAwHgYJKoZIhvcNAQkBFhFraXJwNzc3
QHlhbmRleC5ydTEfMB0GA1UEBAwW0JrQuNGA0L/QuNGH0L3QuNC60L7QsjEuMCwG
A1UEKgwl0JjQs9C+0YDRjCDQkNC70LXQutGB0LDQvdC00YDQvtCy0LjRhzEaMBgG
CCqFAwOBAwEBEgw2MzE1MDIzNjg5ODAxGjAYBgUqhQNkBRIPMzE4NjMxMzAwMDkz
MTc5MRYwFAYFKoUDZAMSCzAzNTE5NzM1MTU3MIGqMCEGCCqFAwcBAQECMBUGCSqF
AwcBAgECAQYIKoUDBwEBAgMDgYQABIGAmjvvAE4ddizwSvwdxf315BgxqRJgk5Nb
J/Gu7cJDslEokBo9UBCzsy3283Nxg0Z0gAhaGfx9wS81gMEEve/ajXx//0jgHeNX
FssaG5hWSSypznGjwchukvge7I85Z0XcTrXcz6R+0/B1Z2obcydmyvDWQFZVbseJ
PpKNDVOkSt+BCQAxQTU3MDIwRqOCBD8wggQ7MAsGA1UdDwQEAwIE8DAdBgNVHSUE
FjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYDVR0TAQH/BAIwADAZBgUqhQNkbwQQ
DA5WaVBOZXQgQ1NQIDQuMjCBxQYFKoUDZHAEgbswgbgMDFZpUE5ldCBDU1AgNAxY
0J/RgNC+0LPRgNCw0LzQvNC90YvQuSDQutC+0LzQv9C70LXQutGBIFZpUE5ldCDQ
o9C00L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgNAwl0KHQpC8x
MjQtMjg2MCDQvtGCIDE1INC80LDRgNGC0LAgMjAxNgwn0KHQpC8xMjgtMjMyNCDQ
vtGCIDI1INCw0L/RgNC10LvRjyAyMDE0MB0GA1UdIAQWMBQwCAYGKoUDZHEBMAgG
BiqFA2RxAjB5BggrBgEFBQcBAQRtMGswaQYIKwYBBQUHMAKGXWh0dHA6Ly9vLWNv
ZGUucnUvcHVic2VydmljZS9pc3N1ZXJpbmZvL2tpZDRCRjgzRkI2NTQ2RjY3QzA4
ODQ1RkMxQTBCRTIxMzgyQzgyRTJEMzMvaXNzdWVyLmNydDCB/wYDVR0fBIH3MIH0
MHKgcKBuhmxodHRwOi8vd3d3Lm8tY29kZS5ydS9wdWJzZXJ2aWNlL2ludGNybGlu
Zm8vNjc0My1raWQ0QkY4M0ZCNjU0NkY2N0MwODg0NUZDMUEwQkUyMTM4MkM4MkUy
RDMzL3Jldm9rZWRDZXJ0cy5jcmwwfqB8oHqGeGZ0cDovL3ZpcHNlcnZpY2VAZnRw
Lm9wZW5jb2RlLnN1L3B1YnNlcnZpY2UvaW50Y3JsaW5mby82NzQzLWtpZDFEMzQx
MDNFMjBFMUFDMTAzMTI3MzNDM0M0OUIwOTlBNUNEMjhDMUYvcmV2b2tlZENlcnRz
LmNybDCCAV8GA1UdIwSCAVYwggFSgBRL+D+2VG9nwIhF/BoL4hOCyC4tM6GCASyk
ggEoMIIBJDEeMBwGCSqGSIb3DQEJARYPZGl0QG1pbnN2eWF6LnJ1MQswCQYDVQQG
EwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRkwFwYDVQQHDBDQsy4g0JzQ
vtGB0LrQstCwMS4wLAYDVQQJDCXRg9C70LjRhtCwINCi0LLQtdGA0YHQutCw0Y8s
INC00L7QvCA3MSwwKgYDVQQKDCPQnNC40L3QutC+0LzRgdCy0Y/Qt9GMINCg0L7R
gdGB0LjQuDEYMBYGBSqFA2QBEg0xMDQ3NzAyMDI2NzAxMRowGAYIKoUDA4EDAQES
DDAwNzcxMDQ3NDM3NTEsMCoGA1UEAwwj0JzQuNC90LrQvtC80YHQstGP0LfRjCDQ
oNC+0YHRgdC40LiCCnSjGiwAAAAAAQMwHQYDVR0OBBYEFGeKllVofC1EfeA74mDr
PtZygjfjMAwGCCqFAwcBAQMCBQADQQBjuS0Ah8gP1qa3CIjxAdmzrLL+ZETIm2Vv
rHmJYQkkeQi7HE9Pjo+i5/aU2HXV2RiKxU0RVjYiwgFYCU3khkbV
-----END CERTIFICATE-----
Ваш
-----BEGIN CERTIFICATE-----
MIIH5jCCB5OgAwIBAgIQYIGCAL2pYahPPm95MUTyjTAKBggqhQMHAQEDAjCCAVsx
IDAeBgkqhkiG9w0BCQEWEWluZm9AY3J5cHRvcHJvLnJ1MRgwFgYFKoUDZAESDTEw
Mzc3MDAwODU0NDQxGjAYBggqhQMDgQMBARIMMDA3NzE3MTA3OTkxMQswCQYDVQQG
EwJSVTEYMBYGA1UECAwPNzcg0JzQvtGB0LrQstCwMRUwEwYDVQQHDAzQnNC+0YHQ
utCy0LAxLzAtBgNVBAkMJtGD0LsuINCh0YPRidGR0LLRgdC60LjQuSDQstCw0Lsg
0LQuIDE4MSUwIwYDVQQKDBzQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iMWsw
aQYDVQQDDGLQotC10YHRgtC+0LLRi9C5INC/0L7QtNGH0LjQvdC10L3QvdGL0Lkg
0KPQpiDQntCe0J4gItCa0KDQmNCf0KLQni3Qn9Cg0J4iINCT0J7QodCiIDIwMTIg
KNCj0KYgMi4wKTAeFw0xODEyMjEwNzQ1MDlaFw0xOTAzMjEwNzU1MDlaMCYxCzAJ
BgNVBAYTAlJVMRcwFQYDVQQDDA7QkNGA0L3QvtC70YzQtDCBqjAhBggqhQMHAQEB
AjAVBgkqhQMHAQIBAgEGCCqFAwcBAQIDA4GEAASBgLUZIh8ihPGbhA9c7Df65c87
jYVtcnPADEqV91itXLylHGBLwcQGRRjOdzpKi2Ec9SLtGM9moK4hO3lwWnyVr+LW
fEBhiX9UiJoP7y9rx5sEqkx01cU8oUrGb/bZB58n7UAEm6VqcGOWvYmmM+Q2r1Ur
p9mCvO6OmlfR6MU5CcFno4IFGDCCBRQwDgYDVR0PAQH/BAQDAgP4MB8GCSsGAQQB
gjcVBwQSMBAGCCqFAwICLgAIAgEBAgEAMB0GA1UdDgQWBBQmf8QQtKsfTHxdtp5l
A5DbrcxgFjAmBgNVHSUEHzAdBggrBgEFBQcDAgYIKwYBBQUHAwQGByqFAwICIgYw
MgYJKwYBBAGCNxUKBCUwIzAKBggrBgEFBQcDAjAKBggrBgEFBQcDBDAJBgcqhQMC
AiIGMIGnBggrBgEFBQcBAQSBmjCBlzA4BggrBgEFBQcwAYYsaHR0cDovL3Rlc3Rj
YTIwMTIuY3J5cHRvcHJvLnJ1L29jc3Avb2NzcC5zcmYwWwYIKwYBBQUHMAKGT2h0
dHA6Ly90ZXN0Y2EyMDEyLmNyeXB0b3Byby5ydS9haWEvYmI3ZWZjNDEyZDRhN2Vi
YjEyMGYwNGMyMDU1YjRjZWMzMmYwY2Y1Yi5jcnQwHQYDVR0gBBYwFDAIBgYqhQNk
cQIwCAYGKoUDZHEBMCsGA1UdEAQkMCKADzIwMTgxMjIxMDc0NTA5WoEPMjAxOTAz
MjEwNzQ1MDlaMIIBQwYFKoUDZHAEggE4MIIBNAw00KHQmtCX0JggItCa0YDQuNC/
0YLQvtCf0YDQviBDU1AiICjQstC10YDRgdC40Y8gNC4wKQxa0J/QkNCaICLQo9C0
0L7RgdGC0L7QstC10YDRj9GO0YnQuNC5INGG0LXQvdGC0YAgItCa0YDQuNC/0YLQ
vtCf0YDQviDQo9CmIiDQstC10YDRgdC40LggMi4wDE/QodC10YDRgtC40YTQuNC6
0LDRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI0LTMwMTAg
0L7RgiAzMC4xMi4yMDE2DE/QodC10YDRgtC40YTQuNC60LDRgiDRgdC+0L7RgtCy
0LXRgtGB0YLQstC40Y8g4oSWINCh0KQvMTI4LTI5ODMg0L7RgiAxOC4xMS4yMDE2
MCwGBSqFA2RvBCMMIdCh0JrQl9CYICLQmtGA0LjQv9GC0L7Qn9GA0L4gQ1NQIjBg
BgNVHR8EWTBXMFWgU6BRhk9odHRwOi8vdGVzdGNhMjAxMi5jcnlwdG9wcm8ucnUv
Y2RwL2JiN2VmYzQxMmQ0YTdlYmIxMjBmMDRjMjA1NWI0Y2VjMzJmMGNmNWIuY3Js
MIIBlwYDVR0jBIIBjjCCAYqAFLt+/EEtSn67Eg8EwgVbTOwy8M9boYIBXqSCAVow
ggFWMSEwHwYJKoZIhvcNAQkBFhIgaW5mb0BjcnlwdG9wcm8ucnUxGDAWBgUqhQNk
ARINMTAzNzcwMDA4NTQ0NDEaMBgGCCqFAwOBAwEBEgwwMDc3MTcxMDc5OTExCzAJ
BgNVBAYTAlJVMRgwFgYDVQQIDA83NyDQnNC+0YHQutCy0LAxFTATBgNVBAcMDNCc
0L7RgdC60LLQsDEvMC0GA1UECQwm0YPQuy4g0KHRg9GJ0ZHQstGB0LrQuNC5INCy
0LDQuyDQtC4gMTgxJTAjBgNVBAoMHNCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQ
niIxZTBjBgNVBAMMXNCi0LXRgdGC0L7QstGL0Lkg0LPQvtC70L7QstC90L7QuSDQ
o9CmINCe0J7QniAi0JrQoNCY0J/QotCeLdCf0KDQniIg0JPQntCh0KIgMjAxMiAo
0KPQpiAyLjApghAT4eoAHqgnqEmoGGorqHBOMAoGCCqFAwcBAQMCA0EAUQMBwi6n
+B8FJ4nf0DkZl+0nBldyFGVLgHCQ1fZiUicJEANQiRLtLZnWyETyKygsWlcJm9yo
jOjrUCOcpMOXsw==
-----END CERTIFICATE-----