#木兰 基本版：基于密钥共识机制的模块化、高效灵活的 格基签名方案

--------------------------------------------------

### Windows 版本程序 及目录结构
 
Windows 版本程序 为 参考实现\mulan-basic\mulan-basic-win.zip，解压缩后进入 mulan-basic-win 文件夹，解决方案文件为 mulan.sln。

#### 测试程序文件结构说明

测试程序的发布方式参照开源库通用方式，即在算法发布库中集成对应的测试验证程序。整个算法库的源码组织结构分为四部分，分别是：

- libmulanbasicc: 包含了 Mulan-Basic-C 格签名算法实现的算法库；
- libmulanbasics: 包含了 Mulan-Basic-S 格签名算法实现的算法库；
- testmulanbasicc: 一个命令行测试工具，可用于对算法库libmulanbasicc进行功能和性能测试，生成的可执行文件在 x64\Release 文件夹中。
- testmulanbasics: 一个命令行测试工具，可用于对算法库libmulanbasics进行功能和性能测试，生成的可执行文件在 x64\Release 文件夹中。
 
#### 安装说明
 
测试程序含功能的验证和性能测试。测试程序与算法库均为c语言开发。因代码涉及对openssl库的调用，为简化编译流程，在工程代码的x64\release目录下已集成了
编译好的openssl库文件（libcrypto-1_1-x64.dll）。编译时使用visual studio 2010pro打开相应目录下的算法解决方案后先编译算法库再编译对应的算法测试程序。
编译时使用visual studio 2010 pro打开Mulan-Basic格基签名算法代码包根目录下的算法解决方案mulan.sln，可以看到里面包含四个项目，分别是算法库
libmulanbasicc, libmulanbasics和算法测试程序testmulanbasicc, testmulanbasics，注意先编译算法库再编译算法测试程序。 编译生成的libmulanbasicc.lib, libmulanbasics.lib即为算法库，
testmulanbasicc.exe, testmulanbasics.exe即为算法测试程序。 所有测试程序均采用列表菜单方式提供不同项目的测试，使用时执行对应算法的测试程序即可进入测试菜单，
菜单内容包括功能测试部分和交互式性能测试部分.
 

--------------------------------------------------
 
### Linux 版本程序 及目录结构
 
Windows 版本程序 为 参考实现\mulan-basic-linux.tar，解压缩后进入 mulan-basic-linux 文件夹。

#### 测试程序文件结构说明

测试程序的发布方式参照开源库通用方式，即在算法发布库中集成对应的测试验证程序。整个算法库的源码组织结构分为两部分，分别是：

- mulan-basic-c子目录，包含了Mulan-Basic-C格签名算法实现及其测试程序；
- mulan-basic-s子目录，包含了Mulan-Basic-S格签名算法实现及其测试程序；

因算法库依赖开源库openssl，在进行算法库和测试程序的编译前请先编译安装openssl。先从官网下载源码包，然后执行如下命令编译安装：

- tar -zxvf openssl-1.1.0j.tar.gz
- cd openssl-1.1.0j
- sudo ./config
- sudo make
- sudo make install
 
测试程序含功能的验证和性能测试。测试程序与算法库一样均为c语言开发，具体编译方法如下(linux,gcc)： 获取算法源码tar包后执行如下命令即可：

- tar -xvf mulan-basic-linux.tar
- cd mulan-basic-linux/mulan-basic-c
- make clean all
- cd ../mulan-basic-s
- make clean all

编译生成的文件如下：

- 编译生成的mulan-basic-linux/mulan-basic-c/libmulanbasicc.so即为Mulan-Basic-C格签名算法库文件
- 编译生成的mulan-basic-linux/mulan-basic-c/testmulanbasicc即为Mulan-Basic-C格签名算法测试验证可执行程序。
- 编译生成的mulan-basic-linux/mulan-basic-s/libmulanbasics.so即为Mulan-Basic-S格签名算法库文件
- 编译生成的mulan-basic-linux/mulan-basic-s/testmulanbasics即为Mulan-Basic-S格签名算法测试验证可执行程序。

所有测试程序均采用列表菜单方式提供不同项目的测试，使用时执行对应算法的测试程序即可进入测试菜单，菜单内容包括功能测试部分和交互式性能测试部分。
