📄 scertlinux.h
字号:
/* certificate version defines */
#ifndef _SCERT_H
#define _SCERT_H
#define CERT_V0 0
#define CERT_V1 1
#define CERT_V2 2
#define MAX_MODULE_LEN 512
#define MAX_OID_NUM 512
#define MAX_NAME_NUM 64
#define MAX_X500_NAME_LEN 256
#define MAX_SERIAL_LEN 128
#define MAX_ALGO_PARA_LEN 1024
#define MAX_UNIQUE_ID_LEN 128
#define MAX_PUBLIC_KEY_LEN 1024
#define MAX_ERROR_NUM 16
#define MAX_ERROR_LEN 128
#define MAX_EXT_LEN 4096
#define MAX_UNKNOWN_EXT 8
#define MAX_OID_SIZE 32
#define MAX_EXT_VAL_SIZE 256
#define MAX_CERT_SIZE 8192
#define MAX_PKIX_DISPLAY_TEXT 200
#define X509_EXT_authorityKeyIdentifier 0x0001
#define X509_EXT_keyUsage 0x0002
#define X509_EXT_privateKeyUsagePeriod 0x0004
#define X509_EXT_certificatePolicies 0x0008
#define X509_EXT_basicConstraints 0x0010
#define X509_EXT_cRLDistributionPoints 0x0020
#define X509_EXT_netscape_cert_type 0x0040
#define X509_EXT_set_hashedRootKey 0x0080
#define X509_EXT_set_certificateType 0x0100
#define X509_EXT_self_class 0x0200
#define X509_EXT_crlReason 0x0400
#define X509_EXT_crlInvalidityDate 0x0800
#define X509_EXT_crlNumber 0x1000
/*密钥用途KeyUsage各比特位的含义:*/
#define KEYUSAGE_digitalSignature 0x0001 /*(0)*/
#define KEYUSAGE_nonRepudiation 0x0002 /*(1)*/
#define KEYUSAGE_keyEncipherment 0x0004 /*(2)*/
#define KEYUSAGE_dataEncipherment 0x0008 /*(3)*/
#define KEYUSAGE_keyAgreement 0x0010 /*(4)*/
#define KEYUSAGE_keyCertSign 0x0020 /*(5)*/
#define KEYUSAGE_crlSign 0x0040 /*(6)*/
#define KEYUSAGE_encipherOnly 0x0080 /*(7)*/
#define KEYUSAGE_decipherOnly 0x0100 /*(8)*/
/*netscape 证书类型netscapeCertType各比特位的含义:*/
#define NE_CERTYPE_SSL_Client 0x0001 /*(0)*/
#define NE_CERTYPE_SSL_Server 0x0002 /*(1)*/
#define NE_CERTYPE_SMIME 0x0004 /*(2)*/
#define NE_CERTYPE_Object_Signing 0x0008 /*(3)*/
#define NE_CERTYPE_Reserved 0x0010 /*(4)*/
#define NE_CERTYPE_SSL_CA 0x0020 /*(5)*/
#define NE_CERTYPE_SMIME_CA 0x0040 /*(6)*/
#define NE_CERTYPE_Object_Signing_CA 0x0080 /*(7)*/
/*证书作废原因reason各比特位的含义:*/
#define REASON_unspecified 0x0001 /*(0)*/
#define REASON_keyCompromise 0x0002 /*(1)*/
#define REASON_caCompromise 0x0004 /*(2)*/
#define REASON_affiliationChanged 0x0008 /*(3)*/
#define REASON_superseded 0x0010 /*(4)*/
#define REASON_cessationOfOperation 0x0020 /*(5)*/
#define REASON_certificateHold 0x0040 /*(6)*/
#define REASON_removeFromCRL 0x0080 /*(7)*/
/* 证书信息*/
#define CERT_VERSION 1
#define CERT_SN 2
#define CERT_SA 3
#define ISS_C 4
#define ISS_O 5
#define ISS_OU 6
#define ISS_ST 7
#define ISS_CN 8
#define ISS_L 9
#define ISS_EMAIL 10
#define NOT_BEFORE 11
#define NOT_AFTER 12
#define SUBJ_C 13
#define SUBJ_O 14
#define SUBJ_OU 15
#define SUBJ_ST 16
#define SUBJ_CN 17
#define SUBJ_L 18
#define SUBJ_EMAIL 19
#define SUBJ_PK 20
#define SELF_CLASS 21
/*************************************
* type defines
**************************************/
typedef unsigned short uint16;
//typedef uint16 USHORT;
typedef unsigned long uint32;
//typedef uint32 ULONG;
typedef unsigned char uchar;
//typedef uchar UCHAR;
typedef unsigned char uint8;
typedef signed long sint32;
typedef short int16;
#define CPTR *
#define CCPTR **
#define PUB_FUNC_RTN uint32
#define FUNC_OK 0
#define FUNC_ERR 1
#define UID_md2WithRSAEncryption 1
#define UID_md5WithRSAEncryption 2
#define UID_sha1WithRSASignature 3
#define UID_rsa_rsaEncryption 4
#define UID_md5 5
#define UID_sha1 6
#define UID_md2 7
typedef struct{
uint8 oid[MAX_UNKNOWN_EXT][MAX_OID_SIZE];
uint32 oidSize[MAX_UNKNOWN_EXT];
uint8 critical[MAX_UNKNOWN_EXT];
uint8 value[MAX_UNKNOWN_EXT][MAX_EXT_VAL_SIZE];
uint32 valueSize[MAX_UNKNOWN_EXT];
uint32 extSize;
} USER_privateExt_INFO;
///////////// cert class & usage /////////
#define CERT_CLASS_EMAIL 1
#define CERT_CLASS_SSL_CLIENT 2
#define CERT_CLASS_SSL_SERVER 4
#define CERT_CLASS_EB_INDIVIDUAL_CRYPT 8
#define CERT_CLASS_EB_INDIVIDUAL_SIGNATURE 16
#define CERT_CLASS_EB_ENTERPRISE_CRYPT 32
#define CERT_CLASS_EB_ENTERPRISE_SIGNATURE 64
typedef struct comm_cert_request_{
char cr_count_no[11];
char cr_subj_c[3];
char cr_subj_o[129];
char cr_subj_ou[129];
char cr_subj_st[65];
char cr_subj_cn[65];
char cr_subj_l[65];
char cr_subj_email[65];
char cr_subj_pa[129];
char cr_subj_pc[33];
char cr_subj_tel[33];
char cr_subj_class[33];
char cr_subj_rev_pw[33];
} COMM_CERT_REQUEST;
typedef struct comm_cert_request_resp_{
char crp_count_no[11];
char crp_result[2];
} COMM_CERT_REQUEST_RESP;
typedef struct comm_cert_revoke_request_{
char cvr_count_no[11];
char cvr_sn[11];
char cvr_rev_pw[33];
char cvr_rev_reason[33];
} COMM_CERT_REVOKE_REQUEST;
typedef struct comm_cert_revoke_resp_{
char cvp_count_no[11];
char cvp_result[2];
} COMM_CERT_REVOKE_RESP;
typedef struct comm_cert_download_request_ {
char cdr_count_no[11];
char cdr_request_no[11];
char cdr_subj_rev_pw[33];
} COMM_CERT_DOWNLOAD_REQUEST;
typedef struct comm_cert_download_resp_{
char cdp_count_no[11];
char cdp_result[2];
char cdp_user_cert[4096];
char cdp_user_sk[2048];
} COMM_CERT_DOWNLOAD_RESP;
typedef struct comm_crl_download_request_ {
char cdr_count_no[11];
} COMM_CRL_DOWNLOAD_REQUEST;
typedef struct comm_crl_download_resp_{
char cdp_count_no[11];
char cdp_result[2];
char cdp_user_crl[4096];
} COMM_CRL_DOWNLOAD_RESP;
typedef COMM_CERT_DOWNLOAD_REQUEST COMM_CERT_RECOVER_REQUEST ;
typedef COMM_CERT_DOWNLOAD_RESP COMM_CERT_RECOVER_RESP ;
int Crypt_Get_Soft_Version(int *main_ver,int*sub_ver);
int Crypt_InitEnvironment(void);
int Crypt_ClearEnvironment(void);
int Crypt_Gen_Hash(
int uid_algorithm,
unsigned char *msg,
int msgSize,
unsigned char *hash,
int *hashSize);
int Crypt_Gen_Encoded_Hash(
int uid_algorithm,
unsigned char *msg,
int msgSize,
unsigned char *hash,
int *hashSize);
int Crypt_GenRSAKeyPair(
char *keyName,
char *password,
unsigned char *DerPubkey,
int *DerPubkeyLen,
unsigned char *DerPrikey,
int *DerPrikeyLen);
int Crypt_GetRSAPublicKey(
char *keyName,
char *password,
unsigned char *rsaPublicKey,
int *rsaPublicKeySize);
int Crypt_GetPubkey_From_Prikey(unsigned char *rsaPrivateKeyDERString,
int rsaPrivateKeyDERStringLen,
unsigned char *rsaPublicKeyDERString,
int *rsaPublicKeyDERStringLen );
int Crypt_Gen_Signature(
int uid_algorithm,
char *keyName,
char *password,
unsigned char *msg,
int msgSize,
unsigned char *sig,
int *sigSize);
int Crypt_Gen_Signature_By_Prikey(
int uid_algorithm,
unsigned char *DerPrikey,
int DerPrikeyLen,
unsigned char *msg,
int msgSize,
unsigned char *sig,
int *sigSize);
int Crypt_Ver_Signature(
int uid_algorithm,
unsigned char *rsaPublicKey,
int rsaPublicKeySize,
unsigned char *msg,
int msgSize,
unsigned char *sig,
int sigSize);
int
Crypt_Encode_Cert(
int version,
unsigned char *serialNumber,
int serialNumberSize,
int signatureAlgorithm,
unsigned char *parameters,
int parametersSize,
char *issuer_countryName,
char *issuer_organizationName,
char *issuer_organizationalUnitname1,
char *issuer_stateOrProvinceName,
char *issuer_commonName,
char *issuer_localityName,
char *issuer_title,
char *issuer_surname,
char *issuer_givenName,
char *issuer_initials,
char *issuer_email,
char *issuer_postalAddress,
char *issuer_postalCode,
char *issuer_postalOfficeBox,
char *issuer_telephoneNumber,
char *issuer_telexNumber,
char *notBefore, /*YYYYMMDDHHMMSS*/
char *notAfter, /*YYYYMMDDHHMMSS*/
char *subject_countryName,
char *subject_organizationName,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -