Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2012(UTC) Сообщений: 10 Откуда: SPb
|
Не работает подпись CryptSignHash из CryptoAPI (сборка на delphi7) Подключаюсь как Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider Тестовый сертификат взять с http://www.cryptopro.ru/certsrv/ тоже как Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider для подписи.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
sotex написал:Не работает подпись CryptSignHash из CryptoAPI (сборка на delphi7) Подключаюсь как Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider Тестовый сертификат взять с http://www.cryptopro.ru/certsrv/ тоже как Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider для подписи. а у меня работает (сборка на delphi7) и ? а) где код б) что используется в качестве обертки на CryptoAPI в) где ошибка\код ошибки Отредактировано пользователем 5 сентября 2012 г. 22:33:15(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2012(UTC) Сообщений: 10 Откуда: SPb
|
Андрей * написал:sotex написал:Не работает подпись CryptSignHash из CryptoAPI (сборка на delphi7) Подключаюсь как Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider Тестовый сертификат взять с http://www.cryptopro.ru/certsrv/ тоже как Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider для подписи. а у меня работает (сборка на delphi7) и ? а) где код б) что используется в качестве обертки на CryptoAPI в) где ошибка\код ошибки код банальнейший (отпуская проверки и выволд кода ошибки)
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 памяти
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
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); Не вижу правильного алгоритма хеширования Отредактировано пользователем 6 сентября 2012 г. 1:20:25(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
Цитата: : . 99 00 2C 10 00 00 35 0D ..,...5. : . 0A 00 08 36 45 00 40 42 ...6E.@B : . 99 00 1C 10 00 00 00 00 ........ : . 00 00 00 00 00 00 00 00 ........ : . 00 00 D6 02 00 00 01 00 ........ : . 53 00 74 00 72 00 69 00 S.t.r.i. : . 6E 00 67 00 46 00 69 00 n.g.F.i. : . 6C 00 65 00 49 00 F4 24 l.e.I..$ : . 99 00 ..
не сильно похоже на подпись мусор? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2012(UTC) Сообщений: 10 Откуда: SPb
|
Андрей * написал: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)
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
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 ? Отредактировано пользователем 6 сентября 2012 г. 1:28:41(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2012(UTC) Сообщений: 10 Откуда: SPb
|
Андрей * написал:Цитата: : . 99 00 2C 10 00 00 35 0D ..,...5. : . 0A 00 08 36 45 00 40 42 ...6E.@B : . 99 00 1C 10 00 00 00 00 ........ : . 00 00 00 00 00 00 00 00 ........ : . 00 00 D6 02 00 00 01 00 ........ : . 53 00 74 00 72 00 69 00 S.t.r.i. : . 6E 00 67 00 46 00 69 00 n.g.F.i. : . 6C 00 65 00 49 00 F4 24 l.e.I..$ : . 99 00 ..
не сильно похоже на подпись мусор? сама подпись - просто base64 не измененной CryptSignHash памяти
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,318 Сказал «Спасибо»: 549 раз Поблагодарили: 2207 раз в 1722 постах
|
Свойства сертификата\Состав
Чему равно поле Открытый ключ? ГОСТ Р 34.10-2001 (512 бит) ?
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 05.09.2012(UTC) Сообщений: 10 Откуда: SPb
|
Андрей * написал: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
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close