|
@@ -30,10 +30,16 @@ static void *aria_gcm_newctx(void *provctx, size_t keybits)
|
|
|
static void *aria_gcm_dupctx(void *provctx)
|
|
|
{
|
|
|
PROV_ARIA_GCM_CTX *ctx = provctx;
|
|
|
+ PROV_ARIA_GCM_CTX *dctx = NULL;
|
|
|
|
|
|
if (ctx == NULL)
|
|
|
return NULL;
|
|
|
- return OPENSSL_memdup(ctx, sizeof(*ctx));
|
|
|
+
|
|
|
+ dctx = OPENSSL_memdup(ctx, sizeof(*ctx));
|
|
|
+ if (dctx != NULL && dctx->base.gcm.key != NULL)
|
|
|
+ dctx->base.gcm.key = &dctx->ks.ks;
|
|
|
+
|
|
|
+ return dctx;
|
|
|
}
|
|
|
|
|
|
static OSSL_FUNC_cipher_freectx_fn aria_gcm_freectx;
|