linux/net/rxrpc/insecure.c
<<
>>
Prefs
   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
  15static int none_init_connection_security(struct rxrpc_connection *conn)
  16{
  17        return 0;
  18}
  19
  20static int none_prime_packet_security(struct rxrpc_connection *conn)
  21{
  22        return 0;
  23}
  24
  25static int none_secure_packet(struct rxrpc_call *call,
  26                              struct sk_buff *skb,
  27                              size_t data_size,
  28                              void *sechdr)
  29{
  30        return 0;
  31}
  32
  33static int none_verify_packet(struct rxrpc_call *call, struct sk_buff *skb,
  34                              unsigned int offset, unsigned int len,
  35                              rxrpc_seq_t seq, u16 expected_cksum)
  36{
  37        return 0;
  38}
  39
  40static void none_locate_data(struct rxrpc_call *call, struct sk_buff *skb,
  41                             unsigned int *_offset, unsigned int *_len)
  42{
  43}
  44
  45static int none_respond_to_challenge(struct rxrpc_connection *conn,
  46                                     struct sk_buff *skb,
  47                                     u32 *_abort_code)
  48{
  49        struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
  50
  51        trace_rxrpc_rx_eproto(NULL, sp->hdr.serial,
  52                              tracepoint_string("chall_none"));
  53        return -EPROTO;
  54}
  55
  56static int none_verify_response(struct rxrpc_connection *conn,
  57                                struct sk_buff *skb,
  58                                u32 *_abort_code)
  59{
  60        struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
  61
  62        trace_rxrpc_rx_eproto(NULL, sp->hdr.serial,
  63                              tracepoint_string("resp_none"));
  64        return -EPROTO;
  65}
  66
  67static void none_clear(struct rxrpc_connection *conn)
  68{
  69}
  70
  71static int none_init(void)
  72{
  73        return 0;
  74}
  75
  76static void none_exit(void)
  77{
  78}
  79
  80/*
  81 * RxRPC Kerberos-based security
  82 */
  83const struct rxrpc_security rxrpc_no_security = {
  84        .name                           = "none",
  85        .security_index                 = RXRPC_SECURITY_NONE,
  86        .init                           = none_init,
  87        .exit                           = none_exit,
  88        .init_connection_security       = none_init_connection_security,
  89        .prime_packet_security          = none_prime_packet_security,
  90        .secure_packet                  = none_secure_packet,
  91        .verify_packet                  = none_verify_packet,
  92        .locate_data                    = none_locate_data,
  93        .respond_to_challenge           = none_respond_to_challenge,
  94        .verify_response                = none_verify_response,
  95        .clear                          = none_clear,
  96};
  97