summaryrefslogtreecommitdiff
path: root/paramiko/rsakey.py
diff options
context:
space:
mode:
authorJeff Forcier <jeff@bitprophet.org>2022-05-16 20:52:22 -0400
committerJeff Forcier <jeff@bitprophet.org>2022-05-16 20:52:22 -0400
commit33df84c8b50fd63e46abbcbf2fdbe68ba8e530a1 (patch)
tree3df27327f099901f91ead2e9d33e0dad85bbe766 /paramiko/rsakey.py
parentd603ef12b76edca27b713c76c4544502961ff894 (diff)
parent8a00929219120fcacdcbecd3a94e73ec12f04819 (diff)
downloadparamiko-33df84c8b50fd63e46abbcbf2fdbe68ba8e530a1.tar.gz
Merge branch '2.10'
Diffstat (limited to 'paramiko/rsakey.py')
-rw-r--r--paramiko/rsakey.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/paramiko/rsakey.py b/paramiko/rsakey.py
index f7971dca..000f41c5 100644
--- a/paramiko/rsakey.py
+++ b/paramiko/rsakey.py
@@ -141,9 +141,16 @@ class RSAKey(PKey):
if isinstance(key, rsa.RSAPrivateKey):
key = key.public_key()
+ # NOTE: pad received signature with leading zeros, key.verify()
+ # expects a signature of key size (e.g. PuTTY doesn't pad)
+ sign = msg.get_binary()
+ diff = key.key_size - len(sign) * 8
+ if diff > 0:
+ sign = b"\x00" * ((diff + 7) // 8) + sign
+
try:
key.verify(
- msg.get_binary(),
+ sign,
data,
padding.PKCS1v15(),
self.HASHES[sig_algorithm](),