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 //--------------------------------------------------------------------------------------------------258 //--------------------------------------------------------------------------------------------------266 //--------------------------------------------------------------------------------------------------286 //--------------------------------------------------------------------------------------------------290 //--------------------------------------------------------------------------------------------------297 //--------------------------------------------------------------------------------------------------301 //--------------------------------------------------------------------------------------------------308 //--------------------------------------------------------------------------------------------------312 //--------------------------------------------------------------------------------------------------319 //--------------------------------------------------------------------------------------------------330 //--------------------------------------------------------------------------------------------------340 //--------------------------------------------------------------------------------------------------360 //--------------------------------------------------------------------------------------------------372 //--------------------------------------------------------------------------------------------------390 //--------------------------------------------------------------------------------------------------404 //--------------------------------------------------------------------------------------------------413 //--------------------------------------------------------------------------------------------------423 //--------------------------------------------------------------------------------------------------432 //--------------------------------------------------------------------------------------------------442 //--------------------------------------------------------------------------------------------------451 //--------------------------------------------------------------------------------------------------461 //--------------------------------------------------------------------------------------------------471 //--------------------------------------------------------------------------------------------------479 //--------------------------------------------------------------------------------------------------482 * The update key can be used at a later time to perform authenticated updates of the specified key.485 * The key can be made not updatable by setting the updateKeyRef parameter to zero. Warning, this508 //--------------------------------------------------------------------------------------------------518 //--------------------------------------------------------------------------------------------------522 * If the specified key has an assigned update key then the authCmdPtr must contain a generate key524 * and is signed with the update private key. If the command is valid and authentic then a new key543 //--------------------------------------------------------------------------------------------------555 //--------------------------------------------------------------------------------------------------566 * If the specified key does not have an assigned update key then the provPackagePtr is treated as a569 * If the specified key has an assigned update key then the provPackagePtr must also contain a valid582 //--------------------------------------------------------------------------------------------------594 //--------------------------------------------------------------------------------------------------608 //--------------------------------------------------------------------------------------------------616 //--------------------------------------------------------------------------------------------------621 * command and a valid authentication challenge, obtained by le_iks_GetUpdateAuthChallenge(), and is622 * signed with the update private key. If the command is valid and authentic then the key will be640 //--------------------------------------------------------------------------------------------------652 //--------------------------------------------------------------------------------------------------668 //--------------------------------------------------------------------------------------------------680 //--------------------------------------------------------------------------------------------------693 //--------------------------------------------------------------------------------------------------703 //--------------------------------------------------------------------------------------------------709 * Created digests initially only exist in non-persistent memory, call le_iks_SaveDigest() to save722 //--------------------------------------------------------------------------------------------------734 //--------------------------------------------------------------------------------------------------743 //--------------------------------------------------------------------------------------------------753 //--------------------------------------------------------------------------------------------------757 * updates of the specified digest. The same update key may be used for multiple keys and digests.780 //--------------------------------------------------------------------------------------------------790 //--------------------------------------------------------------------------------------------------796 * If the specified digest does not have an assigned update key then the provPackagePtr is treated799 * If the specified digest has an assigned update key then the provPackagePtr must also contain a813 //--------------------------------------------------------------------------------------------------825 //--------------------------------------------------------------------------------------------------839 //--------------------------------------------------------------------------------------------------847 //--------------------------------------------------------------------------------------------------852 * digest command and a valid authentication challenge, obtained by le_iks_GetUpdateAuthChallenge()853 * and is signed with the update private key. If the command is valid and authentic then the digest867 //--------------------------------------------------------------------------------------------------879 //--------------------------------------------------------------------------------------------------890 //--------------------------------------------------------------------------------------------------902 //--------------------------------------------------------------------------------------------------906 * This challenge code must be included in any update commands created using the specified update915 //--------------------------------------------------------------------------------------------------928 //--------------------------------------------------------------------------------------------------931 * and used to encrypt (wrap) symmetric and private keys for provisioning into the IOT Key Store.944 //--------------------------------------------------------------------------------------------------954 //--------------------------------------------------------------------------------------------------965 //--------------------------------------------------------------------------------------------------975 //--------------------------------------------------------------------------------------------------984 //--------------------------------------------------------------------------------------------------Uses HKDF with SHA256 and AES GCM 128.Definition: le_iks_common.h:248Uses HKDF with SHA512 and AES GCM 256.Definition: le_iks_common.h:242Uses 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:244