Entity: keymgr_sideload_key_ctrl

Diagram

clk_i rst_ni init_i keymgr_sideload_clr_e clr_key_i wipe_key_i [Shares-1:0][RandWidth-1:0] entropy_i keymgr_key_dest_e dest_sel_i keymgr_gen_out_e key_sel_i data_en_i data_valid_i hw_key_req_t key_i [Shares-1:0][kmac_pkg::AppDigestW-1:0] data_i prng_en_o hw_key_req_t aes_key_o hw_key_req_t kmac_key_o otbn_key_req_t otbn_key_o

Description

Copyright lowRISC contributors. Licensed under the Apache License, Version 2.0, see LICENSE for details. SPDX-License-Identifier: Apache-2.0

Manage all sideload keys

Ports

Port name Direction Type Description
clk_i input
rst_ni input
init_i input
clr_key_i input keymgr_sideload_clr_e clear key just deletes the key
wipe_key_i input wipe key deletes and renders sideloads useless until reboot
entropy_i input [Shares-1:0][RandWidth-1:0]
dest_sel_i input keymgr_key_dest_e
key_sel_i input keymgr_gen_out_e
data_en_i input
data_valid_i input
key_i input hw_key_req_t
data_i input [Shares-1:0][kmac_pkg::AppDigestW-1:0]
prng_en_o output
aes_key_o output hw_key_req_t
kmac_key_o output hw_key_req_t
otbn_key_o output otbn_key_req_t

Signals

Name Type Description
state_q keymgr_sideload_e
state_d keymgr_sideload_e
keys_en logic
data_truncated logic [Shares-1:0][KeyWidth-1:0]
clr_all_keys logic clear all keys when selected by software, or when wipe command is received
aes_clr logic
kmac_clr logic
otbn_clr logic
clr logic
aes_sel logic
kmac_sel logic
otbn_sel logic
kmac_sideload_key hw_key_req_t

Types

Name Type Description
keymgr_sideload_e enum logic [2:0] {
StSideloadReset,
StSideloadIdle,
StSideloadWipe,
StSideloadStop }
Enumeration for working state

Processes

Type: always_ff

Type: always_comb

Instantiations