Lines Matching refs:kctx
146 struct kmac_data_st *kctx = vmacctx; in kmac_free() local
148 if (kctx != NULL) { in kmac_free()
149 EVP_MD_CTX_free(kctx->ctx); in kmac_free()
150 ossl_prov_digest_reset(&kctx->digest); in kmac_free()
151 OPENSSL_cleanse(kctx->key, kctx->key_len); in kmac_free()
152 OPENSSL_cleanse(kctx->custom, kctx->custom_len); in kmac_free()
153 OPENSSL_free(kctx); in kmac_free()
164 struct kmac_data_st *kctx; in kmac_new() local
169 if ((kctx = OPENSSL_zalloc(sizeof(*kctx))) == NULL in kmac_new()
170 || (kctx->ctx = EVP_MD_CTX_new()) == NULL) { in kmac_new()
171 kmac_free(kctx); in kmac_new()
174 kctx->provctx = provctx; in kmac_new()
175 return kctx; in kmac_new()
180 struct kmac_data_st *kctx = kmac_new(provctx); in kmac_fetch_new() local
182 if (kctx == NULL) in kmac_fetch_new()
184 if (!ossl_prov_digest_load_from_params(&kctx->digest, params, in kmac_fetch_new()
186 kmac_free(kctx); in kmac_fetch_new()
190 kctx->out_len = EVP_MD_get_size(ossl_prov_digest_md(&kctx->digest)); in kmac_fetch_new()
191 return kctx; in kmac_fetch_new()
242 static int kmac_setkey(struct kmac_data_st *kctx, const unsigned char *key, in kmac_setkey() argument
245 const EVP_MD *digest = ossl_prov_digest_md(&kctx->digest); in kmac_setkey()
256 if (!kmac_bytepad_encode_key(kctx->key, sizeof(kctx->key), &kctx->key_len, in kmac_setkey()
270 struct kmac_data_st *kctx = vmacctx; in kmac_init() local
271 EVP_MD_CTX *ctx = kctx->ctx; in kmac_init()
276 if (!ossl_prov_is_running() || !kmac_set_ctx_params(kctx, params)) in kmac_init()
280 if (!kmac_setkey(kctx, key, keylen)) in kmac_init()
282 } else if (kctx->key_len == 0) { in kmac_init()
287 if (!EVP_DigestInit_ex(kctx->ctx, ossl_prov_digest_md(&kctx->digest), in kmac_init()
291 t = EVP_MD_get_block_size(ossl_prov_digest_md(&kctx->digest)); in kmac_init()
299 if (kctx->custom_len == 0) { in kmac_init()
304 (void)kmac_set_ctx_params(kctx, cparams); in kmac_init()
308 kctx->custom, kctx->custom_len, block_len)) { in kmac_init()
318 kctx->custom, kctx->custom_len, block_len) in kmac_init()
320 && EVP_DigestUpdate(ctx, kctx->key, kctx->key_len); in kmac_init()
328 struct kmac_data_st *kctx = vmacctx; in kmac_update() local
330 return EVP_DigestUpdate(kctx->ctx, data, datalen); in kmac_update()
336 struct kmac_data_st *kctx = vmacctx; in kmac_final() local
337 EVP_MD_CTX *ctx = kctx->ctx; in kmac_final()
346 lbits = (kctx->xof_mode ? 0 : (kctx->out_len * 8)); in kmac_final()
350 && EVP_DigestFinalXOF(ctx, out, kctx->out_len); in kmac_final()
351 *outl = kctx->out_len; in kmac_final()
368 struct kmac_data_st *kctx = vmacctx; in kmac_get_ctx_params() local
373 && !OSSL_PARAM_set_size_t(p, kctx->out_len)) in kmac_get_ctx_params()
377 sz = EVP_MD_block_size(ossl_prov_digest_md(&kctx->digest)); in kmac_get_ctx_params()
409 struct kmac_data_st *kctx = vmacctx; in kmac_set_ctx_params() local
416 && !OSSL_PARAM_get_int(p, &kctx->xof_mode)) in kmac_set_ctx_params()
427 kctx->out_len = sz; in kmac_set_ctx_params()
430 && !kmac_setkey(kctx, p->data, p->data_size)) in kmac_set_ctx_params()
438 if (!encode_string(kctx->custom, sizeof(kctx->custom), &kctx->custom_len, in kmac_set_ctx_params()