⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bca_crypt.h

📁 手机智能卡开发
💻 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 + -