ethersphere / bee

Bee is a Swarm client implemented in Go. It’s the basic building block for the Swarm network: a private; decentralized; and self-sustaining network for permissionless publishing and access to your (application) data.
https://www.ethswarm.org
BSD 3-Clause "New" or "Revised" License
1.46k stars 337 forks source link

Key management #139

Closed Eknir closed 4 years ago

Eknir commented 4 years ago

User-story

As a node operator, I don't want the Swarm node to directly manage my private keys, such that it is easier to validate what is done with my private keys and when.

Background

ralph-pichler commented 4 years ago

Current status on this:

The codebase has been adapted to pass around a crypto.Signer interface instead of private keys for the overlay. For now the only implementation of this is for in memory private keys. All signers are expected to return signatures in exactly the same format (compatible with btcec compact signatures).

crypto.Signer is currently not used for the underlay libp2p key. If required this should be possible in theory with the current abstraction.

Several external signers were looked at:

Other signers which were looked at require user interaction on any signature (and most of them also add the Ethereum Prefix). Signing services outside the blockchain ecosystem usually don't support our curve.

Current plan forward:

ralph-pichler commented 4 years ago

Update regarding gpg-agent as a signer: