3

我有这个代码:

use schnorrkel;
use schnorrkel::{
    derive::{ChainCode, Derivation, CHAIN_CODE_LENGTH},
    signing_context, Keypair, MiniSecretKey, PublicKey, SecretKey,
};
use substrate_primitives::crypto::Pair as PairT;
use substrate_primitives::sr25519;
use substrate_primitives::sr25519::Pair;

fn main() {
    let keypair = sr25519::Pair::generate();
    let private_key = keypair.somehow_get_the_private_key_func();
}

我尝试使用SecretKey特征(在开头导入),但它说SecretKey是私有的,所以我想到的唯一方法是修改 Substrate 的源以添加一个给我私钥的函数,但我不想通过源代码更改来做到这一点。

要走的路是什么?

4

1 回答 1

2

你实际上需要做什么?您根本不应该在运行时获得私钥。

如果你想在你的运行时签署一些东西,有一些辅助函数可以签署一条消息,如果你只是传入公钥和对应的私钥。

https://substrate.dev/rustdocs/master/sp_io/crypto/fn.sr25519_sign.html 测试:https ://substrate.dev/rustdocs/master/sp_core/testing/struct.KeyStore.html

于 2020-03-31T17:25:23.723 回答