资源简介
用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个文件信息
相关资源
- 基于OpenSSL的安全聊天程序
- 使用openssl 1.1.1版本调试国密SM4算法
- OPenssl生成证书
- 国密sm2算法c实现
- windows下安装配置openssl环境
- openssl_sm2_sm3_c.zip
- 基于OpenSSL的安全聊天系统
- openssl生成的证书demo
- libeay32.dll 、 ssleay32.dll动态链接库
- 已经编译好的Openssl,直接使用
- RSA加解密在Delphi代码中的实现Demo
- Delphi7_OpenSSL.rar
- RSA-via-OpenSSL-libeay32-master
- openssl中函数RSA_public_encrypt的使用案例
- indy10安装包.rar
- openssl-1.0.2-libeay32ssleay32库
- openssl rsa code
- 国密SM2算法基于Openssl实现
- sm2、sm3源代码,openssl可直接调用
- LibcurlOpenSSLZlib.7z
- openssl-0.9.8r
- ios平台的支持arm64和x86_64的通用opens
- openssl 静态 链接库 libeay32.lib ssleay32
- openssl.cnf
- Openssl.cnf文件.rar
- wsdl2h、soapcpp2生成的onvif文件
- openssl-1.0.1c.tar
- openssl-1.0.1u.tar.gz
- 国密SM2算法规范
- openssl-1.0.1c及其极限裁剪
评论
共有 条评论