net/rxrpc/insecure.c
Source file repositories/reference/linux-study-clean/net/rxrpc/insecure.c
File Facts
- System
- Linux kernel
- Corpus path
net/rxrpc/insecure.c- Extension
.c- Size
- 2293 bytes
- Lines
- 95
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: implementation source
- Status
- source implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
net/af_rxrpc.har-internal.h
Detected Declarations
function Copyrightfunction none_secure_packetfunction none_verify_packetfunction none_free_call_cryptofunction none_sendmsg_respond_to_challengefunction none_verify_responsefunction none_clearfunction none_exit
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0-or-later
/* Null security operations.
*
* Copyright (C) 2016 Red Hat, Inc. All Rights Reserved.
* Written by David Howells (dhowells@redhat.com)
*/
#include <net/af_rxrpc.h>
#include "ar-internal.h"
static int none_init_connection_security(struct rxrpc_connection *conn,
struct rxrpc_key_token *token)
{
return 0;
}
/*
* Allocate an appropriately sized buffer for the amount of data remaining.
*/
static struct rxrpc_txbuf *none_alloc_txbuf(struct rxrpc_call *call, size_t remain, gfp_t gfp)
{
return rxrpc_alloc_data_txbuf(call, umin(remain, RXRPC_JUMBO_DATALEN), 1, gfp);
}
static int none_secure_packet(struct rxrpc_call *call, struct rxrpc_txbuf *txb)
{
txb->pkt_len = txb->len;
if (txb->len == RXRPC_JUMBO_DATALEN)
txb->jumboable = true;
return 0;
}
static int none_verify_packet(struct rxrpc_call *call, struct sk_buff *skb)
{
return 0;
}
static void none_free_call_crypto(struct rxrpc_call *call)
{
}
static bool none_validate_challenge(struct rxrpc_connection *conn,
struct sk_buff *skb)
{
rxrpc_abort_conn(conn, skb, RX_PROTOCOL_ERROR, -EPROTO,
rxrpc_eproto_rxnull_challenge);
return true;
}
static int none_sendmsg_respond_to_challenge(struct sk_buff *challenge,
struct msghdr *msg)
{
return -EINVAL;
}
static int none_verify_response(struct rxrpc_connection *conn,
struct sk_buff *response_skb,
void *response, unsigned int len)
{
return rxrpc_abort_conn(conn, response_skb, RX_PROTOCOL_ERROR, -EPROTO,
rxrpc_eproto_rxnull_response);
}
static void none_clear(struct rxrpc_connection *conn)
{
}
static int none_init(void)
{
return 0;
}
static void none_exit(void)
{
}
/*
* RxRPC Kerberos-based security
*/
const struct rxrpc_security rxrpc_no_security = {
.name = "none",
.security_index = RXRPC_SECURITY_NONE,
.init = none_init,
.exit = none_exit,
.init_connection_security = none_init_connection_security,
.free_call_crypto = none_free_call_crypto,
.alloc_txbuf = none_alloc_txbuf,
.secure_packet = none_secure_packet,
.verify_packet = none_verify_packet,
.validate_challenge = none_validate_challenge,
Annotation
- Immediate include surface: `net/af_rxrpc.h`, `ar-internal.h`.
- Detected declarations: `function Copyright`, `function none_secure_packet`, `function none_verify_packet`, `function none_free_call_crypto`, `function none_sendmsg_respond_to_challenge`, `function none_verify_response`, `function none_clear`, `function none_exit`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.