mirror of
https://github.com/certbot/certbot.git
synced 2026-01-23 07:20:55 +03:00
Remove signature verification on CertificateRequest deserialization.
This commit is contained in:
@@ -221,21 +221,7 @@ class CertificateRequest(Message):
|
||||
|
||||
csr = jose.Field("csr", encoder=jose.encode_csr,
|
||||
decoder=jose.decode_csr)
|
||||
signature = jose.Field("signature")
|
||||
|
||||
@classmethod
|
||||
def fields_from_json(cls, jobj):
|
||||
cls._check_required(jobj)
|
||||
|
||||
sig = other.Signature.from_json(
|
||||
jobj[cls._fields['signature'].json_name])
|
||||
if not sig.verify(json_util.decode_b64jose(jobj["csr"])):
|
||||
raise jose_errors.DeserializationError(
|
||||
'Signature could not be verified')
|
||||
# verify signature before decoding principle!
|
||||
csr = jose.decode_csr(jobj[cls._fields['csr'].json_name])
|
||||
|
||||
return {'signature': sig, 'csr': csr}
|
||||
signature = jose.Field("signature", decoder=other.Signature.from_json)
|
||||
|
||||
@classmethod
|
||||
def create(cls, key, sig_nonce=None, **kwargs):
|
||||
|
||||
@@ -343,13 +343,6 @@ class CertificateRequestTest(unittest.TestCase):
|
||||
from letsencrypt.acme.messages import CertificateRequest
|
||||
self.assertEqual(self.msg, CertificateRequest.from_json(self.jmsg_from))
|
||||
|
||||
def test_from_json_wrong_signature_raises_error(self):
|
||||
from letsencrypt.acme.messages import CertificateRequest
|
||||
self.jmsg_from['csr'] = jose.b64encode(CSR2.as_der())
|
||||
self.assertRaises(
|
||||
jose_errors.DeserializationError, CertificateRequest.from_json,
|
||||
self.jmsg_from)
|
||||
|
||||
|
||||
class DeferTest(unittest.TestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user