version 1.19, 2023/03/06 14:32:06 |
version 1.20, 2023/04/14 15:27:13 |
|
|
#include <openssl/x509v3.h> |
#include <openssl/x509v3.h> |
|
|
static int save_certs(char *signerfile, STACK_OF(X509) *signers); |
static int save_certs(char *signerfile, STACK_OF(X509) *signers); |
static int smime_cb(int ok, X509_STORE_CTX *ctx); |
|
|
|
#define SMIME_OP 0x10 |
#define SMIME_OP 0x10 |
#define SMIME_IP 0x20 |
#define SMIME_IP 0x20 |
|
|
if ((store = setup_verify(bio_err, cfg.CAfile, |
if ((store = setup_verify(bio_err, cfg.CAfile, |
cfg.CApath)) == NULL) |
cfg.CApath)) == NULL) |
goto end; |
goto end; |
X509_STORE_set_verify_cb(store, smime_cb); |
|
if (cfg.vpm != NULL) { |
if (cfg.vpm != NULL) { |
if (!X509_STORE_set1_param(store, cfg.vpm)) |
if (!X509_STORE_set1_param(store, cfg.vpm)) |
goto end; |
goto end; |
|
|
BIO_free(tmp); |
BIO_free(tmp); |
|
|
return 1; |
return 1; |
} |
|
|
|
/* Minimal callback just to output policy info (if any) */ |
|
static int |
|
smime_cb(int ok, X509_STORE_CTX *ctx) |
|
{ |
|
int error; |
|
|
|
error = X509_STORE_CTX_get_error(ctx); |
|
|
|
if ((error != X509_V_ERR_NO_EXPLICIT_POLICY) && |
|
((error != X509_V_OK) || (ok != 2))) |
|
return ok; |
|
|
|
policies_print(NULL, ctx); |
|
|
|
return ok; |
|
} |
} |