资源简介

基于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个文件信息

评论

共有 条评论