PayloadEncryptor.fromLibp2pKey constructor

PayloadEncryptor.fromLibp2pKey(
  1. PrivateKey key
)

From a libp2p private key. Only a key that still holds its seed can be used: dart-libp2p keeps it for keys built from a seed with Ed25519PrivateKey.fromRawBytes, and not for others.

Implementation

factory PayloadEncryptor.fromLibp2pKey(libp2p.PrivateKey key) {
  final Uint8List raw;
  try {
    raw = key.raw;
  } on UnimplementedError {
    throw StateError('the libp2p private key does not expose its seed; '
        'build the PayloadEncryptor from the Ed25519 seed instead');
  }
  if (raw.length == 64) {
    return PayloadEncryptor.fromEd25519Seed(Uint8List.sublistView(raw, 0, 32));
  }
  return PayloadEncryptor.fromEd25519Seed(raw);
}