netty实现gmssl_gmssl java api 编译
GmSSL是一個開源的密碼工具箱,支持SM2/SM3/SM4/SM9等國密(國家商用密碼)算法、SM2國密數字證書及基于SM2證書的SSL/TLS安全通信協議,支持國密硬件密碼設備,提供符合國密規范的編程接口與命令行工具,可以用于構建PKI/CA、安全通信、數據加密等符合國密標準的安全應用。GmSSL項目是OpenSSL項目的分支,并與OpenSSL保持接口兼容。
GmSSL 提供了java 接口,在windows下,編譯JAVA接口的步驟
1、首先編譯GmSSL
a)工具 perl ,vs2017(或者其他版本)
b)編譯步驟
perl Configure VC-WIN64A no-asm
nmake
2、編譯java 庫文件
a) 工具 JDK vs
b) nmake -f winmake
c)?nmake -f?winmake test
makefile? 內容
##WINDOWS native library gmssljni.dll generation
LIBCRYPTOS=../libcrypto.lib
JAVADLL=gmssljni.dll
CC=cl
CFLAGS=-DNDEBUG -W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32? -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE /O2
LD=link
LDFLAGS=/nologo /dll
EX_LIBS=ws2_32.lib advapi32.lib crypt32.lib user32.lib
LIB_CFLAGS=
!IF DEFINED(STATIC)
CFLAGS = $(CFLAGS) /MT
!ELSE
CFLAGS = $(CFLAGS) /MD
!ENDIF
#JAVA_HOME check
!IF "x$(JAVA_HOME)x" == "xx"
!ERROR "The environment variable JAVA_HOME is empty!"
!ENDIF
!IF ! EXIST("$(JAVA_HOME)/bin/javac.exe")
!ERROR "Javac was not found in JAVA_HOME($(JAVA_HOME)/bin)!"
!ENDIF
JAVAC="$(JAVA_HOME)/bin/javac"
JAVAINCLUDE=-I "$(JAVA_HOME)\include" -I "$(JAVA_HOME)\include\win32"
JAVADLLPATH=-Djava.library.path=.
JAVA=java
all: $(JAVADLL) GmSSL.class
GmSSL.obj:
$(CC)? /I "." /I "..\include" $(JAVAINCLUDE) $(CFLAGS) $(LIB_CFLAGS) -c GmSSL.c
gmssl_err.obj:
$(CC)? /I "." /I "..\include" $(JAVAINCLUDE) $(CFLAGS) $(LIB_CFLAGS) -c? gmssl_err.c
$(JAVADLL): GmSSL.obj gmssl_err.obj
$(LD) $(LIBCRYPTOS) $(EX_LIBS) $(LDFLAGS) /out:$@ $**
GmSSL.class:
$(JAVAC) GmSSL.java
test: $(JAVADLL) GmSSL.class
IF EXIST ..\libcrypto-1_1*.dll copy /Y ..\libcrypto-1_1*.dll .
$(JAVA) $(JAVADLLPATH) GmSSL
clean:
IF EXIST *.obj DEL /F /Q *.obj
IF EXIST GmSSL.class DEL /F /Q GmSSL.class
IF EXIST libcrypto-1_1*.dll? DEL /F /Q libcrypto-1_1*.dll
IF EXIST $(JAVADLL).* DEL /F /Q $(JAVADLL).*
總結
以上是生活随笔為你收集整理的netty实现gmssl_gmssl java api 编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java api 1.8 中文 帮助文档
- 下一篇: JQuery 中选择多选择框,和单选框,