#secret-toolkit #secret-contracts #secret-network

secret-toolkit-crypto

Secret Contracts 编写用的密码学工具

6个版本 (重大变更)

0.10.0 2023年10月18日
0.9.0 2023年6月4日
0.7.0 2022年12月18日
0.6.0 2022年10月25日
0.2.0 2022年1月16日

#6 in #secret-toolkit

Download history 140/week @ 2024-04-01 53/week @ 2024-04-08 99/week @ 2024-04-15 75/week @ 2024-04-22 61/week @ 2024-04-29 55/week @ 2024-05-06 71/week @ 2024-05-13 188/week @ 2024-05-20 89/week @ 2024-05-27 81/week @ 2024-06-03 78/week @ 2024-06-10 110/week @ 2024-06-17 105/week @ 2024-06-24 46/week @ 2024-07-01 79/week @ 2024-07-08 58/week @ 2024-07-15

每月302次下载
用于 4 个crate(3个直接使用)

自定义许可

17KB
231

Secret Contract 开发工具包 - 密码学工具

⚠️ 此包是 secret-toolkit 包的一个子包。请参阅其crate页面以获取更多信息。

此crate包含用于在Secret Network上运行的Secret Contracts开发中常用的密码学工具。

注意:它有一个深度依赖树,并显著增加了编译时间。

将以下内容添加到您的 cargo.toml 文件中

[dependencies]
secret-toolkit = { version = "0.10.0", features = ["crypto"] }
secret-toolkit-crypto = { version = "0.10.0", features = ["hash", "rand", "ecc-secp256k1"] }

示例用法

# extern crate secret_toolkit_crypto;

# use secret_toolkit_crypto::{sha_256, ContractPrng, secp256k1::{PrivateKey, PublicKey, Signature}};
# use base64;
# use cosmwasm_std::{StdError, testing::mock_dependencies};

# fn main() -> Result<(), StdError> {
let deps = mock_dependencies();
let entropy: String = "secret".to_owned();
let prng_seed: Vec<u8> = sha_256(base64::encode(&entropy.clone()).as_bytes()).to_vec();

let mut rng = ContractPrng::new(&prng_seed, entropy.as_bytes());

let private_key: PrivateKey = PrivateKey::parse(&rng.rand_bytes())?;
let public_key: PublicKey = private_key.pubkey();

let message: &[u8] = b"message";
let signature: Signature = private_key.sign(message, deps.api);
# Ok(())
# }

Cargo功能

  • ["hash"] - 提供易于使用的 sha256 函数。使用 sha2
  • ["rand"] - 用于生成伪随机数。使用 [rand_chacha] 和 [rand_core]。
  • ["ecc-secp256k1"] - 包含用于处理secp256k1密钥和签名的类型和方法,以及密钥大小的标准常数。使用 secp256k1

依赖项

~3–5MB
~104K SLoC