Authentication of PeerIds in authority discovery records (#10317)

* Consolidating test and production code

* Signing/verifying authority discovery records with PeerId

Unsigned records cannot be rejected yet, they just produce
a warning in the log.

* Upgrading to libp2p 0.40

* libp2p::identity and sp_core::crypto Ed25519 are compatible

* Rejecting authority records unsigned by peer id can be configured

* Fixes based on review comments

* No command-line argument needed

* info was still too much spam in the logs

* Added tests for both strict and loose validation

* Fixing based on review comments

* Pierre preferred a signing method

* Ooops, I need to slow down

* Update bin/node/cli/src/service.rs

* Reexport libp2p crypto used in sc-network

* Added proto3 compatibility tests. And import noise.

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
wigy
2021-12-05 20:17:14 +01:00
committed by GitHub
parent 4775f11edc
commit 5fd7fdcfcd
14 changed files with 637 additions and 200 deletions
+2 -2
View File
@@ -420,8 +420,6 @@ impl KeystoreInner {
/// Write the given `data` to `file`.
fn write_to_file(file: PathBuf, data: &str) -> Result<()> {
let mut file = File::create(file)?;
serde_json::to_writer(&file, data)?;
file.flush()?;
#[cfg(target_family = "unix")]
{
@@ -429,6 +427,8 @@ impl KeystoreInner {
file.set_permissions(fs::Permissions::from_mode(0o600))?;
}
serde_json::to_writer(&file, data)?;
file.flush()?;
Ok(())
}