mirror of
https://github.com/certbot/certbot.git
synced 2026-07-30 16:14:44 +02: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,
|
csr = jose.Field("csr", encoder=jose.encode_csr,
|
||||||
decoder=jose.decode_csr)
|
decoder=jose.decode_csr)
|
||||||
signature = jose.Field("signature")
|
signature = jose.Field("signature", decoder=other.Signature.from_json)
|
||||||
|
|
||||||
@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}
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls, key, sig_nonce=None, **kwargs):
|
def create(cls, key, sig_nonce=None, **kwargs):
|
||||||
|
|||||||
@@ -343,13 +343,6 @@ class CertificateRequestTest(unittest.TestCase):
|
|||||||
from letsencrypt.acme.messages import CertificateRequest
|
from letsencrypt.acme.messages import CertificateRequest
|
||||||
self.assertEqual(self.msg, CertificateRequest.from_json(self.jmsg_from))
|
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):
|
class DeferTest(unittest.TestCase):
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user