CryptSetProvider
[New
- Windows NT]
[New
- Windows 95, OEM Service Release 2]
The CryptSetProvider
function is used to specify the current user default CSP.
After this
function has been called, any calls this user subsequently makes to CryptAcquireContext
Note Typical
applications will not use this function. It is intended for sole use by
administrative applications.
BOOL
CRYPTFUNC CryptSetProvider(
LPCTSTR pszProvName, |
|
DWORD dwProvType |
|
); |
|
Parameters
pszProvName
[in] The name
of the new default CSP. This CSP should have already been installed on the
computer.
dwProvType
[in] The
provider type of the CSP specified by the pszProvName parameter.
Remarks
Well-behaved
applications do not usually specify a CSP name when calling the CryptAcquireContext
This means
that a call to CryptSetProvider will often determine the CSP of a given
type used by all applications that run from that point on. With this being the
case, the CryptSetProvider function should never be called without the
user s consent.
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To retrieve extended error
information, use the GetLastError
The following
table lists the error codes most commonly returned by the GetLastError
function.
Error |
Description |
ERROR_INVALID_HANDLE |
One of the
parameters specifies an invalid handle. |
ERROR_INVALID_PARAMETER |
One of the
parameters contains an invalid value. This is most often an illegal pointer. |
ERROR_NOT_ENOUGH_MEMORY |
The
operating system ran out of memory during the operation. |
Error codes
returned from the RegCreateKeyEx function. |
See RegCreateKeyEx. |
Error codes
returned from the RegSetValueEx function. |
See RegSetValueEx. |
Example
HCRYPTPROV hProv = 0;
// Specify the default PROV_RSA_SIG provider. Note
that this assumes
// that a CSP with a type of PROV_RSA_SIG and named
"Joe's Provider"
// has already been installed.
if(!CryptSetProvider(TEXT("Joe's
Provider"), PROV_RSA_SIG)) {
printf("Error %x during CryptSetProvider!\n", GetLastError());
return;
}
// Get handle to the provider that we just made
default.
if(!CryptAcquireContext(&hProv, NULL, NULL,
PROV_RSA_SIG, 0)) {
printf("Error %x during CryptAcquireContext!\n",
GetLastError());
return;
}
...
// Release provider handle.
if(!CryptReleaseContext(hProv, 0)) {
printf("Error %x during CryptReleaseContext!\n",
GetLastError());
return;
}
See Also