From 0b2590596cd46cf3dc5283f9992ca804632f3f80 Mon Sep 17 00:00:00 2001 From: Petar Maymounkov Date: Tue, 14 Jul 2020 09:50:10 -0700 Subject: [PATCH] error if bit size specified with ed25519 keys (#105) --- init.go | 3 +++ init_test.go | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/init.go b/init.go index 2d2e2e6..448fffa 100644 --- a/init.go +++ b/init.go @@ -200,6 +200,9 @@ func CreateIdentity(out io.Writer, opts []options.KeyGenerateOption) (Identity, sk = priv pk = pub case "ed25519": + if settings.Size != -1 { + return ident, fmt.Errorf("number of key bits does not apply when using ed25519 keys") + } fmt.Fprintf(out, "generating ED25519 keypair...") priv, pub, err := ci.GenerateEd25519Key(rand.Reader) if err != nil { diff --git a/init_test.go b/init_test.go index 635c78a..3e66e60 100644 --- a/init_test.go +++ b/init_test.go @@ -34,3 +34,16 @@ func TestCreateIdentity(t *testing.T) { t.Fatal("unexpected type:", pk.Type()) } } + +func TestCreateIdentityOptions(t *testing.T) { + var w bytes.Buffer + + // ed25519 keys with bit size must fail. + _, err := CreateIdentity(&w, []options.KeyGenerateOption{ + options.Key.Type(options.Ed25519Key), + options.Key.Size(2048), + }) + if err == nil { + t.Errorf("ed25519 keys cannot have a custom bit size") + } +}