package peergos.shared.crypto.asymmetric;
import peergos.shared.cbor.*;
import peergos.shared.crypto.asymmetric.curve25519.Ed25519SecretKey;
import peergos.shared.util.*;
import java.io.*;
public interface SecretSigningKey extends Cborable {
PublicSigningKey.Type type();
byte[] signMessage(byte[] message);
static SecretSigningKey fromCbor(CborObject cbor) {
if (! (cbor instanceof CborObject.CborList))
throw new IllegalStateException("Invalid cbor for PublicSigningKey! " + cbor);
CborObject.CborLong type = (CborObject.CborLong) ((CborObject.CborList) cbor).value.get(0);
PublicSigningKey.Type t = PublicSigningKey.Type.byValue((int) type.value);
switch (t) {
case Ed25519:
return Ed25519SecretKey.fromCbor(cbor, PublicSigningKey.PROVIDERS.get(t));
default: throw new IllegalStateException("Unknown Secret Signing Key type: "+t.name());
}
}
}