package
0.0.0-20231224052254-3c905e5ef12b
Repository: https://github.com/assetcloud/chain.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

crypto

功能

  • 支持 ed25519, secp256k1, sm2
  • 统一的 PrivKey,Pubkey, Signature 接口, 详见 crypto.go

依赖

  • sm2 编译依赖 gmssl 2.0 版本
  • 安装:bash ./deps/install_gmssl.sh

配置

支持加密插件使能开启, 分叉高度等配置

EnableTypes

指定开启若干加密插件(插件名称),不配置默认启用所有

[crypto] #示例
enableTypes=["secp256k1", "sm2"]

EnableHeight

分叉高度配置, 即区块高度达到配置高度后启用插件, 不配置采用内置的启用高度, 负数表示不启用

[crypto] #示例
[crypto.enableHeight]
"secp256k1" = 0
"sm2"= 100

cryptoID

加密插件 ID 值, int32 类型

手动指定

注册插件时, 支持手动指定插件 ID(crypto.WithRegOptionTypeID(manualID))

  • 手动指定 ID 范围, (0, 4096), 低位 12 位
  • 建议单元测试调用 CryptoGetCryptoList 接口查看已注册 ID 情况.

自动生成

注册时未指定手动 ID, 将根据插件名称随机生成, 存在冲突时需要手动指定解决

相关说明

cryptoID 主要用于交易签名算法类型判定, cryptoID 不等同于交易 SignatureID

  • 接口 chain/types/ExtractCryptoID, 基于 signID 解析 cryptoID
  • 底层设计, 参考 chain/types/sign.md