Virgil IoT KIT
secmodule-soft.h
Go to the documentation of this file.
1 // Copyright (C) 2015-2020 Virgil Security, Inc.
2 //
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without
6 // modification, are permitted provided that the following conditions are
7 // met:
8 //
9 // (1) Redistributions of source code must retain the above copyright
10 // notice, this list of conditions and the following disclaimer.
11 //
12 // (2) Redistributions in binary form must reproduce the above copyright
13 // notice, this list of conditions and the following disclaimer in
14 // the documentation and/or other materials provided with the
15 // distribution.
16 //
17 // (3) Neither the name of the copyright holder nor the names of its
18 // contributors may be used to endorse or promote products derived from
19 // this software without specific prior written permission.
20 //
21 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR
22 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24 // DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
25 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
30 // IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 // POSSIBILITY OF SUCH DAMAGE.
32 //
33 // Lead Maintainer: Virgil Security Inc. <support@virgilsecurity.com>
34 
44 #ifndef VS_SECMODULE_SOFT_DEVICE_H
45 #define VS_SECMODULE_SOFT_DEVICE_H
46 
47 #ifdef __cplusplus
48 namespace VirgilIoTKit {
49 extern "C" {
50 #endif
51 
53 #define KEY_SLOT_STD_DATA_SIZE (380)
54 
56 #define KEY_SLOT_EXT_DATA_SIZE (1532)
57 
59 typedef enum {
107 
109 #define PROVISION_KEYS_QTY 2
110 
112 #define PRIVATE_KEY_SLOT VS_KEY_SLOT_STD_OTP_1
113 
115 #define REC1_KEY_SLOT VS_KEY_SLOT_STD_OTP_2
116 
117 #define REC2_KEY_SLOT VS_KEY_SLOT_STD_OTP_3
118 
120 #define SIGNATURE_SLOT VS_KEY_SLOT_STD_OTP_4
121 
123 #define AUTH1_KEY_SLOT VS_KEY_SLOT_STD_MTP_2
124 
125 #define AUTH2_KEY_SLOT VS_KEY_SLOT_STD_MTP_3
126 
128 #define TL1_KEY_SLOT VS_KEY_SLOT_STD_MTP_4
129 
130 #define TL2_KEY_SLOT VS_KEY_SLOT_STD_MTP_5
131 
133 #define FW1_KEY_SLOT VS_KEY_SLOT_STD_MTP_6
134 
135 #define FW2_KEY_SLOT VS_KEY_SLOT_STD_MTP_7
136 
137 #ifdef __cplusplus
138 } // extern "C"
139 } // namespace VirgilIoTKit
140 #endif
141 
142 #endif // VS_SECMODULE_SOFT_DEVICE_H
VS_KEY_SLOT_STD_OTP_6
@ VS_KEY_SLOT_STD_OTP_6
Definition: secmodule-soft.h:66
VS_KEY_SLOT_STD_MTP_11
@ VS_KEY_SLOT_STD_MTP_11
Definition: secmodule-soft.h:89
VS_KEY_SLOT_TMP_MAX
@ VS_KEY_SLOT_TMP_MAX
Definition: secmodule-soft.h:105
VS_KEY_SLOT_STD_MTP_0
@ VS_KEY_SLOT_STD_MTP_0
Definition: secmodule-soft.h:78
VS_KEY_SLOT_STD_OTP_11
@ VS_KEY_SLOT_STD_OTP_11
Definition: secmodule-soft.h:71
VS_KEY_SLOT_STD_MTP_13
@ VS_KEY_SLOT_STD_MTP_13
Definition: secmodule-soft.h:91
VS_KEY_SLOT_EXT_MTP_0
@ VS_KEY_SLOT_EXT_MTP_0
Definition: secmodule-soft.h:94
VS_KEY_SLOT_STD_TMP_0
@ VS_KEY_SLOT_STD_TMP_0
Definition: secmodule-soft.h:96
VS_KEY_SLOT_STD_OTP_8
@ VS_KEY_SLOT_STD_OTP_8
Definition: secmodule-soft.h:68
VS_KEY_SLOT_STD_MTP_8
@ VS_KEY_SLOT_STD_MTP_8
Definition: secmodule-soft.h:86
VS_KEY_SLOT_STD_OTP_14
@ VS_KEY_SLOT_STD_OTP_14
Definition: secmodule-soft.h:74
VS_KEY_SLOT_STD_OTP_12
@ VS_KEY_SLOT_STD_OTP_12
Definition: secmodule-soft.h:72
VS_KEY_SLOT_STD_OTP_4
@ VS_KEY_SLOT_STD_OTP_4
Definition: secmodule-soft.h:64
VS_KEY_SLOT_STD_OTP_2
@ VS_KEY_SLOT_STD_OTP_2
Definition: secmodule-soft.h:62
VS_KEY_SLOT_STD_MTP_3
@ VS_KEY_SLOT_STD_MTP_3
Definition: secmodule-soft.h:81
VS_KEY_SLOT_STD_OTP_7
@ VS_KEY_SLOT_STD_OTP_7
Definition: secmodule-soft.h:67
VS_KEY_SLOT_EXT_TMP_0
@ VS_KEY_SLOT_EXT_TMP_0
Definition: secmodule-soft.h:104
VS_KEY_SLOT_STD_MTP_6
@ VS_KEY_SLOT_STD_MTP_6
Definition: secmodule-soft.h:84
VS_KEY_SLOT_STD_TMP_MAX
@ VS_KEY_SLOT_STD_TMP_MAX
Definition: secmodule-soft.h:103
VS_KEY_SLOT_STD_MTP_1
@ VS_KEY_SLOT_STD_MTP_1
Definition: secmodule-soft.h:79
VS_KEY_SLOT_STD_MTP_7
@ VS_KEY_SLOT_STD_MTP_7
Definition: secmodule-soft.h:85
vs_iot_secmodule_slot_e
vs_iot_secmodule_slot_e
Slots identifiers.
Definition: secmodule-soft.h:59
VS_KEY_SLOT_EXT_OTP_0
@ VS_KEY_SLOT_EXT_OTP_0
Definition: secmodule-soft.h:76
VS_KEY_SLOT_MTP_MAX
@ VS_KEY_SLOT_MTP_MAX
Definition: secmodule-soft.h:95
VS_KEY_SLOT_STD_TMP_1
@ VS_KEY_SLOT_STD_TMP_1
Definition: secmodule-soft.h:97
VS_KEY_SLOT_STD_OTP_MAX
@ VS_KEY_SLOT_STD_OTP_MAX
Definition: secmodule-soft.h:75
VS_KEY_SLOT_STD_MTP_10
@ VS_KEY_SLOT_STD_MTP_10
Definition: secmodule-soft.h:88
VS_KEY_SLOT_STD_OTP_13
@ VS_KEY_SLOT_STD_OTP_13
Definition: secmodule-soft.h:73
VS_KEY_SLOT_STD_TMP_6
@ VS_KEY_SLOT_STD_TMP_6
Definition: secmodule-soft.h:102
VS_KEY_SLOT_STD_MTP_5
@ VS_KEY_SLOT_STD_MTP_5
Definition: secmodule-soft.h:83
VS_KEY_SLOT_STD_MTP_2
@ VS_KEY_SLOT_STD_MTP_2
Definition: secmodule-soft.h:80
VS_KEY_SLOT_STD_TMP_3
@ VS_KEY_SLOT_STD_TMP_3
Definition: secmodule-soft.h:99
VS_KEY_SLOT_STD_TMP_2
@ VS_KEY_SLOT_STD_TMP_2
Definition: secmodule-soft.h:98
VS_KEY_SLOT_STD_MTP_9
@ VS_KEY_SLOT_STD_MTP_9
Definition: secmodule-soft.h:87
VS_KEY_SLOT_STD_OTP_0
@ VS_KEY_SLOT_STD_OTP_0
Definition: secmodule-soft.h:60
VS_KEY_SLOT_STD_MTP_12
@ VS_KEY_SLOT_STD_MTP_12
Definition: secmodule-soft.h:90
VS_KEY_SLOT_STD_OTP_5
@ VS_KEY_SLOT_STD_OTP_5
Definition: secmodule-soft.h:65
VS_KEY_SLOT_STD_TMP_4
@ VS_KEY_SLOT_STD_TMP_4
Definition: secmodule-soft.h:100
VS_KEY_SLOT_STD_OTP_10
@ VS_KEY_SLOT_STD_OTP_10
Definition: secmodule-soft.h:70
VS_KEY_SLOT_STD_TMP_5
@ VS_KEY_SLOT_STD_TMP_5
Definition: secmodule-soft.h:101
VS_KEY_SLOT_STD_MTP_14
@ VS_KEY_SLOT_STD_MTP_14
Definition: secmodule-soft.h:92
VS_KEY_SLOT_OTP_MAX
@ VS_KEY_SLOT_OTP_MAX
Definition: secmodule-soft.h:77
VS_KEY_SLOT_STD_MTP_4
@ VS_KEY_SLOT_STD_MTP_4
Definition: secmodule-soft.h:82
VS_KEY_SLOT_STD_MTP_MAX
@ VS_KEY_SLOT_STD_MTP_MAX
Definition: secmodule-soft.h:93
VS_KEY_SLOT_STD_OTP_3
@ VS_KEY_SLOT_STD_OTP_3
Definition: secmodule-soft.h:63
VS_KEY_SLOT_STD_OTP_9
@ VS_KEY_SLOT_STD_OTP_9
Definition: secmodule-soft.h:69
VS_KEY_SLOT_STD_OTP_1
@ VS_KEY_SLOT_STD_OTP_1
Definition: secmodule-soft.h:61