You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
237 lines
6.3 KiB
237 lines
6.3 KiB
From f75f6e2b03fa5e807142a37039b0b613565eafa7 Mon Sep 17 00:00:00 2001 |
|
Message-Id: <f75f6e2b03fa5e807142a37039b0b613565eafa7.1488376601.git.dcaratti@redhat.com> |
|
From: Sabrina Dubroca <sd@queasysnail.net> |
|
Date: Tue, 20 Sep 2016 09:43:04 +0200 |
|
Subject: [PATCH] mka: Move structs {transmit,receive}_{sa,sc} to a common |
|
header |
|
|
|
These structs will be passed down to macsec drivers in a coming patch to |
|
make the driver interface cleaner, so they need to be shared between the |
|
core MKA implementation and the drivers. |
|
|
|
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> |
|
--- |
|
src/drivers/driver.h | 3 ++ |
|
src/pae/ieee802_1x_kay.h | 82 +++++++++++++++++++++++++++++++++++++++++++ |
|
src/pae/ieee802_1x_kay_i.h | 82 ------------------------------------------- |
|
src/pae/ieee802_1x_secy_ops.h | 4 --- |
|
4 files changed, 85 insertions(+), 86 deletions(-) |
|
|
|
diff --git a/src/drivers/driver.h b/src/drivers/driver.h |
|
index a449cc9..073219e 100644 |
|
--- a/src/drivers/driver.h |
|
+++ b/src/drivers/driver.h |
|
@@ -21,6 +21,9 @@ |
|
|
|
#include "common/defs.h" |
|
#include "common/ieee802_11_defs.h" |
|
+#ifdef CONFIG_MACSEC |
|
+#include "pae/ieee802_1x_kay.h" |
|
+#endif /* CONFIG_MACSEC */ |
|
#include "utils/list.h" |
|
|
|
#define HOSTAPD_CHAN_DISABLED 0x00000001 |
|
diff --git a/src/pae/ieee802_1x_kay.h b/src/pae/ieee802_1x_kay.h |
|
index afbaa33..0361e1a 100644 |
|
--- a/src/pae/ieee802_1x_kay.h |
|
+++ b/src/pae/ieee802_1x_kay.h |
|
@@ -49,6 +49,88 @@ enum mka_created_mode { |
|
EAP_EXCHANGE, |
|
}; |
|
|
|
+struct data_key { |
|
+ u8 *key; |
|
+ int key_len; |
|
+ struct ieee802_1x_mka_ki key_identifier; |
|
+ enum confidentiality_offset confidentiality_offset; |
|
+ u8 an; |
|
+ Boolean transmits; |
|
+ Boolean receives; |
|
+ struct os_time created_time; |
|
+ u32 next_pn; |
|
+ |
|
+ /* not defined data */ |
|
+ Boolean rx_latest; |
|
+ Boolean tx_latest; |
|
+ |
|
+ int user; /* FIXME: to indicate if it can be delete safely */ |
|
+ |
|
+ struct dl_list list; |
|
+}; |
|
+ |
|
+/* TransmitSC in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
+struct transmit_sc { |
|
+ struct ieee802_1x_mka_sci sci; /* const SCI sci */ |
|
+ Boolean transmitting; /* bool transmitting (read only) */ |
|
+ |
|
+ struct os_time created_time; /* Time createdTime */ |
|
+ |
|
+ u8 encoding_sa; /* AN encodingSA (read only) */ |
|
+ u8 enciphering_sa; /* AN encipheringSA (read only) */ |
|
+ |
|
+ /* not defined data */ |
|
+ unsigned int channel; |
|
+ |
|
+ struct dl_list list; |
|
+ struct dl_list sa_list; |
|
+}; |
|
+ |
|
+/* TransmitSA in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
+struct transmit_sa { |
|
+ Boolean in_use; /* bool inUse (read only) */ |
|
+ u32 next_pn; /* PN nextPN (read only) */ |
|
+ struct os_time created_time; /* Time createdTime */ |
|
+ |
|
+ Boolean enable_transmit; /* bool EnableTransmit */ |
|
+ |
|
+ u8 an; |
|
+ Boolean confidentiality; |
|
+ struct data_key *pkey; |
|
+ |
|
+ struct transmit_sc *sc; |
|
+ struct dl_list list; /* list entry in struct transmit_sc::sa_list */ |
|
+}; |
|
+ |
|
+/* ReceiveSC in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
+struct receive_sc { |
|
+ struct ieee802_1x_mka_sci sci; /* const SCI sci */ |
|
+ Boolean receiving; /* bool receiving (read only) */ |
|
+ |
|
+ struct os_time created_time; /* Time createdTime */ |
|
+ |
|
+ unsigned int channel; |
|
+ |
|
+ struct dl_list list; |
|
+ struct dl_list sa_list; |
|
+}; |
|
+ |
|
+/* ReceiveSA in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
+struct receive_sa { |
|
+ Boolean enable_receive; /* bool enableReceive */ |
|
+ Boolean in_use; /* bool inUse (read only) */ |
|
+ |
|
+ u32 next_pn; /* PN nextPN (read only) */ |
|
+ u32 lowest_pn; /* PN lowestPN (read only) */ |
|
+ u8 an; |
|
+ struct os_time created_time; |
|
+ |
|
+ struct data_key *pkey; |
|
+ struct receive_sc *sc; /* list entry in struct receive_sc::sa_list */ |
|
+ |
|
+ struct dl_list list; |
|
+}; |
|
+ |
|
struct ieee802_1x_kay_ctx { |
|
/* pointer to arbitrary upper level context */ |
|
void *ctx; |
|
diff --git a/src/pae/ieee802_1x_kay_i.h b/src/pae/ieee802_1x_kay_i.h |
|
index 622282e..e3d7db4 100644 |
|
--- a/src/pae/ieee802_1x_kay_i.h |
|
+++ b/src/pae/ieee802_1x_kay_i.h |
|
@@ -54,88 +54,6 @@ struct ieee802_1x_kay_peer { |
|
struct dl_list list; |
|
}; |
|
|
|
-struct data_key { |
|
- u8 *key; |
|
- int key_len; |
|
- struct ieee802_1x_mka_ki key_identifier; |
|
- enum confidentiality_offset confidentiality_offset; |
|
- u8 an; |
|
- Boolean transmits; |
|
- Boolean receives; |
|
- struct os_time created_time; |
|
- u32 next_pn; |
|
- |
|
- /* not defined data */ |
|
- Boolean rx_latest; |
|
- Boolean tx_latest; |
|
- |
|
- int user; /* FIXME: to indicate if it can be delete safely */ |
|
- |
|
- struct dl_list list; |
|
-}; |
|
- |
|
-/* TransmitSC in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
-struct transmit_sc { |
|
- struct ieee802_1x_mka_sci sci; /* const SCI sci */ |
|
- Boolean transmitting; /* bool transmitting (read only) */ |
|
- |
|
- struct os_time created_time; /* Time createdTime */ |
|
- |
|
- u8 encoding_sa; /* AN encodingSA (read only) */ |
|
- u8 enciphering_sa; /* AN encipheringSA (read only) */ |
|
- |
|
- /* not defined data */ |
|
- unsigned int channel; |
|
- |
|
- struct dl_list list; |
|
- struct dl_list sa_list; |
|
-}; |
|
- |
|
-/* TransmitSA in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
-struct transmit_sa { |
|
- Boolean in_use; /* bool inUse (read only) */ |
|
- u32 next_pn; /* PN nextPN (read only) */ |
|
- struct os_time created_time; /* Time createdTime */ |
|
- |
|
- Boolean enable_transmit; /* bool EnableTransmit */ |
|
- |
|
- u8 an; |
|
- Boolean confidentiality; |
|
- struct data_key *pkey; |
|
- |
|
- struct transmit_sc *sc; |
|
- struct dl_list list; /* list entry in struct transmit_sc::sa_list */ |
|
-}; |
|
- |
|
-/* ReceiveSC in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
-struct receive_sc { |
|
- struct ieee802_1x_mka_sci sci; /* const SCI sci */ |
|
- Boolean receiving; /* bool receiving (read only) */ |
|
- |
|
- struct os_time created_time; /* Time createdTime */ |
|
- |
|
- unsigned int channel; |
|
- |
|
- struct dl_list list; |
|
- struct dl_list sa_list; |
|
-}; |
|
- |
|
-/* ReceiveSA in IEEE Std 802.1AE-2006, Figure 10-6 */ |
|
-struct receive_sa { |
|
- Boolean enable_receive; /* bool enableReceive */ |
|
- Boolean in_use; /* bool inUse (read only) */ |
|
- |
|
- u32 next_pn; /* PN nextPN (read only) */ |
|
- u32 lowest_pn; /* PN lowestPN (read only) */ |
|
- u8 an; |
|
- struct os_time created_time; |
|
- |
|
- struct data_key *pkey; |
|
- struct receive_sc *sc; /* list entry in struct receive_sc::sa_list */ |
|
- |
|
- struct dl_list list; |
|
-}; |
|
- |
|
struct macsec_ciphersuite { |
|
u64 id; |
|
char name[32]; |
|
diff --git a/src/pae/ieee802_1x_secy_ops.h b/src/pae/ieee802_1x_secy_ops.h |
|
index f5057ee..120ca3c 100644 |
|
--- a/src/pae/ieee802_1x_secy_ops.h |
|
+++ b/src/pae/ieee802_1x_secy_ops.h |
|
@@ -13,10 +13,6 @@ |
|
#include "common/ieee802_1x_defs.h" |
|
|
|
struct ieee802_1x_kay_conf; |
|
-struct receive_sa; |
|
-struct transmit_sa; |
|
-struct receive_sc; |
|
-struct transmit_sc; |
|
|
|
int secy_init_macsec(struct ieee802_1x_kay *kay); |
|
int secy_deinit_macsec(struct ieee802_1x_kay *kay); |
|
-- |
|
2.7.4 |
|
|
|
|