Windows 下构建 liboqs-java,实现PQC算法的调用

发布时间:2026/7/7 21:16:35
Windows 下构建 liboqs-java,实现PQC算法的调用 本文目标本文将完整演示如何在 Windows 环境下构建并使用liboqs-java主要包括以下内容在 Windows 上编译liboqs构建可用的liboqs-java.jar运行官方示例验证构建结果在 Spring Boot 项目中引入该 JAR通过 Java 代码调用 ML-KEM 等后量子密码算法二、环境与工具本文使用的环境如下Windows 10 / Windows 11 MinGW-w64 CMake JDK Maven Git建议使用较新的 JDK 版本例如 JDK 17 或 JDK 21。本文示例以JDK 21为例。三、先理解 liboqs 与 liboqs-java 的关系在正式构建之前需要先理解几个组件之间的关系。Spring Boot / Java 业务代码 | | 调用 Java API v liboqs-java.jar | | JNI 调用 v oqs-jni.dll | | 链接 v liboqs.a / liboqs | | 实际执行算法 v ML-KEM、ML-DSA 等 PQC 算法可以简单理解为组件作用liboqsC 语言实现的后量子密码学算法库liboqs-java对liboqs的 Java 封装oqs-jni.dllJava 与 native 层之间的 JNI 桥接库liboqs-java.jarJava / Spring Boot 项目最终要引入的 JAR 包因此正确的构建顺序是先构建 liboqs 再构建 liboqs-java 最后在 Java / Spring Boot 项目中引用生成的 JAR注意如果跳过liboqs的构建直接构建liboqs-java通常会遇到找不到oqs.h、找不到liboqs.a等问题。四、推荐项目目录结构由于需要从 GitHub 获取liboqs-java和liboqs两个项目源码建议将目录结构整理为如下形式D:\workspace\liboqs-java-main ├── pom.xml ├── README.md ├── examples │ ├── KEMExample.java │ ├── SigExample.java │ └── RandExample.java ├── src ├── liboqs │ ├── CMakeLists.txt │ ├── src │ └── build │ ├── include │ │ └── oqs │ │ └── oqs.h │ └── lib │ └── liboqs.a └── target └── liboqs-java.jar如下图所示其中最关键的是以下几个文件liboqs\build\include\oqs\oqs.h liboqs\build\lib\liboqs.a target\liboqs-java.jar只要这些文件都成功生成说明主构建流程基本已经走通。五、准备构建工具需要提前安装以下工具工具作用MinGW-w64提供gcc、g用于编译 C 代码和 JNI 代码CMake生成并驱动liboqs构建JDK编译 Java 代码并提供 JNI 头文件Maven构建liboqs-java并打包 JARGit拉取源码非必需也可以手动下载 ZIP建议将所有工具都安装到纯英文路径下不要放在包含中文或空格的目录中。例如D:\c_tools\mingw64 D:\java\jdk-21 D:\javaTools\apache-maven-3.9.x D:\workspace建议native 构建工具对路径比较敏感中文路径、空格路径有时会导致一些较难排查的问题。为了减少环境问题建议统一使用英文路径。六、安装 MinGW-w64可以使用 MinGW-w64 官方推荐的发行版。下载入口如下https://www.mingw-w64.org/进入官网后找到Downloads再找到MinGW-W64-builds。点击后会跳转到 GitHub选择需要的版本下载即可下载完成后解压后续需要将mingw64\bin添加到环境变量中。安装完成后可以在终端中执行gcc -v测试是否安装成功能看到 GCC 的版本信息就说明 MinGW-w64 已经可以正常使用。同时确认以下文件存在D:\c_tools\mingw64\bin\gcc.exe D:\c_tools\mingw64\bin\g.exe D:\c_tools\mingw64\bin\mingw32-make.exe后续 CMake 会通过这些工具来编译liboqs和 JNI 代码。七、安装 CMake可以使用winget安装winget install Kitware.CMake也可以从 CMake 官网下载 Windows x64 Installerhttps://cmake.org/download/下载后直接运行安装程序即可。安装时建议勾选Add CMake to the system PATH for current user如下图所示安装完成后重新打开终端执行cmake --version如果能够正常输出版本信息说明 CMake 已经安装成功。八、安装 JDKJDK 可以选择 Eclipse Temurin 或 Oracle JDK。下载地址https://adoptium.net/ https://www.oracle.com/java/technologies/downloads/JDK 的安装教程较多本文不再展开。本文示例使用JDK 21假设安装路径为D:\java\jdk-21需要确认以下文件存在D:\java\jdk-21\bin\java.exe D:\java\jdk-21\bin\javac.exe D:\java\jdk-21\include\jni.h其中jni.h非常重要。注意构建liboqs-java时会编译 JNI 代码。如果安装的是 JRE 而不是 JDK就会缺少jni.h从而导致构建失败。九、安装 Maven从 Maven 官网下载 binary zip 包https://maven.apache.org/download.cgi下载后解压到任意英文路径例如D:\javaTools\apache-maven-3.9.x