Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.02.2008(UTC) Сообщений: 66 Откуда: Москва
|
Как можно установить пароль на ключевой контейнер? Умеет делать утилита CSP в панели управления (Сервис -> Изменить пароль). Требуется автоматизировать этот процесс. CryptSetProvParam, в частности, с параметром PP_SIGNATURE_PIN используется для задания пароля, избавляя пользователя от ручного ввода.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,395 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 718 раз в 622 постах
|
WinCryptEx.hКод:#define PP_SET_PIN 107
#define PP_CHANGE_PIN 108
/*!
* \ingroup ProCSPData
*
* \brief Структура передачи информации для:
* 1) смены пароля контейнера,
* 2) указания способа доступа к контейнеру (имя, handle, пароль), на ключе которого
* зашифровано содержимое другого контейнера.
*
* \req_wincryptex
* \sa CPSetProvParam
*/
typedef struct _CRYPT_PIN_PARAM {
BYTE type;
/*!< Тип данных.
* CRYPT_PIN_PASSWD - пароль или PIN,
* CRYPT_PIN_ENCRYPTION - HANDLE контейнера зашифрования.
* CRYPT_PIN_QUERY - тип и значение выбираются в окне,
* CRYPT_PIN_CLEAR - очистить пароль.
* CRYPT_PIN_NK - разбить на части k из n
*/
CRYPT_PIN_SOURCE dest; /*!< Данные соответствующего типа */
} CRYPT_PIN_PARAM;
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.02.2008(UTC) Сообщений: 66 Откуда: Москва
|
Можете привести пример вызова? Это точно относится к CryptSetProvParam, а не к CPSetProvParam?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,395 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 718 раз в 622 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.02.2008(UTC) Сообщений: 66 Откуда: Москва
|
Пожалуйста, приветиде пример вызова. Мне необходимо для смены пароля контейнера.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,395 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 718 раз в 622 постах
|
Изменение пина с запросом нового в окне: Код:
#include "WinCryptEx.h"
....
CRYPT_PIN_PARAM param;
param.type = CRYPT_PIN_QUERY;
param.dest.passwd = NULL;
ret = CryptSetProvParam (hProv, PP_CHANGE_PIN, (UCHAR*)¶m, 0);
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.02.2008(UTC) Сообщений: 66 Откуда: Москва
|
Спасибо. В Delphi (с использование wincryptex.pas) установка пароля будет выглядеть так: Код:
var
Param: CRYPT_PIN_PARAM;
PassStr: string;
pass: PByte;
---
PassStr := 'test';
Param._type := CRYPT_PIN_PASSWD;
Param.dest.passwd := @PassStr[1]; // Не @PassStr!
pass := @Param;
if not CryptSetProvParam(context_sender.Provider, PP_CHANGE_PIN, pass, 0) then begin
ShowMessage(IntToStr(GetLastError));
end;
pass := nil;
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close