public static extern bool CryptHashPublicKeyInfo( SafeCryptProviderHandle hCryptProv, CALG Algid, uint dwFlags, CertEncoding dwCertEncodingType, CERT_PUBLIC_KEY_INFO pInfo, byte[] pbComputedHash, out uint pcbComputedHash );
public static extern IntPtr CertCreateSelfSignCertificate( SafeCryptProviderHandle hCryptProvOrNCryptKey, [Out] CRYPTOAPI_BLOB pSubjectIssuerBlob, CertCreationFlags dwFlags, CRYPT_KEY_PROV_INFO pKeyProvInfo, CRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, SYSTEMTIME pStartTime, SYSTEMTIME pEndTime, CERT_EXTENSIONS pExtension );
public static extern bool CryptSignAndEncodeCertificate( SafeCryptProviderHandle hCryptProv, CALG dwKeySpec, CertEncoding dwCertEncodingType, IntPtr lpszStructType, IntPtr pvStructInfo, CRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm, IntPtr pvHashAuxInfo, byte[] pbEncoded, ref uint pcbEncoded );
public static extern bool CryptImportKey(SafeCryptProviderHandle hProv, byte[] pbData, uint dwDataLen, SafeCryptKeyHandle hPubKey, uint dwFlags, out SafeCryptKeyHandle hKey);
public static extern bool CryptGenKey(SafeCryptProviderHandle hProv, CALG Algid, KeyGenFlags dwFlags, out SafeCryptKeyHandle phKey);
public static extern bool CryptExportPublicKeyInfoEx(SafeCryptProviderHandle hCryptProv, CALG dwKeySpec, CertEncoding dwCertEncodingType, [MarshalAs(UnmanagedType.LPStr)] string pszPublicKeyObjId, uint dwFlags, IntPtr pvAuxInfo, IntPtr pInfo, ref uint pcbInfo);
public static extern bool CryptAcquireContext(out SafeCryptProviderHandle hProv, string pszContainer, string pszProvider, Providers dwProvType, CryptFlags dwFlags);