/*
- * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2018-2020 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
OSSL_PARAM params[3];
size_t params_n = 0;
char *ciphname = (char *)OBJ_nid2sn(EVP_CIPHER_nid(p2));
+
#ifndef OPENSSL_NO_ENGINE
- char *engineid = (char *)ENGINE_get_id(ctx->engine);
+ if (ctx->engine != NULL) {
+ char *engid = (char *)ENGINE_get_id(ctx->engine);
- params[params_n++] =
- OSSL_PARAM_construct_utf8_string("engine", engineid, 0);
+ params[params_n++] =
+ OSSL_PARAM_construct_utf8_string("engine", engid, 0);
+ }
#endif
params[params_n++] =
OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_CIPHER,
size_t params_n = 0;
char *mdname =
(char *)OBJ_nid2sn(EVP_MD_nid(hctx->raw_data.md));
+
#ifndef OPENSSL_NO_ENGINE
- char *engineid = ctx->engine == NULL
- ? NULL : (char *)ENGINE_get_id(ctx->engine);
+ if (ctx->engine != NULL) {
+ char *engid = (char *)ENGINE_get_id(ctx->engine);
- if (engineid != NULL)
params[params_n++] =
- OSSL_PARAM_construct_utf8_string("engine", engineid, 0);
+ OSSL_PARAM_construct_utf8_string("engine", engid, 0);
+ }
#endif
params[params_n++] =
OSSL_PARAM_construct_utf8_string(OSSL_MAC_PARAM_DIGEST,
}
static int pkey_mac_ctrl_str(EVP_PKEY_CTX *ctx,
- const char *type, const char *value)
+ const char *type, const char *value)
{
MAC_PKEY_CTX *hctx = EVP_PKEY_CTX_get_data(ctx);
- const EVP_MAC *mac = EVP_MAC_CTX_mac(hctx->ctx);
+ const EVP_MAC *mac;
OSSL_PARAM params[2];
int ok = 0;
+ if (hctx == NULL) {
+ EVPerr(0, EVP_R_NULL_MAC_PKEY_CTX);
+ return 0;
+ }
+ if (hctx->ctx == NULL) {
+ /* This actually means the fetch failed during the init call */
+ EVPerr(0, EVP_R_FETCH_FAILED);
+ return 0;
+ }
+ mac = EVP_MAC_CTX_mac(hctx->ctx);
+
/*
* Translation of some control names that are equivalent to a single
* parameter name.
return 0;
params[1] = OSSL_PARAM_construct_end();
- if (hctx->ctx == NULL) {
- /* This actually means the fetch failed during the init call */
- EVPerr(0, EVP_R_FETCH_FAILED);
- return 0;
- }
-
ok = EVP_MAC_CTX_set_params(hctx->ctx, params);
OPENSSL_free(params[0].data);
return ok;