在Substrate框架中,如何从密钥对中获取私钥(秘密密钥)?

时间:2019-06-13 18:42:05

标签: rust substrate

我有此代码:

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的源代码以添加一个功能,给了我私钥,但是我不想通过更改源代码来实现。

走什么路?

1 个答案:

答案 0 :(得分:0)

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

如果您想在运行时中签名,如果您只是传递带有其对应私钥的公钥,则有一些助手功能将对消息签名。

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