📄 bca_crypt.h
字号:
/*
* Copyright (c) 2004,
* All rights reserved.
*
* 文件名称:bca_crypt.h
*
* 当前版本:1.0
* 作 者:
* 完成日期:2004年5月30日
* 主要修改说明:
*
* 历史信息:
*
* 版本:
* 作者:
* 日期:
* 主要修改说明:
*
* 版本:
* 作者:
* 日期:
* 主要修改说明:
*
*/
#ifndef _BCA_CRYPT_
#define _BCA_CRYPT_
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************
*
*
* Random Functions
*
*
*********************************************/
BCA_API(BCA_RV)
BCA_GenRandom(
unsigned long randLen,
unsigned char *rand);
/*********************************************
*
*
* Hash Functions
*
*
*********************************************/
BCA_API(BCA_RV)
BCA_Hash(
unsigned long algorithmType,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_CreateHashObj(
BCA_OBJ *hashObj,
unsigned long algorithmType);
BCA_API(BCA_RV)
BCA_DestroyHashObj(
BCA_OBJ hashObj);
BCA_API(BCA_RV)
BCA_HashUpdate(
BCA_OBJ hashObj,
unsigned char *inData,
unsigned long inDataLen);
BCA_API(BCA_RV)
BCA_HashFinal(
BCA_OBJ hashObj,
unsigned char *outData,
unsigned long *outDataLen);
/*********************************************
*
*
* RSA Functions
*
*
*********************************************/
BCA_API(BCA_RV)
BCA_GenRsaKeyPair(
unsigned char *containerName,
unsigned long containerNameLen,
unsigned long keyUsage,
unsigned long modulusLen,
unsigned long exportFlag,
unsigned char *rsaKeyPairPin,
unsigned long rsaKeyPairPinLen);
BCA_API(BCA_RV)
BCA_GetPubLicKey(
unsigned char *containerName,
unsigned long containerNameLen,
unsigned long keyUsage,
unsigned char *publicKey,
unsigned long *publicKeyLen);
BCA_API(BCA_RV)
BCA_Pkcs1RsaPublicKeyEnc(
unsigned char *publicKey,
unsigned long publicKeyLen,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_Pkcs1RsaPublicKeyEncByCert(
unsigned char *certificate,
unsigned long certificateLen,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_Pkcs1RsaPrivateKeyDec(
unsigned char *containerName,
unsigned long containerNameLen,
unsigned long keyUsage,
unsigned char *rsaKeyPairPin,
unsigned long rsaKeyPairPinLen,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_RsaVerifySign(
unsigned long hashAlgorithmType,
unsigned char *hashValue,
unsigned long hashValueLen,
unsigned char *publicKey,
unsigned long publicKeyLen,
unsigned char *signData,
unsigned long signDataLen);
BCA_API(BCA_RV)
BCA_RsaSign(
unsigned char *containerName,
unsigned long containerNameLen,
unsigned long keyUsage,
unsigned char *rsaKeyPairPin,
unsigned long rsaKeyPairPinLen,
unsigned long hashAlgorithmType,
unsigned char *hashValue,
unsigned long hashValueLen,
unsigned char *signData,
unsigned long *signDataLen);
BCA_API(BCA_RV)
BCA_RsaSignByPkcs12(
unsigned char *password,
unsigned long passwordLen,
unsigned char *pkcs12Data,
unsigned long pkcs12DataLen,
unsigned long hashAlgorithmType,
unsigned char *hashValue,
unsigned long hashValueLen,
unsigned char *signData,
unsigned long *signDataLen);
BCA_API(BCA_RV)
BCA_Pkcs1RsaPrivateKeyDecByPkcs12(
unsigned char *password,
unsigned long passwordLen,
unsigned char *pkcs12Data,
unsigned long pkcs12DataLen,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_RsaVerifySignByCert(
unsigned long hashAlgorithmType,
unsigned char *hashValue,
unsigned long hashValueLen,
unsigned char *certificate,
unsigned long certificateLen,
unsigned char *signData,
unsigned long signDataLen);
/*********************************************
*
*
* Symm Functions
*
*
*********************************************/
BCA_API(BCA_RV)
BCA_CreateSymmKeyObj(
BCA_OBJ *symmKeyObj,
unsigned long algorithmType,
unsigned long encOrDec, // 1: enc
unsigned long cryptoMode,
unsigned char *key,
unsigned long keyLen,
unsigned char *iv);
BCA_API(BCA_RV)
BCA_DestroySymmKeyObj(
BCA_OBJ symmKeyObj);
BCA_API(BCA_RV)
BCA_SymmEncryptUpdate(
BCA_OBJ symmKeyObj,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_SymmEncryptFinal(
BCA_OBJ symmKeyObj,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_SymmDecryptUpdate(
BCA_OBJ symmKeyObj,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_SymmDecryptFinal(
BCA_OBJ symmKeyObj,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_SymmEncrypt(
BCA_OBJ symmKeyObj,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_SymmDecrypt(
BCA_OBJ symmKeyObj,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long *outDataLen);
BCA_API(BCA_RV)
BCA_Mac(
BCA_OBJ symmKeyObj,
unsigned char *inData,
unsigned long inDataLen,
unsigned char *outData,
unsigned long outDataLen);
BCA_API(BCA_RV)
BCA_MacUpdate(
BCA_OBJ symmKeyObj,
unsigned char *inData,
unsigned long inDataLen);
BCA_API(BCA_RV)
BCA_MacFinal(
BCA_OBJ symmKeyObj,
unsigned char *outData,
unsigned long outDataLen);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -