Platform SDK: Certificate Enrollment Control |
The GetSupportedKeySpec method retrieves information regarding the current cryptographic service provider (CSP) support for signature and/or exchange operations. The values retrieved by this method are dependent upon the current CSP.
[Visual Basic] objEnroll.GetSupportedKeySpec() As Long [C++] HRESULT GetSupportedKeySpec( DWORD* pdwKeySpec );
[Visual Basic] Represents the value specifying whether the current CSP supports exchange and/or signature keys. The value can be bitwise compared to AT_KEYEXCHANGE and AT_SIGNATURE. AT_KEYEXCHANGE is defined as 1 and AT_SIGNATURE is defined as 2 in wincrypt.h. If a CSP doesn't support this method, an error is returned.
[C++] The return value is an HRESULT. A value of S_OK indicates success, and *pdwKeySpec represents the value for the support provided by the current CSP. If a CSP doesn't support this method, an error is returned.
Call this method to determine if the current CSP supports exchange keys, signature keys, or both.
DWORD dwKeySpec; // Determine the supported key specifications. // hr is HRESULT variable. hr = pEnroll->GetSupportedKeySpec( &dwKeySpec ); if ( FAILED( hr ) ) printf("Failed GetSupportedKeySpec [%x]\n", hr); else { printf("Exchange keys are %s. Signature keys are %s.\n", dwKeySpec & AT_KEYEXCHANGE ? "supported" : "not supported", dwKeySpec & AT_SIGNATURE ? "supported" : "not supported" ); }
' Constants (from wincrypt.h). Const AT_KEYEXCHANGE = 1 Const AT_SIGNATURE = 2 ' Variable for the CEnroll object. Dim objXen As Object ' Instantiate the object. Set objXen = CreateObject("CEnroll.CEnroll.1") Dim KeySpec As Long ' Retrieve the value for key support KeySpec = objXen.GetSupportedKeySpec() ' Create a string based on the result. Dim strText As String strText = "Exchange keys are" If (KeySpec And AT_KEYEXCHANGE) Then strText = strText & " supported." Else strText = strText & " unsupported." End If strText = strText & vbNewLine strText = strText & "Signature keys are" If (KeySpec And AT_SIGNATURE) Then strText = strText & " supported." Else strText = strText & " unsupported." End If ' Output the key support. MsgBox (strText) ' Free object resource. Set objXen = Nothing
Windows NT/2000: Requires Windows 2000.
Header: Declared in Xenroll.h.
Library: Use Uuid.lib.