atecc608a_config.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2024 HAW Hamburg
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
29 #ifndef ATECC608A_CONFIG_H
30 #define ATECC608A_CONFIG_H
31 
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35 
36 #include <stdint.h>
37 
42 const uint8_t atecc608a_config[] = {
43  0x00, 0x00, 0x00, 0x00, /* Read only serial number */
44  0x00, 0x00, 0x00, 0x00, /* Read only revision number */
45  0x00, 0x00, 0x00, 0x00, /* Read only serial number */
46  0x00, 0x00, 0x00, 0x00, /* Read only reserved, I2C enable, reserved */
47  0xC0, 0x00, 0x00, 0x00, /* I2C address, reserved, CountMatch, chip mode*/
48 
49  /* Private keys:
50  0x8720 = 1 0 0 0 | 0 1 1 1 | 0 0 1 0 | 0 0 0 0
51  7 - 4 | 3 - 0 | 15 - 12 | 11 - 8
52  - External signatures of arbitrary messages enabled
53  - Internal signatures of messages by GenDig/GenKey enabled
54  - ECDH operations permitted
55  - ECDH Master Secret will be output in the clear
56  - No write by write command */
57  0x87, 0x20, 0x87, 0x20, /* Slot 0, Slot 1 */
58  0x87, 0x20, 0x87, 0x20, /* Slot 2, Slot 3 */
59 
60  /* Private Keys, write always allowed (use only for testing!!!)*/
61  0x87, 0x00, 0x87, 0x00,
62 
63  /* Private key:
64  - as above but
65  - ECDH Master Secret will be written into slot n + 1 (7)*/
66  0x8F, 0x20, 0x87, 0x20, /* Slot 6, Slot 7 */
67 
68  /* Data storage and public keys, anything goes */
69  0x00, 0x00, 0x00, 0x00, /* Slot 8, Slot 9 */
70  0x00, 0x00, 0x00, 0x00, /* Slot 10, Slot 11 */
71  0x00, 0x00, 0x00, 0x00, /* Slot 12, Slot 13 */
72  0x00, 0x00, 0x00, 0x00, /* Slot 14, Slot 15 */
73 
74  0xFF, 0xFF, 0xFF, 0xFF, /* Counter 0 */
75  0x00, 0x00, 0x00, 0x00, /* Counter 0 */
76  0xFF, 0xFF, 0xFF, 0xFF, /* Counter 1 */
77  0x00, 0x00, 0x00, 0x00, /* Counter 1 */
78  0x00, 0x00, 0x00, 0x00, /* UseLock, VolatileKeyPermission, Secure Boot */
79  0x00, 0x00, 0x00, 0x00, /* KdflvLoc, KdflvStr, KdflcStr, Reserved */
80  0x00, 0x00, 0x00, 0x00, /* Reserved */
81  0x00, 0x00, 0x00, 0x00, /* Reserved */
82  0x00, 0x00, 0x55, 0x55, /* UserExtra, UserExtraAdd, LockValue, LockConfig */
83  0xFF, 0xFF, 0x00, 0x00, /* 2x SlotLocked, 2x ChipOptions */
84  0x00, 0x00, 0x00, 0x00, /* X509format */
85 
86  /* Private Key, access only with Sign, GenKey, PrivWrite cmds
87  Public Version can always be generated
88  Slots are individually lockable with Lock command */
89  0x13, 0x00, 0x13, 0x00, /* KeyConfig 0, KeyConfig 1 */
90  0x13, 0x00, 0x13, 0x00, /* KeyConfig 2, KeyConfig 3 */
91 
92  /* AES Key */
93  0x18, 0x00, 0x18, 0x00, /* KeyConfig 4, KeyConfig 5 -> not usable as AES keys! */
94 
95  /* Private Key
96  - Used for ECDH
97  - Slot 7 will contain corresponding Master Secret */
98  0x13, 0x00, 0x1F, 0x00, /* KeyConfig 6, KeyConfig 7 */
99 
100  /* SHA Key or other data */
101  0x1C, 0x00, /* KeyConfig 8 */
102 
103  /* ECC Public Keys */
104  0x10, 0x00, /* KeyConfig 9 */
105  0x10, 0x00, 0x10, 0x00, /* KeyConfig 10, KeyConfig 11 */
106  0x10, 0x00, 0x10, 0x00, /* KeyConfig 12, KeyConfig 13 */
107 
108  /* SHA Key or other data */
109  0x1C, 0x00, 0x1C, 0x00 /* KeyConfig 14, KeyConfig 15 */
110 };
111 
112 #ifdef __cplusplus
113 }
114 #endif
115 
116 #endif /* ATECC608A_CONFIG_H */
const uint8_t atecc608a_config[]
Example device configuration for the atecc608a.