最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【密碼學編程·Miracl函數(shù)庫】生成靜態(tài)庫miracl.lib

2020-09-19 19:18 作者:C語言實驗室  | 我要投稿

MIRACL(Multiprecision Integer and Rational Arithmetic C/c++ Library)是一套由Shamus Software Ltd.所開發(fā)的一套關于大數(shù)運算函數(shù)庫,用來設計與大數(shù)運算相關的密碼學之應用,包含了RSA 公開密碼學、Diffie-Hellman密鑰交換(Key Exchange)、AES、DSA數(shù)字簽名,還包含了較新的橢圓曲線密碼學(Elliptic Curve Cryptography)等等。

準備工作

下載Miracl:https://github.com/miracl/MIRACL

解壓后,顯示共44個項目(文件和文件夾一共44個)

解壓后的文件

拿到源文件后,編譯生成靜態(tài)文件miracl.lib,具體編譯方法稍后介紹。

編譯環(huán)境采用:Visio Studio 2017

編譯靜態(tài)庫文件.lib

打開lib文件夾下的bc32doit.bat文件(以文本格式打開)

bc32doit.bat

根據(jù)要求,將下列文件全部復制到一個文件夾中(新建一個文件夾存儲),這些文件可能分布在不同文件夾中

mirdef.h32

mirdef.h

添加 big.h, ec2.h, ecn.h, flash.h, zzn.h(非必須,可以沒有)

?mrcore.c

?mrarth0.c

?mrarth1.c

?mrarth2.c

mralloc.c

mrsmall.c

mrio1.c

?mrio2.c

?mrgcd.c

?mrjack.c

?mrxgcd.c

?mrarth3.c

?mrbits.c

?mrrand.c

?mrprime.c

?mrcrt.c

?mrscrt.c

?mrmonty.c

?mrpower.c

?mrsroot.c

?mrcurve.c

?mrfast.c

?mrshs.c

?mrshs256.c

?mrshs512.c

?mrsha3.c

?mrfpe.c

?mraes.c

?mrgcm.c

?mrstrong.c

?mrlucas.c

?mrzzn2.c

?mrzzn2b.c

?mrzzn3.c

?mrzzn4.c

?mrbrick.c

?mrebrick.c

?mrec2m.c

mrecn2.c

?mrgf2m.c

?mrflash.c

?mrfrnd.c

?mrdouble.c

?mrround.c

?mrbuild.c

?mrflsh1.c

?mrpi.c

mrflsh2.c

?mrflsh3.c

mrflsh4.c

打開Visual stadio 2017,選擇【文件】-【新建】-【項目】-【Visual C++】-【空項目】,項目名稱隨便取

新建空項目

將miracl文件夾下的文件放到新項目的工程目錄下,和工程源文件在同一級

復制所有選中的文件到工程目錄

在項目名稱上右鍵-選擇【添加】-【現(xiàn)有項】,將復制過來的所有文件都添加進來

添加所有文件

添加進來的文件如圖所示

添加文件效果

在項目名稱上右鍵-選擇【屬性】,修改參數(shù)內(nèi)容,然后【應用】-【確定】

修改參數(shù)

在項目名稱上右鍵-選擇【生成】或者【重新生成】

生成后的結(jié)果

至此編譯完成,編譯后的文件存在debug文件夾下

編譯后的文件

測試靜態(tài)庫文件

重新打開VS2017,選擇【文件】-【新建】-【項目】-【Visual C++】-【空項目】,并為項目命名

將編譯好的靜態(tài)文件和前面用到的所有頭文件全部復制到新的測試工程源文件中,并將靜態(tài)庫文件的名稱改為miracl(重命名"CompileMiracl.lib" 為 "miracl.lib" ,"CompileMiracl.pdb" 為 "miracl.pdb")

測試項目中添加靜態(tài)文件和頭文件

在項目名上右鍵-現(xiàn)在【添加】-【現(xiàn)有項】,將前面添加到源文件加下的所有文件都添加到工程中

添加所有復制過來的文件

在項目名上右鍵-【添加】-【新建項】-【C++文件】,新建一個main.c文件(源文件),將下面的代碼,然后點擊運行即可

extern "C"

{

#include "miracl.h"

#include "mirdef.h"

}

#pragma comment(lib,"miracl.lib")

int main()

{

miracl *mip = mirsys(500, 16); //初始化miracl系統(tǒng)

?

big n = mirvar(8); //初始化n,必須有

?

cotnum(n, stdout); //打印n

cinnum(n, stdin); //輸入n

cotnum(n, stdout); //再次打印n

return 0;

}

代碼

至此,測試成功輸出

【密碼學編程·Miracl函數(shù)庫】生成靜態(tài)庫miracl.lib的評論 (共 條)

分享到微博請遵守國家法律
延庆县| 平度市| 舟曲县| 贵德县| 英吉沙县| 那曲县| 泸西县| 天全县| 武穴市| 余干县| 阿鲁科尔沁旗| 呼和浩特市| 海宁市| 长岭县| 蚌埠市| 西吉县| 普定县| 济宁市| 吕梁市| 甘洛县| 杭州市| 黄龙县| 明溪县| 龙里县| 大石桥市| 南城县| 嘉义市| 青阳县| 丁青县| 特克斯县| 岳西县| 马鞍山市| 泰和县| 宝兴县| 惠东县| 兴海县| 饶阳县| 丰县| 巫山县| 扎囊县| 和平区|