Lines Matching defs:hkdf
5488 mbedtls_free(operation->ctx.hkdf.info);
5489 status = psa_mac_abort(&operation->ctx.hkdf.hmac);
5574 static psa_status_t psa_key_derivation_hkdf_read(psa_hkdf_key_derivation_t *hkdf,
5589 if (hkdf->state < HKDF_STATE_KEYED ||
5590 (!hkdf->info_set
5597 hkdf->state = HKDF_STATE_OUTPUT;
5601 uint8_t n = hash_length - hkdf->offset_in_block;
5605 memcpy(output, hkdf->output_block + hkdf->offset_in_block, n);
5608 hkdf->offset_in_block += n;
5617 if (hkdf->block_number == last_block) {
5622 ++hkdf->block_number;
5623 hkdf->offset_in_block = 0;
5625 status = psa_key_derivation_start_hmac(&hkdf->hmac,
5627 hkdf->prk,
5633 if (hkdf->block_number != 1) {
5634 status = psa_mac_update(&hkdf->hmac,
5635 hkdf->output_block,
5641 status = psa_mac_update(&hkdf->hmac,
5642 hkdf->info,
5643 hkdf->info_length);
5647 status = psa_mac_update(&hkdf->hmac,
5648 &hkdf->block_number, 1);
5652 status = psa_mac_sign_finish(&hkdf->hmac,
5653 hkdf->output_block,
5654 sizeof(hkdf->output_block),
6042 status = psa_key_derivation_hkdf_read(&operation->ctx.hkdf, kdf_alg,
6720 static psa_status_t psa_hkdf_input(psa_hkdf_key_derivation_t *hkdf,
6735 if (hkdf->state != HKDF_STATE_INIT) {
6738 status = psa_key_derivation_start_hmac(&hkdf->hmac,
6744 hkdf->state = HKDF_STATE_STARTED;
6752 * the state. It could happen only if the hkdf
6754 if (hkdf->state != HKDF_STATE_INIT) {
6763 memcpy(hkdf->prk, data, data_length);
6769 if (hkdf->state == HKDF_STATE_INIT) {
6775 status = psa_key_derivation_start_hmac(&hkdf->hmac,
6781 hkdf->state = HKDF_STATE_STARTED;
6783 if (hkdf->state != HKDF_STATE_STARTED) {
6786 status = psa_mac_update(&hkdf->hmac,
6791 status = psa_mac_sign_finish(&hkdf->hmac,
6792 hkdf->prk,
6793 sizeof(hkdf->prk),
6800 hkdf->state = HKDF_STATE_KEYED;
6801 hkdf->block_number = 0;
6805 memcpy(hkdf->output_block, hkdf->prk, PSA_HASH_LENGTH(hash_alg));
6806 hkdf->offset_in_block = 0;
6812 hkdf->offset_in_block = PSA_HASH_LENGTH(hash_alg);
6824 hkdf->state == HKDF_STATE_INIT) {
6828 if (hkdf->state == HKDF_STATE_OUTPUT) {
6831 if (hkdf->info_set) {
6834 hkdf->info_length = data_length;
6836 hkdf->info = mbedtls_calloc(1, data_length);
6837 if (hkdf->info == NULL) {
6840 memcpy(hkdf->info, data, data_length);
6842 hkdf->info_set = 1;
7316 status = psa_hkdf_input(&operation->ctx.hkdf, kdf_alg,