| Wireshark 4.7.0 The Wireshark network protocol analyzer

Loading...
Searching...
No Matches
packet-mka.h
1/* packet-mka.h
2 * Routines for MKA packet dissection
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef __PACKET_MKA_H__
8#define __PACKET_MKA_H__
9
10#include <epan/packet.h>
11
12#define AES128_KEY_LEN 16
13#define AES256_KEY_LEN 32
14
15#define MACSEC_AN_COUNT 4
16
17#define MKA_CAK_AES_GCM_128_LEN (AES128_KEY_LEN)
18#define MKA_CAK_AES_GCM_256_LEN (AES256_KEY_LEN)
19#define MKA_MAX_CAK_LEN (MKA_CAK_AES_GCM_256_LEN)
20
21#define MKA_MAX_KEK_LEN (MKA_CAK_AES_GCM_256_LEN)
22#define MKA_MAX_ICK_LEN (MKA_CAK_AES_GCM_256_LEN)
23#define MKA_MAX_SAK_LEN (MKA_CAK_AES_GCM_256_LEN)
24
25 typedef struct _mka_ckn_info_key {
26 /* The KEK derived from the CAK */
27 unsigned char kek[MKA_MAX_KEK_LEN];
28 unsigned kek_len;
29
30 /* The ICK derived from the CAK */
31 unsigned char ick[MKA_MAX_ICK_LEN];
32 unsigned ick_len;
33
34 /* the SAKs unwrapped by the KEK for each AN
35 * index is the AN to which the SAK belongs */
36 unsigned char saks[MACSEC_AN_COUNT][MKA_MAX_SAK_LEN];
37
38} mka_ckn_info_key_t;
39
40 typedef struct _mka_ckn_info {
41 /* CKN: a byte array of 0 to 32 bytes. */
42 unsigned char *ckn;
43 unsigned ckn_len;
44
45 /* CAK: a byte array of 0 to 32 bytes. */
46 unsigned char *cak;
47 unsigned cak_len;
48
49 /* Identifier for the name of the entry. */
50 char *name;
51
52 /* KEK/ICK/SAK data for this entry */
53 mka_ckn_info_key_t key;
54} mka_ckn_info_t;
55
56/* access to the table data from macsec dissector */
57 const mka_ckn_info_t * get_mka_ckn_table(void);
58 unsigned get_mka_ckn_table_count(void);
59
60#endif
packet.h
_mka_ckn_info_key
Definition packet-mka.h:25
_mka_ckn_info
Definition packet-mka.h:40