资源简介
基于OpenSSL库的ECDSA签名与验证,实现了密钥对生成导出,数据的签名以及签名的验证。仅供参考。附代码和文档
代码片段和文件信息
#include
#include
#include
#include
#define PRIVKEY “static unsigned char privkey[%d] = {“
#define PUBKEY “static const unsigned char pubkey[%d] = {“
#define ENDKEY “\n};\n“
int main(int argc char* argv[])
{
EC_KEY *ec_key;
EC_GROUP *ec_group;
unsigned char buf[1024];
unsigned char *pp;
int ilen;
if ((ec_key = EC_KEY_new()) == NULL)
{
printf(“Error:EC_KEY_new()\n“);
return 0;
}
/* 选择一条椭圆曲线 */
if ((ec_group = EC_GROUP_new_by_curve_name(NID_secp256k1)) == NULL)
{
printf(“Error:EC_GROUP_new_by_curve_name()\n“);
EC_KEY_free(ec_key);
return -1;
}
/* 设置密钥参数 */
int ret;
ret = EC_KEY_set_group(ec_keyec_group);
if(ret!=1)
{
printf(“Error:EC_KEY_set_group()\n“);
return -1;
}
/* 生成密钥对 */
if (!EC_KEY_generate_key(ec_key))
{
printf(“Error:EC_KEY_generate_key()\n“);
EC_KEY_free(ec_key);
return -1;
}
/* 导出私钥 */
pp = buf;
len = i2d_ECPrivateKey(ec_key&pp);
if (!len)
{
printf(“Error:i2d_ECPrivateKey()\n“);
EC_KEY_free(ec_key);
return -1;
}
printf(PRIVKEYlen);
for (i=0; i {
if ( !(i % 8) )
printf(“\n“);
if(i==len-1)
printf(“0x%02X “buf[i]);
else
printf(“0x%02X “buf[i]);
}
printf(ENDKEY);
/* 导出公钥 */
pp = buf;
len = i2o_ECPublicKey(ec_key&pp);
if (!len)
{
printf(“Error:i2o_ECPublicKey()\n“);
EC_KEY_free(ec_key);
return -1;
}
printf(PUBKEYlen);
for (i=0; i {
if ( !(i % 8) )
printf(“\n“);
if(i==len-1)
printf(“0x%02X “buf[i]);
else
printf(“0x%02X “buf[i]);
}
printf(ENDKEY);
EC_KEY_free(ec_key);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1807360 2014-01-21 17:14 openssl\bin\openssl.exe
文件 5507 2014-01-21 17:14 openssl\include\openssl\aes.h
文件 52190 2014-01-21 17:14 openssl\include\openssl\asn1.h
文件 30092 2014-01-21 17:14 openssl\include\openssl\asn1t.h
文件 19143 2014-01-21 17:14 openssl\include\openssl\asn1_mac.h
文件 32987 2014-01-21 17:14 openssl\include\openssl\bio.h
文件 5143 2014-01-21 17:14 openssl\include\openssl\blowfish.h
文件 36185 2014-01-21 17:14 openssl\include\openssl\bn.h
文件 4652 2014-01-21 17:14 openssl\include\openssl\buffer.h
文件 4956 2014-01-21 17:14 openssl\include\openssl\camellia.h
文件 4492 2014-01-21 17:14 openssl\include\openssl\cast.h
文件 3244 2014-01-21 17:14 openssl\include\openssl\cmac.h
文件 19927 2014-01-21 17:14 openssl\include\openssl\cms.h
文件 1978 2014-01-21 17:14 openssl\include\openssl\comp.h
文件 9848 2014-01-21 17:14 openssl\include\openssl\conf.h
文件 4080 2014-01-21 17:14 openssl\include\openssl\conf_api.h
文件 24337 2014-01-21 17:14 openssl\include\openssl\crypto.h
文件 10849 2014-01-21 17:14 openssl\include\openssl\des.h
文件 18238 2014-01-21 17:14 openssl\include\openssl\des_old.h
文件 9979 2014-01-21 17:14 openssl\include\openssl\dh.h
文件 12057 2014-01-21 17:14 openssl\include\openssl\dsa.h
文件 18095 2014-01-21 17:14 openssl\include\openssl\dso.h
文件 8026 2014-01-21 17:14 openssl\include\openssl\dtls1.h
文件 540 2014-01-21 17:14 openssl\include\openssl\ebcdic.h
文件 46413 2014-01-21 17:14 openssl\include\openssl\ec.h
文件 4682 2014-01-21 17:14 openssl\include\openssl\ecdh.h
文件 10510 2014-01-21 17:14 openssl\include\openssl\ecdsa.h
文件 40585 2014-01-21 17:14 openssl\include\openssl\engine.h
文件 15862 2014-01-21 17:14 openssl\include\openssl\err.h
文件 52791 2014-01-21 17:14 openssl\include\openssl\evp.h
............此处省略77个文件信息
相关资源
- openssl-0.9.8k_WIN32(RSA密钥生成工具)
- OpenSSL-win64库使用依赖文件
- openssl.exe 0.9.8版本
- windows64的curl库支持openssl)
- openssl(arm64armv7sarmv7x86_64i386)
- openssl-1.0.2k
- openssl-1.0.2n.tar.gz
- SM2椭圆曲线公钥密码算法
- apache-httpd-2.2.24-x64-openssl安装版 msi安装
- vs2013编译好的OpenSSL_1_0_2静态库和动态
- httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
- openssl绿色版
- CentOS-6.6-x86_64 nginx 依赖 pcre-devel zli
- OpenSSL_Light_Win64.msi
- 椭圆曲线、双线性对与群签名
- openssl API 函数库
- openssl-1.0.2c win x64静态库
- 基于OpenSSL的一个加密解密小工具,有
- openssl bcb的静态库lib+头文件+chm
- OpenSSL教程,比官方文档好多了
- openssl-0.9.8e
- ios平台的支持arm64和x86_64的通用opens
- 最新编译 libcurl.dll 7.60.0静态库包含
- 《OPENSSL编程》 江南所 赵春平
- 安装openssl和openssl-develd 的依赖包
- openssl-1.0.1h已编译版本
- openssl已编译好的静态库
- wireless_tools.29+libnl-1.1+wpa_supplicant-2.6
- openssl-devel
- 升级OpenSSH_7.4p1完整源码包
评论
共有 条评论