The motivation of this change is to move away from tying signing to be specifically for ed25519. The reason being that the protocol will want move towards two different kinds of signing – the node signing artifacts, and an author signing artifacts. This change captures the former, node signing, by introducing a `Device` type that is the `NodeId` – a PublicKey underneath the hood – and a signing mechanism. This allows the replacement of the `Signer` trait being used – which always assumed a `PublicKey`. Instead, the `Device` is constructed with `NodeId`. In `radicle-cob`, a signer is expected to implement `signature::Signer<ExtendedSignature>`, and everywhere in `radicle`, `radicle-node`, `radicle-cli`, and `radicle-remote-helper` is expected the signer is expected to implement `signature::Signer<Signature>`. A `Device` implements both of these but only requires `signature::Signer<Signature>` to do so – since an `ExtendedSignature` is essentially `(PublicKey, Signature)`, and the `NodeId` of the `Device` can be used. |
||
|---|---|---|
| .. | ||
| ssh | ||
| test | ||
| lib.rs | ||
| ssh.rs | ||
| test.rs | ||