Ecdsa

如何從 Rust 中的私鑰生成公鑰?

  • December 9, 2018

如何從 Rust 中的私鑰生成乙太坊公鑰?

我找到了rust-secp256k1,它似乎是我需要的,但根本沒有文件,這讓我覺得這個箱子對我來說,Rust 新手,噩夢。

感謝任何幫助。

我也不是 Rust 程序員,所以有人可能會有更好的答案,但看看 Parity’s keypair.rs,它本身使用rust-secp256k1.

感興趣的可能是KeyPair實現。

impl KeyPair {
   /// Create a pair from secret key
   pub fn from_secret(secret: Secret) -> Result<KeyPair, Error> {
       let context = &SECP256K1;
       let s: key::SecretKey = key::SecretKey::from_slice(context, &secret[..])?;
       let pub_key = key::PublicKey::from_secret_key(context, &s)?;
       let serialized = pub_key.serialize_vec(context, false);

       let mut public = Public::default();
       public.copy_from_slice(&serialized[1..65]);

       let keypair = KeyPair {
           secret: secret,
           public: public,
       };

       Ok(keypair)
   }
...

引用自:https://ethereum.stackexchange.com/questions/63852