Visual Studio 2022环境下Miracl Lib库制作,C++环境配置,20220214更新

6 篇文章 0 订阅
4 篇文章 0 订阅

Visual Studio 2022环境下Miracl Lib库制作,C++环境配置,20220214更新

  1. Miracl Lib库制作 以及C++环境配置 参考之前的帖子
    https://blog.csdn.net/leapoo/article/details/108260941

  2. Visual Studio 2022中环境需要注意一点,在编译的时候切换成x86格式,切成2022的时候编译不通过,琢磨了一会,发现之前的lib和pdb是x86制作的;

在这里插入图片描述

Miracl 制作和使用过程中 如果有问题
交流讨论

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用miracl在C语言中实现BLS签名的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include "miracl.h" #define BLS_CURVE "BLS381" // 使用的椭圆曲线名称 int main() { // 初始化miracl miracl* mip = mirsys(1000, 16); mip->IOBASE = 16; // 初始化BLS曲线参数 epoint* P = epoint_init(); Big q = mirvar(0); Big r = mirvar(0); Big h = mirvar(0); char* param = BLS_CURVE; ecurve_init(param, q, r, h, 1); epoint_copy(&CURVE_G_POINT, P); // 生成私钥 Big sk = mirvar(0); strong_bigrand(mip, q, sk); // 计算公钥 epoint* pk = epoint_init(); ecurve_mult(sk, P, pk); // 签名消息 char* msg = "hello, world!"; Big m = mirvar(0); mip->IOBASE = 256; cinstr(m, msg); mip->IOBASE = 16; Big sig = mirvar(0); ehashit(mip, SHA2, -1, msg, strlen(msg), sig); epoint* s = epoint_init(); ecurve_mult(sig, P, s); // 输出结果 printf("private key: %s\n", big_to_str(sk, NULL, 16)); printf("public key: %s\n", epoint_to_str(pk, NULL, 16)); printf("message: %s\n", msg); printf("signature: %s\n", epoint_to_str(s, NULL, 16)); // 释放资源 mirkill(sk); mirkill(q); mirkill(r); mirkill(h); epoint_free(P); epoint_free(pk); epoint_free(s); mirkill(sig); mirkill(m); mirkill(mip); return 0; } ``` 该示例中使用的是BLS381曲线,私钥使用随机数生成,公钥通过私钥和基点P的乘法计算得到。签名时,首先使用哈希函数计算消息的哈希值,然后将哈希值作为标量乘以基点P得到签名的点S。最后输出私钥、公钥、消息和签名的点。注意,在实际应用中,为了安全性,应该使用更安全的哈希函数,例如SHA-3。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值