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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline Infopol  
#11 Оставлено : 2 декабря 2023 г. 10:17:31(UTC)
Infopol

Статус: Активный участник

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

Сказал(а) «Спасибо»: 17 раз
Автор: Санчир Момолдаев Перейти к цитате
Автор: Infopol Перейти к цитате
Приветствую!Возникла такая проблема.При старте программы нужно определить наличие подключения ключа ЭЦП


если речь про наличие съемных носителей (рутокен и пр)
Код:
HCRYPTPROV hCryptProv = 0;

	if (!CryptAcquireContext(
			&hCryptProv,
			NULL,
			NULL,
			PROV_GOST_2012_256,
			CRYPT_VERIFYCONTEXT))
	{
		cout << "Acquire context failed \n";
		return 1;
	}
...
DWORD dwFlags = CRYPT_FIRST | CRYPT_FQCN | PP_MEDIA_TYPE;
...
while (CryptGetProvParam(hCryptProv, PP_ENUMCONTAINERS, pbContainerName, &cbContainerName, dwFlags))
	{
		...
		dwFlags = CRYPT_NEXT;
	}


Си я не знаю.Нужно в Delphi просто функция наличия ключа ЭЦП с проверкой соответствия нужному номеру сертфиката.
Код:

function  SignKeyFound(NumberCert:string):boolean; //примерно так

Offline Андрей *  
#12 Оставлено : 2 декабря 2023 г. 12:06:54(UTC)
Андрей *

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

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

Сказал «Спасибо»: 550 раз
Поблагодарили: 2217 раз в 1731 постах
Автор: Infopol Перейти к цитате
Автор: Санчир Момолдаев Перейти к цитате
Автор: Infopol Перейти к цитате
Приветствую!Возникла такая проблема.При старте программы нужно определить наличие подключения ключа ЭЦП


если речь про наличие съемных носителей (рутокен и пр)
Код:
HCRYPTPROV hCryptProv = 0;

	if (!CryptAcquireContext(
			&hCryptProv,
			NULL,
			NULL,
			PROV_GOST_2012_256,
			CRYPT_VERIFYCONTEXT))
	{
		cout << "Acquire context failed \n";
		return 1;
	}
...
DWORD dwFlags = CRYPT_FIRST | CRYPT_FQCN | PP_MEDIA_TYPE;
...
while (CryptGetProvParam(hCryptProv, PP_ENUMCONTAINERS, pbContainerName, &cbContainerName, dwFlags))
	{
		...
		dwFlags = CRYPT_NEXT;
	}


Си я не знаю.Нужно в Delphi просто функция наличия ключа ЭЦП с проверкой соответствия нужному номеру сертфиката.
Код:

function  SignKeyFound(NumberCert:string):boolean; //примерно так



На Delphi будет тот же код,
разве сложно вместо { } написать begin end
разве сложно вместо if (!CryptAcquireContext написать if not CryptAcquireContext(

резюмируя - задача так и не была до сих пор решена?

Техническую поддержку оказываем тут
Наша база знаний
Offline Infopol  
#13 Оставлено : 2 декабря 2023 г. 14:55:06(UTC)
Infopol

Статус: Активный участник

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

Сказал(а) «Спасибо»: 17 раз
Автор: Андрей * Перейти к цитате
Автор: Infopol Перейти к цитате
Автор: Санчир Момолдаев Перейти к цитате
Автор: Infopol Перейти к цитате
Приветствую!Возникла такая проблема.При старте программы нужно определить наличие подключения ключа ЭЦП


если речь про наличие съемных носителей (рутокен и пр)
Код:
HCRYPTPROV hCryptProv = 0;

	if (!CryptAcquireContext(
			&hCryptProv,
			NULL,
			NULL,
			PROV_GOST_2012_256,
			CRYPT_VERIFYCONTEXT))
	{
		cout << "Acquire context failed \n";
		return 1;
	}
...
DWORD dwFlags = CRYPT_FIRST | CRYPT_FQCN | PP_MEDIA_TYPE;
...
while (CryptGetProvParam(hCryptProv, PP_ENUMCONTAINERS, pbContainerName, &cbContainerName, dwFlags))
	{
		...
		dwFlags = CRYPT_NEXT;
	}


Си я не знаю.Нужно в Delphi просто функция наличия ключа ЭЦП с проверкой соответствия нужному номеру сертфиката.
Код:

function  SignKeyFound(NumberCert:string):boolean; //примерно так



На Delphi будет тот же код,
разве сложно вместо { } написать begin end
разве сложно вместо if (!CryptAcquireContext написать if not CryptAcquireContext(

резюмируя - задача так и не была до сих пор решена?


Понял,что вам трудно написать код...
Offline Андрей *  
#14 Оставлено : 2 декабря 2023 г. 16:09:52(UTC)
Андрей *

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

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

Сказал «Спасибо»: 550 раз
Поблагодарили: 2217 раз в 1731 постах
Автор: Infopol Перейти к цитате

Понял,что вам трудно написать код...


Здесь на форуме всё есть, если прочитать ответы, не только в этой ветке.
Задачи "написать код" не было.

Более того - перечислены функции и порядок их вызова.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
nickm оставлено 02.12.2023(UTC)
Offline Андрей *  
#15 Оставлено : 3 декабря 2023 г. 3:40:29(UTC)
Андрей *

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

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

Сказал «Спасибо»: 550 раз
Поблагодарили: 2217 раз в 1731 постах
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.