cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

insecure.c (2437B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/* Null security operations.
      3 *
      4 * Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
      5 * Written by David Howells (dhowells@redhat.com)
      6 */
      7
      8#include <net/af_rxrpc.h>
      9#include "ar-internal.h"
     10
     11static int none_init_connection_security(struct rxrpc_connection *conn,
     12					 struct rxrpc_key_token *token)
     13{
     14	return 0;
     15}
     16
     17/*
     18 * Work out how much data we can put in an unsecured packet.
     19 */
     20static int none_how_much_data(struct rxrpc_call *call, size_t remain,
     21			       size_t *_buf_size, size_t *_data_size, size_t *_offset)
     22{
     23	*_buf_size = *_data_size = min_t(size_t, remain, RXRPC_JUMBO_DATALEN);
     24	*_offset = 0;
     25	return 0;
     26}
     27
     28static int none_secure_packet(struct rxrpc_call *call, struct sk_buff *skb,
     29			      size_t data_size)
     30{
     31	return 0;
     32}
     33
     34static int none_verify_packet(struct rxrpc_call *call, struct sk_buff *skb,
     35			      unsigned int offset, unsigned int len,
     36			      rxrpc_seq_t seq, u16 expected_cksum)
     37{
     38	return 0;
     39}
     40
     41static void none_free_call_crypto(struct rxrpc_call *call)
     42{
     43}
     44
     45static void none_locate_data(struct rxrpc_call *call, struct sk_buff *skb,
     46			     unsigned int *_offset, unsigned int *_len)
     47{
     48}
     49
     50static int none_respond_to_challenge(struct rxrpc_connection *conn,
     51				     struct sk_buff *skb,
     52				     u32 *_abort_code)
     53{
     54	struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
     55
     56	trace_rxrpc_rx_eproto(NULL, sp->hdr.serial,
     57			      tracepoint_string("chall_none"));
     58	return -EPROTO;
     59}
     60
     61static int none_verify_response(struct rxrpc_connection *conn,
     62				struct sk_buff *skb,
     63				u32 *_abort_code)
     64{
     65	struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
     66
     67	trace_rxrpc_rx_eproto(NULL, sp->hdr.serial,
     68			      tracepoint_string("resp_none"));
     69	return -EPROTO;
     70}
     71
     72static void none_clear(struct rxrpc_connection *conn)
     73{
     74}
     75
     76static int none_init(void)
     77{
     78	return 0;
     79}
     80
     81static void none_exit(void)
     82{
     83}
     84
     85/*
     86 * RxRPC Kerberos-based security
     87 */
     88const struct rxrpc_security rxrpc_no_security = {
     89	.name				= "none",
     90	.security_index			= RXRPC_SECURITY_NONE,
     91	.init				= none_init,
     92	.exit				= none_exit,
     93	.init_connection_security	= none_init_connection_security,
     94	.free_call_crypto		= none_free_call_crypto,
     95	.how_much_data			= none_how_much_data,
     96	.secure_packet			= none_secure_packet,
     97	.verify_packet			= none_verify_packet,
     98	.locate_data			= none_locate_data,
     99	.respond_to_challenge		= none_respond_to_challenge,
    100	.verify_response		= none_verify_response,
    101	.clear				= none_clear,
    102};