18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* Null security operations. 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. 58c2ecf20Sopenharmony_ci * Written by David Howells (dhowells@redhat.com) 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <net/af_rxrpc.h> 98c2ecf20Sopenharmony_ci#include "ar-internal.h" 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cistatic int none_init_connection_security(struct rxrpc_connection *conn) 128c2ecf20Sopenharmony_ci{ 138c2ecf20Sopenharmony_ci return 0; 148c2ecf20Sopenharmony_ci} 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_cistatic int none_prime_packet_security(struct rxrpc_connection *conn) 178c2ecf20Sopenharmony_ci{ 188c2ecf20Sopenharmony_ci return 0; 198c2ecf20Sopenharmony_ci} 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_cistatic int none_secure_packet(struct rxrpc_call *call, 228c2ecf20Sopenharmony_ci struct sk_buff *skb, 238c2ecf20Sopenharmony_ci size_t data_size, 248c2ecf20Sopenharmony_ci void *sechdr) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci return 0; 278c2ecf20Sopenharmony_ci} 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistatic int none_verify_packet(struct rxrpc_call *call, struct sk_buff *skb, 308c2ecf20Sopenharmony_ci unsigned int offset, unsigned int len, 318c2ecf20Sopenharmony_ci rxrpc_seq_t seq, u16 expected_cksum) 328c2ecf20Sopenharmony_ci{ 338c2ecf20Sopenharmony_ci return 0; 348c2ecf20Sopenharmony_ci} 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_cistatic void none_free_call_crypto(struct rxrpc_call *call) 378c2ecf20Sopenharmony_ci{ 388c2ecf20Sopenharmony_ci} 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cistatic void none_locate_data(struct rxrpc_call *call, struct sk_buff *skb, 418c2ecf20Sopenharmony_ci unsigned int *_offset, unsigned int *_len) 428c2ecf20Sopenharmony_ci{ 438c2ecf20Sopenharmony_ci} 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_cistatic int none_respond_to_challenge(struct rxrpc_connection *conn, 468c2ecf20Sopenharmony_ci struct sk_buff *skb, 478c2ecf20Sopenharmony_ci u32 *_abort_code) 488c2ecf20Sopenharmony_ci{ 498c2ecf20Sopenharmony_ci struct rxrpc_skb_priv *sp = rxrpc_skb(skb); 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci trace_rxrpc_rx_eproto(NULL, sp->hdr.serial, 528c2ecf20Sopenharmony_ci tracepoint_string("chall_none")); 538c2ecf20Sopenharmony_ci return -EPROTO; 548c2ecf20Sopenharmony_ci} 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_cistatic int none_verify_response(struct rxrpc_connection *conn, 578c2ecf20Sopenharmony_ci struct sk_buff *skb, 588c2ecf20Sopenharmony_ci u32 *_abort_code) 598c2ecf20Sopenharmony_ci{ 608c2ecf20Sopenharmony_ci struct rxrpc_skb_priv *sp = rxrpc_skb(skb); 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci trace_rxrpc_rx_eproto(NULL, sp->hdr.serial, 638c2ecf20Sopenharmony_ci tracepoint_string("resp_none")); 648c2ecf20Sopenharmony_ci return -EPROTO; 658c2ecf20Sopenharmony_ci} 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_cistatic void none_clear(struct rxrpc_connection *conn) 688c2ecf20Sopenharmony_ci{ 698c2ecf20Sopenharmony_ci} 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_cistatic int none_init(void) 728c2ecf20Sopenharmony_ci{ 738c2ecf20Sopenharmony_ci return 0; 748c2ecf20Sopenharmony_ci} 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_cistatic void none_exit(void) 778c2ecf20Sopenharmony_ci{ 788c2ecf20Sopenharmony_ci} 798c2ecf20Sopenharmony_ci 808c2ecf20Sopenharmony_ci/* 818c2ecf20Sopenharmony_ci * RxRPC Kerberos-based security 828c2ecf20Sopenharmony_ci */ 838c2ecf20Sopenharmony_ciconst struct rxrpc_security rxrpc_no_security = { 848c2ecf20Sopenharmony_ci .name = "none", 858c2ecf20Sopenharmony_ci .security_index = RXRPC_SECURITY_NONE, 868c2ecf20Sopenharmony_ci .init = none_init, 878c2ecf20Sopenharmony_ci .exit = none_exit, 888c2ecf20Sopenharmony_ci .init_connection_security = none_init_connection_security, 898c2ecf20Sopenharmony_ci .prime_packet_security = none_prime_packet_security, 908c2ecf20Sopenharmony_ci .free_call_crypto = none_free_call_crypto, 918c2ecf20Sopenharmony_ci .secure_packet = none_secure_packet, 928c2ecf20Sopenharmony_ci .verify_packet = none_verify_packet, 938c2ecf20Sopenharmony_ci .locate_data = none_locate_data, 948c2ecf20Sopenharmony_ci .respond_to_challenge = none_respond_to_challenge, 958c2ecf20Sopenharmony_ci .verify_response = none_verify_response, 968c2ecf20Sopenharmony_ci .clear = none_clear, 978c2ecf20Sopenharmony_ci}; 98