logo Обзор КриптоПро NGate для защищённого доступа к корпоративным ресурсам
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sotex  
#1 Оставлено : 5 сентября 2012 г. 21:42:05(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 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 для подписи.
Offline Андрей Писарев  
#2 Оставлено : 5 сентября 2012 г. 22:32:01(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
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 для подписи.


а у меня работает Anxious

(сборка на delphi7)
и ?

а) где код
б) что используется в качестве обертки на CryptoAPI
в) где ошибка\код ошибки


Отредактировано пользователем 5 сентября 2012 г. 22:33:15(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#3 Оставлено : 6 сентября 2012 г. 0:52:08(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 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 для подписи.


а у меня работает Anxious

(сборка на 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 памяти
Offline Андрей Писарев  
#4 Оставлено : 6 сентября 2012 г. 1:19:12(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
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)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#5 Оставлено : 6 сентября 2012 г. 1:23:15(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
Цитата:
: . 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 ..


не сильно похоже на подпись Anxious
мусор?
Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#6 Оставлено : 6 сентября 2012 г. 1:25:48(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 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)
Offline Андрей Писарев  
#7 Оставлено : 6 сентября 2012 г. 1:27:42(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
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)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#8 Оставлено : 6 сентября 2012 г. 1:28:32(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 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 ..


не сильно похоже на подпись Anxious
мусор?


сама подпись - просто base64 не измененной CryptSignHash памяти
Offline Андрей Писарев  
#9 Оставлено : 6 сентября 2012 г. 1:31:28(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
Свойства сертификата\Состав

Чему равно поле Открытый ключ?
ГОСТ Р 34.10-2001 (512 бит) ?



Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#10 Оставлено : 6 сентября 2012 г. 1:31:58(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 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
Offline sotex  
#11 Оставлено : 6 сентября 2012 г. 1:35:01(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 05.09.2012(UTC)
Сообщений: 10
Откуда: SPb

Андрей * написал:
Свойства сертификата\Состав

Чему равно поле Открытый ключ?
ГОСТ Р 34.10-2001 (512 бит) ?





да - он самый
Offline Андрей Писарев  
#12 Оставлено : 6 сентября 2012 г. 1:35:04(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
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)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#13 Оставлено : 6 сентября 2012 г. 1:35:51(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
sotex написал:
Андрей * написал:
Свойства сертификата\Состав

Чему равно поле Открытый ключ?
ГОСТ Р 34.10-2001 (512 бит) ?





да - он самый


ну тогда указывай правильный алгоритм хеширования, который " у нас - один " ...
Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#14 Оставлено : 6 сентября 2012 г. 1:41:29(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 05.09.2012(UTC)
Сообщений: 10
Откуда: SPb

Андрей * написал:
sotex написал:
Андрей * написал:
Свойства сертификата\Состав

Чему равно поле Открытый ключ?
ГОСТ Р 34.10-2001 (512 бит) ?





да - он самый


ну тогда указывай правильный алгоритм хеширования, который " у нас - один " ...


цифирку дай , плиз - CALG_GR3411 не описан в Wcrypt2
Offline Андрей Писарев  
#15 Оставлено : 6 сентября 2012 г. 1:46:09(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
sotex написал:


цифирку дай , плиз - CALG_GR3411 не описан в Wcrypt2


И не должен он там быть ...

Наконец-то дан ответ на вопрос
Цитата:

б) что используется в качестве обертки наД CryptoAPI



32798



Отредактировано пользователем 6 сентября 2012 г. 1:48:04(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#16 Оставлено : 6 сентября 2012 г. 1:47:21(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
Кстати, если пользоваться поиском по форумам (старый\новый)

http://cryptopro.ru/cryp...ro/forum/view.asp?q=2668

Anxious
Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#17 Оставлено : 6 сентября 2012 г. 1:53:04(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 05.09.2012(UTC)
Сообщений: 10
Откуда: SPb

Андрей * написал:
Кстати, если пользоваться поиском по форумам (старый\новый)

http://cryptopro.ru/cryp...ro/forum/view.asp?q=2668

Anxious


Спасибо - память изменилась, типа че-то подписал Silenced
По крайней мере теперь знаю куда копать
Offline Андрей Писарев  
#18 Оставлено : 6 сентября 2012 г. 1:59:22(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
sotex написал:
Андрей * написал:
Кстати, если пользоваться поиском по форумам (старый\новый)

http://cryptopro.ru/cryp...ro/forum/view.asp?q=2668

Anxious


Спасибо - память изменилась, типа че-то подписал Silenced
По крайней мере теперь знаю куда копать



Кстати, а почему с низкоуровневых функций начал?

Копать в сторону:
а) скачать с сайта SDK - есть примеры
б) поиск по форуму - на большинство вопросов - уже есть готовый код
Техническую поддержку оказываем тут
Наша база знаний
Offline sotex  
#19 Оставлено : 6 сентября 2012 г. 2:21:03(UTC)
sotex

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

Группы: Участники
Зарегистрирован: 05.09.2012(UTC)
Сообщений: 10
Откуда: SPb

Андрей * написал:
sotex написал:
Андрей * написал:
Кстати, если пользоваться поиском по форумам (старый\новый)

http://cryptopro.ru/cryp...ro/forum/view.asp?q=2668

Anxious


Спасибо - память изменилась, типа че-то подписал Silenced
По крайней мере теперь знаю куда копать



Кстати, а почему с низкоуровневых функций начал?

Копать в сторону:
а) скачать с сайта SDK - есть примеры
б) поиск по форуму - на большинство вопросов - уже есть готовый код


Жизнь заставила - всегда работали с openssl в обертке PHP Drool - всем достаточно, кроме билайна, который хочет по госту жить.
Кстати - не знаещь как можно на freebsd openssl с кприпто совместить?
Offline Андрей Писарев  
#20 Оставлено : 6 сентября 2012 г. 2:22:05(UTC)
Андрей Писарев

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

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

Сказал «Спасибо»: 279 раз
Поблагодарили: 1155 раз в 913 постах
sotex написал:


Жизнь заставила - всегда работали с openssl в обертке PHP Drool - всем достаточно, кроме билайна, который хочет по госту жить.
Кстати - не знаещь как можно на freebsd openssl с кприпто совместить?


Создай новую тему, в нужной ветке...
с описанием, что есть и что нужно в итоге

Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.