Latest update.
This commit is contained in:
+13
-5
@@ -19,6 +19,11 @@
|
||||
#include <openssl/cmp.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
DEFINE_STACK_OF(OSSL_CRMF_MSG)
|
||||
DEFINE_STACK_OF(X509)
|
||||
DEFINE_STACK_OF(OSSL_CMP_ITAV)
|
||||
DEFINE_STACK_OF(OSSL_CMP_CERTSTATUS)
|
||||
|
||||
/* the context for the generic CMP server */
|
||||
struct ossl_cmp_srv_ctx_st
|
||||
{
|
||||
@@ -216,7 +221,8 @@ static OSSL_CMP_MSG *process_cert_request(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||
if (si == NULL)
|
||||
goto err;
|
||||
/* set OSSL_CMP_OPT_IMPLICIT_CONFIRM if and only if transaction ends */
|
||||
if (!OSSL_CMP_CTX_set_option(srv_ctx->ctx, OSSL_CMP_OPT_IMPLICIT_CONFIRM,
|
||||
if (!OSSL_CMP_CTX_set_option(srv_ctx->ctx,
|
||||
OSSL_CMP_OPT_IMPLICIT_CONFIRM,
|
||||
ossl_cmp_hdr_has_implicitConfirm(hdr)
|
||||
&& srv_ctx->grantImplicitConfirm
|
||||
/* do not set if polling starts: */
|
||||
@@ -484,9 +490,9 @@ OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||
tid);
|
||||
OPENSSL_free(tid);
|
||||
}
|
||||
/* start of a new transaction, set transactionID and senderNonce */
|
||||
if (!OSSL_CMP_CTX_set1_transactionID(ctx, hdr->transactionID)
|
||||
|| !ossl_cmp_ctx_set1_recipNonce(ctx, hdr->senderNonce))
|
||||
/* start of a new transaction, reset transactionID and senderNonce */
|
||||
if (!OSSL_CMP_CTX_set1_transactionID(ctx, NULL)
|
||||
|| !OSSL_CMP_CTX_set1_senderNonce(ctx, NULL))
|
||||
goto err;
|
||||
break;
|
||||
default:
|
||||
@@ -589,7 +595,9 @@ OSSL_CMP_MSG *OSSL_CMP_SRV_process_request(OSSL_CMP_SRV_CTX *srv_ctx,
|
||||
case OSSL_CMP_PKIBODY_GENP:
|
||||
case OSSL_CMP_PKIBODY_ERROR:
|
||||
/* TODO possibly support further terminating response message types */
|
||||
(void)OSSL_CMP_CTX_set1_transactionID(ctx, NULL); /* ignore any error */
|
||||
/* prepare for next transaction, ignoring any errors here: */
|
||||
(void)OSSL_CMP_CTX_set1_transactionID(ctx, NULL);
|
||||
(void)OSSL_CMP_CTX_set1_senderNonce(ctx, NULL);
|
||||
|
||||
default: /* not closing transaction in other cases */
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user