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 CryptGenKey(SafeCryptProviderHandle hProv, CALG Algid, KeyGenFlags dwFlags, out SafeCryptKeyHandle phKey);
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 bool CryptExportPublicKeyInfoEx(SafeCryptProviderHandle hCryptProv, CALG dwKeySpec, CertEncoding dwCertEncodingType, [MarshalAs(UnmanagedType.LPStr)] string pszPublicKeyObjId, uint dwFlags, IntPtr pvAuxInfo, IntPtr pInfo, ref uint pcbInfo);