Functions | |
fsl_shw_pco_t * | fsl_shw_get_capabilities (fsl_shw_uco_t *user_ctx) |
fsl_shw_return_t | fsl_shw_register_user (fsl_shw_uco_t *user_ctx) |
fsl_shw_return_t | fsl_shw_deregister_user (fsl_shw_uco_t *user_ctx) |
fsl_shw_return_t | fsl_shw_get_results (fsl_shw_uco_t *user_ctx, uint16_t result_size, fsl_shw_result_t results[], uint16_t *result_count) |
void * | fsl_shw_smalloc (fsl_shw_uco_t *user_ctx, uint32_t size, const uint8_t *UMID, uint32_t permissions) |
fsl_shw_return_t | fsl_shw_sfree (fsl_shw_uco_t *user_ctx, void *address) |
fsl_shw_return_t | fsl_shw_diminish_perms (fsl_shw_uco_t *user_ctx, void *address, uint32_t permissions) |
fsl_shw_return_t | do_scc_encrypt_region (fsl_shw_uco_t *user_ctx, void *partition_base, uint32_t offset_bytes, uint32_t byte_count, uint8_t *black_data, uint32_t *IV, fsl_shw_cypher_mode_t cypher_mode) |
fsl_shw_return_t | do_scc_decrypt_region (fsl_shw_uco_t *user_ctx, void *partition_base, uint32_t offset_bytes, uint32_t byte_count, const uint8_t *black_data, uint32_t *IV, fsl_shw_cypher_mode_t cypher_mode) |
fsl_shw_return_t do_scc_decrypt_region | ( | fsl_shw_uco_t * | user_ctx, | |
void * | partition_base, | |||
uint32_t | offset_bytes, | |||
uint32_t | byte_count, | |||
const uint8_t * | black_data, | |||
uint32_t * | IV, | |||
fsl_shw_cypher_mode_t | cypher_mode | |||
) |
Decrypt a region of secure memory using the hardware secret key.
user_ctx | User context | |
partition_base | Base address of the partition | |
offset_bytes | Offset of data from the partition base | |
byte_count | Length of the data to encrypt | |
black_data | Location to store the encrypted data | |
IV | IV to use for the encryption routine | |
cypher_mode | Cyphering mode to use, specified by type fsl_shw_cypher_mode_t |
user_ctx | User context of the partition owner (NULL in kernel) | |
partition_base | Base address (physical) of the partition | |
offset_bytes | Offset from base address that the decrypted data shall be placed | |
byte_count | Length of the message (bytes) | |
black_data | Pointer to where the encrypted data is stored | |
IV | IV to use for decryption | |
cypher_mode | Cyphering mode to use, specified by type fsl_shw_cypher_mode_t |
user_ctx | User context of the partition owner (NULL in kernel) | |
partition_base | Base address (physical) of the partition | |
offset_bytes | Offset from base address that the decrypted data shall be placed | |
byte_count | Length of the message (bytes) | |
black_data | Pointer to where the encrypted data is stored | |
owner_id |
fsl_shw_return_t do_scc_encrypt_region | ( | fsl_shw_uco_t * | user_ctx, | |
void * | partition_base, | |||
uint32_t | offset_bytes, | |||
uint32_t | byte_count, | |||
uint8_t * | black_data, | |||
uint32_t * | IV, | |||
fsl_shw_cypher_mode_t | cypher_mode | |||
) |
Encrypt a region of secure memory using the hardware secret key.
user_ctx | User context | |
partition_base | Base address of the partition | |
offset_bytes | Offset of data from the partition base | |
byte_count | Length of the data to encrypt | |
black_data | Location to store the encrypted data | |
IV | IV to use for the encryption routine | |
cypher_mode | Cyphering mode to use, specified by type fsl_shw_cypher_mode_t |
user_ctx | User context of the partition owner (NULL in kernel) | |
partition_base | Base address (physical) of the partition | |
offset_bytes | Offset from base address of the data to be encrypted | |
byte_count | Length of the message (bytes) | |
black_data | Pointer to where the encrypted data is stored | |
IV | IV to use for encryption | |
cypher_mode | Cyphering mode to use, specified by type fsl_shw_cypher_mode_t |
user_ctx | User context | |
partition_base | Base address of the partition | |
offset_bytes | Offset of data from the partition base | |
byte_count | Length of the data to encrypt | |
black_data | Location to store the encrypted data | |
IV | IV to use for the encryption routine | |
cypher_mode | Cyphering mode to use, specified by type fsl_shw_cypher_mode_t |
user_ctx | User context of the partition owner (NULL in kernel) | |
partition_base | Base address (physical) of the partition | |
offset_bytes | Offset from base address of the data to be encrypted | |
byte_count | Length of the message (bytes) | |
black_data | Pointer to where the encrypted data is stored | |
IV | IV to use for encryption | |
cypher_mode | Cyphering mode to use, specified by type fsl_shw_cypher_mode_t |
fsl_shw_return_t fsl_shw_deregister_user | ( | fsl_shw_uco_t * | user_ctx | ) |
Destroy the association between the user and the provider of the API.
user_ctx | The user context which is no longer needed. |
user_ctx | The user context which is no longer needed. |
fsl_shw_return_t fsl_shw_diminish_perms | ( | fsl_shw_uco_t * | user_ctx, | |
void * | address, | |||
uint32_t | permissions | |||
) |
Diminish the permissions of a block of secure memory. Note that permissions can only be revoked.
user_ctx | User context | |
address | Base address of the secure memory to work with | |
permissions | Permissions to initialize the partition with. Can be made by ORing flags from the fsl_shw_permission_t. |
fsl_shw_pco_t* fsl_shw_get_capabilities | ( | fsl_shw_uco_t * | user_ctx | ) |
Determine the hardware security capabilities of this platform.
Though a user context object is passed into this function, it will always act in a non-blocking manner.
user_ctx | The user context which will be used for the query. |
fsl_shw_return_t fsl_shw_get_results | ( | fsl_shw_uco_t * | user_ctx, | |
uint16_t | result_size, | |||
fsl_shw_result_t | results[], | |||
uint16_t * | result_count | |||
) |
Retrieve results from earlier operations.
user_ctx | The user's context. | |
result_size | The number of array elements of results. | |
[in,out] | results | Pointer to first of the (array of) locations to store results. |
[out] | result_count | Pointer to store the number of results which were returned. |
fsl_shw_return_t fsl_shw_register_user | ( | fsl_shw_uco_t * | user_ctx | ) |
Create an association between the user and the provider of the API.
user_ctx | The user context which will be used for this association. |
user_ctx | The user context which will be used for this association. |
fsl_shw_return_t fsl_shw_sfree | ( | fsl_shw_uco_t * | user_ctx, | |
void * | address | |||
) |
Free a block of secure memory that was allocated with fsl_shw_smalloc
user_ctx | User context | |
address | Address of the block of secure memory to be released. |
void* fsl_shw_smalloc | ( | fsl_shw_uco_t * | user_ctx, | |
uint32_t | size, | |||
const uint8_t * | UMID, | |||
uint32_t | permissions | |||
) |
Allocate a block of secure memory
user_ctx | User context | |
size | Memory size (octets). Note: currently only supports only single-partition sized blocks. | |
UMID | User Mode ID to use when registering the partition. | |
permissions | Permissions to initialize the partition with. Can be made by ORing flags from the fsl_shw_permission_t. |
© Freescale Semiconductor, Inc., 2007.
All rights reserved. Freescale Confidential Proprietary NDA Required |
![]() |