summaryrefslogtreecommitdiff
path: root/vendor/go.step.sm/crypto/sshutil/sshutil.go
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2025-07-22 07:50:24 +0000
committerFelix Hanley <felix@userspace.com.au>2025-07-22 07:50:24 +0000
commitfaa33e32b5e967fdfeac96bfc39ed3d94f9514ac (patch)
treeb7605c2443a054daf1dfceca2d415d5b86445166 /vendor/go.step.sm/crypto/sshutil/sshutil.go
parentf82adc0030a993ff25cbf70cf81d75900f455e6a (diff)
downloadcaddy-faa33e32b5e967fdfeac96bfc39ed3d94f9514ac.tar.gz
caddy-faa33e32b5e967fdfeac96bfc39ed3d94f9514ac.tar.bz2
Upgrade to caddy v2.10.0
Diffstat (limited to 'vendor/go.step.sm/crypto/sshutil/sshutil.go')
-rw-r--r--vendor/go.step.sm/crypto/sshutil/sshutil.go20
1 files changed, 7 insertions, 13 deletions
diff --git a/vendor/go.step.sm/crypto/sshutil/sshutil.go b/vendor/go.step.sm/crypto/sshutil/sshutil.go
index b21ff65..c309c2d 100644
--- a/vendor/go.step.sm/crypto/sshutil/sshutil.go
+++ b/vendor/go.step.sm/crypto/sshutil/sshutil.go
@@ -2,14 +2,12 @@ package sshutil
import (
"crypto"
- "crypto/dsa" // support for DSA fingerprints
- "crypto/ecdh"
+ "crypto/dsa" //nolint:staticcheck // support for DSA fingerprints
"crypto/ecdsa"
"crypto/ed25519"
"crypto/elliptic"
"crypto/rsa"
"fmt"
- "math/big"
"golang.org/x/crypto/ssh"
"golang.org/x/crypto/ssh/agent"
@@ -50,17 +48,13 @@ func cryptoSKPublicKey(pub ssh.PublicKey) (crypto.PublicKey, error) {
if err := ssh.Unmarshal(pub.Marshal(), &w); err != nil {
return nil, err
}
-
- p, err := ecdh.P256().NewPublicKey(w.Key)
- if err != nil {
- return nil, fmt.Errorf("failed decoding ECDSA key: %w", err)
+ key := new(ecdsa.PublicKey)
+ key.Curve = elliptic.P256()
+ key.X, key.Y = elliptic.Unmarshal(key.Curve, w.Key)
+ if key.X == nil || key.Y == nil {
+ return nil, fmt.Errorf("invalid curve point")
}
-
- return &ecdsa.PublicKey{
- Curve: elliptic.P256(),
- X: big.NewInt(0).SetBytes(p.Bytes()[1:33]),
- Y: big.NewInt(0).SetBytes(p.Bytes()[33:]),
- }, nil
+ return key, nil
case "sk-ssh-ed25519@openssh.com":
var w struct {
Name string