1 /* Null security operations. 2 * 3 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved. 4 * Written by David Howells (dhowells@redhat.com) 5 * 6 * This program is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU General Public Licence 8 * as published by the Free Software Foundation; either version 9 * 2 of the Licence, or (at your option) any later version. 10 */ 11 12 #include <net/af_rxrpc.h> 13 #include "ar-internal.h" 14 15 static int none_init_connection_security(struct rxrpc_connection *conn) 16 { 17 return 0; 18 } 19 20 static void none_prime_packet_security(struct rxrpc_connection *conn) 21 { 22 } 23 24 static int none_secure_packet(const struct rxrpc_call *call, 25 struct sk_buff *skb, 26 size_t data_size, 27 void *sechdr) 28 { 29 return 0; 30 } 31 32 static int none_verify_packet(const struct rxrpc_call *call, 33 struct sk_buff *skb, 34 u32 *_abort_code) 35 { 36 return 0; 37 } 38 39 static int none_respond_to_challenge(struct rxrpc_connection *conn, 40 struct sk_buff *skb, 41 u32 *_abort_code) 42 { 43 *_abort_code = RX_PROTOCOL_ERROR; 44 return -EPROTO; 45 } 46 47 static int none_verify_response(struct rxrpc_connection *conn, 48 struct sk_buff *skb, 49 u32 *_abort_code) 50 { 51 *_abort_code = RX_PROTOCOL_ERROR; 52 return -EPROTO; 53 } 54 55 static void none_clear(struct rxrpc_connection *conn) 56 { 57 } 58 59 static int none_init(void) 60 { 61 return 0; 62 } 63 64 static void none_exit(void) 65 { 66 } 67 68 /* 69 * RxRPC Kerberos-based security 70 */ 71 const struct rxrpc_security rxrpc_no_security = { 72 .name = "none", 73 .security_index = RXRPC_SECURITY_NONE, 74 .init = none_init, 75 .exit = none_exit, 76 .init_connection_security = none_init_connection_security, 77 .prime_packet_security = none_prime_packet_security, 78 .secure_packet = none_secure_packet, 79 .verify_packet = none_verify_packet, 80 .respond_to_challenge = none_respond_to_challenge, 81 .verify_response = none_verify_response, 82 .clear = none_clear, 83 }; 84