Функция CryptAcquireCertificatePrivateKey получает дескриптор HCRYPTPROV CSP , включая доступ к связанному с ним ключевому контейнеруи параметр dwKeySpec для определенного пользователем контекста сертификата. Эта функция используется для получения доступа к закрытому ключу пользователя, когда сертификат пользователя доступен, а дескриптор CSP с пользовательским ключевым контейнером не является доступным. Эту функцию может использовать только владелец закрытого ключа, а не любой пользователь.
Если дескриптор CSP и ключевой контейнер, содержащие закрытый ключ пользователя, являются доступными, то можно использовать функцию CryptGetUserKey.
WINCRYPT32API BOOL WINAPI CryptAcquireCertificatePrivateKey( IN PCCERT_CONTEXT pCert, IN DWORD dwFlags, IN void * pvReserved, OUT HCRYPTPROV * phCryptProv, OUT OPTIONAL DWORD * pdwKeySpec, OUT OPTIONAL BOOL * pfCallerFreeProv );
С помощью параметра dwFlags можно управлять кэшированием открываемого дескриптора криптопровайдера. При первом вызове функции:
Флаг | Описание |
---|---|
CRYPT_ACQUIRE_CACHE_FLAG | Дескриптор будет закэширован в свойстве CERT_KEY_CONTEXT_PROP_ID контекста сертификата. |
CRYPT_ACQUIRE_USE_PROV_INFO_FLAG | Если в ссылке на ключ прописан флаг CERT_SET_KEY_CONTEXT_PROP_ID, дескриптор будет закэширован в свойстве CERT_KEY_CONTEXT_PROP_ID контекста сертификата. |
AIX: 5/6/7 или выше.
FreeBSD: 7/8/9 или выше.
Linux: LSB 3.1 (RHEL 4, SuSE 10) или выше.
Solaris: 10/11 или выше.
Mac OSX: 10.7/8 или выше.
iOS: 6/7 или выше.
Файл описания: Прототип описан в файлах CSP_WinCrypt.h и WinCryptEx.h.
Функции генерации и обмена ключа , CryptReleaseContext, CertSetCertificateContextProperty, CryptAcquireCertificatePrivateKey в MS CryptoAPI 2.0