资源简介
使用OpenSSL实现SM2、SM3算法示例,包括数字签名,密钥交换,加解密,KDF用SM算法
代码片段和文件信息
#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个文件信息
相关资源
- Openssl给文件传输加密
- openssl 简介(中文)
- ILASM32位 + 64位
- 慧荣SM32X_K0530量产工具
- 慧荣Test_SM32x_H0229汉化版
- 国密SM3算法Delphi实现
- Delphi 版 SM3 SM4加解密
- SM2国密算法实现基于mircal的实现
- SM2椭圆曲线算法软件.rar
- SM2_SM3_SM4计算常用工具
- openssl 手册中文版
- centos 7 openssh7.9p 201810月最新版,基于
- win64OpenSSL_Light
- 利用openssl和curl库获取https服务端证书
- linux c 使用openssl实现SHA1WithRSA实现,签
- openssl win7 64位
- indy10以上openssl支持所需要的文件。
- openssl098e-0.9.8e-17.el6.centos.src.rpm
- SM2258东芝颗粒
- openssl-0.9.8k_WIN32.rar
- 基于SM32F103C8T6的环境传感器
- SM2椭圆曲线门限方案
- vs2010 win7下编译的openssl-1.0.2n静态库
- OpenSSL-1.0.2m静态库
- 基于OpenSSL库的ECDSA签名与验证和文档
- UBNT NSM2 官方5.3.5固件
- openssl-0.9.8k_WIN32(RSA密钥生成工具)
- OpenSSL-win64库使用依赖文件
- openssl.exe 0.9.8版本
- 商密SM4-SM3-SM2FPGA实现源码.rar
评论
共有 条评论