remove compiler errors

still some warnings and undef code pieces
This commit is contained in:
Zhi Guan
2017-03-10 21:18:21 +08:00
parent a5e23f6d85
commit edc4e35bf3
22 changed files with 388 additions and 242 deletions

View File

@@ -48,6 +48,7 @@ extern int help_main(int argc, char *argv[]);
extern int list_main(int argc, char *argv[]);
extern int nseq_main(int argc, char *argv[]);
extern int ocsp_main(int argc, char *argv[]);
extern int otp_main(int argc, char *argv[]);
extern int passwd_main(int argc, char *argv[]);
extern int pkcs12_main(int argc, char *argv[]);
extern int pkcs7_main(int argc, char *argv[]);
@@ -99,6 +100,7 @@ extern OPTIONS help_options[];
extern OPTIONS list_options[];
extern OPTIONS nseq_options[];
extern OPTIONS ocsp_options[];
extern OPTIONS otp_options[];
extern OPTIONS passwd_options[];
extern OPTIONS pkcs12_options[];
extern OPTIONS pkcs7_options[];
@@ -175,6 +177,9 @@ static FUNCTION functions[] = {
{ FT_general, "nseq", nseq_main, nseq_options },
#ifndef OPENSSL_NO_OCSP
{ FT_general, "ocsp", ocsp_main, ocsp_options },
#endif
#ifndef OPENSSL_NO_OTP
{ FT_general, "otp", otp_main, otp_options },
#endif
{ FT_general, "passwd", passwd_main, passwd_options },
#ifndef OPENSSL_NO_DES

View File

@@ -10,7 +10,7 @@
*/
/* Serialized OID's */
static const unsigned char so[7433] = {
static const unsigned char so[7486] = {
0x2A,0x86,0x48,0x86,0xF7,0x0D, /* [ 0] OBJ_rsadsi */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, /* [ 6] OBJ_pkcs */
0x2A,0x86,0x48,0x86,0xF7,0x0D,0x02,0x02, /* [ 13] OBJ_md2 */
@@ -1017,40 +1017,45 @@ static const unsigned char so[7433] = {
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x81,0x49, /* [ 7128] OBJ_sm5 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D, /* [ 7136] OBJ_sm2p256v1 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x01, /* [ 7144] OBJ_sm2sign */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x02, /* [ 7153] OBJ_sm2keyagreement */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x03, /* [ 7162] OBJ_sm2encrypt */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x03,0x01, /* [ 7171] OBJ_sm2encrypt_recommendedParameters */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x03,0x02, /* [ 7181] OBJ_sm2encrypt_specifiedParameters */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E, /* [ 7191] OBJ_id_sm9PublicKey */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E,0x01, /* [ 7199] OBJ_sm9sign */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E,0x02, /* [ 7208] OBJ_sm9keyagreement */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E,0x03, /* [ 7217] OBJ_sm9encrypt */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x11, /* [ 7226] OBJ_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x11,0x02, /* [ 7234] OBJ_hmac_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x75, /* [ 7243] OBJ_sm2sign_with_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x76, /* [ 7251] OBJ_sm2sign_with_sha1 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x77, /* [ 7259] OBJ_sm2sign_with_sha256 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x78, /* [ 7267] OBJ_sm2sign_with_sha512 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x79, /* [ 7275] OBJ_sm2sign_with_sha224 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x7A, /* [ 7283] OBJ_sm2sign_with_sha384 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x7B, /* [ 7291] OBJ_sm2sign_with_rmd160 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x65, /* [ 7299] OBJ_wapip192v1 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20, /* [ 7308] OBJ_zuc */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x02,0x01, /* [ 7316] OBJ_bfibe */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x02,0x02, /* [ 7326] OBJ_bb1 */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x01, /* [ 7336] OBJ_type1curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x02, /* [ 7346] OBJ_type2curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x03, /* [ 7356] OBJ_type3curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x04, /* [ 7366] OBJ_type4curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x01, /* [ 7376] OBJ_tate_pairing */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x02, /* [ 7386] OBJ_weil_pairing */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x03, /* [ 7396] OBJ_ate_pairing */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x04, /* [ 7406] OBJ_r_ate_pairing */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x87,0x68, /* [ 7416] OBJ_cpk */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x87,0x69, /* [ 7424] OBJ_paillier */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x03, /* [ 7153] OBJ_sm2encrypt */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x03,0x01, /* [ 7162] OBJ_sm2encrypt_recommendedParameters */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x03,0x02, /* [ 7172] OBJ_sm2encrypt_specifiedParameters */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E, /* [ 7182] OBJ_id_sm9PublicKey */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E,0x01, /* [ 7190] OBJ_sm9sign */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E,0x02, /* [ 7199] OBJ_sm9keyagreement */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2E,0x03, /* [ 7208] OBJ_sm9encrypt */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x11, /* [ 7217] OBJ_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x11,0x02, /* [ 7225] OBJ_hmac_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x75, /* [ 7234] OBJ_sm2sign_with_sm3 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x76, /* [ 7242] OBJ_sm2sign_with_sha1 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x77, /* [ 7250] OBJ_sm2sign_with_sha256 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x78, /* [ 7258] OBJ_sm2sign_with_sha512 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x79, /* [ 7266] OBJ_sm2sign_with_sha224 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x7A, /* [ 7274] OBJ_sm2sign_with_sha384 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x83,0x7B, /* [ 7282] OBJ_sm2sign_with_rmd160 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x65, /* [ 7290] OBJ_wapip192v1 */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x86,0x20, /* [ 7299] OBJ_zuc */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x02,0x01, /* [ 7307] OBJ_bfibe */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x02,0x02, /* [ 7317] OBJ_bb1 */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x01, /* [ 7327] OBJ_type1curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x02, /* [ 7337] OBJ_type2curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x03, /* [ 7347] OBJ_type3curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x01,0x04, /* [ 7357] OBJ_type4curve */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x01, /* [ 7367] OBJ_tate_pairing */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x02, /* [ 7377] OBJ_weil_pairing */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x03, /* [ 7387] OBJ_ate_pairing */
0x2A,0x86,0x48,0x01,0x86,0xFD,0x1E,0x01,0x03,0x04, /* [ 7397] OBJ_r_ate_pairing */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01, /* [ 7407] OBJ_cpk */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x15, /* [ 7416] OBJ_paillier */
0x2A,0x81,0x1C,0xCF,0x55,0x01,0x82,0x2D,0x02, /* [ 7425] OBJ_sm2exchange */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D, /* [ 7434] OBJ_GmSSL */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01, /* [ 7442] OBJ_cpk_map */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x01, /* [ 7452] OBJ_cpk_sha1_map */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x02, /* [ 7463] OBJ_cpk_sha256_map */
0x2B,0x06,0x01,0x04,0x01,0x83,0x83,0x0D,0x01,0x01,0x03, /* [ 7474] OBJ_cpk_sm3_map */
};
#define NUM_NID 1149
#define NUM_NID 1155
static const ASN1_OBJECT nid_objs[NUM_NID] = {
{"UNDEF", "undefined", NID_undef},
{"rsadsi", "RSA Data Security, Inc.", NID_rsadsi, 6, &so[0]},
@@ -2134,7 +2139,7 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
{"cmac-aes128-ecies", "cmac-aes128-ecies", NID_cmac_aes128_ecies, 6, &so[6864]},
{"cmac-aes192-ecies", "cmac-aes192-ecies", NID_cmac_aes192_ecies, 6, &so[6870]},
{"cmac-aes256-ecies", "cmac-aes256-ecies", NID_cmac_aes256_ecies, 6, &so[6876]},
{"CBC-MAC", "cbc-mac", NID_cbc_mac},
{ NULL, NULL, NID_undef },
{"ISO-CN", "ISO CN Member Body", NID_ISO_CN, 3, &so[6882]},
{"oscca", "oscca", NID_oscca, 5, &so[6885]},
{"sm-scheme", "sm-scheme", NID_sm_scheme, 6, &so[6890]},
@@ -2170,40 +2175,46 @@ static const ASN1_OBJECT nid_objs[NUM_NID] = {
{"SM5", "sm5", NID_sm5, 8, &so[7128]},
{"sm2p256v1", "sm2p256v1", NID_sm2p256v1, 8, &so[7136]},
{"sm2sign", "sm2sign", NID_sm2sign, 9, &so[7144]},
{"sm2keyagreement", "sm2keyagreement", NID_sm2keyagreement, 9, &so[7153]},
{"sm2encrypt", "sm2encrypt", NID_sm2encrypt, 9, &so[7162]},
{"sm2encrypt-recommendedParameters", "sm2encrypt-recommendedParameters", NID_sm2encrypt_recommendedParameters, 10, &so[7171]},
{"sm2encrypt-specifiedParameters", "sm2encrypt-specifiedParameters", NID_sm2encrypt_specifiedParameters, 10, &so[7181]},
{"id-sm9PublicKey", "id-sm9PublicKey", NID_id_sm9PublicKey, 8, &so[7191]},
{"sm9sign", "sm9sign", NID_sm9sign, 9, &so[7199]},
{"sm9keyagreement", "sm9keyagreement", NID_sm9keyagreement, 9, &so[7208]},
{"sm9encrypt", "sm9encrypt", NID_sm9encrypt, 9, &so[7217]},
{"SM3", "sm3", NID_sm3, 8, &so[7226]},
{"HMAC-SM3", "hmac-sm3", NID_hmac_sm3, 9, &so[7234]},
{"SM2Sign-with-SM3", "sm2sign-with-sm3", NID_sm2sign_with_sm3, 8, &so[7243]},
{"SM2Sign-with-SHA1", "sm2sign-with-sha1", NID_sm2sign_with_sha1, 8, &so[7251]},
{"SM2Sign-with-SHA256", "sm2sign-with-sha256", NID_sm2sign_with_sha256, 8, &so[7259]},
{"SM2Sign-with-SHA511", "sm2sign-with-sha512", NID_sm2sign_with_sha512, 8, &so[7267]},
{"SM2Sign-with-SHA224", "sm2sign-with-sha224", NID_sm2sign_with_sha224, 8, &so[7275]},
{"SM2Sign-with-SHA384", "sm2sign-with-sha384", NID_sm2sign_with_sha384, 8, &so[7283]},
{"SM2Sign-with-RMD160", "sm2sign-with-rmd160", NID_sm2sign_with_rmd160, 8, &so[7291]},
{"wapip192v1", "wapip192v1", NID_wapip192v1, 9, &so[7299]},
{"ZUC", "zuc", NID_zuc, 8, &so[7308]},
{"bfibe", "bfibe", NID_bfibe, 10, &so[7316]},
{"bb1", "bb1", NID_bb1, 10, &so[7326]},
{"type1curve", "type1curve", NID_type1curve, 10, &so[7336]},
{"type2curve", "type2curve", NID_type2curve, 10, &so[7346]},
{"type3curve", "type3curve", NID_type3curve, 10, &so[7356]},
{"type4curve", "type4curve", NID_type4curve, 10, &so[7366]},
{"tate-pairing", "tate-pairing", NID_tate_pairing, 10, &so[7376]},
{"weil-pairing", "weil-pairing", NID_weil_pairing, 10, &so[7386]},
{"ate-pairing", "ate-pairing", NID_ate_pairing, 10, &so[7396]},
{"r-ate-pairing", "r-ate-pairing", NID_r_ate_pairing, 10, &so[7406]},
{"cpk", "cpk", NID_cpk, 8, &so[7416]},
{"paillier", "paillier", NID_paillier, 8, &so[7424]},
{ NULL, NULL, NID_undef },
{"sm2encrypt", "sm2encrypt", NID_sm2encrypt, 9, &so[7153]},
{"sm2encrypt-recommendedParameters", "sm2encrypt-recommendedParameters", NID_sm2encrypt_recommendedParameters, 10, &so[7162]},
{"sm2encrypt-specifiedParameters", "sm2encrypt-specifiedParameters", NID_sm2encrypt_specifiedParameters, 10, &so[7172]},
{"id-sm9PublicKey", "id-sm9PublicKey", NID_id_sm9PublicKey, 8, &so[7182]},
{"sm9sign", "sm9sign", NID_sm9sign, 9, &so[7190]},
{"sm9keyagreement", "sm9keyagreement", NID_sm9keyagreement, 9, &so[7199]},
{"sm9encrypt", "sm9encrypt", NID_sm9encrypt, 9, &so[7208]},
{"SM3", "sm3", NID_sm3, 8, &so[7217]},
{"HMAC-SM3", "hmac-sm3", NID_hmac_sm3, 9, &so[7225]},
{"SM2Sign-with-SM3", "sm2sign-with-sm3", NID_sm2sign_with_sm3, 8, &so[7234]},
{"SM2Sign-with-SHA1", "sm2sign-with-sha1", NID_sm2sign_with_sha1, 8, &so[7242]},
{"SM2Sign-with-SHA256", "sm2sign-with-sha256", NID_sm2sign_with_sha256, 8, &so[7250]},
{"SM2Sign-with-SHA511", "sm2sign-with-sha512", NID_sm2sign_with_sha512, 8, &so[7258]},
{"SM2Sign-with-SHA224", "sm2sign-with-sha224", NID_sm2sign_with_sha224, 8, &so[7266]},
{"SM2Sign-with-SHA384", "sm2sign-with-sha384", NID_sm2sign_with_sha384, 8, &so[7274]},
{"SM2Sign-with-RMD160", "sm2sign-with-rmd160", NID_sm2sign_with_rmd160, 8, &so[7282]},
{"wapip192v1", "wapip192v1", NID_wapip192v1, 9, &so[7290]},
{"ZUC", "zuc", NID_zuc, 8, &so[7299]},
{"bfibe", "bfibe", NID_bfibe, 10, &so[7307]},
{"bb1", "bb1", NID_bb1, 10, &so[7317]},
{"type1curve", "type1curve", NID_type1curve, 10, &so[7327]},
{"type2curve", "type2curve", NID_type2curve, 10, &so[7337]},
{"type3curve", "type3curve", NID_type3curve, 10, &so[7347]},
{"type4curve", "type4curve", NID_type4curve, 10, &so[7357]},
{"tate-pairing", "tate-pairing", NID_tate_pairing, 10, &so[7367]},
{"weil-pairing", "weil-pairing", NID_weil_pairing, 10, &so[7377]},
{"ate-pairing", "ate-pairing", NID_ate_pairing, 10, &so[7387]},
{"r-ate-pairing", "r-ate-pairing", NID_r_ate_pairing, 10, &so[7397]},
{"CPK", "cpk", NID_cpk, 9, &so[7407]},
{"paillier", "paillier", NID_paillier, 9, &so[7416]},
{"sm2exchange", "sm2exchange", NID_sm2exchange, 9, &so[7425]},
{"gmssl", "GmSSL", NID_GmSSL, 8, &so[7434]},
{"cpk-map", "cpk-map", NID_cpk_map, 10, &so[7442]},
{"cpk-sha1-map", "cpk-sha1-map", NID_cpk_sha1_map, 11, &so[7452]},
{"cpk-sha256-map", "cpk-sha256-map", NID_cpk_sha256_map, 11, &so[7463]},
{"cpk-sm3-map", "cpk-sm3-map", NID_cpk_sm3_map, 11, &so[7474]},
};
#define NUM_SN 1140
#define NUM_SN 1144
static const unsigned int sn_objs[NUM_SN] = {
364, /* "AD_DVCS" */
419, /* "AES-128-CBC" */
@@ -2287,9 +2298,9 @@ static const unsigned int sn_objs[NUM_SN] = {
110, /* "CAST5-CFB" */
109, /* "CAST5-ECB" */
111, /* "CAST5-OFB" */
1082, /* "CBC-MAC" */
894, /* "CMAC" */
13, /* "CN" */
1147, /* "CPK" */
141, /* "CRLReason" */
417, /* "CSPName" */
1019, /* "ChaCha20" */
@@ -2571,7 +2582,10 @@ static const unsigned int sn_objs[NUM_SN] = {
131, /* "codeSigning" */
50, /* "contentType" */
53, /* "countersignature" */
1147, /* "cpk" */
1151, /* "cpk-map" */
1152, /* "cpk-sha1-map" */
1153, /* "cpk-sha256-map" */
1154, /* "cpk-sm3-map" */
153, /* "crlBag" */
103, /* "crlDistributionPoints" */
88, /* "crlNumber" */
@@ -2646,6 +2660,7 @@ static const unsigned int sn_objs[NUM_SN] = {
490, /* "friendlyCountryName" */
156, /* "friendlyName" */
509, /* "generationQualifier" */
1150, /* "gmssl" */
815, /* "gost-mac" */
976, /* "gost-mac-12" */
811, /* "gost2001" */
@@ -3279,7 +3294,7 @@ static const unsigned int sn_objs[NUM_SN] = {
1119, /* "sm2encrypt" */
1120, /* "sm2encrypt-recommendedParameters" */
1121, /* "sm2encrypt-specifiedParameters" */
1118, /* "sm2keyagreement" */
1149, /* "sm2exchange" */
1116, /* "sm2p256v1" */
1117, /* "sm2sign" */
1125, /* "sm9encrypt" */
@@ -3347,7 +3362,7 @@ static const unsigned int sn_objs[NUM_SN] = {
1069, /* "xor-in-ecies" */
};
#define NUM_LN 1140
#define NUM_LN 1144
static const unsigned int ln_objs[NUM_LN] = {
363, /* "AD Time Stamping" */
405, /* "ANSI X9.62" */
@@ -3400,6 +3415,7 @@ static const unsigned int ln_objs[NUM_LN] = {
808, /* "GOST R 34.11-94 with GOST R 34.10-94" */
852, /* "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" */
854, /* "GOST R 3410-2001 Parameter Set Cryptocom" */
1150, /* "GmSSL" */
988, /* "HMAC GOST 34.11-2012 256 bit" */
989, /* "HMAC GOST 34.11-2012 512 bit" */
810, /* "HMAC GOST 34.11-94" */
@@ -3667,7 +3683,6 @@ static const unsigned int ln_objs[NUM_LN] = {
110, /* "cast5-cfb" */
109, /* "cast5-ecb" */
111, /* "cast5-ofb" */
1082, /* "cbc-mac" */
152, /* "certBag" */
677, /* "certicom-arc" */
517, /* "certificate extensions" */
@@ -3688,6 +3703,10 @@ static const unsigned int ln_objs[NUM_LN] = {
53, /* "countersignature" */
14, /* "countryName" */
1147, /* "cpk" */
1151, /* "cpk-map" */
1152, /* "cpk-sha1-map" */
1153, /* "cpk-sha256-map" */
1154, /* "cpk-sm3-map" */
153, /* "crlBag" */
884, /* "crossCertificatePair" */
806, /* "cryptocom" */
@@ -4394,7 +4413,7 @@ static const unsigned int ln_objs[NUM_LN] = {
1119, /* "sm2encrypt" */
1120, /* "sm2encrypt-recommendedParameters" */
1121, /* "sm2encrypt-specifiedParameters" */
1118, /* "sm2keyagreement" */
1149, /* "sm2exchange" */
1116, /* "sm2p256v1" */
1117, /* "sm2sign" */
1134, /* "sm2sign-with-rmd160" */
@@ -4491,7 +4510,7 @@ static const unsigned int ln_objs[NUM_LN] = {
1136, /* "zuc" */
};
#define NUM_OBJ 1043
#define NUM_OBJ 1048
static const unsigned int obj_objs[NUM_OBJ] = {
0, /* OBJ_undef 0 */
181, /* OBJ_iso 1 */
@@ -5001,8 +5020,6 @@ static const unsigned int obj_objs[NUM_OBJ] = {
1133, /* OBJ_sm2sign_with_sha384 1 2 156 10197 1 506 */
1134, /* OBJ_sm2sign_with_rmd160 1 2 156 10197 1 507 */
1136, /* OBJ_zuc 1 2 156 10197 1 800 */
1147, /* OBJ_cpk 1 2 156 10197 1 1000 */
1148, /* OBJ_paillier 1 2 156 10197 1 1001 */
776, /* OBJ_seed_ecb 1 2 410 200004 1 3 */
777, /* OBJ_seed_cbc 1 2 410 200004 1 4 */
779, /* OBJ_seed_cfb128 1 2 410 200004 1 5 */
@@ -5077,6 +5094,7 @@ static const unsigned int obj_objs[NUM_OBJ] = {
794, /* OBJ_ecdsa_with_SHA256 1 2 840 10045 4 3 2 */
795, /* OBJ_ecdsa_with_SHA384 1 2 840 10045 4 3 3 */
796, /* OBJ_ecdsa_with_SHA512 1 2 840 10045 4 3 4 */
1150, /* OBJ_GmSSL 1 3 6 1 4 1 49549 */
269, /* OBJ_id_pkix1_explicit_88 1 3 6 1 5 5 7 0 1 */
270, /* OBJ_id_pkix1_implicit_88 1 3 6 1 5 5 7 0 2 */
271, /* OBJ_id_pkix1_explicit_93 1 3 6 1 5 5 7 0 3 */
@@ -5204,7 +5222,7 @@ static const unsigned int obj_objs[NUM_OBJ] = {
440, /* OBJ_pilotObjectClass 0 9 2342 19200300 100 4 */
441, /* OBJ_pilotGroups 0 9 2342 19200300 100 10 */
1117, /* OBJ_sm2sign 1 2 156 10197 1 301 1 */
1118, /* OBJ_sm2keyagreement 1 2 156 10197 1 301 2 */
1149, /* OBJ_sm2exchange 1 2 156 10197 1 301 2 */
1119, /* OBJ_sm2encrypt 1 2 156 10197 1 301 3 */
1135, /* OBJ_wapip192v1 1 2 156 10197 1 301 101 */
1123, /* OBJ_sm9sign 1 2 156 10197 1 302 1 */
@@ -5268,6 +5286,8 @@ static const unsigned int obj_objs[NUM_OBJ] = {
683, /* OBJ_X9_62_ppBasis 1 2 840 10045 1 2 3 3 */
417, /* OBJ_ms_csp_name 1 3 6 1 4 1 311 17 1 */
856, /* OBJ_LocalKeySet 1 3 6 1 4 1 311 17 2 */
1147, /* OBJ_cpk 1 3 6 1 4 1 49549 1 */
1148, /* OBJ_paillier 1 3 6 1 4 1 49549 21 */
390, /* OBJ_dcObject 1 3 6 1 4 1 1466 344 */
91, /* OBJ_bf_cbc 1 3 6 1 4 1 3029 1 2 */
973, /* OBJ_id_scrypt 1 3 6 1 4 1 11591 4 11 */
@@ -5446,6 +5466,7 @@ static const unsigned int obj_objs[NUM_OBJ] = {
138, /* OBJ_ms_efs 1 3 6 1 4 1 311 10 3 4 */
648, /* OBJ_ms_smartcard_login 1 3 6 1 4 1 311 20 2 2 */
649, /* OBJ_ms_upn 1 3 6 1 4 1 311 20 2 3 */
1151, /* OBJ_cpk_map 1 3 6 1 4 1 49549 1 1 */
951, /* OBJ_ct_precert_scts 1 3 6 1 4 1 11129 2 4 2 */
952, /* OBJ_ct_precert_poison 1 3 6 1 4 1 11129 2 4 3 */
953, /* OBJ_ct_precert_signer 1 3 6 1 4 1 11129 2 4 4 */
@@ -5534,6 +5555,9 @@ static const unsigned int obj_objs[NUM_OBJ] = {
955, /* OBJ_jurisdictionLocalityName 1 3 6 1 4 1 311 60 2 1 1 */
956, /* OBJ_jurisdictionStateOrProvinceName 1 3 6 1 4 1 311 60 2 1 2 */
957, /* OBJ_jurisdictionCountryName 1 3 6 1 4 1 311 60 2 1 3 */
1152, /* OBJ_cpk_sha1_map 1 3 6 1 4 1 49549 1 1 1 */
1153, /* OBJ_cpk_sha256_map 1 3 6 1 4 1 49549 1 1 2 */
1154, /* OBJ_cpk_sm3_map 1 3 6 1 4 1 49549 1 1 3 */
1056, /* OBJ_blake2b512 1 3 6 1 4 1 1722 12 2 1 16 */
1057, /* OBJ_blake2s256 1 3 6 1 4 1 1722 12 2 2 8 */
};

View File

@@ -1146,3 +1146,9 @@ ate_pairing 1145
r_ate_pairing 1146
cpk 1147
paillier 1148
sm2exchange 1149
GmSSL 1150
cpk_map 1151
cpk_sha1_map 1152
cpk_sha256_map 1153
cpk_sm3_map 1154

View File

@@ -1604,19 +1604,13 @@ ibcs1 3 4 : r-ate-pairing
# GmSSL
Enterprises 49549 : GmSSL : gmssl
Enterprises 49549 : gmssl : GmSSL
GmSSL 1 : CPK : cpk
CPK 1 : cpk-map
GmSSL 1 : CPK : cpk
cpk 1 : cpk-map
cpk-map 1 : cpk-sha1-map
cpk-map 2 : cpk-sha256-map
cpk-map 3 : cpk-sm3-map
GmSSL 21 : paillier

View File

@@ -1,4 +1,18 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=saf_lib.c saf_errstr.c saf_app.c saf_keyhandle.c \
saf_ec.c saf_sm2.c saf_rand.c saf_hash.c saf_enc.c saf_mac.c saf_symmkeyobj.c \
saf_base64.c saf_cert.c saf_err.c saf_pkcs7.c
SOURCE[../../libcrypto]= \
saf_app.c \
saf_base64.c \
saf_cert.c \
saf_ec.c \
saf_enc.c \
saf_err.c \
saf_errstr.c \
saf_hash.c \
saf_keyhandle.c \
saf_lib.c \
saf_mac.c \
saf_pkcs7.c \
saf_rand.c \
saf_rsa.c \
saf_sm2.c \
saf_symmkeyobj.c

View File

@@ -57,6 +57,12 @@
#include "saf_lcl.h"
#include "../../apps/apps.h"
int load_certs(const char *file, STACK_OF(X509) **certs, int format,
const char *pass, const char *cert_descrip)
{
return 0;
}
/* 7.2.2 */
int SAF_AddTrustedRootCaCertificate(
void *hAppHandle,

View File

@@ -598,3 +598,29 @@ int SAF_GenerateAgreementDataAdnKeyWithECC(
return 0;
}
/* GmSSL Extension */
int SAF_EccSignFile(
void *hAppHandle,
unsigned char *pucContainerName,
unsigned int uiContainerNameLen,
unsigned int uiHashAlgoType,
unsigned char *pucFileName,
unsigned char *pucSignature,
unsigned int *puiSignatureLen)
{
return SAR_OK;
}
int SAF_EccVerifySignFile(
unsigned int uiHashAlgoType,
unsigned char *pucPublicKey,
unsigned int uiPublicKeyLen,
unsigned char *pucFileName,
unsigned char *pucSignature,
unsigned int uiSignatureLen)
{
return SAR_OK;
}

View File

@@ -56,7 +56,6 @@ EVP_PKEY *SAF_load_private_key(SAF_APP *app, const char *container, int flags)
EVP_PKEY *ret = NULL;
EVP_PKEY *pkey = NULL;
char key_id[1024];
int type;
if (!app->engine) {
SAFerr(SAF_F_SAF_LOAD_PRIVATE_KEY, SAF_R_INVALID_APP);

View File

@@ -47,6 +47,10 @@
* ====================================================================
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <openssl/err.h>
#include <openssl/evp.h>
#include <openssl/asn1.h>
#include <openssl/pkcs7.h>
@@ -74,13 +78,11 @@ int SAF_Pkcs7_EncodeData(
return ret;
}
/* 7.4.3 */
int SAF_Pkcs7_DecodeData(
void *hAppHandle,
unsigned char *pucDecContainerName,
unsigned int uiDecContainerNameLen,
unsigned int uiDecKeyUsage,
unsigned char *pucDerP7Data,
unsigned int uiDerP7DataLen,
unsigned char *pucData,
@@ -186,6 +188,7 @@ int SAF_Pkcs7_DecodeSignedData(
unsigned int *puiSigLen)
{
int ret = SAR_UnknownErr;
#if 0
PKCS7 *p7 = NULL;
PKCS7_SIGNED *p7signed;
X509 *x509 = NULL;
@@ -267,13 +270,13 @@ int SAF_Pkcs7_DecodeSignedData(
goto end;
}
if (*puiDataLen < ASN1_OCTET_STRING_length(data)) {
if (*puiDataLen < ASN1_STRING_length(data)) {
SAFerr(SAF_F_SAF_PKCS7_DECODESIGNEDDATA, SAF_R_BUFFER_TOO_SMALL);
goto end;
}
memcpy(pucData, ASN1_OCTET_STRING_get0_data(data), ASN1_OCTET_STRING_length(data));
*puiDataLen = ASN1_OCTET_STRING_length(data);
memcpy(pucData, ASN1_STRING_get0_data(data), ASN1_STRING_length(data));
*puiDataLen = ASN1_STRING_length(data);
/* get signature */
if (sk_SIGNER_INFO_num(p7signed->signer_info) <= 0
@@ -282,19 +285,20 @@ int SAF_Pkcs7_DecodeSignedData(
goto end;
}
if (*puiSigLen < ASN1_OCTET_STRING_length(signer_info->enc_digest)) {
if (*puiSigLen < ASN1_STRING_length(signer_info->enc_digest)) {
SAFerr(SAF_F_SAF_PKCS7_DECODESIGNEDDATA, SAF_R_BUFFER_TOO_SMALL);
goto end;
}
memcpy(pucSig, ASN1_OCTET_STRING_get0_data(signer_info->enc_digest),
ASN1_OCTET_STRING_length(signer_info->enc_digest));
*puiSigLen = ASN1_OCTET_STRING_length(signer_info->enc_digest);
memcpy(pucSig, ASN1_STRING_get0_data(signer_info->enc_digest),
ASN1_STRING_length(signer_info->enc_digest));
*puiSigLen = ASN1_STRING_length(signer_info->enc_digest);
ret = SAR_Ok;
end:
PKCS7_free(p7);
X509_free(x509);
BIO_free(bio);
#endif
return ret;
}
@@ -310,6 +314,7 @@ int SAF_Pkcs7_EncodeEnvelopedData(
unsigned int *puiDerP7EnvelopedDataLen)
{
int ret = SAR_UnknownErr;
#if 0
PKCS7 *p7 = NULL;
X509 *x509 = NULL;
STACK_OF(X509) *certs = NULL;
@@ -384,6 +389,7 @@ end:
X509_free(x509);
sk_X509_free(certs);
BIO_free(bio);
#endif
return ret;
}
@@ -398,6 +404,7 @@ int SAF_Pkcs7_DecodeEnvelopedData(
unsigned int *puiDataLen)
{
int ret = SAR_UnknownErr;
#if 0
SAF_APP *app = (SAF_APP *)hAppHandle;
PKCS7 *p7 = NULL;
EVP_PKEY *pkey = NULL;
@@ -420,7 +427,7 @@ int SAF_Pkcs7_DecodeEnvelopedData(
*puiDataLen = uiDerP7EnvelopedDataLen;
return SAR_Ok;
} else if (*puiDataLen <= 0 || *puiDataLen > INT_MAX) {
SAFerr(SAF_F_SAF_PKCS7_DECODEENVELOPEDDATA, SAR_R_INVALID_INPUT_LENGTH);
SAFerr(SAF_F_SAF_PKCS7_DECODEENVELOPEDDATA, SAF_R_INVALID_INPUT_LENGTH);
return SAR_IndataLenErr;
}
@@ -456,6 +463,7 @@ end:
EVP_PKEY_free(pkey);
X509_free(x509);
BIO_free(bio);
#endif
return ret;
}
@@ -522,7 +530,7 @@ end:
/* 7.4.9 */
int SAF_Pkcs7_DecodeDigestedData(
void *hAppHandle,
unsigned char pucDerP7DigestedData,
unsigned char *pucDerP7DigestedData,
unsigned int uiDerP7DigestedDataLen,
unsigned int *puiDigestAlgorithm,
unsigned char *pucData,
@@ -558,14 +566,15 @@ int SAF_Pkcs7_DecodeDigestedData(
}
/* process */
if (!(p7 = d2i_PKCS7(NULL, &pucDerP7DigestedData, uiDerP7DigestedDataLen))) {
if (!(p7 = d2i_PKCS7(NULL, (const unsigned char **)&pucDerP7DigestedData,
uiDerP7DigestedDataLen))) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_INVALID_PKCS7);
ret = SAR_IndataErr;
goto end;
}
if (!PKCS7_type_is_digest(p7)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_INVALID_PKCS7_TYPE;
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_INVALID_PKCS7_TYPE);
ret = SAR_IndataErr;
goto end;
}
@@ -574,46 +583,46 @@ int SAF_Pkcs7_DecodeDigestedData(
/* output digset algor */
if ((*puiDigestAlgorithm = EVP_MD_sgd(
EVP_get_digestbyobj(p7dgst->md->algorithm))) <= 0) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_UNSUPPORTED_DIGEST_ALGOR;
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_UNSUPPORTED_DIGEST_ALGOR);
ret = SAR_IndataErr;
goto end;
}
/* output digested data */
if (!PKCS7_type_is_data(p7dgst->contents)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAR_R_INVALID_PKCS7_DATA);
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_INVALID_PKCS7_DATA);
ret = SAR_IndataErr;
goto end;
}
if (!(data = p7dgst->contents->d.data)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAR_R_INVALID_PKCS7_DATA);
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_INVALID_PKCS7_DATA);
ret = SAR_IndataErr;
goto end;
}
if (*puiDataLen < ASN1_OCTET_STRING_length(data)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAR_R_BUFFER_TOO_SMALL);
if (*puiDataLen < ASN1_STRING_length(data)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_BUFFER_TOO_SMALL);
ret = SAR_IndataLenErr;
goto end;
}
memcpy(pucData, ASN1_OCTET_STRING_get0_data(data), ASN1_OCTET_STRING_length(data));
*puiDataLen = ASN1_OCTET_STRING_length(data);
memcpy(pucData, ASN1_STRING_get0_data(data), ASN1_STRING_length(data));
*puiDataLen = ASN1_STRING_length(data);
/* output digest */
if (!p7dgst->digest) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAR_R_INVALID_PKCS7_DATA);
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_INVALID_PKCS7_DATA);
ret = SAR_IndataErr;
goto end;
}
if (*puiDigestLen < ASN1_OCTET_STRING_length(p7dgst->digest)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAR_R_BUFFER_TOO_SMALL);
if (*puiDigestLen < ASN1_STRING_length(p7dgst->digest)) {
SAFerr(SAF_F_SAF_PKCS7_DECODEDIGESTEDDATA, SAF_R_BUFFER_TOO_SMALL);
ret = SAR_IndataLenErr;
goto end;
}
memcpy(pucDigest, ASN1_OCTET_STRING_get0_data(p7dgst->digest), ASN1_OCTET_STRING_length(p7dgst->digest));
*puiDigestLen = ASN1_OCTET_STRING_length(p7dgst->digest);
memcpy(pucDigest, ASN1_STRING_get0_data(p7dgst->digest), ASN1_STRING_length(p7dgst->digest));
*puiDigestLen = ASN1_STRING_length(p7dgst->digest);
ret = SAR_Ok;
end:

View File

@@ -1,17 +0,0 @@
crypto/saf/saf_pkcs7.o: crypto/saf/saf_pkcs7.c include/openssl/evp.h \
include/openssl/opensslconf.h include/openssl/ossl_typ.h \
include/openssl/e_os2.h include/openssl/symhacks.h \
include/openssl/bio.h include/openssl/crypto.h include/openssl/stack.h \
include/openssl/safestack.h include/openssl/opensslv.h \
include/openssl/objects.h include/openssl/obj_mac.h \
include/openssl/asn1.h include/openssl/bn.h include/openssl/pkcs7.h \
include/openssl/gmapi.h include/openssl/ec.h include/openssl/sm2.h \
include/openssl/err.h include/openssl/lhash.h include/openssl/kdf2.h \
include/openssl/kdf.h include/openssl/x509.h include/openssl/buffer.h \
include/openssl/rsa.h include/openssl/dsa.h include/openssl/dh.h \
include/openssl/sha.h include/openssl/x509_vfy.h \
include/openssl/ecies.h include/openssl/sm3.h include/openssl/sgd.h \
include/openssl/saf.h include/openssl/sdf.h include/openssl/skf.h \
include/openssl/sof.h include/openssl/gmsaf.h crypto/saf/saf_lcl.h \
include/openssl/cmac.h include/openssl/gmsdf.h \
include/openssl/engine.h include/openssl/rand.h include/openssl/ui.h

View File

@@ -62,6 +62,7 @@ int SAF_GenRsaKeyPair(void *hAppHandle,
unsigned int uiExportFlag)
{
int ret = SAR_UnknownErr;
#if 0
SAF_APP *app = (SAF_APP *)hAppHandle;
/* process */
@@ -80,6 +81,7 @@ int SAF_GenRsaKeyPair(void *hAppHandle,
end:
EVP_PKEY_CTX_free(pctx);
EVP_PKEY_free(pkey);
#endif
return ret;
}
@@ -93,6 +95,7 @@ int SAF_GetRsaPublicKey(
unsigned int *puiPublicKeyLen)
{
int ret = SAR_UnknownErr;
#if 0
SAF_APP *app = (SAF_APP *)hAppHandle;
/* process */
@@ -123,6 +126,7 @@ int SAF_GetRsaPublicKey(
end:
EVP_PKEY_free(pkey);
#endif
return ret;
}
@@ -138,6 +142,8 @@ int SAF_RsaSign(
unsigned int *puiSignatureLen)
{
int ret = SAR_UnknownErr;
#if 0
SAF_APP *app = (SAF_APP *)hAppHandle;
/* process */
@@ -162,6 +168,7 @@ int SAF_RsaSign(
end:
EVP_PKEY_free(pkey);
EVP_PKEY_CTX_free(pctx);
#endif
return ret;
}
@@ -189,6 +196,7 @@ int SAF_RsaVerifySign(
unsigned int uiSignatureLen)
{
int ret = SAR_UnknownErr;
#if 0
/* process */
EVP_PKEY *pkey = NULL;
EVP_PKEY_CTX *pctx = NULL;
@@ -205,6 +213,7 @@ int SAF_RsaVerifySign(
end:
EVP_PKEY_free(pkey);
EVP_PKEY_CTX_free(pctx);
#endif
return ret;
}
@@ -231,6 +240,7 @@ int SAF_VerifySignByCert(
unsigned int uiSignatureLen)
{
int ret = SAR_UnknownErr;
#if 0
/* process */
X509 *x509 = NULL;
unsigned char pucPublicKey[1024];
@@ -264,5 +274,6 @@ int SAF_VerifySignByCert(
ret = SAR_Ok;
end:
X509_free(x509);
#endif
return ret;
}

View File

@@ -127,7 +127,7 @@ int SAF_SM2_EncodeSignedData(
return SAF_Pkcs7_EncodeSignedData(
hAppHandle,
pucSignContainerName,
pucSignContainerName,
uiSignContainerNameLen,
uiSignKeyUsage,
pucSignerCertificate,
uiSignerCertificateLen,
@@ -143,11 +143,11 @@ int SAF_SM2_DecodeSignedData(
void *hAppHandle,
unsigned char *pucDerSignedData,
unsigned int uiDerSignedDataLen,
unsigned int *puiDigestAlgorithm,
unsigned char *pucSignerCertificate,
unsigned int uiSignerCertificateLen,
unsigned int uiDigestAlgorithm,
unsigned int *puiSignerCertificateLen,
unsigned char *pucData,
unsigned int uiDataLen,
unsigned int *puiDataLen,
unsigned char *pucSign,
unsigned int *puiSignLen)
{
@@ -155,11 +155,11 @@ int SAF_SM2_DecodeSignedData(
hAppHandle,
pucDerSignedData,
uiDerSignedDataLen,
puiDigestAlgorithm,
pucSignerCertificate,
uiSignerCertificateLen,
uiDigestAlgorithm,
puiSignerCertificateLen,
pucData,
uiDataLen,
puiDataLen,
pucSign,
puiSignLen);
}
@@ -191,7 +191,6 @@ int SAF_SM2_DecodeEnvelopedData(
void *hAppHandle,
unsigned char *pucDecContainerName,
unsigned int uiDecContainerNameLen,
unsigned int uiDecKeyUsage,
unsigned char *pucDerEnvelopedData,
unsigned int uiDerEnvelopedDataLen,
unsigned char *pucData,
@@ -201,7 +200,6 @@ int SAF_SM2_DecodeEnvelopedData(
hAppHandle,
pucDecContainerName,
uiDecContainerNameLen,
uiDecKeyUsage,
pucDerEnvelopedData,
uiDerEnvelopedDataLen,
pucData,

View File

@@ -32,6 +32,7 @@ static ERR_STRING_DATA SOF_str_functs[] = {
{ERR_FUNC(SOF_F_SOF_EXPORTEXCHANGEUSERCERT),
"SOF_ExportExchangeUserCert"},
{ERR_FUNC(SOF_F_SOF_EXPORTUSERCERT), "SOF_ExportUserCert"},
{ERR_FUNC(SOF_F_SOF_G), "SOF_GenRandom"},
{ERR_FUNC(SOF_F_SOF_GENRANDOM), "SOF_GenRandom"},
{ERR_FUNC(SOF_F_SOF_GETCERTINFO), "SOF_GetCertInfo"},
{ERR_FUNC(SOF_F_SOF_GETCERTINFOBYOID), "SOF_GetCertInfoByOid"},
@@ -73,6 +74,7 @@ static ERR_STRING_DATA SOF_str_functs[] = {
static ERR_STRING_DATA SOF_str_reasons[] = {
{ERR_REASON(SOF_R_DECODE_FAILURE), "decode failure"},
{ERR_REASON(SOF_R_INVALID_CERT_ATTRIBUTE), "invalid cert attribute"},
{ERR_REASON(SOF_R_NOT_IMPLEMENTED), "not implemented"},
{ERR_REASON(SOF_R_READ_FILE_FAILURE), "read file failure"},
{0, NULL}

View File

@@ -47,20 +47,40 @@
* ====================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/err.h>
#include <openssl/gmsaf.h>
#include <openssl/gmsof.h>
#include <openssl/crypto.h>
#include "../../e_os.h"
static long sof_sign_method = SGD_SM2;
static long sof_enc_method = SGD_SM4_CBC;
static long sof_last_error = SOR_OK;
static void *sof_app = NULL;
static int sof_user_type = SGD_USER;
static int sof_user_type = SGD_ROLE_USER;
static int sof_read_file(const char *path, unsigned char **pdata,
unsigned int *pdatalen)
{
return 0;
}
static char *sof_encode(const unsigned char *bin, unsigned int binlen)
{
return NULL;
}
static int sof_decode(const char *b64, unsigned char **pdata, unsigned int *pdatalen)
{
return 0;
}
BSTR SOF_GetVersion(void)
{
return OpenSSL_version(0);
return OPENSSL_strdup(OpenSSL_version(0));
}
long SOF_SetSignMethod(long SignMethod)
@@ -102,6 +122,7 @@ BSTR SOF_ExportUserCert(BSTR ContainerName)
BOOL SOF_Login(BSTR ContainerName, BSTR PassWd)
{
unsigned int uiRemainCount;
int rv;
if ((rv = SAF_Login(
sof_app,
@@ -112,10 +133,10 @@ BOOL SOF_Login(BSTR ContainerName, BSTR PassWd)
(unsigned int)strlen(PassWd),
&uiRemainCount)) != SAR_Ok) {
SOFerr(SOF_F_SOF_LOGIN, ERR_R_SAF_LIB);
return FALSE;
return SGD_FALSE;
}
return TRUE;
return SGD_TRUE;
}
long SOF_GetPinRetryCount(BSTR ContainerName)
@@ -140,16 +161,14 @@ BOOL SOF_ChangePassWd(BSTR ContainerName, BSTR OldPassWd, BSTR NewPassWd)
(unsigned int)strlen(NewPassWd),
&uiRemainCount)) != SAR_Ok) {
SOFerr(SOF_F_SOF_CHANGEPASSWD, ERR_R_SAF_LIB);
return FALSE;
return SGD_FALSE;
}
return TRUE;
return SGD_TRUE;
}
BSTR SOF_ExportExchangeUserCert(BSTR ContainerName)
{
SOFerr(SOF_F_SOF_EXPORTEXCHANGEUSERCERT, SOF_R_NOT_IMPLEMENTED);
return NULL;
}
@@ -157,7 +176,7 @@ BSTR SOF_ExportExchangeUserCert(BSTR ContainerName)
/* `type` defined as SGD_CERT_XXX, SGD_EXT_XXX in sgd.h */
BSTR SOF_GetCertInfo(BSTR Base64EncodeCert, short Type)
{
// decode x.509 in pem format
char *ret = NULL;
switch (Type) {
case SGD_CERT_VERSION:
@@ -188,11 +207,16 @@ BSTR SOF_GetCertInfo(BSTR Base64EncodeCert, short Type)
case SGD_CERT_SUBJECT_EMAIL:
case SGD_CERT_NOTBEFORE_TIME:
case SGD_CERT_NOTAFTER_TIME:
SOFerr(SOF_F_SOF_GETCERTINFO, SOF_R_NOT_IMPLEMENTED);
goto end;
default:
SOFerr(SOF_F_SOF_GETCERTINFO, SOF_R_INVALID_CERT_ATTRIBUTE);
goto end;
}
end:
SOFerr(SOF_F_SOF_GETCERTINFO, SOF_R_NOT_IMPLEMENTED);
return NULL;
return ret;
}
BSTR SOF_GetCertInfoByOid(BSTR Base64EncodeCert, BSTR Oid)
@@ -217,37 +241,53 @@ BSTR SOF_SignData(BSTR ContainerName, BSTR InData)
{
char *ret = NULL;
char *b64 = NULL;
unsigned int uiHashAlgoType;
unsigned int uiHashAlgoType = SGD_SM3;
unsigned char *pucInData = NULL;
unsigned int uiInDataLen;
unsigned int uiInDataLen = strlen(InData) + 128;
unsigned char pucSignature[256];
unsigned int uiSignatureLen = (unsigned int)sizeof(pucSignature);
int rv;
if (SOF_Decode(InData, &pucInData, &uiInDataLen) != SOR_OK) {
if (!(pucInData = OPENSSL_malloc(uiInDataLen))) {
SOFerr(SOF_F_SOF_SIGNDATA, ERR_R_MALLOC_FAILURE);
goto end;
}
if (SAF_Base64_Decode((unsigned char *)InData, (unsigned int)strlen(InData),
pucInData, &uiInDataLen) != SOR_OK) {
SOFerr(SOF_F_SOF_SIGNDATA, SOF_R_DECODE_FAILURE);
goto end;
}
rv = SAF_RsaSign(
hAppHandle,
(unsigned char *)ContainerName,
(unsigned int)strlen(ContainerName),
uiHashAlgoType,
pucInData,
uiInDataLen,
pucSignature,
&uiSignatureLen);
rv = SAF_EccSign(
hAppHandle,
(unsigned char *)ContainerName,
(unsigned int)strlen(ContainerName),
uiHashAlgoType,
pucInData,
uiInDataLen,
pucSignature,
&uiSignatureLen);
if (SOF_GetSignMethod() == SGD_SM2) {
if ((rv = SAF_RsaSign(
sof_app,
(unsigned char *)ContainerName,
(unsigned int)strlen(ContainerName),
uiHashAlgoType,
pucInData,
uiInDataLen,
pucSignature,
&uiSignatureLen)) != SAR_Ok) {
SOFerr(SOF_F_SOF_SIGNDATA, ERR_R_SAF_LIB);
goto end;
}
} else {
if ((rv = SAF_EccSign(
sof_app,
(unsigned char *)ContainerName,
(unsigned int)strlen(ContainerName),
uiHashAlgoType,
pucInData,
uiInDataLen,
pucSignature,
&uiSignatureLen)) != SAR_Ok) {
SOFerr(SOF_F_SOF_SIGNDATA, ERR_R_SAF_LIB);
goto end;
}
}
ret = SOR_OK;
end:
OPENSSL_free(b64);
OPENSSL_free(pucInData);
@@ -260,21 +300,25 @@ BOOL SOF_VerifySignedData(BSTR Base64EncodeCert, BSTR InData, BSTR SignValue)
return 0;
}
BSTR SOF_SignFile(BSTR ContainerName, BSTR InFile)
{
BSTR ret;
BSTR ret = NULL;
char *b64 = NULL;
unsigned int uiHashAlgoType = SGD_SM3;
unsigned char *pucInData = NULL;
unsigned int uiInDataLen;
unsigned char pucSignature[256];
unsigned int uiSignatureLen = (unsigned int)sizeof(pucSignature);
int rv;
if (SOF_ReadFile(InFile, &pucInData, &uiInDataLen) != SOR_OK) {
if (!sof_read_file(InFile, &pucInData, &uiInDataLen)) {
SOFerr(SOF_F_SOF_SIGNFILE, SOF_R_READ_FILE_FAILURE);
return NULL;
}
if ((rv = SAF_EccSign(
hAppHandle,
sof_app,
(unsigned char *)ContainerName,
(unsigned int)strlen(ContainerName),
uiHashAlgoType,
@@ -286,7 +330,9 @@ BSTR SOF_SignFile(BSTR ContainerName, BSTR InFile)
goto end;
}
if (!(b64 = SOF_Encode(pucSignature, uiSignatureLen))) {
if (!(b64 = sof_encode(pucSignature, uiSignatureLen))) {
SOFerr(SOF_F_SOF_SIGNFILE, ERR_R_SOF_LIB);
goto end;
}
ret = b64;
@@ -300,15 +346,18 @@ end:
BOOL SOF_VerifySignedFile(BSTR Base64EncodeCert, BSTR InFile, BSTR SignValue)
{
return SGD_FALSE;
}
BSTR SOF_EncryptData(BSTR Base64EncodeCert, BSTR InData)
{
#if 0
char *ret = NULL;
unsigned char *pucCertificate = NULL;
unsigned int uiCertificateLen;
unsigned char *pucInData = NULL;
unsigned int uiInDataLen;
int rv;
if (SOF_Decode(Base64EncodeCert, &pucCertificate, &uiCertificateLen) != SOR_OK
|| SOF_Decode(InData, &pucInData, &uiInDataLen) != SOR_OK
@@ -321,7 +370,8 @@ BSTR SOF_EncryptData(BSTR Base64EncodeCert, BSTR InData)
pucOutData,
puiOutDataLen)) != SAR_Ok) {
}
#endif
return NULL;
}
BSTR SOF_DecryptData(BSTR ContainerName, BSTR InData)
@@ -332,10 +382,11 @@ BSTR SOF_DecryptData(BSTR ContainerName, BSTR InData)
BOOL SOF_EncryptFile(BSTR Base64EncodeCert, BSTR InFile, BSTR OutFile)
{
int ret = FALSE;
int rv;
int ret = SGD_FALSE;
#if 0
unsigned char *pucCertificate = NULL;
unsigned int uiCertificateLen;
int rv;
if (SOF_Decode(Base64EncodeCert, &pucCertificate, &uiCertificateLen) != SOR_OK) {
SOFerr(SOF_F_SOF_ENCRYPTFILE, SOF_R_DECODE_FAILURE);
@@ -354,18 +405,18 @@ BOOL SOF_EncryptFile(BSTR Base64EncodeCert, BSTR InFile, BSTR OutFile)
goto end;
}
ret = TRUE;
ret = SGD_TRUE;
end:
OPENSSL_free(pucCertificate);
#endif
return ret;
}
BOOL SOF_DecryptFile(BSTR ContainerName, BSTR InFile, BSTR OutFile)
{
int ret = FALSE;
int rv;
int ret = SGD_FALSE;
return ret;
}
BSTR SOF_SignMessage(short flag, BSTR ContainerName, BSTR InData)
@@ -388,16 +439,6 @@ BSTR SOF_GetInfoFromSignedMessage(BSTR SignedMessage, short Type)
BSTR SOF_SignDataXML(BSTR ContainerName, BSTR InData)
{
int rv;
unsigned char outbuf[1024];
if ((rv = SAF_EccSignFile(
hAppHandle,
(unsigned char *)ContainerName,
(unsigned int)strlen(ContainerName),
sof_digest_method,
SOFerr(SOF_F_SOF_SIGNDATAXML, SOF_R_NOT_IMPLEMENTED);
return NULL;
}
@@ -415,21 +456,19 @@ BSTR SOF_GetXMLSignatureInfo(BSTR XMLSignedData, short Type)
BSTR SOF_GenRandom(short RandomLen)
{
int rv;
unsigned char *ret = NULL;
char *ret = NULL;
char *b64 = NULL;
unsigned char *bin = NULL;
unsigned char *b64 = NULL;
unsigned int b64len = (RandomLen * 4)/3 + 128;
int rv;
if (!(bin = OPENSSL_malloc(RandomLen))
|| !(ret = OPENSSL_zalloc((RandomLen * 4)/3 + 128))
|| (rv = SAF_GenRandom(RandomLen, buf)) != SAR_Ok
|| (rv = SAF_Base64_Encode(buf, RandomLen, ret, &retlen)) != SAR_Ok) {
|| (rv = SAF_GenRandom(RandomLen, bin)) != SAR_Ok
|| !(b64 = sof_encode(bin, RandomLen))) {
SOFerr(SOF_F_SOF_GENRANDOM, ERR_R_SOF_LIB);
goto end;
}
ret = b64;
b64 = NULL;
end:
OPENSSL_free(bin);
OPENSSL_free(b64);

View File

@@ -1,8 +0,0 @@
crypto/sof/sof_lib.o: crypto/sof/sof_lib.c include/openssl/err.h \
include/openssl/e_os2.h include/openssl/opensslconf.h \
include/openssl/ossl_typ.h include/openssl/bio.h \
include/openssl/crypto.h include/openssl/stack.h \
include/openssl/safestack.h include/openssl/opensslv.h \
include/openssl/symhacks.h include/openssl/lhash.h \
include/openssl/gmsof.h include/openssl/sgd.h include/openssl/sof.h \
crypto/sof/../../e_os.h

View File

@@ -81,6 +81,10 @@ int BN_GFP2_mul_bn(BN_GFP2 *r, const BN_GFP2 *a, const BIGNUM *b, const BIGNUM *
int BN_GFP2_div_bn(BN_GFP2 *r, const BN_GFP2 *a, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx);
void BN_GFP2_free(BN_GFP2 *a);
int BN_GFP2_add_bn(BN_GFP2 *r, const BN_GFP2 *a, const BIGNUM *b,
const BIGNUM *p, BN_CTX *ctx);
int BN_bn2gfp2(const BIGNUM *bn, BN_GFP2 *gfp2, const BIGNUM *p, BN_CTX *ctx);
int BN_gfp22bn(const BN_GFP2 *gfp2, BIGNUM *bn, const BIGNUM *p, BN_CTX *ctx);

View File

@@ -62,6 +62,25 @@ extern "C" {
int SAF_PrintNameInfo(FILE *fp, SGD_NAME_INFO *nameInfo);
const char *SAF_GetErrorString(int err);
/* GmSSL Extension */
int SAF_EccSignFile(
void *hAppHandle,
unsigned char *pucContainerName,
unsigned int uiContainerNameLen,
unsigned int uiHashAlgoType,
unsigned char *pucFileName,
unsigned char *pucSignature,
unsigned int *puiSignatureLen);
int SAF_EccVerifySignFile(
unsigned int uiHashAlgoType,
unsigned char *pucPublicKey,
unsigned int uiPublicKeyLen,
unsigned char *pucFileName,
unsigned char *pucSignature,
unsigned int uiSignatureLen);
/* BEGIN ERROR CODES */
/*
* The following lines are auto generated by the script mkerr.pl. Any changes

View File

@@ -100,6 +100,7 @@ int ERR_load_SOF_strings(void);
# define SOF_F_SOF_ENCRYPTFILE 107
# define SOF_F_SOF_EXPORTEXCHANGEUSERCERT 108
# define SOF_F_SOF_EXPORTUSERCERT 109
# define SOF_F_SOF_G 143
# define SOF_F_SOF_GENRANDOM 110
# define SOF_F_SOF_GETCERTINFO 111
# define SOF_F_SOF_GETCERTINFOBYOID 112
@@ -136,6 +137,7 @@ int ERR_load_SOF_strings(void);
/* Reason codes. */
# define SOF_R_DECODE_FAILURE 101
# define SOF_R_INVALID_CERT_ATTRIBUTE 103
# define SOF_R_NOT_IMPLEMENTED 100
# define SOF_R_READ_FILE_FAILURE 102

View File

@@ -4656,10 +4656,6 @@
#define NID_cmac_aes256_ecies 1081
#define OBJ_cmac_aes256_ecies OBJ_secg_scheme,24L,2L
#define SN_cbc_mac "CBC-MAC"
#define LN_cbc_mac "cbc-mac"
#define NID_cbc_mac 1082
#define SN_ISO_CN "ISO-CN"
#define LN_ISO_CN "ISO CN Member Body"
#define NID_ISO_CN 1083
@@ -4835,9 +4831,9 @@
#define NID_sm2sign 1117
#define OBJ_sm2sign OBJ_sm_scheme,301L,1L
#define SN_sm2keyagreement "sm2keyagreement"
#define NID_sm2keyagreement 1118
#define OBJ_sm2keyagreement OBJ_sm_scheme,301L,2L
#define SN_sm2exchange "sm2exchange"
#define NID_sm2exchange 1149
#define OBJ_sm2exchange OBJ_sm_scheme,301L,2L
#define SN_sm2encrypt "sm2encrypt"
#define NID_sm2encrypt 1119
@@ -4963,10 +4959,32 @@
#define NID_r_ate_pairing 1146
#define OBJ_r_ate_pairing OBJ_ibcs1,3L,4L
#define SN_cpk "cpk"
#define SN_GmSSL "gmssl"
#define LN_GmSSL "GmSSL"
#define NID_GmSSL 1150
#define OBJ_GmSSL OBJ_Enterprises,49549L
#define SN_cpk "CPK"
#define LN_cpk "cpk"
#define NID_cpk 1147
#define OBJ_cpk OBJ_sm_scheme,1000L
#define OBJ_cpk OBJ_GmSSL,1L
#define SN_cpk_map "cpk-map"
#define NID_cpk_map 1151
#define OBJ_cpk_map OBJ_cpk,1L
#define SN_cpk_sha1_map "cpk-sha1-map"
#define NID_cpk_sha1_map 1152
#define OBJ_cpk_sha1_map OBJ_cpk_map,1L
#define SN_cpk_sha256_map "cpk-sha256-map"
#define NID_cpk_sha256_map 1153
#define OBJ_cpk_sha256_map OBJ_cpk_map,2L
#define SN_cpk_sm3_map "cpk-sm3-map"
#define NID_cpk_sm3_map 1154
#define OBJ_cpk_sm3_map OBJ_cpk_map,3L
#define SN_paillier "paillier"
#define NID_paillier 1148
#define OBJ_paillier OBJ_sm_scheme,1001L
#define OBJ_paillier OBJ_GmSSL,21L

View File

@@ -595,7 +595,6 @@ int SAF_Pkcs7_DecodeData(
void *hAppHandle,
unsigned char *pucDecContainerName,
unsigned int uiDecContainerNameLen,
unsigned int uiDecKeyUsage,
unsigned char *pucDerP7Data,
unsigned int uiDerP7DataLen,
unsigned char *pucData,
@@ -643,7 +642,6 @@ int SAF_Pkcs7_DecodeEnvelopedData(
void *hAppHandle,
unsigned char *pucDecContainerName,
unsigned int uiDecContainerNameLen,
unsigned int uiDecKeyUsage,
unsigned char *pucDerP7EnvelopedData,
unsigned int uiDerP7EnvelopedDataLen,
unsigned char *pucData,
@@ -659,11 +657,11 @@ int SAF_Pkcs7_EncodeDigestedData(
int SAF_Pkcs7_DecodeDigestedData(
void *hAppHandle,
unsigned int *puiDigestAlgorithm,
unsigned char *pucDerP7DigestedData,
unsigned int uiDerP7DigestedDataLen,
unsigned int *puiDigestAlgorithm,
unsigned char *pucData,
unsigned int uiDataLen,
unsigned int *puiDataLen,
unsigned char *pucDigest,
unsigned int *puiDigestLen);
@@ -671,7 +669,6 @@ int SAF_SM2_EncodeSignedAndEnvelopedData(
void *hAppHandle,
unsigned char *pucSignContainerName,
unsigned int uiSignContainerNameLen,
unsigned int uiSignKeyUsage,
unsigned char *pucSignerCertificate,
unsigned int uiSignerCertificateLen,
unsigned int uiDigestAlgorithm,
@@ -687,14 +684,13 @@ int SAF_SM2_DecodeSignedAndEnvelopedData(
void *hAppHandle,
unsigned char *pucDerContainerName,
unsigned int uiDerContainerNameLen,
unsigned int uiDecKeyUsage,
unsigned char *pucDerSignedAndEnvelopedData,
unsigned int uiDerSignedAndEnvelopedDataLen,
unsigned char *pucData,
unsigned int *puiDataLen,
unsigned char *pucSignerCertificate,
unsigned int *puiSignerCertificateLen,
unsigned int *puiDigestAlgorithms);
unsigned int *puiDigestAlgorithm);
int SAF_SM2_EncodeSignedData(
void *hAppHandle,
@@ -713,11 +709,11 @@ int SAF_SM2_DecodeSignedData(
void *hAppHandle,
unsigned char *pucDerSignedData,
unsigned int uiDerSignedDataLen,
unsigned int *puiDigestAlgorithm,
unsigned char *pucSignerCertificate,
unsigned int uiSignerCertificateLen,
unsigned int uiDigestAlgorithm,
unsigned int *puiSignerCertificateLen,
unsigned char *pucData,
unsigned int uiDataLen,
unsigned int *puiDataLen,
unsigned char *pucSign,
unsigned int *puiSignLen);
@@ -735,7 +731,6 @@ int SAF_SM2_DecodeEnvelopedData(
void *hAppHandle,
unsigned char *pucDecContainerName,
unsigned int uiDecContainerNameLen,
unsigned int uiDecKeyUsage,
unsigned char *pucDerEnvelopedData,
unsigned int uiDerEnvelopedDataLen,
unsigned char *pucData,

View File

@@ -59,7 +59,10 @@ int main(int argc, char **argv)
return 0;
}
#else
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/rand.h>
# include <openssl/gmsaf.h>
int test_saf_base64(int verbose)
{
@@ -121,7 +124,6 @@ static int test_saf_ec(int verbose)
static int test_saf_hash(int verbose)
{
int ret = 0;
unsigned char msg[3] = "abc";
unsigned char pubkey[] = "FIXME";
unsigned char id[] = "FIXME";
@@ -149,16 +151,13 @@ static int test_saf_hash(int verbose)
return 1;
}
static int test_saf_enc(int verbose)
{
return 0;
}
static int test_saf_mac(int verbose)
{
int ret = 0;
void *hKeyHandle = NULL;
unsigned char data[] = "hello world";
unsigned char mac[EVP_MAX_MD_SIZE];
return 0;
}
@@ -185,11 +184,11 @@ static int test_saf_sm2(int verbose)
int main(int argc, char **argv)
{
int err = 0;
int verboe = 2;
int verbose = 2;
if (SAR_Ok != test_saf_base64(verbose)) err++;
if (!test_saf_cert(verbose)) err++;
if (!test_saf_ec(verbose)) err++
if (!test_saf_ec(verbose)) err++;
if (!test_saf_enc(verbose)) err++;
if (!test_saf_hash(verbose)) err++;
if (!test_saf_mac(verbose)) err++;

View File

@@ -4871,3 +4871,4 @@ SM2_do_sign_ex 4818 1_1_0d EXIST::FUNCTION:
SOF_CreateTimeStampRequest 4819 1_1_0d EXIST::FUNCTION:
BN_GF2P_add 4820 1_1_0d EXIST::FUNCTION:
SM2_compute_key 4821 1_1_0d EXIST::FUNCTION:
BN_GFP2_add_bn 4822 1_1_0d EXIST::FUNCTION: