mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-25 18:51:09 +00:00
Overhaul crypto (Schnorr/Ristretto, HDKD, BIP39) (#1795)
* Rijig to Ristretto * Rebuild wasm * adds compatibility test with the wasm module * Add Ed25519-BIP39 support * Bump subkey version * Update CLI output * New keys. * Standard phrase/password/path keys. * Subkey uses S-URI for secrets * Move everything to use new HDKD crypto. * Test fixes * Ignore old test vector. * fix the ^^ old test vector. * Fix tests * Test fixes * Cleanups * Fix broken key conversion logic in grandpa CC @rphmeier * Remove legacy Keyring usage * Traitify `Pair` * Replace Ed25519AuthorityId with ed25519::Public * Expunge Ed25519AuthorityId type! * Replace Sr25519AuthorityId with sr25519::Public * Remove dodgy crypto type-punning conversions * Fix some tests * Avoid trait * Deduplicate DeriveJunction string decode * Remove cruft code * Fix test * Minor removals * Build fix * Subkey supports sign and verify * Inspect works for public key URIs * Remove more crypto type-punning * Fix typo * Fix tests
This commit is contained in:
@@ -24,30 +24,30 @@ use std::{fmt::Debug, ops::Deref, fmt};
|
||||
use crate::codec::{Codec, Encode, Decode};
|
||||
use crate::traits::{self, Checkable, Applyable, BlakeTwo256, Convert};
|
||||
use crate::generic::DigestItem as GenDigestItem;
|
||||
|
||||
pub use substrate_primitives::{H256, Ed25519AuthorityId};
|
||||
pub use substrate_primitives::H256;
|
||||
use substrate_primitives::U256;
|
||||
use substrate_primitives::ed25519::{Public as AuthorityId, Signature as AuthoritySignature};
|
||||
|
||||
/// Authority Id
|
||||
#[derive(Default, PartialEq, Eq, Clone, Encode, Decode, Debug)]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
pub struct UintAuthorityId(pub u64);
|
||||
impl Into<Ed25519AuthorityId> for UintAuthorityId {
|
||||
fn into(self) -> Ed25519AuthorityId {
|
||||
impl Into<AuthorityId> for UintAuthorityId {
|
||||
fn into(self) -> AuthorityId {
|
||||
let bytes: [u8; 32] = U256::from(self.0).into();
|
||||
Ed25519AuthorityId(bytes)
|
||||
AuthorityId(bytes)
|
||||
}
|
||||
}
|
||||
|
||||
/// Converter between u64 and the AuthorityId wrapper type.
|
||||
pub struct ConvertUintAuthorityId;
|
||||
impl Convert<u64, UintAuthorityId> for ConvertUintAuthorityId {
|
||||
fn convert(a: u64) -> UintAuthorityId {
|
||||
UintAuthorityId(a)
|
||||
impl Convert<u64, Option<UintAuthorityId>> for ConvertUintAuthorityId {
|
||||
fn convert(a: u64) -> Option<UintAuthorityId> {
|
||||
Some(UintAuthorityId(a))
|
||||
}
|
||||
}
|
||||
/// Digest item
|
||||
pub type DigestItem = GenDigestItem<H256, Ed25519AuthorityId>;
|
||||
pub type DigestItem = GenDigestItem<H256, AuthorityId, AuthoritySignature>;
|
||||
|
||||
/// Header Digest
|
||||
#[derive(Default, PartialEq, Eq, Clone, Serialize, Debug, Encode, Decode)]
|
||||
|
||||
Reference in New Issue
Block a user