Windows下gmssl使用記錄

使用gmssl進行計算sm4,編譯的版本是gmssl2.0,2.1版本編譯不過去

第一步下載軟件,下載Visual Studio 2010旗艦版、nasm-2.13.03-installer-x86、ActivePerl-5.22.4.2205-MSWin32-x86-64int-403863這三個軟件,

注意vs版本不能太低,否則便宜的時候容易出現錯誤。

第二部使用命令進行編譯,生成lib庫和dll庫,請選擇好生成的版本,32位或者64位的dll庫

perl Configure VC-WIN32
nmake
nmake install

第三步:在vs2010中調用該接口,可以使用dll直接調用,或者使用lib庫,直接導入頭文件。注意在選擇選擇vs2010中的平臺配置,64位x64或者32位x86

HMODULE mHandle = LoadLibrary(L"libcrypto-1_1-x64.dll");

//pSms4_set_encrypt_key Sms4_set_encrypt_key = (pSms4_set_encrypt_key)GetProcAddress(mHandle, "sms4_set_encrypt_key");
//pSms4_encrypt Sms4_encrypt = (pSms4_encrypt)GetProcAddress(mHandle, "sms4_encrypt");

#pragma comment(lib, "libssl.lib")
#pragma comment(lib, "libcrypto.lib")

sms4_key_t key;

unsigned char user_key[16] = {
0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
};

unsigned char plaintext[16] = {
0x77, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10,
};

unsigned char buf[16];

/* test key scheduling */
sms4_set_encrypt_key(&key, user_key);

sms4_encrypt(plaintext, buf, &key);

?

轉載于:https://www.cnblogs.com/istar/p/8985437.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452788.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452788.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452788.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

公司管理項目管理中的技巧

如果在項目實施中選出最難解決的幾個問題,那么管理問題一定名列前茅。在管理問題中,團隊管理又是其中的難點。一個項目管理的好壞,很大程度就體現在團隊的建設和管理上。團隊管理涉及到管理學、心理學和哲學等諸多方面內容,具體實…

數據庫管理系統

什么是數據庫管理系統位于用戶與操作系統之間的一層數據管理軟件是基礎軟件,是一個大型復雜的軟件系統 數據庫管理系統的用途科學地組織和存儲數據、高效地獲取和維護數據數據定義功能提供數據定義語言(DDL)定義數據庫中的數據對象數據組織、…

kangle服務器搭建java_linux下kangle虛擬主機-架設java空間的教程及心得

1. chmod x jdk-6u31-linux-i586-rpm.bin2. ./jdk-6u31-linux-i586-rpm.bin復制代碼(注:如果下載的版本不同輸入實際版本)2.下載插件包:1. wget http://www.kanglesoft.com/download/ent/easypanel-tomcat-lin-1.0.tar.gz2. tar xzf easypanel-tomcat-lin-1.0.tar.g…

Django項目--登錄判斷裝飾器

view.py中定義登錄判斷裝飾器函數 def login_required(view_func):登錄判斷裝飾器def wrapper(request, *view_args, **view_kwargs):# 判斷用戶是否登錄if request.session.has_key(islogin):# 用戶已登錄,調用對應的視圖return view_func(request, *view_args, **view_kwarg…

Apple著手拋棄32位macOS應用程序

\看新聞很累?看技術新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!\\\Apple已經著手拋棄macOS上的32位應用程序了。macOS的下一個維護更新版本High Sierra 10.13.4將會在用戶打開32位應用程序時對…

HiveQL與SQL區別

1、Hive不支持等值連接 ?SQL中對兩表內聯可以寫成:?select * from dual a,dual b where a.key b.key;?Hive中應為?select * from dual a join dual b on a.key b.key; 而不是傳統的格式:SELECT t1.a1 as c1, t2.b1 as c2FROM t1, t2WHERE t1.a2 t…

Django項目--csrf攻擊

1.案例流程圖: 2.django防止csrf的方式: 1 ) Django中默認打開csrf中間件。settings.py文件中: MIDDLEWARE_CLASSES (django.contrib.sessions.middleware.SessionMiddleware,django.middleware.common.CommonMiddleware,django.middlewar…

數據庫管理系統與數據庫系統

數據庫:容納數據的倉庫。數據庫系統:數據庫、數據庫管理系統、硬件、操作人員的合在一起的總稱。數據庫管理系統:用來管理數據及數據庫的系統。數據庫系統包含數據庫管理系統、數據庫及數據庫開發工具所開發的軟件(數據庫應用系統…

如果你扯了團隊后腿,你應該內疚

現在,我看到很多人扯了團隊的后腿,一句道歉就了事,更甚者就以另一種方式來表達:你們沒有給我足夠的培訓,你們的工作方式我無法接受,我工資太低,你們做的事情不夠酷,你們做的事情不賺…

mysql count(*),count(1)與count(column)區別

2019獨角獸企業重金招聘Python工程師標準>>> count(*)對行的數目進行計算,包含NULL count(column)對特定的列的值具有的行數進行計算,不包含NULL值。 count()還有一種使用方式,count(1)這個用法和count(*)的結果是一樣的。 性能問…

Java IO API記錄

文件路徑: public static final String FILEPATH File.separator"Users" File.separator"xuminzhe"File.separator"Documents"File.separator"io"; 1.創建文件 public static void main(String[] args) {File filenew File…

Flask項目--預防csrf攻擊原理

1.CSRF機制原理 2.csrf成功攻擊示意圖 3.csrf防御

數據管理技術的發展過程

人工管理階段(20世紀50年代中之前)文件系統階段(20世紀50年代末--60年代中)數據庫系統階段(20世紀60年代末--現在)

一次失敗的項目經理招聘經驗

成功的原因有許多種,而失敗的原因往往就那么幾種。人們更愿意去討論自己是如何成功的,確不太情愿開誠布公的去剖析自己是如何失敗的。而時刻去反思自己失敗的案例,我們會進步的更快! 和大家分享一個2010年發生在我身邊的真實案例&…

NG客制項目下的I18n國際化標準方案

方案選擇 國際化i18n ? 這個方案是最成熟的,同時也是官方的方案,但是這樣一個標準化的方案同時意味著靈活度不夠。當需要劃分feature module,需要客制化組件的時候,這個方案的實施的成本就會遠遠超過預期,因此在項目中…

Flsak項目--圖片驗證碼

0. 圖片驗證碼的使用流程 2.后端接口編寫 verify_code.py中編寫接口代碼: # coding:utf-8from . import api from ihome.utils.captcha.captcha import captcha from ihome import redis_store, constants, db from flask import current_app, jsonify, make_respo…

數據庫與數據庫管理系統

數據庫是長期存儲在計算機內有組織的大量的共享的數據集合。可以供各種用戶共享,具有最小冗余度和較高的數據獨立性。數據庫管理系統在數據庫建立、運用和維護時對數據庫進行統一控制,以保證數據的完整性、安全性,并在多用戶同時使用數據庫時…

如何提高團隊情商

在公司發展中,總裁,總監,經理,項目經理,他們對團隊的建設意義重大,工作很重要,但團隊的情商才更重要,筆者公司的一個團隊,三十多個人就像一個人,命令所到之處…

ubuntu java classpath 設置_在Ubuntu中正確設置java classpath和java_home

我有錯誤Exception in thread"main" java.lang.NoClassDefFoundError:當我嘗試在Ubuntu上運行編譯類時。我使用的是一個非常簡單的helloworld示例,互聯網上已有數百萬的響應表明我的classpath和java_home變量設置錯誤。但是,我已經將etc/envir…

Polo the Penguin and Matrix

Little penguin Polo has an n??m matrix, consisting of integers. Lets index the matrix rows from 1 to n from top to bottom and lets index the columns from 1 to m from left to right. Lets represent the matrix element on the intersection of row i and column…