SAFE(4)

πŸ“¦
version 15.1 Β· 2 versions
, in freebsd 15.1

πŸ’– safe(4) β€” SafeNet SafeXcel 1141/1741 crypto accelerator πŸ’–

okay bestie, welcome to safe(4) from the Kernel Interfaces Manual β€” yes, the driver is literally named β€œsafe,” and no, that does not mean it’s a cozy little blanket. It’s a crypto accelerator situation. πŸ’…

πŸ“› NAME πŸ“›

safe β€” the SafeNet SafeXcel 1141/1741 crypto accelerator.

πŸ› οΈ SYNOPSIS πŸ› οΈ

To compile this driver into the kernel, put these lines in your kernel configuration file:

device crypto
device cryptodev
device safe

Alternatively, to load the driver as a module at boot time, put this line in loader.conf(5):

safe_load="YES"

And in sysctl.conf(5):

hw.safe.debug
hw.safe.dump
hw.safe.rnginterval
hw.safe.rngbufsize
hw.safe.rngmaxalarm

🚨 DEPRECATION NOTICE 🚨

The safe driver is deprecated and is scheduled for removal in FreeBSD 16.0. Sad but true, bestie. 😭

✨ DESCRIPTION ✨

The safe driver supports cards containing SafeNet crypto accelerator chips.

It registers itself to accelerate AES, SHA1-HMAC, and NULL operations for ipsec(4) and crypto(4). Slay. πŸ”₯

On all models, the driver registers itself to provide random data to the random(4) subsystem. Periodically the driver will poll the hardware RNG and retrieve data for use by the system. If the driver detects that the hardware RNG is resonating with any local signal, it will reset the oscillators that generate random data. Three sysctl(8) settings control this procedure:

  • hw.safe.rnginterval β€” specifies the time, in seconds, between polling operations.
  • hw.safe.rngbufsize β€” specifies the number of 32-bit words to retrieve on each poll.
  • hw.safe.rngmaxalarm β€” specifies the threshold for resetting the oscillators.

When the driver is compiled with SAFE_DEBUG defined, two sysctl(8) variables are provided for debugging purposes:

  • hw.safe.debug β€” can be set to a non-zero value to enable debugging messages to be sent to the console for each cryptographic operation.
  • hw.safe.dump β€” a write-only variable that can be used to force driver state to be sent to the console. Set this variable to ring to dump the current state of the descriptor ring, to dma to dump the hardware DMA registers, or to int to dump the hardware interrupt registers.

🧸 HARDWARE 🧸

The safe driver supports these SafeXcel chips:

  • SafeNet 1141 β€” the original chipset. Supports DES, Triple-DES, AES, MD5, and SHA-1 symmetric crypto operations, RNG, public key operations, and full IPsec packet processing.
  • SafeNet 1741 β€” a faster version of the 1141.

πŸ‘€ SEE ALSO πŸ‘€

crypt(3), crypto(4), intro(4), ipsec(4), random(4), crypto(7), crypto(9) β€” go read those too, bestie. πŸ“š

πŸ•°οΈ HISTORY πŸ•°οΈ

The safe driver first appeared in FreeBSD 5.2. It is deprecated in FreeBSD 15.0 and removed in FreeBSD 16.0. The timeline is giving β€œwe had a good run.” 😭

πŸ’€ BUGS πŸ’€

Public key support is not implemented. That’s it. That’s the bug. πŸ™ˆ


okay that’s the whole page! footer check: Debian, October 31, 2025, SAFE(4) β€” mwah πŸ’‹

πŸ“¦ where this page comes from
  • freebsd 15.1: base 15.1
  • πŸ“œ the page's license: BSD-2-Clause
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms