21
21
// Debug Colors
22
22
#ifdef DEBUG
23
23
#define CRYPTO_DEBUG printf("%s:%s: %d", __FILE__, __FUNCTION__, __LINE__);
24
- #define KRED "\x1B[31m"
25
- #define KGRN "\x1B[32m"
26
- #define KYEL "\x1B[33m"
27
- #define KBLU "\x1B[34m"
28
- #define KMAG "\x1B[35m"
29
- #define KCYN "\x1B[36m"
30
- #define RESET "\033[0m"
24
+ #define KRED "\x1B[31m"
25
+ #define KGRN "\x1B[32m"
26
+ #define KYEL "\x1B[33m"
27
+ #define KBLU "\x1B[34m"
28
+ #define KMAG "\x1B[35m"
29
+ #define KCYN "\x1B[36m"
30
+ #define RESET "\033[0m"
31
31
#else
32
32
#define CRYPTO_DEBUG
33
33
#define KRED
45
45
#define GVCID_MAN_PARAM_SIZE 250
46
46
47
47
// Max Frame Size
48
- #define TC_MAX_FRAME_SIZE 1024
49
- #define TM_MAX_FRAME_SIZE 1786
48
+ #define TC_MAX_FRAME_SIZE 1024
49
+ #define TM_MAX_FRAME_SIZE 1786
50
50
#define AOS_MAX_FRAME_SIZE 1786
51
51
52
52
// Spacecraft Defines
61
61
62
62
// GVCID Defines
63
63
#define NUM_GVCID 64
64
- #define TYPE_TC 0
65
- #define TYPE_MAP 1
66
- #define TYPE_TM 2
67
- #define TYPE_AOS 3
64
+ #define TYPE_TC 0
65
+ #define TYPE_MAP 1
66
+ #define TYPE_TM 2
67
+ #define TYPE_AOS 3
68
68
69
69
// Specific to Authentication
70
- #define SA_NONE 0
71
- #define SA_UNKEYED 1
72
- #define SA_KEYED 2
70
+ #define SA_NONE 0
71
+ #define SA_UNKEYED 1
72
+ #define SA_KEYED 2
73
73
#define SA_OPERATIONAL 3
74
74
// SA State Transitions
75
75
#define SA_CREATE 5
76
- #define SA_REKEY 6
77
- #define SA_START 7
78
- #define SA_STOP 2
76
+ #define SA_REKEY 6
77
+ #define SA_START 7
78
+ #define SA_STOP 2
79
79
#define SA_EXPIRE 1
80
80
#define SA_DELETE 0
81
81
// SA Additional Directives
82
- #define SA_STATUS 8
83
- #define SA_SETARSN 9
82
+ #define SA_STATUS 8
83
+ #define SA_SETARSN 9
84
84
#define SA_SETARSNW 10
85
85
86
86
// Key State Defines
87
- #define KEY_PREACTIVE 0
88
- #define KEY_ACTIVE 1
87
+ #define KEY_PREACTIVE 0
88
+ #define KEY_ACTIVE 1
89
89
#define KEY_DEACTIVATED 2
90
- #define KEY_DESTROYED 3
91
- #define KEY_CORRUPTED 4
90
+ #define KEY_DESTROYED 3
91
+ #define KEY_CORRUPTED 4
92
92
93
93
// Key Length Defines
94
94
// ECS
95
- #define AES256_GCM_KEYLEN 32
95
+ #define AES256_GCM_KEYLEN 32
96
96
#define AES256_GCM_SIV_KEYLEN 32
97
- #define AES256_CBC_KEYLEN 32
98
- #define AES256_CCM_KEYLEN 32
97
+ #define AES256_CBC_KEYLEN 32
98
+ #define AES256_CCM_KEYLEN 32
99
99
// ACS
100
100
#define CMAC_AES256_KEYLEN 32
101
101
#define HMAC_SHA256_KEYLEN 32
102
102
#define HMAC_SHA512_KEYLEN 64
103
103
104
104
// SA Service Types
105
- #define SA_PLAINTEXT 0
106
- #define SA_AUTHENTICATION 1
107
- #define SA_ENCRYPTION 2
105
+ #define SA_PLAINTEXT 0
106
+ #define SA_AUTHENTICATION 1
107
+ #define SA_ENCRYPTION 2
108
108
#define SA_AUTHENTICATED_ENCRYPTION 3
109
109
110
110
// Generic Defines
111
- #define NUM_SA 64
112
- #define SPI_LEN 2 /* bytes */
113
- #define KEY_SIZE 512 /* bytes */
114
- #define KEY_ID_SIZE 8
115
- #define NUM_KEYS 256
116
- #define DISABLED 0
117
- #define ENABLED 1
118
- #define IV_SIZE 16 /* TM IV size bytes */
119
- #define IV_SIZE_TC 4 /* TC IV size bytes */
120
- #define REF_SIZE 250
121
- #define OCF_SIZE 4
122
- #define MAC_SIZE 16 /* bytes */
123
- #define FECF_SIZE 2
111
+ #define NUM_SA 64
112
+ #define SPI_LEN 2 /* bytes */
113
+ #define KEY_SIZE 512 /* bytes */
114
+ #define KEY_ID_SIZE 8
115
+ #define NUM_KEYS 256
116
+ #define DISABLED 0
117
+ #define ENABLED 1
118
+ #define IV_SIZE 16 /* TM IV size bytes */
119
+ #define IV_SIZE_TC 4 /* TC IV size bytes */
120
+ #define REF_SIZE 250
121
+ #define OCF_SIZE 4
122
+ #define MAC_SIZE 16 /* bytes */
123
+ #define FECF_SIZE 2
124
124
#define TC_SEGMENT_HDR_SIZE 1
125
- #define ECS_SIZE 4 /* bytes */
126
- #define ABM_SIZE 1786 /* bytes */
127
- #define ARSN_SIZE 20 /* total messages */
128
- #define ARSNW_SIZE 1 /* bytes */
129
- #define SN_SIZE 16 /* bytes */
130
- #define PAD_SIZE 32 /* bytes */
131
- #define CHALLENGE_SIZE 16 /* bytes */
132
- #define CHALLENGE_MAC_SIZE 16 /* bytes */
133
- #define BYTE_LEN 8 /* bits */
125
+ #define ECS_SIZE 4 /* bytes */
126
+ #define ABM_SIZE 1786 /* bytes */
127
+ #define ARSN_SIZE 20 /* total messages */
128
+ #define ARSNW_SIZE 1 /* bytes */
129
+ #define SN_SIZE 16 /* bytes */
130
+ #define PAD_SIZE 32 /* bytes */
131
+ #define CHALLENGE_SIZE 16 /* bytes */
132
+ #define CHALLENGE_MAC_SIZE 16 /* bytes */
133
+ #define BYTE_LEN 8 /* bits */
134
134
135
135
// Monitoring and Control Defines
136
136
#define EMV_SIZE 4 /* bytes */
137
137
#define LOG_SIZE 50 /* packets */
138
- #define ST_OK 0x00
139
- #define ST_NOK 0xFF
138
+ #define ST_OK 0x00
139
+ #define ST_NOK 0xFF
140
140
141
141
// Protocol Data Unit (PDU)
142
142
// PDU Type
143
143
#define PDU_TYPE_COMMAND 0
144
- #define PDU_TYPE_REPLY 1
144
+ #define PDU_TYPE_REPLY 1
145
145
// PDU User Flag
146
- #define PDU_USER_FLAG_TRUE 1
146
+ #define PDU_USER_FLAG_TRUE 1
147
147
#define PDU_USER_FLAG_FALSE 0
148
148
149
149
// Procedure Identification (PID) - CCSDS Defined Commands
150
150
// Service Group - Key Management
151
- #define SG_KEY_MGMT 0x00 // 0b00
152
- #define PID_OTAR 0x01 // 0b0001
153
- #define PID_KEY_ACTIVATION 0x02 // 0b0010
154
- #define PID_KEY_DEACTIVATION 0x03 //0b0011
151
+ #define SG_KEY_MGMT 0x00 // 0b00
152
+ #define PID_OTAR 0x01 // 0b0001
153
+ #define PID_KEY_ACTIVATION 0x02 // 0b0010
154
+ #define PID_KEY_DEACTIVATION 0x03 // 0b0011
155
155
#define PID_KEY_VERIFICATION 0x04 // 0b0100
156
- #define PID_KEY_DESTRUCTION 0x06 // 0b0110
157
- #define PID_KEY_INVENTORY 0x07 // 0b0111
156
+ #define PID_KEY_DESTRUCTION 0x06 // 0b0110
157
+ #define PID_KEY_INVENTORY 0x07 // 0b0111
158
158
// Service Group - Security Association Management
159
- #define SG_SA_MGMT 0x01 // 0b01
160
- #define PID_CREATE_SA 0x01 //0b0001
161
- #define PID_REKEY_SA 0x06 //0b0110
162
- #define PID_START_SA 0x0B //0b1011
163
- #define PID_STOP_SA 0x0E // 0b1110
159
+ #define SG_SA_MGMT 0x01 // 0b01
160
+ #define PID_CREATE_SA 0x01 // 0b0001
161
+ #define PID_REKEY_SA 0x06 // 0b0110
162
+ #define PID_START_SA 0x0B // 0b1011
163
+ #define PID_STOP_SA 0x0E // 0b1110
164
164
#define PID_EXPIRE_SA 0x09 // 0b1001
165
165
#define PID_DELETE_SA 0x04 // 0b0100
166
- #define PID_SET_ARSN 0x0A //0b1010
166
+ #define PID_SET_ARSN 0x0A // 0b1010
167
167
#define PID_SET_ARSNW 0x05 // 0b0101
168
168
#define PID_READ_ARSN 0x00 // 0b0000
169
169
#define PID_SA_STATUS 0x0F // 0b1111
170
170
// Service Group - Security Monitoring & Control
171
171
#define SG_SEC_MON_CTRL 0x03 // 0b11
172
- #define PID_PING 0x01 // 0b0001
173
- #define PID_LOG_STATUS 0x02 //0b0010
174
- #define PID_DUMP_LOG 0x03 // 0b0011
175
- #define PID_ERASE_LOG 0x04 // 0b0100
176
- #define PID_SELF_TEST 0x05 // 0b0101
177
- #define PID_ALARM_FLAG 0x07 // 0b0111
172
+ #define PID_PING 0x01 // 0b0001
173
+ #define PID_LOG_STATUS 0x02 // 0b0010
174
+ #define PID_DUMP_LOG 0x03 // 0b0011
175
+ #define PID_ERASE_LOG 0x04 // 0b0100
176
+ #define PID_SELF_TEST 0x05 // 0b0101
177
+ #define PID_ALARM_FLAG 0x07 // 0b0111
178
178
179
179
// Procedure Identification (PID) - User Defined Commands
180
180
#define PID_IDLE_FRAME_TRIGGER 0
181
- #define PID_TOGGLE_BAD_SPI 1
182
- #define PID_TOGGLE_BAD_IV 2
183
- #define PID_TOGGLE_BAD_MAC 3
184
- #define PID_TOGGLE_BAD_FECF 4
185
- #define PID_MODIFY_KEY 5
186
- #define PID_MODIFY_ACTIVE_TM 6
187
- #define PID_MODIFY_VCID 7
181
+ #define PID_TOGGLE_BAD_SPI 1
182
+ #define PID_TOGGLE_BAD_IV 2
183
+ #define PID_TOGGLE_BAD_MAC 3
184
+ #define PID_TOGGLE_BAD_FECF 4
185
+ #define PID_MODIFY_KEY 5
186
+ #define PID_MODIFY_ACTIVE_TM 6
187
+ #define PID_MODIFY_VCID 7
188
188
189
189
// TC Defines
190
- #define TC_SH_SIZE 8 /* bits */
191
- #define TC_SN_SIZE 2
192
- #define TC_SN_WINDOW 10 /* +/- value */
190
+ #define TC_SH_SIZE 8 /* bits */
191
+ #define TC_SN_SIZE 2
192
+ #define TC_SN_WINDOW 10 /* +/- value */
193
193
#define TC_FRAME_DATA_SIZE 1019 /* bytes */ // 1024 - 5byte header
194
- #define TC_CADU_ASM_SIZE 4
194
+ #define TC_CADU_ASM_SIZE 4
195
195
196
196
// CCSDS PUS Defines
197
197
#define TLV_DATA_SIZE 494 /* bytes */
198
198
199
199
// TM Defines
200
200
#define TM_FRAME_DATA_SIZE 1786 /* bytes */
201
- #define TM_FILL_SIZE 1145 /* bytes */
202
- #define TM_PAD_SIZE 2 /* bytes */
201
+ #define TM_FILL_SIZE 1145 /* bytes */
202
+ #define TM_PAD_SIZE 2 /* bytes */
203
203
204
204
// AOS Defines
205
205
#define AOS_FRAME_DATA_SIZE 1786 /* bytes */
206
- #define AOS_FILL_SIZE 1145 /* bytes */
206
+ #define AOS_FILL_SIZE 1145 /* bytes */
207
207
208
208
// SDLS Behavior Defines
209
- #define SDLS_KEYV_MAX_KEYS 21 /* keys */
210
- #define SDLS_IV_LEN 12 /* bytes */
211
- #define SDLS_KEYV_KEY_ID_LEN 2 /* bytes */
212
- #define SDLS_KEY_LEN 32 /* bytes */
209
+ #define SDLS_KEYV_MAX_KEYS 21 /* keys */
210
+ #define SDLS_IV_LEN 12 /* bytes */
211
+ #define SDLS_KEYV_KEY_ID_LEN 2 /* bytes */
212
+ #define SDLS_KEY_LEN 32 /* bytes */
213
213
214
214
// TC Behavior Defines
215
- #define TC_SDLS_EP_VCID \
215
+ #define TC_SDLS_EP_VCID \
216
216
4 // VCID which has SDLS PDUs (JPL uses VCIDs to determine TC type, there is no space packet layer with APIDs). Set
217
217
// to -1 if uses SP APIDs.
218
218
219
219
// TM Behavior Defines
220
220
#define TM_CADU_HAS_ASM 1 // Skip 0x1acffc1d at beginning of each frame
221
221
// TM CADU based on ASM, currently only holds non-turbo ASM
222
222
#ifdef TM_CADU_HAS_ASM
223
- #define TM_CADU_SIZE (TM_FRAME_DATA_SIZE + TC_CADU_ASM_SIZE)
223
+ #define TM_CADU_SIZE (TM_FRAME_DATA_SIZE + TC_CADU_ASM_SIZE)
224
224
#else
225
- #define TM_CADU_SIZE TM_FRAME_DATA_SIZE
225
+ #define TM_CADU_SIZE TM_FRAME_DATA_SIZE
226
226
#endif
227
227
228
228
// Logic Behavior Defines
229
229
#define CRYPTO_FALSE 0
230
- #define CRYPTO_TRUE 1
230
+ #define CRYPTO_TRUE 1
231
231
232
232
/*
233
233
** SAVE FILE NAME/LOCATION
239
239
*/
240
240
#define TC_BLOCK_SIZE 16
241
241
242
-
243
- #endif //CRYPTO_CONFIG_H
242
+ #endif // CRYPTO_CONFIG_H
0 commit comments