9 #ifndef IEEE802_1X_KAY_H 10 #define IEEE802_1X_KAY_H 12 #include "utils/list.h" 13 #include "common/defs.h" 14 #include "common/ieee802_1x_defs.h" 16 struct macsec_init_params;
19 #define MAX_KEY_LEN 32 20 #define MAX_CKN_LEN 32 23 #define MKA_HELLO_TIME 2000 24 #define MKA_LIFE_TIME 6000 25 #define MKA_SAK_RETIRE_TIME 3000 53 enum mka_created_mode {
62 enum confidentiality_offset confidentiality_offset;
99 Boolean enable_transmit;
102 Boolean confidentiality;
122 Boolean enable_receive;
141 int (*macsec_init)(
void *ctx,
struct macsec_init_params *params);
142 int (*macsec_deinit)(
void *ctx);
143 int (*macsec_get_capability)(
void *priv,
enum macsec_cap *cap);
144 int (*enable_protect_frames)(
void *ctx, Boolean enabled);
145 int (*enable_encrypt)(
void *ctx, Boolean enabled);
146 int (*set_replay_protect)(
void *ctx, Boolean enabled, u32 window);
147 int (*set_current_cipher_suite)(
void *ctx, u64 cs);
148 int (*enable_controlled_port)(
void *ctx, Boolean enabled);
149 int (*get_receive_lowest_pn)(
void *ctx,
struct receive_sa *sa);
150 int (*get_transmit_next_pn)(
void *ctx,
struct transmit_sa *sa);
151 int (*set_transmit_next_pn)(
void *ctx,
struct transmit_sa *sa);
152 int (*create_receive_sc)(
void *ctx,
struct receive_sc *sc,
153 enum validate_frames vf,
154 enum confidentiality_offset co);
155 int (*delete_receive_sc)(
void *ctx,
struct receive_sc *sc);
156 int (*create_receive_sa)(
void *ctx,
struct receive_sa *sa);
157 int (*delete_receive_sa)(
void *ctx,
struct receive_sa *sa);
158 int (*enable_receive_sa)(
void *ctx,
struct receive_sa *sa);
159 int (*disable_receive_sa)(
void *ctx,
struct receive_sa *sa);
160 int (*create_transmit_sc)(
void *ctx,
struct transmit_sc *sc,
161 enum confidentiality_offset co);
162 int (*delete_transmit_sc)(
void *ctx,
struct transmit_sc *sc);
163 int (*create_transmit_sa)(
void *ctx,
struct transmit_sa *sa);
164 int (*delete_transmit_sa)(
void *ctx,
struct transmit_sa *sa);
165 int (*enable_transmit_sa)(
void *ctx,
struct transmit_sa *sa);
166 int (*disable_transmit_sa)(
void *ctx,
struct transmit_sa *sa);
173 Boolean authenticated;
180 u8 key_server_priority;
182 enum macsec_cap macsec_capable;
183 Boolean macsec_desired;
184 Boolean macsec_protect;
185 Boolean macsec_encrypt;
186 Boolean macsec_replay_protect;
187 u32 macsec_replay_window;
188 enum validate_frames macsec_validate;
189 enum confidentiality_offset macsec_confidentiality;
203 Boolean is_key_server;
204 Boolean is_obliged_key_server;
205 char if_name[IFNAMSIZ];
207 unsigned int macsec_csindex;
223 struct dl_list participant_list;
224 enum macsec_policy policy;
230 enum validate_frames vf;
231 enum confidentiality_offset co;
239 u16 port, u8 priority,
const char *ifname,
const u8 *addr);
245 u32 life,
enum mka_created_mode mode,
246 Boolean is_authenticator);
253 int ieee802_1x_kay_change_cipher_suite(
struct ieee802_1x_kay *kay,
254 unsigned int cs_index);
258 Boolean ltx, Boolean lrx);
261 u8 oan, Boolean otx, Boolean orx);
271 int ieee802_1x_kay_get_status(
struct ieee802_1x_kay *kay,
char *buf,
Definition: ieee802_1x_kay.h:48
Definition: ieee802_1x_kay.h:94
Definition: ieee802_1x_kay.h:121
Definition: ieee802_1x_kay.h:43
Definition: ieee802_1x_kay.h:58
Definition: ieee802_1x_kay.h:110
Definition: l2_packet_freebsd.c:36
Definition: ieee802_1x_kay.h:169
Definition: ieee802_1x_kay_i.h:86
Definition: ieee802_1x_kay.h:38
struct dl_list - Doubly-linked list
Definition: list.h:15
Definition: ieee802_1x_cp.c:28
Definition: ieee802_1x_kay.h:79
Definition: ieee802_1x_kay.h:136
struct ieee802_1x_mka_ki - Key Identifier (KI) : Key Server's Member Identifier : Key Number...
Definition: ieee802_1x_kay.h:33