NVIDIA DRIVE OS Linux API Reference Release

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ote_nvcrypto.h File Reference

Detailed Description

NVIDIA Trusted Little Kernel Interface: NVIDIA Cryptography

Description: Declares the cryptography APIs in the TLK.

Definition in file ote_nvcrypto.h.

Go to the source code of this file.


#define CRYPTO_SERVICE_GET_VUDU_PLATFORM_KEY   7 /* Deprecated */
#define KEYSLOT_TYPE_AES   0
#define KEYSLOT_TYPE_RSA   1
#define MAX_HWRANDOM_SIZE   4096


enum  {
enum  keystore_lookup_type {
enum  keybox_attr_type { KEYBOX_ATTR_SIZE = 1 }


te_error_t ote_nvcrypto_init (void)
 Initializes and opens an nvcrypto service session. More...
te_error_t ote_nvcrypto_deinit (void)
 Closes an nvcrypto service session. More...
te_error_t ote_nvcrypto_get_keybox (uint32_t keybox_lookup_index, keystore_lookup_type lookup_type, void *buf, uint32_t *len)
 Gets the key box provisioned in the EKS partition. More...
te_error_t ote_nvcrypto_get_keybox_size (uint32_t keybox_lookup_index, keystore_lookup_type lookup_type, uint32_t *len)
 Gets the size of the key box provisioned in the EKS partition. More...
te_error_t ote_nvcrypto_get_storage_key (uint8_t *key, uint32_t key_size)
 Gets the storage key. More...
te_error_t ote_nvcrypto_get_rollback_key (uint8_t *key, uint32_t key_size)
 Gets the rollback key. More...
te_error_t ote_nvcrypto_get_ro_trust_key (uint8_t *key, uint32_t key_size)
 Gets the key derived from the root of trust. More...
te_error_t ote_nvcrypto_get_random (uint8_t *buf, uint32_t buf_len)
 Gets SE HW random number generated data. More...
te_error_t ote_nvcrypto_get_wv_rsa_sig_key (uint8_t *key, uint32_t *key_size)
 Gets the wv rsa sig key. More...
te_error_t ote_nvcrypto_get_gs_key (uint8_t *key, uint32_t *key_size)
 Gets the vrr auth key. More...
te_error_t ote_nvcrypto_get_key (uint8_t *key, uint32_t key_size, uint32_t key_type)
 Gets the storage/rollback key. More...
te_error_t ote_nvcrypto_derive_key (const uint8_t *src_buffer, const uint32_t src_buf_len, uint8_t *dest)
 Generates a unique encryption key by performing crypto operations on the src_buffer a predefined initial vector IV and a secure storage key. More...
te_error_t ote_nvcrypto_get_widevine_key (uint8_t *key, uint32_t key_size)
 Gets the Widevine Device Unique key. More...
te_error_t ote_nvcrypto_update_se_keyslot (uint32_t KeySlotType, uint32_t KeySlotIdx, uint32_t access_control, const uint32_t *pData, uint32_t pData_len)
 Updates the HW security engine AES/RSA keyslots with an input Key. More...
te_error_t ote_nvcrypto_rsa_raw_private_encrypt (uint8_t *pri_key, uint32_t pri_key_len, uint32_t *data_in, uint32_t data_in_len, uint8_t *signedData, uint32_t signed_data_len)
 Interface sign a data blob with a RSA key with no data padding. More...
te_error_t ote_nvcrypto_do_crypt_functions (uint32_t algo, uint32_t mode, uint8_t *inbuf, uint32_t inbuf_len, uint8_t *iv, uint32_t iv_len, uint8_t *key, uint32_t key_len, uint8_t *outbuf, uint32_t *outbuf_len)
 Interface for crypto operations such as AES, SHA, and RSA using openssl library. More...
te_error_t ote_nvcrypto_get_eks2_mac_key (uint8_t *key, uint32_t *key_size)
 Gets the EKS2 mac key, which is used to validate integrity of the EKS2 blob coming from the non-secure world. More...
te_error_t ote_nvcrypto_install_eks2_keys (const uint8_t *buf, uint32_t buf_len, uint32_t num_keys)
 Installs EKS2 keys in NVCrypto key slots. More...