STRUCT TIPC_CRYPTO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct tipc_crypto(9) πŸ’–

okay bestie, welcome to the Kernel API Manual β€” we're doing struct tipc_crypto, the TIPC TX/RX crypto structure, and honestly? she's a whole vibe. ✨


🌸 NAME 🌸

struct tipc_crypto β€” TIPC TX/RX crypto structure. no notes, that's literally her job description. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

okay so here's the full shape of her, so you know exactly what you're working with:

struct tipc_crypto {
    struct net *net;
    struct tipc_node *node;
    struct tipc_aead *aead[KEY_MAX + 1];
    atomic_t peer_rx_active;
    u16 key_gen;
    struct tipc_key key;
    u8 skey_mode;
    struct tipc_aead_key *skey;
    struct workqueue_struct *wq;
    struct delayed_work work;
  #define KEY_DISTR_SCHED         1;
  #define KEY_DISTR_COMPL         2;
    atomic_t key_distr;
    u32 rekeying_intv;
    struct tipc_crypto_stats __percpu *stats;
    char name[48];
    unsigned long timer1;
    unsigned long timer2;
    union {
      struct {
        u8 working:1;
        u8 key_master:1;
        u8 legacy_user:1;
        u8 nokey: 1;
      };
      u8 flags;
    };
    spinlock_t lock;
 };

like, look at that struct. she ate. πŸ”₯


πŸŽ€ MEMBERS πŸŽ€

okay now the main character energy part β€” every single member, explained, no skipping, periodt:

  • net β€” a struct net. that's the network namespace she's living in, bestie.
  • node β€” the TIPC node (RX). 🫢
  • aead β€” array of pointers to AEAD keys for encryption/decryption. the glow-up toolbox, lowkey.
  • peer_rx_active β€” replicated peer RX active key index. say that five times fast, i dare you. 😭
  • key_gen β€” TX/RX key generation.
  • key β€” the key states.
  • skey_mode β€” session key's mode.
  • skey β€” received session key.
  • wq β€” common workqueue on TX crypto. she's got a queue and she's got scheduling, iykyk.
  • work β€” delayed work sched for TX/RX.
  • key_distr β€” key distributing state.
  • rekeying_intv β€” rekeying interval (in minutes). yes, minutes, not seconds, don't come for me. ⏳
  • stats β€” the crypto statistics. numbers girlie. πŸ“Š
  • name β€” the crypto name.
  • timer1 β€” general timer 1 (jiffies).
  • timer2 β€” general timer 2 (jiffies). two timers, two moods. ⭐
  • {unnamed_union} β€” anonymous. she's mysterious. πŸ™ˆ
  • {unnamed_struct} β€” anonymous. also mysterious. double mystery.
  • working β€” the crypto is working or not. honestly same, some days.
  • key_master β€” flag indicates if master key exists. πŸ‘‘
  • legacy_user β€” flag indicates if a peer joins w/o master key (for bwd comp.). bwd comp. = backward compatibility, for the old-school crowd. πŸ’€
  • nokey β€” no key indication.
  • flags β€” combined flags field.
  • lock β€” tipc_key lock. πŸ”’ do not forget to lock her, fr fr.
ngl bestie, those two anonymous union/struct members are just vibing there unnamed β€” that's not a typo, that's literally how she's built.

🧚 SEE ALSO 🧚

Kernel file ./net/tipc/crypto.c, plus her whole friend group β€” every single one, because we don't leave anyone out:


and that's the page, bestie!! 🫢 she comes from the kernel source at ./net/tipc, dated October 2026, and honestly? iconic. go forth and encrypt responsibly. πŸŒˆπŸ’œπŸŽ€

πŸ“¦ where this page comes from