mirror of
https://github.com/saymrwulf/cryptography.git
synced 2026-05-14 20:37:55 +00:00
* fixes #4706 -- don't internal error on corrupt private key * Temporary disable paramiko
This commit is contained in:
parent
652983a624
commit
fce9a79215
4 changed files with 46 additions and 2 deletions
|
|
@ -118,8 +118,10 @@ matrix:
|
|||
env: DOWNSTREAM=pyopenssl
|
||||
- python: 3.7
|
||||
env: DOWNSTREAM=twisted OPENSSL=1.1.1g
|
||||
- python: 2.7
|
||||
env: DOWNSTREAM=paramiko
|
||||
# Temporary disabled until
|
||||
# https://github.com/paramiko/paramiko/pull/1723 is merged
|
||||
# - python: 2.7
|
||||
# env: DOWNSTREAM=paramiko
|
||||
- python: 2.7
|
||||
env: DOWNSTREAM=aws-encryption-sdk
|
||||
- python: 2.7
|
||||
|
|
|
|||
|
|
@ -314,6 +314,11 @@ class _RSAVerificationContext(object):
|
|||
@utils.register_interface(RSAPrivateKeyWithSerialization)
|
||||
class _RSAPrivateKey(object):
|
||||
def __init__(self, backend, rsa_cdata, evp_pkey):
|
||||
res = backend._lib.RSA_check_key(rsa_cdata)
|
||||
if res != 1:
|
||||
errors = backend._consume_errors_with_text()
|
||||
raise ValueError("Invalid private key", errors)
|
||||
|
||||
self._backend = backend
|
||||
self._rsa_cdata = rsa_cdata
|
||||
self._evp_pkey = evp_pkey
|
||||
|
|
|
|||
|
|
@ -784,3 +784,33 @@ RSA_KEY_2048_ALT = RSAPrivateNumbers(
|
|||
),
|
||||
),
|
||||
)
|
||||
|
||||
RSA_KEY_CORRUPTED = b"""
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEAuYE4k09MAsi1yjMrXekMe6sT9bEt3ko47dnmN8YBgO8DiiCc
|
||||
226TnQPvuX3FGxU+Y1zTJpcvVL3L37UOvh4CSb9zKyrFK9/x/UcCfK3Eq8JdS98P
|
||||
CVeGpkp5E+vwIKY72rc1RSSSCs0PtFdYbSn4trwf5BjPxIqXwIOS3R7zC7cLPHY4
|
||||
YdsM4gLGVOP17uXJr/MPoAtWTBVm5zx4bHm6Xclzgf86sbPdL3LxNs0fz4HqJZgA
|
||||
6EUtyl6Qypq2LjXbdmm2i3vC+MxW6nEPItPqgComhq0zBmVonsiEO87rEtD548Yq
|
||||
DKvxwHhlcODcVkAYebJ+W5L6PPJBNYA3t5wYyQIDAQABAoIBAAbHkg5msftpGt5Z
|
||||
Vb3yUuepem7hWTF5YFlIRw5l2wNcURNpbswEhOVNJbuG+KCple7Dw4TuDmhHs/zr
|
||||
BRqpDhXldhrUtb2uc3ihqWiVFJbieqE4jUbGvMJusvtXXeDwU6wGWzV/V4qndCrk
|
||||
u4PGypk4Cbbq6ZP2oufPryQ3D4Ff1TA06RSWdP3Cg673VqwLtkXwsRDhymAviiqU
|
||||
hxQg8bRNiD7mYoUKyLVeV7YRDLTBugfiFmy54yC99NJclLkYmzCgRt1EuoW0Hixx
|
||||
EIQFEOLftgpc+sKpbbiOileMsc/stytHXXqfgozhBxDNeSzdNYfwEpkLJpLZSUNV
|
||||
EhS4X1cCgYEAz+7DkXksWw9zLqYniMIcvcBnHQcy3Anqbcu8Zbw+I9wOwzNt44Bo
|
||||
f88i2idvWvMsRq/LX4WD4jjPB4Z3wAzGBCq+2cy0GrWByMu+VbpwCrntRBkS5huY
|
||||
IIf1nr1+BuySNt8TL6nZNKz0D8+5c8wT+VbVdPH//4MzfDrK81PPnesCgYEA5GMy
|
||||
ji4l+8zO33LFMlWQGYgfSMd4jGMQD0VCvfhlosK0Py0AfZj/GKEGHduo/37KVVvb
|
||||
6XdJqYgB7OxPmdEqbMGeYPKv7pKkG1jXRuEtmXXJ9hS1t0oIvXJLHJnQrOOoRRAR
|
||||
+xJZbI7WjemY+ZCMOAPT1tm97pxjs81WgSJ6ExsCgYEAze5ADfEeNskkYAz6lnz4
|
||||
jgzhkmQwwK+pVzgxy9g8brNkg3qJ2Iix9fKlJ71qkX7IWPF9z4qhxQhSMbfBHZkI
|
||||
+9OB1J7huJoOgVkXliwIbvcYvxq+Fts5XO6KGb699AmT/XgMvmXO0lbAGLC3kLGL
|
||||
DqQrH3kU+m9sLBrmKPrWYiUCgYEA3/8etW4zmMvd1jAFkoFyzGfCbyocZGxAcwm2
|
||||
FQYMAN8/03p6sbSd9XTwv9YR4Uxke+WURkjVuW2IneuDgtQv6QCFKob74Jx4Uc4H
|
||||
jiAKDioFg9H6C6OUAOKZIpsFnJvIDLxfNkVf6WYKrrL+cz6/F61BVsbGTsGZ094/
|
||||
ynWbDyMCgYEAh44C/wkebe0zz/llG+KTRGENsw1c7+pm0/l3wPYAlH02ewbyRjFf
|
||||
OKPfyyBtBkoD5rG3IbLyPxsbd3wWwyUzSYq02qRJq43XqyMZhRnNlYhEnNu/Gr5H
|
||||
sN1f13zqkKoRxxbIjyh4RDYlAv4Sehk27z2Q3gBe9bI5xKkoQ/VfF2w=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -49,6 +49,7 @@ from .fixtures_rsa import (
|
|||
RSA_KEY_599,
|
||||
RSA_KEY_745,
|
||||
RSA_KEY_768,
|
||||
RSA_KEY_CORRUPTED,
|
||||
)
|
||||
from .utils import (
|
||||
_check_rsa_private_numbers,
|
||||
|
|
@ -729,6 +730,12 @@ class TestRSASignature(object):
|
|||
asym_utils.Prehashed(hashes.SHA1()),
|
||||
)
|
||||
|
||||
def test_corrupted_private_key(self, backend):
|
||||
with pytest.raises(ValueError):
|
||||
serialization.load_pem_private_key(
|
||||
RSA_KEY_CORRUPTED, password=None, backend=backend
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.requires_backend_interface(interface=RSABackend)
|
||||
class TestRSAVerification(object):
|
||||
|
|
|
|||
Loading…
Reference in a new issue