diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/cmp.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/apps/cmp.c b/apps/cmp.c index 223a6ae3d1..464b347358 100644 --- a/apps/cmp.c +++ b/apps/cmp.c @@ -673,6 +673,14 @@ static X509_REQ *load_csr_autofmt(const char *infile, const char *desc) ERR_print_errors(bio_err); BIO_printf(bio_err, "error: unable to load %s from file '%s'\n", desc, infile); + } else { + EVP_PKEY *pkey = X509_REQ_get0_pubkey(csr); + int ret = do_X509_REQ_verify(csr, pkey, NULL /* vfyopts */); + + if (pkey == NULL || ret < 0) + CMP_warn("error while verifying CSR self-signature"); + else if (ret == 0) + CMP_warn("CSR self-signature does not match the contents"); } return csr; } |