#ifndef CURVE_H
#define CURVE_H
#include "locking.h"
#include "built_in.h"
#include "ioops.h"
#include "rnd.h"
#include "taia.h"
#include "crypto.h"
struct curve25519_proto {
unsigned char enonce[crypto_box_noncebytes] __aligned_16;
unsigned char dnonce[crypto_box_noncebytes] __aligned_16;
unsigned char key[crypto_box_beforenmbytes] __aligned_16;
};
struct curve25519_struct {
unsigned char *enc, *dec;
size_t enc_size, dec_size;
struct spinlock enc_lock, dec_lock;
};
extern void curve25519_selftest(void);
extern struct curve25519_struct *curve25519_tfm_alloc(void);
extern void curve25519_tfm_free(struct curve25519_struct *tfm);
extern void curve25519_tfm_free_void(void *tfm);
extern void curve25519_proto_init(struct curve25519_proto *proto,
unsigned char *pubkey_remote, size_t len);
extern int curve25519_pubkey_hexparse_32(unsigned char *bin, size_t blen,
const char *ascii, size_t alen);
extern ssize_t curve25519_encode(struct curve25519_struct *curve,
struct curve25519_proto *proto,
unsigned char *plaintext, size_t size,
unsigned char **ciphertext);
extern ssize_t curve25519_decode(struct curve25519_struct *curve,
struct curve25519_proto *proto,
unsigned char *ciphertext, size_t size,
unsigned char **plaintext,
struct taia *arrival_taia);
#endif /* CURVE_H */
submit' value='switch'/>
mac80211: reject TSPEC TIDs (TSIDs) for aggregation
Since mac80211 doesn't currently support TSIDs 8-15 which can
only be used after QoS TSPEC negotiation (and not even after
WMM negotiation), reject attempts to set up aggregation
sessions for them, which might confuse drivers. In mac80211
we do correctly handle that, but the TSIDs should never get
used anyway, and drivers might not be able to handle it.
Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>