aboutsummaryrefslogtreecommitdiff
path: root/ssh/keys_test.go
diff options
context:
space:
mode:
authorNicola Murino <nicola.murino@gmail.com>2025-08-12 07:59:34 +0200
committerNicola Murino <nicola.murino@gmail.com>2025-09-15 23:32:56 -0700
commitf4d47b0db5875e61dd52acdb63be800177ab48bb (patch)
tree0c974606cbfd3f715128a0173fc6a599dd22efe9 /ssh/keys_test.go
parent96dc232fbd7928e9c23da42e770c8b79a2348d86 (diff)
downloadgo-x-crypto-f4d47b0db5875e61dd52acdb63be800177ab48bb.tar.xz
ssh: return clearer error when signature algorithm is used as key format
ParsePublicKey now returns a more specific error when a signature algorithm like rsa-sha2-256 is mistakenly provided as a key format Change-Id: Ic08286a5b2b326e99dd3e61594919203f0c36791 Reviewed-on: https://go-review.googlesource.com/c/crypto/+/695075 Reviewed-by: Filippo Valsorda <filippo@golang.org> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Mark Freeman <markfreeman@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'ssh/keys_test.go')
-rw-r--r--ssh/keys_test.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/ssh/keys_test.go b/ssh/keys_test.go
index f3eb223..661e3cb 100644
--- a/ssh/keys_test.go
+++ b/ssh/keys_test.go
@@ -59,6 +59,17 @@ func TestKeyMarshalParse(t *testing.T) {
}
}
+func TestParsePublicKeyWithSigningAlgoAsKeyFormat(t *testing.T) {
+ key := []byte(`rsa-sha2-256 AAAADHJzYS1zaGEyLTI1NgAAAAMBAAEAAAEBAJ7qMyjLXEJCCJmRknuCLo0uPi5GrPY5pQYr84lhlN8Gor5KVL2LKYCW4e70r5xzj7SrHHSCft1FMlYg1KDO9xrprJh733kQqAPWETmSuH0EfRtGtcH6EarKyVxk6As076/yNiiMKVBtG0RPa1L7FviTfcYK4vnCCVrbv3RmA5CCzuG5BSMbRLxzVb4Ri3p8jhxYT8N4QGe/2yqvJLys5vQ9szpZR3tcFp3DJIVZhBRfR6LnoY23XZniAAMQaUVBX86dXQ++dNwAwZSXSt9Og+AniOCiBYqhNVa5n3DID/H7YtEtG+CbZr3r2KD3fv8AfSLRar4XOp8rsRdD31h/kr8=`)
+ _, _, _, _, err := ParseAuthorizedKey(key)
+ if err == nil {
+ t.Fatal("parsing a public key using a signature algorithm as the key format succeeded unexpectedly")
+ }
+ if !strings.Contains(err.Error(), `signature algorithm "rsa-sha2-256" isn't a key format`) {
+ t.Errorf(`got %v, expected 'signature algorithm "rsa-sha2-256" isn't a key format'`, err)
+ }
+}
+
func TestUnsupportedCurves(t *testing.T) {
raw, err := ecdsa.GenerateKey(elliptic.P224(), rand.Reader)
if err != nil {