---
name: "padlock"
section: "4"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/padlock"
---

# padlock(4)

VIA and Zhaoxin CPU crypto driver

## NAME

**padlock** – VIA and Zhaoxin CPU crypto driver

## SYNOPSIS

To compile this driver into the kernel, place the following lines in your kernel configuration file:

**device crypto** **device padlock**

Alternatively, to load the driver as a module at boot time, place the following line in [loader.conf(5)](/loader.conf/5.md):

```
padlock_load="YES"
```

## DESCRIPTION

The C3 and Eden processor series from VIA include hardware acceleration for AES. The C7 series includes hardware acceleration for AES, SHA1, SHA256 and RSA. All of the above processor series include a hardware random number generator.

The **padlock** driver registers itself to accelerate AES operations and, if available, HMAC/SHA1 and HMAC/SHA256 for [crypto(4)](/crypto/4.md). It also registers itself to accelerate other HMAC algorithms, although there is no hardware acceleration for those algorithms. This is only needed so **padlock** can work with [ipsec(4)](/ipsec/4.md).

The hardware random number generator supplies data for the kernel [random(4)](/random/4.md) subsystem.

## HARDWARE

The **padlock** driver supports the AES, RNG, RSA, SHA-1, and SHA-2 engine found on:

- Via Technologies Nano X2, Nano, C7, C3, and Eden CPUs

- Some Zhaoxin CPUs

## SEE ALSO

[crypt(3)](/crypt/3.md), [crypto(4)](/crypto/4.md), [intro(4)](/intro/4.md), [ipsec(4)](/ipsec/4.md), [random(4)](/random/4.md), [crypto(7)](/crypto/7.md), [crypto(9)](/crypto/9.md)

## HISTORY

The **padlock** driver first appeared in OpenBSD. The first FreeBSD release to include it was FreeBSD 6.0.

## AUTHORS

The **padlock** driver with AES encryption support was written by Jason Wright ⟨*jason@OpenBSD.org*⟩. It was ported to FreeBSD and then extended to support SHA1 and SHA256 by Pawel Jakub Dawidek ⟨*pjd@FreeBSD.org*⟩. This manual page was written by Christian Brueffer ⟨*brueffer@FreeBSD.org*⟩.
