#   Gamma签名及其聚合算法库

---------------------------------------------------------------------------------------- 
###  Windows 系统下算法库组成 与 安装说明

## 安装部署说明


### 算法库组成
 

Gamma签名及其聚合算法库包括:

libgammaaggr:
		基于C语言实现的算法库.

testgamma:
		一个命令行测试工具，可用于对算法库进行功能和性能测试，生成的可执行文件在 x64\Release 文件夹中。

### 安装说明
------------

算法库及其测试程序均基于visual studio 2010 pro开发工具使用c语言开发。编译时使用visual studio
2010 pro打开gamma算法代码包根目录下的算法解决方案，可以看到里面包含两个项目，分别是算法库
libgammaaggr和算法测试程序testgamma，注意先编译算法库再编译算法测试程序。
编译生成的libgammaaggr.lib即为算法库，testgamma.exe即为算法测试程序。

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

###  Linux 系统下算法库组成 与 安装说明

## 安装部署说明

### 算法库组成
- libgammaaggr:
    基于C语言实现的算法库.
- testgamma:
    一个命令行测试工具，可用于对算法库进行功能和性能测试

### 环境依赖
- 开发语言：C
- 编译工具：
>  gcc version 7.3.0 (Ubuntu 7.3.0-27ubuntu1~18.04)   
>  automake (GNU automake) 1.15.1   
>  autoconf (GNU Autoconf) 2.69


### 部署步骤
获取Gamma签名及聚合算法源码tar包后执行如下命令即可：  
tar -xvf gammaAggr.tar  
./autogen.sh  
./configure  
make  
编译生成的libgammaAggr.a/libgammaAggr.so即为算法库  
编译生成的testgamma即为测试验证可执行程序。  
测试程序的使用采用列表菜单方式提供不同项目的测试，使用时执行./testgamma，
即可进入测试菜单，菜单内容包括功能测试部分和交互式性能测试部分，选择对
应菜单项并输入编号即可开始测试。

-----------------------------------------------------------------------------------------------------------------------------
 
##  源代码文件列表 与 功能说明
 
### Linux 系统版本程序  gammaAggr 文件夹下主要文件功能说明

  gammaAggr 文件夹
 
- configure：                                    配置文件
- configure.ac：                                 配置文件
- Makefile:                                     配置文件
- Makefile.am :                                 编译文件
- Makefile.in :                                 编译文件
- README.md   :                                 安装说明文件
- testgamma  :                                  Linux 下可执行文件

  gammaAggr\include 文件夹

- include\sig_api.h  :                          大赛要求 算法 API 文件

  gammaAggr\src 文件夹
                                                                            
- gammaAggregate_impl.h  :                     Gamma 签名及聚合签名算法实现文件
- tree.h :                                     聚合签名用到的树形结构声明文件
- tree_impl.h :                                聚合签名用到的树形结构实现文件 


### Windows 系统版本程序  gammaAggr_windows 文件夹下主要文件说明

  gammaAggr_windows 文件夹

  - gammaaggr.sln   :                          Gamma 签名及聚合签名算法 解决方案文件
  - libgammaaggr  文件夹 :                      基于C语言实现的算法库 文件夹.
  - testgamma     文件夹 :                      一个命令行测试工具，可用于对算法库进行功能和性能测试
  - x64           文件夹 :                      保存 testgamma 生成的可执行文件
  

  gammaAggr_windows\libgammaaggr 文件夹

- gammaAggr_windows\libgammaaggr\include  :                          大赛要求 算法 API 文件


  gammaAggr_windows\libgammaaggr\src  文件夹
                                                                             
- gammaAggregate_impl.h  :                     Gamma 签名及聚合签名算法实现文件
- tree.h :                                     聚合签名用到的树形结构声明文件
- tree_impl.h :                                聚合签名用到的树形结构实现文件 