net/tls: pass record number as a byte array
TLS offload code casts record number to a u64. The buffer should be aligned to 8 bytes, but its actually a __be64, and the rest of the TLS code treats it as big int. Make the offload callbacks take a byte array, drivers can make the choice to do the ugly cast if they want to. Prepare for copying the record number onto the stack by defining a constant for max size of the byte array. Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com> Reviewed-by: Dirk van der Merwe <dirk.vandermerwe@netronome.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
4967373959
commit
89fec474fa
@@ -62,6 +62,7 @@
|
||||
#define TLS_DEVICE_NAME_MAX 32
|
||||
|
||||
#define MAX_IV_SIZE 16
|
||||
#define TLS_MAX_REC_SEQ_SIZE 8
|
||||
|
||||
/* For AES-CCM, the full 16-bytes of IV is made of '4' fields of given sizes.
|
||||
*
|
||||
@@ -299,7 +300,7 @@ struct tlsdev_ops {
|
||||
struct tls_context *ctx,
|
||||
enum tls_offload_ctx_dir direction);
|
||||
void (*tls_dev_resync_rx)(struct net_device *netdev,
|
||||
struct sock *sk, u32 seq, u64 rcd_sn);
|
||||
struct sock *sk, u32 seq, u8 *rcd_sn);
|
||||
};
|
||||
|
||||
struct tls_offload_context_rx {
|
||||
@@ -607,6 +608,6 @@ int tls_sw_fallback_init(struct sock *sk,
|
||||
int tls_set_device_offload_rx(struct sock *sk, struct tls_context *ctx);
|
||||
|
||||
void tls_device_offload_cleanup_rx(struct sock *sk);
|
||||
void handle_device_resync(struct sock *sk, u32 seq, u64 rcd_sn);
|
||||
void handle_device_resync(struct sock *sk, u32 seq);
|
||||
|
||||
#endif /* _TLS_OFFLOAD_H */
|
||||
|
Reference in New Issue
Block a user