Window CryptApi 部分函数声明[中文]
//取得密钥交换对的公共密钥BOOLWINAPI CryptGetUserKey( HCRYPTPROV hProv, //得到的CSP句柄 DWORD dwKeySpec, //密钥对类型 HCRYPTKEY* phUserKey //返回密钥句柄);//产生随机会话密钥.BOOL WINAPI CryptGenKey( HCRYPTPROV hProv, //CSP句柄 ALG_ID Algid, //密钥对类型 DWORD dwFlags, //key类型 HCRYPTKEY* phKey //创建成功返回新创建的密钥对的句柄); //将会话密钥输出至隐码BOOL WINAPI CryptExportKey( HCRYPTKEY hKey, //需要被导出的密钥句柄 HCRYPTKEY hExpKey, //用来加密被导出密钥的密钥句柄 DWORD dwBlobType, //被导出的密钥类型,比如公钥还是私钥等 DWORD dwFlags, //标志位 BYTE* pbData, //保存导出的数据,如果为NULL, pdwDataLen将返回导出数据的长度 DWORD* pdwDataLen //输入pbData缓冲区的大小,输出导出数据的长度 );//从隐码导回会话密钥BOOL WINAPI CryptImportKey(HCRYPTPROV hProv, //CSP句柄 BYTE* pbData, //要导入的密钥数据 DWORD dwDataLen, //数据长度 HCRYPTKEY hPubKey, //如果数据是被加密的这里输入解密用的密钥句柄 DWORD dwFlags, //标志位 HCRYPTKEY* phKey //导入后返回的密钥句柄); //创建hashBOOL WINAPI CryptCreateHash( HCRYPTPROV hProv, //CSP句柄 ALG_ID Algid, //选择hash算法,比如CALG_MD5等 HCRYPTKEY hKey, //HMAC 和MAC算法时有用 DWORD dwFlags, //保留,传入0即可 HCRYPTHASH* phHash //返回hash句柄);//hash 指定的数据BOOL WINAPI CryptHashData( HCRYPTHASH hHash, //hash对象 BYTE* pbData, //被hash的数据 DWORD dwDataLen, //数据的长度 DWORD dwFlags //微软的CSP这个值会被忽略);//取hash 数据BOOL WINAPI CryptGetHashParam( HCRYPTHASH hHash, //hash对象 DWORD dwParam, //取hash数据的类型 BYTE* pbData, //受dwParam的影响,输出缓冲区 DWORD* pdwDataLen, //缓冲区大小 DWORD dwFlags);//取得或者创建 CSP即密码容器BOOL WINAPI CryptAcquireContext( HCRYPTPROV* phProv, // 返回CSP句柄 LPCTSTR pszContainer, // 密码容器名 LPCTSTR pszProvider, // NULL时使用默认CSP名(微软RSA Base Provider) DWORD dwProvType, // CSP类型 DWORD dwFlags //标识,CRYPT_NEWKEYSET 为创建CSP,CRYPT_DELETEKEYSET删除CSP,0取CSP);