Поделиться через


функция обратного вызова PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC (wincrypt.h)

[Функция PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC доступна для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]

Функция PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC шифрует закрытый ключ и возвращает зашифрованное содержимое в параметре pbEncryptedKey . Это функция обратного вызова, определяемая в структуре CRYPT_PKCS8_EXPORT_PARAMS , которая создает структуру PKCS #8 CRYPT_ENCRYPTED_PRIVATE_KEY_INFO. Функция должна быть реализована разработчиком в соответствии с каждым приложением.

Синтаксис

PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC PcryptEncryptPrivateKeyFunc;

BOOL PcryptEncryptPrivateKeyFunc(
  [out]     CRYPT_ALGORITHM_IDENTIFIER *pAlgorithm,
  [in]      CRYPT_DATA_BLOB *pClearTextPrivateKey,
  [out]     BYTE *pbEncryptedKey,
  [in, out] DWORD *pcbEncryptedKey,
  [in]      LPVOID pVoidEncryptFunc
)
{...}

Параметры

[out] pAlgorithm

Указатель на структуру CRYPT_ALGORITHM_IDENTIFIER для получения алгоритма, используемого для шифрования типа PrivateKeyInfo ASN.1 в стандарте PKCS #8.

[in] pClearTextPrivateKey

Указатель на структуру CRYPT_DATA_BLOB , которая содержит зашифрованный закрытый ключ в виде открытого текста .

[out] pbEncryptedKey

Указатель на буфер BYTE для получения зашифрованного большого двоичного объекта закрытого ключа. Если этот параметр имеет значение NULL, pcbEncryptedKey вернет размер памяти в байтах, необходимый для хранения зашифрованного ключа при последующем вызове этой функции.

[in, out] pcbEncryptedKey

Указатель на переменную DWORD , содержащую размер буфера pbEncryptedKey в байтах. Если pbEncryptedKey имеет значение NULL, то pcbEncryptedKey задается размер в байтах, необходимый для шифрования ключа. Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

[in] pVoidEncryptFunc

Переменная LPVOID , содержащая данные, используемые для шифрования, такие как ключ, вектор инициализации и пароль.

Возвращаемое значение

Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается сбоем, она возвращает ноль (FALSE).

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h

См. также раздел

CRYPT_PKCS8_EXPORT_PARAMS

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC