include/keys/rxrpc-type.h
Source file repositories/reference/linux-study-clean/include/keys/rxrpc-type.h
File Facts
- System
- Linux kernel
- Corpus path
include/keys/rxrpc-type.h- Extension
.h- Size
- 3014 bytes
- Lines
- 113
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/key.hcrypto/krb5.h
Detected Declarations
struct rxkad_keystruct rxgk_keystruct rxrpc_key_tokenstruct rxrpc_key_data_v1function rxrpc_time64_to_u32function rxrpc_u32_to_time64
Annotated Snippet
struct rxkad_key {
u32 vice_id;
u32 start; /* time at which ticket starts */
u32 expiry; /* time at which ticket expires */
u32 kvno; /* key version number */
u8 primary_flag; /* T if key for primary cell for this user */
u16 ticket_len; /* length of ticket[] */
u8 session_key[8]; /* DES session key */
u8 ticket[]; /* the encrypted ticket */
};
/*
* RxRPC key for YFS-RxGK (type-6 security)
*/
struct rxgk_key {
s64 begintime; /* Time at which the ticket starts */
s64 endtime; /* Time at which the ticket ends */
u64 lifetime; /* Maximum lifespan of a connection (seconds) */
u64 bytelife; /* Maximum number of bytes on a connection */
unsigned int enctype; /* Encoding type */
s8 level; /* Negotiated security RXRPC_SECURITY_PLAIN/AUTH/ENCRYPT */
struct krb5_buffer key; /* Master key, K0 */
struct krb5_buffer ticket; /* Ticket to be passed to server */
u8 _key[]; /* Key storage */
};
/*
* list of tokens attached to an rxrpc key
*/
struct rxrpc_key_token {
u16 security_index; /* RxRPC header security index */
bool no_leak_key; /* Don't copy the key to userspace */
struct rxrpc_key_token *next; /* the next token in the list */
union {
struct rxkad_key *kad;
struct rxgk_key *rxgk;
};
};
/*
* structure of raw payloads passed to add_key() or instantiate key
*/
struct rxrpc_key_data_v1 {
u16 security_index;
u16 ticket_length;
u32 expiry; /* time_t */
u32 kvno;
u8 session_key[8];
u8 ticket[];
};
/*
* AF_RXRPC key payload derived from XDR format
* - based on openafs-1.4.10/src/auth/afs_token.xg
*/
#define AFSTOKEN_LENGTH_MAX 16384 /* max payload size */
#define AFSTOKEN_STRING_MAX 256 /* max small string length */
#define AFSTOKEN_DATA_MAX 64 /* max small data length */
#define AFSTOKEN_CELL_MAX 64 /* max cellname length */
#define AFSTOKEN_MAX 8 /* max tokens per payload */
#define AFSTOKEN_BDATALN_MAX 16384 /* max big data length */
#define AFSTOKEN_RK_TIX_MAX 12000 /* max RxKAD ticket size */
#define AFSTOKEN_GK_KEY_MAX 64 /* max GSSAPI key size */
#define AFSTOKEN_GK_TOKEN_MAX 16384 /* max GSSAPI token size */
/*
* Truncate a time64_t to the range from 1970 to 2106 as in the network
* protocol.
*/
static inline u32 rxrpc_time64_to_u32(time64_t time)
{
if (time < 0)
return 0;
if (time > UINT_MAX)
return UINT_MAX;
return (u32)time;
}
/*
* Extend u32 back to time64_t using the same 1970-2106 range.
*/
static inline time64_t rxrpc_u32_to_time64(u32 time)
{
return (time64_t)time;
}
#endif /* _KEYS_RXRPC_TYPE_H */
Annotation
- Immediate include surface: `linux/key.h`, `crypto/krb5.h`.
- Detected declarations: `struct rxkad_key`, `struct rxgk_key`, `struct rxrpc_key_token`, `struct rxrpc_key_data_v1`, `function rxrpc_time64_to_u32`, `function rxrpc_u32_to_time64`.
- Atlas domain: Repository Root And Misc / include.
- 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.