![]() |
![]() |
The AESCBC driver encrypts messages of any practical length that have a length evenly divisible by the block size. Unlike ECB, it guarantees confidentiality of the entire message.
AESCBC.aescbcImplementation = 'AESCBCXXF3'; | // AESCBC Implementation |
inst.interruptPriority = '15'; | // Interrupt Priority |
AESCBC Implementation
[AESCBC.aescbcImplementation = 'AESCBCXXF3']
|
Displays AESCBC delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'AESCBCXXF3' | |
Interrupt Priority
[inst.interruptPriority = '15']
|
This configuration allows you to configure the hardware interrupt priority.
Valid options include the following:
'15' | 15 - Lowest Priority | |
'14' | | |
'13' | | |
'12' | | |
'11' | | |
'10' | | |
'9' | | |
'8' | | |
'7' | | |
'6' | | |
'5' | | |
'4' | | |
'3' | | |
'2' | | |
'1' | 1 - Highest Priority |
The AESCCM driver combines CBC-MAC with an AES block cipher in CTR mode of operation. This combination of block cipher modes enables CCM to encrypt messages of any length and not only multiples of the block cipher block size.
AESCCM.aesccmImplementation = 'AESCCMXXF3'; | // AESCCM Implementation |
inst.interruptPriority = '15'; | // Interrupt Priority |
AESCCM Implementation
[AESCCM.aesccmImplementation = 'AESCCMXXF3']
|
Displays AESCCM delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'AESCCMXXF3' | |
Interrupt Priority
[inst.interruptPriority = '15']
|
This configuration allows you to configure the hardware interrupt priority.
Valid options include the following:
'15' | 15 - Lowest Priority | |
'14' | | |
'13' | | |
'12' | | |
'11' | | |
'10' | | |
'9' | | |
'8' | | |
'7' | | |
'6' | | |
'5' | | |
'4' | | |
'3' | | |
'2' | | |
'1' | 1 - Highest Priority |
The AESCMAC driver generates or verifies a message authentication code using AES in CMAC or CBC-MAC mode.
AESCMAC.aescmacImplementation = 'AESCMACXXF3'; | // AESCMAC Implementation |
inst.interruptPriority = '15'; | // Interrupt Priority |
AESCMAC Implementation
[AESCMAC.aescmacImplementation = 'AESCMACXXF3']
|
Displays AESCMAC delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'AESCMACXXF3' | |
Interrupt Priority
[inst.interruptPriority = '15']
|
This configuration allows you to configure the hardware interrupt priority.
Valid options include the following:
'15' | 15 - Lowest Priority | |
'14' | | |
'13' | | |
'12' | | |
'11' | | |
'10' | | |
'9' | | |
'8' | | |
'7' | | |
'6' | | |
'5' | | |
'4' | | |
'3' | | |
'2' | | |
'1' | 1 - Highest Priority |
The AESCTR driver encrypts messages of any practical length. Unlike AESECB, it guarantees confidentiality of the entire message when the message is larger than one block.
AESCTR.aesctrImplementation = 'AESCTRXXF3'; | // AESCTR Implementation |
inst.interruptPriority = '15'; | // Interrupt Priority |
AESCTR Implementation
[AESCTR.aesctrImplementation = 'AESCTRXXF3']
|
Displays AESCTR delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'AESCTRXXF3' | |
Interrupt Priority
[inst.interruptPriority = '15']
|
This configuration allows you to configure the hardware interrupt priority.
Valid options include the following:
'15' | 15 - Lowest Priority | |
'14' | | |
'13' | | |
'12' | | |
'11' | | |
'10' | | |
'9' | | |
'8' | | |
'7' | | |
'6' | | |
'5' | | |
'4' | | |
'3' | | |
'2' | | |
'1' | 1 - Highest Priority |
The AESECB driver encrypts or decrypts one or multiple blocks of plain-text or cipher-text by directly encrypting or decrypting input blocks using AES.
AESECB.aesecbImplementation = 'AESECBXXF3'; | // AESECB Implementation |
inst.interruptPriority = '15'; | // Interrupt Priority |
AESECB Implementation
[AESECB.aesecbImplementation = 'AESECBXXF3']
|
Displays AESECB delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'AESECBXXF3' | |
Interrupt Priority
[inst.interruptPriority = '15']
|
This configuration allows you to configure the hardware interrupt priority.
Valid options include the following:
'15' | 15 - Lowest Priority | |
'14' | | |
'13' | | |
'12' | | |
'11' | | |
'10' | | |
'9' | | |
'8' | | |
'7' | | |
'6' | | |
'5' | | |
'4' | | |
'3' | | |
'2' | | |
'1' | 1 - Highest Priority |
The AESGCM driver combines GHASH with the AES block cipher in CTR mode of operation. This combination of block cipher mode and GHASH based MAC enables GCM to encrypt messages of any length and not only multiples of the block cipher block size.
AESGCM.aesgcmImplementation = 'AESGCMLPF3'; | // AESGCM Implementation |
inst.interruptPriority = '15'; | // Interrupt Priority |
AESGCM Implementation
[AESGCM.aesgcmImplementation = 'AESGCMLPF3']
|
Displays AESGCM delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'AESGCMLPF3' | |
Interrupt Priority
[inst.interruptPriority = '15']
|
This configuration allows you to configure the hardware interrupt priority.
Valid options include the following:
'15' | 15 - Lowest Priority | |
'14' | | |
'13' | | |
'12' | | |
'11' | | |
'10' | | |
'9' | | |
'8' | | |
'7' | | |
'6' | | |
'5' | | |
'4' | | |
'3' | | |
'2' | | |
'1' | 1 - Highest Priority |
The PSA Crypto API provides APIs to import, export, copy, and destroy KeyStore keys which are referenced using a key identifier. These keys are subject to usage restrictions as defined by the key attributes assigned during key import. Depending on these restrictions, the keys can be used via their key identifiers for future PSA Crypto operations.
CryptoKeyKeyStore_PSA.totalSlotCount = 59; | // Total Key Slots |
CryptoKeyKeyStore_PSA.assetStoreSlotCount = 53; | // Asset Store Key Slots |
CryptoKeyKeyStore_PSA.persistentKeyCacheSlots = 1; | // Persistent Key Cache Slots |
CryptoKeyKeyStore_PSA.volatileSlotCount = 5; | // Volatile Key Slots |
CryptoKeyKeyStore_PSA.volatileMemoryPoolSize = 2760; | // Volatile Key Material Storage Space |
CryptoKeyKeyStore_PSA.ramUsage = 6123; | // KeyStore RAM Usage (bytes) |
CryptoKeyKeyStore_PSA.persistentNumKeys = 45; | // Number of Persistent Keys |
CryptoKeyKeyStore_PSA.useSWCrypto = true; | // Use MbedTLS SW Crypto |
CryptoKeyKeyStore_PSA.aesConfig = ; | // Volatile AES Key Configuration |
CryptoKeyKeyStore_PSA.ecc224PlaintextNumVolatile = 0; | // ECC-224 Plaintext Keys |
CryptoKeyKeyStore_PSA.ecc256PlaintextNumVolatile = 0; | // ECC-256 Plaintext Keys |
CryptoKeyKeyStore_PSA.ecc384PlaintextNumVolatile = 0; | // ECC-384 Plaintext Keys |
CryptoKeyKeyStore_PSA.ecc512PlaintextNumVolatile = 0; | // ECC-512 Plaintext Keys |
CryptoKeyKeyStore_PSA.ecc521PlaintextNumVolatile = 0; | // ECC-521 Plaintext Keys |
CryptoKeyKeyStore_PSA.ecc224EncryptedNumVolatile = 0; | // ECC-224 Encrypted Keys |
CryptoKeyKeyStore_PSA.ecc256EncryptedNumVolatile = 0; | // ECC-256 Encrypted Keys |
CryptoKeyKeyStore_PSA.ecc384EncryptedNumVolatile = 0; | // ECC-384 Encrypted Keys |
CryptoKeyKeyStore_PSA.ecc512EncryptedNumVolatile = 0; | // ECC-512 Encrypted Keys |
CryptoKeyKeyStore_PSA.ecc521EncryptedNumVolatile = 0; | // ECC-521 Encrypted Keys |
Total Key Slots
[CryptoKeyKeyStore_PSA.totalSlotCount = 59]
|
Asset Store Key Slots
[CryptoKeyKeyStore_PSA.assetStoreSlotCount = 53]
|
This value changes the number of HSM Asset Store keys that can be referenced by KeyStore at once. The slot count should be reduced per the needs of the application, to save RAM usage by KeyStore slots.
Persistent Key Cache Slots
[CryptoKeyKeyStore_PSA.persistentKeyCacheSlots = 1]
|
Volatile Key Slots
[CryptoKeyKeyStore_PSA.volatileSlotCount = 5]
|
Volatile Key Material Storage Space
[CryptoKeyKeyStore_PSA.volatileMemoryPoolSize = 2760]
|
KeyStore RAM Usage (bytes)
[CryptoKeyKeyStore_PSA.ramUsage = 6123]
|
This is the amount of RAM space that will be necessary to hold the specified number of keys of the given sizes & types, as well as the space required for caching 1 persistent keys and storing all key metadata.
Number of Persistent Keys
[CryptoKeyKeyStore_PSA.persistentNumKeys = 45]
|
This value should be set based on the flash size available for KeyStore, as determined by the Memory Map SysConfig module. 45 keys require at least 16KB of KeyStore flash space. Another known valid configuration is 22 keys for 8KB of flash space.
Use MbedTLS SW Crypto
[CryptoKeyKeyStore_PSA.useSWCrypto = true]
|
Volatile AES Key Configuration
[CryptoKeyKeyStore_PSA.aesConfig = ]
|
ECC-224 Plaintext Keys
[CryptoKeyKeyStore_PSA.ecc224PlaintextNumVolatile = 0]
|
ECC-256 Plaintext Keys
[CryptoKeyKeyStore_PSA.ecc256PlaintextNumVolatile = 0]
|
ECC-384 Plaintext Keys
[CryptoKeyKeyStore_PSA.ecc384PlaintextNumVolatile = 0]
|
ECC-512 Plaintext Keys
[CryptoKeyKeyStore_PSA.ecc512PlaintextNumVolatile = 0]
|
ECC-521 Plaintext Keys
[CryptoKeyKeyStore_PSA.ecc521PlaintextNumVolatile = 0]
|
ECC-224 Encrypted Keys
[CryptoKeyKeyStore_PSA.ecc224EncryptedNumVolatile = 0]
|
ECC-256 Encrypted Keys
[CryptoKeyKeyStore_PSA.ecc256EncryptedNumVolatile = 0]
|
ECC-384 Encrypted Keys
[CryptoKeyKeyStore_PSA.ecc384EncryptedNumVolatile = 0]
|
ECC-512 Encrypted Keys
[CryptoKeyKeyStore_PSA.ecc512EncryptedNumVolatile = 0]
|
ECC-521 Encrypted Keys
[CryptoKeyKeyStore_PSA.ecc521EncryptedNumVolatile = 0]
|
The ECDSA driver provides APIs for generating and verifying digital signatures.
ECDSA Implementation
[ECDSA.ecdsaImplementation = 'ECDSAXXF3HSM']
|
Displays ECDSA delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'ECDSAXXF3HSM' | |
The EDDSA driver provides APIs for generating and verifying digital signatures.
EDDSA Implementation
[EDDSA.eddsaImplementation = 'EDDSAXXF3HSM']
|
Displays EDDSA delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'EDDSAXXF3HSM' | |
The RNG driver generates random data of variable lengths from a pool of entropy. The pool of entropy is maintained by the driver using implementation-specific sources of entropy. The output is suitable for applications requiring cryptographically random data such as keying material for private or symmetric keys.
RNG.rngReturnBehavior = 'RNG_RETURN_BEHAVIOR_POLLING'; | // Return Behavior |
inst.$name = 'CONFIG_RNG_{num}'; | // Name |
Return Behavior
[RNG.rngReturnBehavior = 'RNG_RETURN_BEHAVIOR_POLLING']
|
Valid options include the following:
'RNG_RETURN_BEHAVIOR_POLLING' | Polling | |
'RNG_RETURN_BEHAVIOR_BLOCKING' | Blocking |
This name is declared in the generated ti_drivers_config.h file so applications can reference this instance symbolically. Additionally, this name is used to declare an 'extern const' which allows libraries to define symbolic names for required driver configurations without needing to rebuild library source files. The 'const' identifier is declared as the same name with a _CONST suffix. The name can be set to any globally unique name that is also a valid C/C++ identifier.
The SysConfig tooling ensures that all names defined in a configuration are unique. When instances are first created, SysConfig gives them a default name, CONFIG_RNG_, that's made unique by appending a numeric id. If you provide a name, it's checked against all other instance names in the configuration and, if another instance has the same name, an error is triggered. The additional 'const' declaration is assumed to also be globally unique.
Note: since not all names are added to ti_drivers_config.h, it's possible that some names will not be allowed even though they do not actually collide in the generated files.
The SHA2 driver provides access to the SHA2 family of cryptographic hashes that map an input of arbitrary length to a fixed-length output with negligible probability of collision.
SHA2 Implementation
[SHA2.sha2Implementation = 'SHA2XXF3HSM']
|
Displays SHA2 delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'SHA2XXF3HSM' | |
The TRNG driver generates numbers of variable lengths from a source of entropy. The output is suitable for applications requiring cryptographically secure random numbers such as keying material for private or symmetric keys.
TRNG.trngImplementation = 'TRNGXXF3HSM'; | // TRNG Implementation |
inst.$name = 'CONFIG_TRNG_{num}'; | // Name |
TRNG Implementation
[TRNG.trngImplementation = 'TRNGXXF3HSM']
|
Displays TRNG delegates available for the CC3500 device.
Since there is only one delegate, it is a read-only value that cannot be changed. Please refer to the TI-Drivers implementation matrix for all available drivers and documentation.
Valid options include the following:
'TRNGXXF3HSM' | |
This name is declared in the generated ti_drivers_config.h file so applications can reference this instance symbolically. Additionally, this name is used to declare an 'extern const' which allows libraries to define symbolic names for required driver configurations without needing to rebuild library source files. The 'const' identifier is declared as the same name with a _CONST suffix. The name can be set to any globally unique name that is also a valid C/C++ identifier.
The SysConfig tooling ensures that all names defined in a configuration are unique. When instances are first created, SysConfig gives them a default name, CONFIG_TRNG_, that's made unique by appending a numeric id. If you provide a name, it's checked against all other instance names in the configuration and, if another instance has the same name, an error is triggered. The additional 'const' declaration is assumed to also be globally unique.
Note: since not all names are added to ti_drivers_config.h, it's possible that some names will not be allowed even though they do not actually collide in the generated files.
SysConfig configuration scripts consist of a sequence of assignments to configuration parameters defined by the modules used in an application. There are two types of assignments: assignments to module-level configuration parameters (that apply to all instances of the module) and assignments to instance-level configuration parameters (which are specific to the instance alone). All configuration parameters have a default value that's used in the event that it's not explicitly set in the configuration script.
Synopsis lines of the form
MOD.paramName = defaultValue
|
Similarily,
inst.paramName = defaultValue
|
For example, the following is a snippet of a SysConfg script that configures the GPIO module and a GPIO instance.