Thomas Gleixner | d2912cb | 2019-06-04 10:11:33 +0200 | [diff] [blame] | 1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
Jiri Benc | f0706e8 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 2 | /* |
| 3 | * Copyright 2002-2004, Instant802 Networks, Inc. |
Jiri Benc | f0706e8 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 4 | */ |
| 5 | |
| 6 | #ifndef TKIP_H |
| 7 | #define TKIP_H |
| 8 | |
| 9 | #include <linux/types.h> |
| 10 | #include <linux/crypto.h> |
Johannes Berg | 2c8dccc | 2008-04-08 15:14:40 -0400 | [diff] [blame] | 11 | #include "key.h" |
Jiri Benc | f0706e8 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 12 | |
Ard Biesheuvel | 5fdb373 | 2019-06-12 18:19:54 +0200 | [diff] [blame] | 13 | int ieee80211_tkip_encrypt_data(struct arc4_ctx *ctx, |
Johannes Berg | 523b02e | 2011-07-07 22:28:01 +0200 | [diff] [blame] | 14 | struct ieee80211_key *key, |
| 15 | struct sk_buff *skb, |
| 16 | u8 *payload, size_t payload_len); |
| 17 | |
Jiri Benc | f0706e8 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 18 | enum { |
| 19 | TKIP_DECRYPT_OK = 0, |
| 20 | TKIP_DECRYPT_NO_EXT_IV = -1, |
| 21 | TKIP_DECRYPT_INVALID_KEYIDX = -2, |
| 22 | TKIP_DECRYPT_REPLAY = -3, |
| 23 | }; |
Ard Biesheuvel | 5fdb373 | 2019-06-12 18:19:54 +0200 | [diff] [blame] | 24 | int ieee80211_tkip_decrypt_data(struct arc4_ctx *ctx, |
Jiri Benc | f0706e8 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 25 | struct ieee80211_key *key, |
| 26 | u8 *payload, size_t payload_len, u8 *ta, |
Emmanuel Grumbach | 9ae4fda | 2008-03-20 15:06:42 +0200 | [diff] [blame] | 27 | u8 *ra, int only_iv, int queue, |
Johannes Berg | 50741ae | 2007-09-26 15:19:45 +0200 | [diff] [blame] | 28 | u32 *out_iv32, u16 *out_iv16); |
Jiri Benc | f0706e8 | 2007-05-05 11:45:53 -0700 | [diff] [blame] | 29 | |
| 30 | #endif /* TKIP_H */ |