• 大小: 814KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-18
  • 语言: 其他
  • 标签: openssl  sm2算法  

资源简介

用openssl实现sm2算法文档中示例,包括数字签名,密钥交换,加解密,KDF用sm3算法

资源截图

代码片段和文件信息

#include “ec_param.h“
#include “xy_ecpoint.h“

ec_param * ec_param_new()
{
ec_param *ecp;
ecp = (ec_param *)OPENSSL_malloc(sizeof(ec_param));
ecp->ctx = BN_CTX_new();
ecp->p = BN_new();
ecp->a = BN_new();
ecp->b = BN_new();
ecp->n = BN_new();
return ecp;
}
void ec_param_free(ec_param *ecp)
{
if (ecp)
{
BN_free(ecp->p);
ecp->p = NULL;
BN_free(ecp->a);
ecp->a = NULL;
BN_free(ecp->b);
ecp->b = NULL;
BN_free(ecp->n);
ecp->n = NULL;
if (ecp->G)
{
xy_ecpoint_free(ecp->G);
ecp->G = NULL;
}
if (ecp->group)
{
EC_GROUP_free(ecp->group);
ecp->group = NULL;
}
BN_CTX_free(ecp->ctx);
ecp->ctx = NULL;
OPENSSL_free(ecp);
}
}
int ec_param_init(ec_param *ecp char **string_value int type int point_bit_length)
{
ecp->type = type;
if (TYPE_GFp == ecp->type)
{
ecp->EC_GROUP_new_curve = EC_GROUP_new_curve_GFp;
ecp->EC_POINT_set_affine_coordinates = EC_POINT_set_affine_coordinates_GFp;
ecp->EC_POINT_get_affine_coordinates = EC_POINT_get_affine_coordinates_GFp;
}
else if (TYPE_GF2m == ecp->type)
{
ecp->EC_GROUP_new_curve = EC_GROUP_new_curve_GF2m;
ecp->EC_POINT_set_affine_coordinates = EC_POINT_set_affine_coordinates_GF2m;
ecp->EC_POINT_get_affine_coordinates = EC_POINT_get_affine_coordinates_GF2m;
}

BN_hex2bn(&ecp->p string_value[0]);
BN_hex2bn(&ecp->a string_value[1]);
BN_hex2bn(&ecp->b string_value[2]);
BN_hex2bn(&ecp->n string_value[5]);
ecp->group = ecp->EC_GROUP_new_curve(ecp->p ecp->a
 ecp->b ecp->ctx);
ecp->G = xy_ecpoint_new(ecp);
BN_hex2bn(&ecp->G->x string_value[3]);
BN_hex2bn(&ecp->G->y string_value[4]);
if (!ecp->EC_POINT_set_affine_coordinates(ecp->group
 ecp->G->ec_point ecp->G->x
 ecp->G->y ecp->ctx))
ABORT

ecp->point_bit_length = point_bit_length;
ecp->point_byte_length = (point_bit_length + 7) / 8;

return SUCCESS;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-09-27 20:32  sm2_sm3_openssl_c\
     目录           0  2012-09-27 20:32  sm2_sm3_openssl_c\sm2\
     文件         876  2012-09-25 10:59  sm2_sm3_openssl_c\sm2.sln
     文件        1930  2012-09-27 19:14  sm2_sm3_openssl_c\sm2\ec_param.c
     文件         229  2012-09-27 18:16  sm2_sm3_openssl_c\sm2\ec_param.h
     文件     1155584  2012-04-13 17:38  sm2_sm3_openssl_c\sm2\libeay32.dll
     文件      797690  2012-04-13 17:38  sm2_sm3_openssl_c\sm2\libeay32.lib
     文件        1158  2012-09-27 20:16  sm2_sm3_openssl_c\sm2\part1.c
     文件         135  2012-09-26 20:19  sm2_sm3_openssl_c\sm2\part1.h
     文件        5869  2012-09-27 19:35  sm2_sm3_openssl_c\sm2\part2.c
     文件         135  2012-09-26 18:06  sm2_sm3_openssl_c\sm2\part2.h
     文件       10330  2012-09-27 18:53  sm2_sm3_openssl_c\sm2\part3.c
     文件         135  2012-09-26 18:09  sm2_sm3_openssl_c\sm2\part3.h
     文件        6003  2012-09-27 19:47  sm2_sm3_openssl_c\sm2\part4.c
     文件         135  2012-09-26 18:07  sm2_sm3_openssl_c\sm2\part4.h
     文件        1687  2012-09-25 10:59  sm2_sm3_openssl_c\sm2\ReadMe.txt
     文件        1751  2012-09-27 20:24  sm2_sm3_openssl_c\sm2\SM2.c
     文件       33280  2012-09-27 20:30  sm2_sm3_openssl_c\sm2\sm2.exe
     文件         186  2012-09-27 19:23  sm2_sm3_openssl_c\sm2\SM2.h
     文件        5060  2012-09-27 19:58  sm2_sm3_openssl_c\sm2\sm2.vcxproj
     文件        3253  2012-09-27 19:08  sm2_sm3_openssl_c\sm2\sm2.vcxproj.filters
     文件         143  2012-09-25 10:59  sm2_sm3_openssl_c\sm2\sm2.vcxproj.user
     文件        1844  2012-09-27 19:11  sm2_sm3_openssl_c\sm2\sm2_common.h
     文件         928  2012-09-27 19:12  sm2_sm3_openssl_c\sm2\sm2_ec_key.c
     文件         288  2012-09-27 19:11  sm2_sm3_openssl_c\sm2\sm2_ec_key.h
     文件        5110  2012-09-27 19:08  sm2_sm3_openssl_c\sm2\sm2_test_param.c
     文件         653  2012-09-27 19:13  sm2_sm3_openssl_c\sm2\sm2_test_param.h
     文件        5590  2012-09-27 20:29  sm2_sm3_openssl_c\sm2\SM3.c
     文件         324  2012-09-25 17:28  sm2_sm3_openssl_c\sm2\SM3.h
     文件      264704  2012-04-13 17:38  sm2_sm3_openssl_c\sm2\ssleay32.dll
     文件       67712  2012-04-13 17:38  sm2_sm3_openssl_c\sm2\ssleay32.lib
............此处省略7个文件信息

评论

共有 条评论