diff --git a/slhdsa/key.go b/slhdsa/key.go index b6dc20c..12bb8c7 100644 --- a/slhdsa/key.go +++ b/slhdsa/key.go @@ -102,7 +102,7 @@ func GenerateKey(rand io.Reader, params *params) (*PrivateKey, error) { if _, err := io.ReadFull(rand, priv.PublicKey.seed[:params.n]); err != nil { return nil, err } - return generateKeyInernal(priv.seed[:], priv.prf[:], priv.PublicKey.seed[:], params) + return generateKeyInernal(priv.seed[:params.n], priv.prf[:params.n], priv.PublicKey.seed[:params.n], params) } // NewPrivateKey creates a new PrivateKey instance from the provided priv.seed||priv.prf||pub.seed||pub.root and parameters. diff --git a/slhdsa/key_test.go b/slhdsa/key_test.go index 7a02e47..8499ebb 100644 --- a/slhdsa/key_test.go +++ b/slhdsa/key_test.go @@ -137,3 +137,13 @@ func TestGenerateKeyInternal(t *testing.T) { } } } + +func TestGenerateKey(t *testing.T) { + for _, tc := range keyCases { + _, err := tc.params.GenerateKey(rand.Reader) + if err != nil { + t.Errorf("params.GenerateKey() = %v", err) + continue + } + } +}