Built-In Properties
The following properties are built-in and are always available on all MavSec projects:
SecureKeyProperty
The SecureKeyProperty is a built-in property that is used to ensure a secure key is correctly stored. This means that the key is not accessible in anyway on a public bus.
Arguments
key_loc (AnyRtlPath): The hardware location of the key.
key_size (int | None): The size of the key in bits
public_bus (AnyRtlPath): The public bus to which the key is connected.
SecureKeyIntegrityProperty
The SecureKeyIntegrityProperty is a built-in property that is used to ensure the integrity of a secure key. This means that the key is not able to be overwritten from the public bus.
Arguments
key_loc (AnyRtlPath): The hardware location of the key.
key_size (int | None): The size of the key in bits
public_bus (AnyRtlPath): The public bus to which the key is connected.
SecureKeyGenProperty
The SecureKeyGenProperty is a built-in property that is used to ensure that a secure key is generated in a secure manner. It ensures that the private key is not leaked except as minimally required by the public key. (In a moder secure key generation system, this doesn’t reveal any actual information about the key)
Arguments
public_key_loc (AnyRtlPath): The hardware location of the public key.
private_key_loc (AnyRtlPath): The hardware location of the private key.
public_bus (AnyRtlPath): The public bus to which the key is connected.
SecureExternalMemoryProperty
Arguments
memory_loc (AnyRtlPath): The hardware location of the memory.
public_bus_input (AnyRtlPath): The public bus to which the memory is connected.
secure_output (AnyRtlPath | None): The place in hardware where the output is ensured to be secure.
SecureInternalStorageProperty
Arguments
storage_loc (AnyRtlPath): The hardware location of the storage.
public_bus (AnyRtlPath): The public bus to which the storage is connected.