资源简介
sm2_ssl.rar

代码片段和文件信息
// \file:sm2.c
//SM2 Algorithm
//2011-11-10
//author:goldboar
//email:goldboar@163.com
//depending:opnessl library
//SM2 Standards: http://www.oscca.gov.cn/News/201012/News_1197.htm
#include
#include
#include
#include
#include
#include
#include
#include “kdf.h“
#define NID_X9_62_prime_field 406
static void BNPrintf(BIGNUM* bn)
{
char *p=NULL;
p=BN_bn2hex(bn);
printf(“%s“p);
OPENSSL_free(p);
}
static int sm2_sign_setup(EC_KEY *eckey BN_CTX *ctx_in BIGNUM **kp BIGNUM **rp)
{
BN_CTX *ctx = NULL;
BIGNUM *k = NULL *r = NULL *order = NULL *X = NULL;
EC_POINT *tmp_point=NULL;
const EC_GROUP *group;
int ret = 0;
if (eckey == NULL || (group = EC_KEY_get0_group(eckey)) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_PASSED_NULL_PARAMETER);
return 0;
}
if (ctx_in == NULL)
{
if ((ctx = BN_CTX_new()) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUPERR_R_MALLOC_FAILURE);
return 0;
}
}
else
ctx = ctx_in;
k = BN_new(); /* this value is later returned in *kp */
r = BN_new(); /* this value is later returned in *rp */
order = BN_new();
X = BN_new();
if (!k || !r || !order || !X)
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_MALLOC_FAILURE);
goto err;
}
if ((tmp_point = EC_POINT_new(group)) == NULL)
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_EC_LIB);
goto err;
}
if (!EC_GROUP_get_order(group order ctx))
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_EC_LIB);
goto err;
}
do
{
/* get random k */
do
if (!BN_rand_range(k order))
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ECDSA_R_RANDOM_NUMBER_GENERATION_FAILED);
goto err;
}
while (BN_is_zero(k));
/* compute r the x-coordinate of generator * k */
if (!EC_POINT_mul(group tmp_point k NULL NULL ctx))
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_EC_LIB);
goto err;
}
if (EC_METHOD_get_field_type(EC_GROUP_method_of(group)) == NID_X9_62_prime_field)
{
if (!EC_POINT_get_affine_coordinates_GFp(group
tmp_point X NULL ctx))
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUPERR_R_EC_LIB);
goto err;
}
}
else /* NID_X9_62_characteristic_two_field */
{
if (!EC_POINT_get_affine_coordinates_GF2m(group
tmp_point X NULL ctx))
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUPERR_R_EC_LIB);
goto err;
}
}
if (!BN_nnmod(r X order ctx))
{
ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_BN_LIB);
goto err;
}
}
while (BN_is_zero(r));
/* compute the inverse of k */
// if (!BN_mod_inverse(k k order ctx))
// {
// ECDSAerr(ECDSA_F_ECDSA_SIGN_SETUP ERR_R_BN_LIB);
// goto err;
// }
/* clear old values if necessary */
if (*rp != NULL)
BN_clear_free(*rp);
if (*kp != NULL)
BN_clear_free(*kp);
/* save the pre-computed values */
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 176175 2013-05-27 14:51 sm2\Debug\sm2.exe
文件 258020 2013-05-27 14:51 sm2\Debug\sm2.ilk
文件 33498 2013-05-27 14:51 sm2\Debug\sm2.obj
文件 4308936 2013-05-27 14:51 sm2\Debug\sm2.pch
文件 377856 2013-05-27 14:51 sm2\Debug\sm2.pdb
文件 1243611 2013-05-27 14:51 sm2\Debug\sm2.sbr
文件 41773 2013-05-27 14:51 sm2\Debug\sm2test.obj
文件 1152470 2013-05-27 14:51 sm2\Debug\sm2test.sbr
文件 50176 2013-05-27 15:07 sm2\Debug\vc60.idb
文件 69632 2013-05-27 14:51 sm2\Debug\vc60.pdb
文件 1368 2011-11-10 17:49 sm2\kdf.h
文件 1089536 2007-07-31 15:55 sm2\libeay32.dll
文件 657238 2007-07-31 15:55 sm2\libeay32.lib
文件 19172 2013-05-27 14:46 sm2\sm2.c
文件 3545 2011-11-11 09:42 sm2\sm2.dsp
文件 529 2011-11-09 18:45 sm2\sm2.dsw
文件 909 2011-11-10 18:12 sm2\sm2.h
文件 41984 2013-05-27 16:26 sm2\sm2.ncb
文件 48640 2013-05-27 16:26 sm2\sm2.opt
文件 1142 2013-05-27 14:51 sm2\sm2.plg
文件 13569 2011-11-23 18:38 sm2\sm2test.c
目录 0 2013-05-27 14:51 sm2\Debug
目录 0 2013-05-27 16:26 sm2
----------- --------- ---------- ----- ----
9589779 23
- 上一篇:离散数学答案 机械工业出版社
- 下一篇:AD9keygen.exe
相关资源
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
评论
共有 条评论