1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /* Null security operations.
4 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
5 * Written by David Howells (dhowells@redhat.com)
8 #include <net/af_rxrpc.h>
9 #include "ar-internal.h"
11 static int none_init_connection_security(struct rxrpc_connection
*conn
,
12 struct rxrpc_key_token
*token
)
18 * Allocate an appropriately sized buffer for the amount of data remaining.
20 static struct rxrpc_txbuf
*none_alloc_txbuf(struct rxrpc_call
*call
, size_t remain
, gfp_t gfp
)
22 return rxrpc_alloc_data_txbuf(call
, min_t(size_t, remain
, RXRPC_JUMBO_DATALEN
), 1, gfp
);
25 static int none_secure_packet(struct rxrpc_call
*call
, struct rxrpc_txbuf
*txb
)
30 static int none_verify_packet(struct rxrpc_call
*call
, struct sk_buff
*skb
)
32 struct rxrpc_skb_priv
*sp
= rxrpc_skb(skb
);
34 sp
->flags
|= RXRPC_RX_VERIFIED
;
38 static void none_free_call_crypto(struct rxrpc_call
*call
)
42 static int none_respond_to_challenge(struct rxrpc_connection
*conn
,
45 return rxrpc_abort_conn(conn
, skb
, RX_PROTOCOL_ERROR
, -EPROTO
,
46 rxrpc_eproto_rxnull_challenge
);
49 static int none_verify_response(struct rxrpc_connection
*conn
,
52 return rxrpc_abort_conn(conn
, skb
, RX_PROTOCOL_ERROR
, -EPROTO
,
53 rxrpc_eproto_rxnull_response
);
56 static void none_clear(struct rxrpc_connection
*conn
)
60 static int none_init(void)
65 static void none_exit(void)
70 * RxRPC Kerberos-based security
72 const struct rxrpc_security rxrpc_no_security
= {
74 .security_index
= RXRPC_SECURITY_NONE
,
77 .init_connection_security
= none_init_connection_security
,
78 .free_call_crypto
= none_free_call_crypto
,
79 .alloc_txbuf
= none_alloc_txbuf
,
80 .secure_packet
= none_secure_packet
,
81 .verify_packet
= none_verify_packet
,
82 .respond_to_challenge
= none_respond_to_challenge
,
83 .verify_response
= none_verify_response
,