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

📄 bca_def.h

📁 手机智能卡开发
💻 H
字号:
/*
* Copyright (c) 2004, 
* All rights reserved.
* 
* 文件名称:bjcapp_def.h
* 
* 当前版本:1.0
* 作    者:
* 完成日期:2004年5月30日
* 主要修改说明:
*
* 历史信息:
*
* 版本:
* 作者:
* 日期:
* 主要修改说明:
*
* 版本:
* 作者:
* 日期:
* 主要修改说明:
*
*/

#ifndef _BCA_DEF_
#define _BCA_DEF_

#ifdef __cplusplus
extern "C" {
#endif

typedef unsigned long BCA_OBJ;


#define BCA_PROVIDER_CSP                 1
#define BCA_PROVIDER_PKCS11              2
#define BCA_PROVIDER_SOFT                3

#define BCA_ALGO_MD2                     1
#define BCA_ALGO_MD5                     2
#define BCA_ALGO_SHA1_160                3
#define BCA_ALGO_DES                     100
#define BCA_ALGO_3DES_2KEY               101
#define BCA_ALGO_3DES_3KEY               102
#define BCA_ALGO_SSF33                   103
#define BCA_ALGO_RC2                     104
#define BCA_ALGO_RC4                     105
#define BCA_ALGO_RSA                     200

#define BCA_KEYUSAGE_KEYEXCHANGE         1
#define BCA_KEYUSAGE_SIGN                2

#define BCA_MODE_ECB                     1
#define BCA_MODE_CBC                     2
#define BCA_MODE_CFB                     3
#define BCA_MODE_OFB                     4

#define BCA_KEYINFO_DEV_GENERATE         1   //设备产生
#define BCA_KEYINFO_KEY                  2   //外部输入KEY
#define BCA_KEYINFO_IV                   3   //外部输入IV
#define BCA_KEYINFO_PASSWORD_DERIVE_KEY  4   //通过口令生成KEY

typedef int                                 BCA_RV;


#define BCA_MAX_CONTAINER    128

typedef struct BCA_USR_CERT_ENUMLIST_ {
	unsigned long certCount;
    unsigned char *certificate[BCA_MAX_CONTAINER];
    unsigned long certificateLen[BCA_MAX_CONTAINER];   
    unsigned char containerName[BCA_MAX_CONTAINER][300];
    unsigned long containerNameLen[BCA_MAX_CONTAINER];
    unsigned long keyUsage[BCA_MAX_CONTAINER];
} BCA_USR_CERT_ENUMLIST;

typedef struct BCA_USR_KEYPAIR_ENUMLIST_ {
	unsigned long keyPairCount;
    unsigned char containerName[BCA_MAX_CONTAINER][300];
    unsigned long containerNameLen[BCA_MAX_CONTAINER];
    unsigned long keyUsage[BCA_MAX_CONTAINER];
} BCA_USR_KEYPAIR_ENUMLIST;


#define BCA_GET_CERT_VERSION                 1
#define BCA_GET_CERT_SERIAL                  2
#define BCA_GET_CERT_ISSUER                  5
#define BCA_GET_CERT_VALID_TIME              6
#define BCA_GET_CERT_SUBJECT                 7
#define BCA_GET_CERT_DER_PUBLIC_KEY          8
 
#define BCA_NAMETYPE_UTF8_STRING		     1 
#define BCA_NAMETYPE_NUMERIC_STRING          2
#define BCA_NAMETYPE_PRINTABLE_STRING	     3
#define BCA_NAMETYPE_T61_STRING              4
#define BCA_NAMETYPE_VIDEOTEX_STRING         6
#define BCA_NAMETYPE_IA5_STRING              7
#define BCA_NAMETYPE_GRAPHIC_STRING          8
#define BCA_NAMETYPE_VISIBLE_STRING		     9
#define BCA_NAMETYPE_GENERAL_STRING          10
#define BCA_NAMETYPE_UNIVERSAL_STRING	     11
#define BCA_NAMETYPE_BMP_STRING		         12


#define BCA_MAX_NAME_SIZE                    128

typedef struct{
	unsigned long dn_c_type[2];
    unsigned char dn_c[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_c_len[2];
	unsigned long dn_s_type[2];
    unsigned char dn_s[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_s_len[2];
	unsigned long dn_l_type[2];
    unsigned char dn_l[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_l_len[2];
	unsigned long dn_o_type[2];
    unsigned char dn_o[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_o_len[2];
	unsigned long dn_ou_type[2];
    unsigned char dn_ou[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_ou_len[2];
	unsigned long dn_cn_type[2];
    unsigned char dn_cn[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_cn_len[2];
	unsigned long dn_email_type[2];
    unsigned char dn_email[2][BCA_MAX_NAME_SIZE];
    unsigned long dn_email_len[2];
}BCA_NAME_INFO;

/********************************************************************
 *
 *                       Error Defines
 *
 ********************************************************************/

#define RV_OK                               0
#define RV_UnknownErr                       -1
#define RV_NotSupportYetErr                 -2
#define RV_FileErr                          -3
#define RV_ProviderTypeErr                  -4
#define RV_LoadProviderErr                  -5
#define RV_LoadDevMngApiErr                 -6
#define RV_AlgoTypeErr                      -7
#define RV_NameLenErr                       -8
#define RV_KeyUsageErr                      -9
#define RV_ModulusLenErr                    -10
#define RV_NotInitializeErr                 -11
#define RV_ObjErr                           -12
#define RV_NotLoginErr                      -13
#define RV_PinErr                           -14
#define RV_TooManKeyErr                     -15
#define RV_OpenDevErr                       -16
#define RV_MutexErr							-17

#define RV_MemoryErr                        -100
#define RV_TimeoutErr                       -101

#define RV_IndataLenErr                     -200
#define RV_IndataErr                        -201

#define RV_GenRandErr                       -300
#define RV_HashObjErr                       -301
#define RV_HashErr                          -302
#define RV_GenRsaKeyErr                     -303
#define RV_RsaModulusLenErr                 -304
#define RV_CspImprtPubKeyErr                -305
#define RV_RsaEncErr                        -306
#define RV_RsaDecErr                        -307
#define RV_HashNotEqualErr                  -308
#define RV_KeyNotFountErr                   -309
#define RV_CertNotFountErr                  -310
#define RV_NotExportErr                     -311
#define RV_CSPEncErr			    -312
#define RV_CSPDecErr			    -313
#define RV_CSPSignErr			    -314
#define RV_ImportCertErr		    -315
#define RV_ImportRSAErr		    	    -316
#define RV_CertVerifyErr		    -317
#define RV_PfxCeatErr			    -318
#define RV_SignErr			    -319
#define RV_P11SignErr			    -320
#define RV_EncErr			    -321
#define RV_DecErr			    -322
#define RV_VerifyErr			    -323
#define RV_P11CreatObjErr		    -324
#define RV_P11DestroyObjErr		    -325
#define RV_P11ObjEXISTSErr			-326


#define RV_DecryptPadErr                    -400
#define RV_MacLenErr                        -401
#define RV_KeyInfoTypeErr                   -402

#define RV_CertEncodeErr                    -500
#define RV_CertTimeInvaildErr               -501
#define RV_CertSignErr                      -502
#define RV_CertRevokedErr                   -503
#define RV_CrlEncodeErr                     -504
#define RV_CertSerialNumberErr		    -505
#define RV_CertIssuerNameErr		    -506
#define RV_PfxEncodeErr                     -507
#define RV_RSAEncodeErr                     -508
#define RV_P7EncodeErr                      -509
#define RV_PfxPassErr                       -510

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -