AHE Lib库接口
提供给用户静态库文件,用于用户开发客户端应用时集成使用同态加密功能。
库的引用路径为:import "ahe/PSW/api/ahelib"
GenerateKey
- 接口原型
func GenerateKey(pwd string) (privKeyStr string, pubKeyStr string, err error)
- 功能描述
生成同态加密的密钥对。
- 输入说明
参数名
类型
描述
是否必须
pwd
string
用于加密保护生成的同态私钥串,采用AES-128加密。
pwd至少满足如下要求:
- 长度至少6个字符。
- 必须包含如下至少两种字符的组合:
- 至少一个小写字母;
- 至少一个大写字母;
- 至少一个数字;
- 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/? 和空格
是(不能为空)
- 输出说明
参数名
类型
描述
privKeyStr
string
使用pwd加密的同态加密私钥。
pubKeyStr
string
同态加密公钥串
err
error
错误
- 注意事项
Encypt
- 接口原型
func Encypt (secretNumStr string, pubKeyStr string) (ciphertext string, err error)
- 功能描述
同态加密。
- 输入说明
参数名
类型
描述
是否必须
secretNumStr
string
需要加密的数值,只支持大于等于0的正整数,如果数字有小数,需要扩大倍数传入。
是
pubKeyStr
String
同态加密的公钥
是
- 输出说明
参数名
类型
描述
ciphertext
string
加密后的数据
err
error
返回错误
- 注意事项
无。
Decrypt
- 接口原型
func Decrypt(ciphertext string, privKeyStr string, pwd string) (plainText *big.Int, err error)
- 功能描述
同态解密。
- 输入说明
参数名
类型
描述
是否必须
ciphertext
string
需要解密的密文
是
privKeyStr
string
同态加密的私钥串(被pwd加密保护
是
pwd
string
用于保护私钥的字符串
否
- 输出说明
参数名
类型
描述
plainText
*big.int
解密后的数据
err
error
返回错误
- 注意事项
无。
Add
- 接口原型
func Add(cipher1, cipher2 string) (cipher string, err error)
- 功能描述
同态加法。
- 输入说明
参数名
类型
描述
是否必须
cipher1
string
被加密的密文1
是
cipher2
string
被加密的密文2
是
- 输出说明
参数名
类型
描述
cipher
string
相加后的数据
err
error
返回错误
- 注意事项
无。
InitBalance
- 接口原型
func InitBalance(balanceStr string, pubKey string) (string, error)
- 功能描述
初始化余额。
- 输入说明
参数名
类型
描述
是否必须
pubKey
string
公钥串
是
balanceStr
string
初始余额,只支持大于等于0的正整数,如果数字有小数,需要扩大倍数传入
是
- 输出说明
参数名
类型
描述
balanceInfo
string
交易金额信息
err
error
返回错误
- 注意事项
无。
PrepareTxInfo
- 接口原型
func PrepareTxInfo(cipherBalanceA string, transNumStr string, pubKeyA, pubKeyB string, privKeyA string,pwd string) (string, error)
- 功能描述
交易准备。
- 输入说明
参数名
类型
描述
是否必须
cipherBalanceA
string
A的当前余额(密文),取链上当前A的余额
是
transNumStr
string
转账金额(明文)
是
pubKeyA
string
A的公钥串
是
pubKeyB
string
B的公钥串
是
PrivKeyA
string
A的私钥串
是
pwd
string
用于加密保护的字符串
否
- 输出说明
参数名
类型
描述
Txinfo
string
交易准备数据
err
error
返回错误
- 注意事项
无。