更新时间:2022-09-16 GMT+08:00

AHE Lib库接口

提供给用户静态库文件,用于用户开发客户端应用时集成使用同态加密功能。

库的引用路径为:import "ahe/PSW/api/ahelib"

GenerateKey

  • 接口原型

    func GenerateKey(pwd string) (privKeyStr string, pubKeyStr string, err error)

  • 功能描述

    生成同态加密的密钥对。

  • 输入说明

    参数名

    类型

    描述

    是否必须

    pwd

    string

    用于加密保护生成的同态私钥串,采用AES-128加密。

    pwd至少满足如下要求:

    1. 长度至少6个字符。
    2. 必须包含如下至少两种字符的组合:
      • 至少一个小写字母;
      • 至少一个大写字母;
      • 至少一个数字;
      • 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/? 和空格

    是(不能为空)

  • 输出说明

    参数名

    类型

    描述

    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

    返回错误

  • 注意事项

    无。