le_iks_common.h
Go to the documentation of this file.
28 //--------------------------------------------------------------------------------------------------32 //--------------------------------------------------------------------------------------------------35 //--------------------------------------------------------------------------------------------------39 //--------------------------------------------------------------------------------------------------42 //--------------------------------------------------------------------------------------------------46 //--------------------------------------------------------------------------------------------------49 //--------------------------------------------------------------------------------------------------53 //--------------------------------------------------------------------------------------------------56 //--------------------------------------------------------------------------------------------------60 //--------------------------------------------------------------------------------------------------63 //--------------------------------------------------------------------------------------------------67 //--------------------------------------------------------------------------------------------------70 //--------------------------------------------------------------------------------------------------73 //--------------------------------------------------------------------------------------------------76 //--------------------------------------------------------------------------------------------------80 //--------------------------------------------------------------------------------------------------83 //--------------------------------------------------------------------------------------------------86 //--------------------------------------------------------------------------------------------------89 //--------------------------------------------------------------------------------------------------93 //--------------------------------------------------------------------------------------------------96 //--------------------------------------------------------------------------------------------------100 //--------------------------------------------------------------------------------------------------103 //--------------------------------------------------------------------------------------------------107 //--------------------------------------------------------------------------------------------------110 //--------------------------------------------------------------------------------------------------114 //--------------------------------------------------------------------------------------------------117 //--------------------------------------------------------------------------------------------------120 //--------------------------------------------------------------------------------------------------123 //--------------------------------------------------------------------------------------------------128 //--------------------------------------------------------------------------------------------------147 //--------------------------------------------------------------------------------------------------151 //--------------------------------------------------------------------------------------------------252 //--------------------------------------------------------------------------------------------------260 //--------------------------------------------------------------------------------------------------280 //--------------------------------------------------------------------------------------------------284 //--------------------------------------------------------------------------------------------------291 //--------------------------------------------------------------------------------------------------295 //--------------------------------------------------------------------------------------------------302 //--------------------------------------------------------------------------------------------------306 //--------------------------------------------------------------------------------------------------313 //--------------------------------------------------------------------------------------------------315 * Sets the module ID. This module ID may be used to uniquely identify the module, device or chip319 * An update key can be set to delete the module ID. If the update key is not set then the module330 //--------------------------------------------------------------------------------------------------340 //--------------------------------------------------------------------------------------------------352 //--------------------------------------------------------------------------------------------------362 //--------------------------------------------------------------------------------------------------367 * authCmdPtr must contain a valid delete module ID command. If the command is valid and authentic380 //--------------------------------------------------------------------------------------------------390 //--------------------------------------------------------------------------------------------------401 //--------------------------------------------------------------------------------------------------411 //--------------------------------------------------------------------------------------------------431 //--------------------------------------------------------------------------------------------------443 //--------------------------------------------------------------------------------------------------461 //--------------------------------------------------------------------------------------------------475 //--------------------------------------------------------------------------------------------------484 //--------------------------------------------------------------------------------------------------494 //--------------------------------------------------------------------------------------------------503 //--------------------------------------------------------------------------------------------------513 //--------------------------------------------------------------------------------------------------522 //--------------------------------------------------------------------------------------------------532 //--------------------------------------------------------------------------------------------------542 //--------------------------------------------------------------------------------------------------550 //--------------------------------------------------------------------------------------------------553 * The update key can be used at a later time to perform authenticated updates of the specified key.576 //--------------------------------------------------------------------------------------------------586 //--------------------------------------------------------------------------------------------------590 * If the specified key has an assigned update key then the authCmdPtr must contain a generate key592 * and is signed with the update private key. If the command is valid and authentic then a new key611 //--------------------------------------------------------------------------------------------------623 //--------------------------------------------------------------------------------------------------631 * If the key is a symmetric then the key value must be encrypted with the provisioning key. If the634 * If the specified key does not have an assigned update key then the provPackagePtr is treated as a637 * If the specified key has an assigned update key then the provPackagePtr must also contain a valid650 //--------------------------------------------------------------------------------------------------662 //--------------------------------------------------------------------------------------------------676 //--------------------------------------------------------------------------------------------------684 //--------------------------------------------------------------------------------------------------689 * command and a valid authentication challenge, obtained by le_iks_GetUpdateAuthChallenge(), and is690 * signed with the update private key. If the command is valid and authentic then the key will be708 //--------------------------------------------------------------------------------------------------720 //--------------------------------------------------------------------------------------------------736 //--------------------------------------------------------------------------------------------------748 //--------------------------------------------------------------------------------------------------761 //--------------------------------------------------------------------------------------------------771 //--------------------------------------------------------------------------------------------------777 * Created digests initially only exist in non-persistent memory, call le_iks_SaveDigest() to save790 //--------------------------------------------------------------------------------------------------802 //--------------------------------------------------------------------------------------------------811 //--------------------------------------------------------------------------------------------------821 //--------------------------------------------------------------------------------------------------825 * updates of the specified digest. The same update key may be used for multiple keys and digests.845 //--------------------------------------------------------------------------------------------------855 //--------------------------------------------------------------------------------------------------861 * If the specified digest does not have an assigned update key then the provPackagePtr is treated864 * If the specified digest has an assigned update key then the provPackagePtr must also contain a878 //--------------------------------------------------------------------------------------------------890 //--------------------------------------------------------------------------------------------------904 //--------------------------------------------------------------------------------------------------912 //--------------------------------------------------------------------------------------------------917 * digest command and a valid authentication challenge, obtained by le_iks_GetUpdateAuthChallenge()918 * and is signed with the update private key. If the command is valid and authentic then the digest932 //--------------------------------------------------------------------------------------------------944 //--------------------------------------------------------------------------------------------------955 //--------------------------------------------------------------------------------------------------967 //--------------------------------------------------------------------------------------------------971 * This challenge code must be included in any update commands created using the specified update980 //--------------------------------------------------------------------------------------------------993 //--------------------------------------------------------------------------------------------------995 * Get the provisioning key. This is a public key that is internally generated by the IOT Key Store996 * and used to encrypt symmetric and private keys for provisioning into the IOT Key Store. This key1009 //--------------------------------------------------------------------------------------------------1019 //--------------------------------------------------------------------------------------------------1030 //--------------------------------------------------------------------------------------------------1040 //--------------------------------------------------------------------------------------------------1049 //--------------------------------------------------------------------------------------------------Uses HKDF with SHA256 and AES GCM 128.Definition: le_iks_common.h:246Uses HKDF with SHA512 and AES GCM 256.Definition: le_iks_common.h:240Uses HKDF with SHA256 and AES GCM 128.Definition: le_iks_common.h:244Uses HKDF with SHA512 and AES GCM 256.Definition: le_iks_common.h:242