1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Copyright 2002-2004, Instant802 Networks, Inc. 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #ifndef TKIP_H 7*4882a593Smuzhiyun #define TKIP_H 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #include <linux/types.h> 10*4882a593Smuzhiyun #include <linux/crypto.h> 11*4882a593Smuzhiyun #include "key.h" 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun int ieee80211_tkip_encrypt_data(struct arc4_ctx *ctx, 14*4882a593Smuzhiyun struct ieee80211_key *key, 15*4882a593Smuzhiyun struct sk_buff *skb, 16*4882a593Smuzhiyun u8 *payload, size_t payload_len); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun enum { 19*4882a593Smuzhiyun TKIP_DECRYPT_OK = 0, 20*4882a593Smuzhiyun TKIP_DECRYPT_NO_EXT_IV = -1, 21*4882a593Smuzhiyun TKIP_DECRYPT_INVALID_KEYIDX = -2, 22*4882a593Smuzhiyun TKIP_DECRYPT_REPLAY = -3, 23*4882a593Smuzhiyun }; 24*4882a593Smuzhiyun int ieee80211_tkip_decrypt_data(struct arc4_ctx *ctx, 25*4882a593Smuzhiyun struct ieee80211_key *key, 26*4882a593Smuzhiyun u8 *payload, size_t payload_len, u8 *ta, 27*4882a593Smuzhiyun u8 *ra, int only_iv, int queue, 28*4882a593Smuzhiyun u32 *out_iv32, u16 *out_iv16); 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #endif /* TKIP_H */ 31