Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,137 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 530 раз Поблагодарили: 2163 раз в 1688 постах
|
sotex написал:Андрей * написал:sotex написал:Андрей * написал:sotex написал: код банальнейший (отпуская проверки и выволд кода ошибки)
gonext := CryptAcquireContext(@Prov,'sdk','Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider',75,CRYPT_MACHINE_KEYSET); gonext := CryptCreateHash(Prov,CALG_SHA1,0,0, @Hash); gonext := CryptHashData(Hash,PByte(point),Length(point),0); BufLen:=0; gonext := CryptSignHash(Hash,AT_SIGNATURE,nil,0,PByte(sResult),@BufLen); if BufLen>0 then begin SetLength(sResult,BufLen); CryptSignHash(Hash,AT_SIGNATURE,nil,0,PByte(sResult),@BufLen); end;
ошибки: CryptAcquireContext Ok 5 CryptCreateHash Ok 5 CryptHashData Ok 5 CryptSignHash Ok 5 0 QEKZACwQAAA1DQoACDZFAEBCmQAcEAAAAAAAAAAAAAAAAAAA1gIAAAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAPQkmQD0JJ==
сама подпись - просто base64 не измененной CryptSignHash памяти
gonext := CryptCreateHash(Prov, CALG_SHA1,0,0, @Hash); Не вижу правильного алгоритма хеширования с другим (напр. CALG_MD5) CryptSignHash выдает ошибку 2148073480 (В подписном сертификате указан SHA1) В подписном сертификате указан SHA1 = где? Цитата: _BAD_ALGID = 2148073480
Если открытый ключ не ГОСТ - тогда какие могут быть вопросы к КриптоПРО CSP ? Алгоритм подписи - ГОСТ Р 34.11/34.10-2001 Алгоритм отпечатка - sha1 1) указывай CALG_GR3411 - алгоритм хеширования, а не CALG_SHA1 2) Алгоритм отпечатка - никакого отношения к сертификату не имеет. Это хеш по алгоритму sha1 от сертификата (если его сохранить в файл в DER-кодировке) и используется, например, для поиска сертификатов. Отредактировано пользователем 6 сентября 2012 г. 1:41:59(UTC)
| Причина: Не указана |
|