aboutsummaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/crypto/ssh/client.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2022-01-13 18:06:54 +0100
committerGitHub <noreply@github.com>2022-01-13 18:06:54 +0100
commiteeb76db0fd0dc2a1115c2f2ad12c82eadbc62509 (patch)
tree4666b0a66a98bd3f29586b3d3ac2c3028bd7443a /vendor/golang.org/x/crypto/ssh/client.go
parentab7228b3c27719e447de4dffe9b3fd7f67d6f346 (diff)
parentece768ff9e7d2b0166c0b1850467a489556b93fc (diff)
downloadpodman-eeb76db0fd0dc2a1115c2f2ad12c82eadbc62509.tar.gz
podman-eeb76db0fd0dc2a1115c2f2ad12c82eadbc62509.tar.bz2
podman-eeb76db0fd0dc2a1115c2f2ad12c82eadbc62509.zip
Merge pull request #12642 from Luap99/libnetwork
use libnetwork from c/common
Diffstat (limited to 'vendor/golang.org/x/crypto/ssh/client.go')
-rw-r--r--vendor/golang.org/x/crypto/ssh/client.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go
index 99f68bd32..ba8621a89 100644
--- a/vendor/golang.org/x/crypto/ssh/client.go
+++ b/vendor/golang.org/x/crypto/ssh/client.go
@@ -115,12 +115,25 @@ func (c *connection) clientHandshake(dialAddress string, config *ClientConfig) e
// verifyHostKeySignature verifies the host key obtained in the key
// exchange.
-func verifyHostKeySignature(hostKey PublicKey, result *kexResult) error {
+func verifyHostKeySignature(hostKey PublicKey, algo string, result *kexResult) error {
sig, rest, ok := parseSignatureBody(result.Signature)
if len(rest) > 0 || !ok {
return errors.New("ssh: signature parse error")
}
+ // For keys, underlyingAlgo is exactly algo. For certificates,
+ // we have to look up the underlying key algorithm that SSH
+ // uses to evaluate signatures.
+ underlyingAlgo := algo
+ for sigAlgo, certAlgo := range certAlgoNames {
+ if certAlgo == algo {
+ underlyingAlgo = sigAlgo
+ }
+ }
+ if sig.Format != underlyingAlgo {
+ return fmt.Errorf("ssh: invalid signature algorithm %q, expected %q", sig.Format, underlyingAlgo)
+ }
+
return hostKey.Verify(result.H, sig)
}