1.问朋友要软件 他给了我个源码 ec格式文件 我怎么用啊 用易语言打开了 跟模版似的源码 求指点
2.求一个基于openssl写的ecc曲线的源代码
问朋友要软件 他给了我个源码 ec格式文件 我怎么用啊 用易语言打开了 跟模版似的 求指点
ec格式文件是易语言的模块文件,就是源码好多子程序集合到一起的一个功能包,你打开易语言如果选择那个文件就可以载入进来了,源码持仓异动源码然后程序里面写代码调用里面命令就可以了,源码双击模块可以看到里面命令介绍和用法。源码源码修改数据例如精益模块就是源码蓝叠透视源码ec格式。这不是源码源码,只是源码写程序调用别人编辑好的子程序的功能,你朋友可能给你开玩笑呢,源码易语言源码格式就是源码单独一个e结尾的格式。
这个是源码源码样式。
求一个基于openssl写的源码ecc曲线的源代码
下面的例子生成两对ECC密钥,并用它做签名和验签,源码智能投资源码并生成共享密钥。源码
#include <string.h>
#include <stdio.h>
#include <openssl/ec.h>
#include <openssl/ecdsa.h>
#include <openssl/objects.h>
#include <openssl/err.h>
int main()
{
EC_KEY *key1,源码php erp源码github*key2;
EC_POINT *pubkey1,*pubkey2;
EC_GROUP *group1,*group2;
int ret,nid,size,i,sig_len;
unsigned char*signature,digest[];
BIO *berr;
EC_builtin_curve *curves;
int crv_len;
char shareKey1[],shareKey2[];
int len1,len2;
/* 构造EC_KEY数据结构 */
key1=EC_KEY_new();
if(key1==NULL)
{
printf("EC_KEY_new err!\n");
return -1;
}
key2=EC_KEY_new();
if(key2==NULL)
{
printf("EC_KEY_new err!\n");
return -1;
}
/* 获取实现的椭圆曲线个数 */
crv_len = EC_get_builtin_curves(NULL, 0);
curves = (EC_builtin_curve *)malloc(sizeof(EC_builtin_curve) * crv_len);
/* 获取椭圆曲线列表 */
EC_get_builtin_curves(curves, crv_len);
/
*nid=curves[0].nid;会有错误,原因是密钥太短
*/
/* 选取一种椭圆曲线 */
nid=curves[].nid;
/* 根据选择的椭圆曲线生成密钥参数group */
group1=EC_GROUP_new_by_curve_name(nid);
if(group1==NULL)
{
printf("EC_GROUP_new_by_curve_name err!\n");
return -1;
}
group2=EC_GROUP_new_by_curve_name(nid);
if(group1==NULL)
{
printf("EC_GROUP_new_by_curve_name err!\n");
return -1;
}
/* 设置密钥参数 */
ret=EC_KEY_set_group(key1,group1);
if(ret!=1)
{
printf("EC_KEY_set_group err.\n");
return -1;
}
ret=EC_KEY_set_group(key2,group2);
if(ret!=1)
{
printf("EC_KEY_set_group err.\n");
return -1;
}
/* 生成密钥 */
ret=EC_KEY_generate_key(key1);
if(ret!=1)
{
printf("EC_KEY_generate_key err.\n");
return -1;
}
ret=EC_KEY_generate_key(key2);
if(ret!=1)
{
printf("EC_KEY_generate_key err.\n");
return -1;
}
/* 检查密钥 */
ret=EC_KEY_check_key(key1);
if(ret!=1)
{
printf("check key err.\n");
return -1;
}
/* 获取密钥大小 */
size=ECDSA_size(key1);
printf("size %d \n",size);
for(i=0;i<;i++)
memset(&digest[i],i+1,1);
signature=malloc(size);
ERR_load_crypto_strings();
berr=BIO_new(BIO_s_file());
BIO_set_fp(berr,stdout,BIO_NOCLOSE);
/* 签名数据,本例未做摘要,可将digest中的数据看作是sha1摘要结果 */
ret=ECDSA_sign(0,digest,,signature,&sig_len,key1);
if(ret!=1)
{
ERR_print_errors(berr);
printf("sign err!\n");
return -1;
}
/* 验证签名 */
ret=ECDSA_verify(0,digest,,signature,sig_len,key1);
if(ret!=1)
{
ERR_print_errors(berr);
printf("ECDSA_verify err!\n");
return -1;
}
/* 获取对方公钥,不能直接引用 */
pubkey2 = EC_KEY_get0_public_key(key2);
/* 生成一方的共享密钥 */
len1=ECDH_compute_key(shareKey1, , pubkey2, key1, NULL);
pubkey1 = EC_KEY_get0_public_key(key1);
/* 生成另一方共享密钥 */
len2=ECDH_compute_key(shareKey2, , pubkey1, key2, NULL);
if(len1!=len2)
{
printf("err\n");
}
else
{
ret=memcmp(shareKey1,shareKey2,len1);
if(ret==0)
printf("生成共享密钥成功\n");
else
printf("生成共享密钥失败\n");
}
printf("test ok!\n");
BIO_free(berr);
EC_KEY_free(key1);
EC_KEY_free(key2);
free(signature);
free(curves);
return 0;
}
2025-01-20 00:272819人浏览
2025-01-19 23:161445人浏览
2025-01-19 22:412771人浏览
2025-01-19 22:301298人浏览
2025-01-19 22:081221人浏览
2025-01-19 21:562778人浏览
今天,广东省高级人民法院对红岭创投电子商务股份有限公司董事长周世平等人非法集资案作出终审裁定,驳回上诉,维持原判。2023年12月7日,深圳市中级人民法院一审以集资诈骗罪、非法吸收公众存款罪,判处周世
1.黑马程序员怎么样黑马程序员怎么样 黑马程序员为行业“学员质量好、课程内容深、企业满意”的移动开发高端训练基地,并被评为中关村软件园重点扶持人才企业。 1、年,黑马程序员在中关村软件园开设第
1.Sweet Home 3D 开放源码室内设计Sweet Home 3D 开放源码室内设计 在实际购置家具前,Sweet Home 3D 能让你在虚拟环境中预先尝试各种室内设计,包括家具布局和配