ipsec-eddsasigkey - Man Page

generate EDDSA signature key

Synopsis

ipsec eddsasigkey [--verbose] [--nssdir directory] [--nsspw password] [--seeddev device] [--seedbits bits]
[--hostname hostname] [curvename]

Description

eddsasigkey generates an EDDSA public/private key pair, suitable for digital signatures, on a named curve specified with curvename​. Currently it only accepts ed25519​.

The public exponent is forced to the value 3, which has important speed advantages for signature checking​. Beware that the resulting keys have known weaknesses as encryption keys and should not be used for that purpose​.

The --verbose option makes eddsasigkey give a running commentary on standard error​. By default, it works in silence until it is ready to generate output​.

The --seeddev option specifies a source for random bits used to seed the crypto library's RNG​. The default is /dev/random (see random(4))​. FreeS/WAN and Openswan without NSS support used this option to specify the random source used to directly create keys​. Libreswan only uses it to seed the NSS crypto libraries RNG​. Under Linux with hardware random support, special devices might show up as /dev/*rng* devices​. However, these should never be accessed directly using this option, as hardware failures could lead to extremely non-random values (streams of zeroes have been observed in the wild)

The --seedbits option specifies how many seed bits are pulled from the random device to seed the NSS PRNG​. The default of 480bit comes from FIPS requirements​. Seed bits are rounded up to a multiple of 8​.

The use of a different random device or a reduction of seedbits from the default value is prevented when the system is running in FIPS mode​.

The --nssdir option specifies the directory to use for the nss database​. This is the directory where the NSS certificate, key and security modules databases reside​. The default value is /var/lib/ipsec/nss​.

The --nsspw option specifies the nss cryptographic module authentication password if the NSS module has been configured to require it​. A password is required by hardware tokens and also by the internal software token module when configured to run in FIPS mode​. If the argument is /etc/ipsec.d/nsspassword, the password comes from that file; otherwise argument is the password​.

Examples

ipsec eddsasigkey --verbose ed25519

generates a ed25519-based key and stores this key in the NSS database​. The public key can then be extracted and edited into the ipsec​.conf (see ipsec-showhostkey(8))​.

Files

/dev/random, /dev/urandom

See Also

random(4), rngd(8), ipsec-showhostkey(8), Applied Cryptography, 2nd​. ed​., by Bruce Schneier, Wiley 1996, RFCs 2537, 2313, GNU MP, the GNU multiple precision arithmetic library, edition 2​.0​.2, by Torbj Granlund

History

Originally written for the Linux FreeS/WAN project <https://www​.freeswan​.org> by Henry Spencer​. Updated for the Libreswan Project by Paul Wouters​.

The --round and --noopt options were obsoleted as these were only used with the old non-library crypto code

The --random device is only used for seeding the crypto library, not for direct random to generate keys

Bugs

eddsasigkey's run time is difficult to predict, since /dev/random output can be arbitrarily delayed if the system's entropy pool is low on randomness, and the time taken by the search for primes is also somewhat unpredictable​. Specifically, embedded systems and most virtual machines are low on entropy​. In such a situation, consider generating the EDDSA key on another machine, and copying ipsec​.secrets and the /var/lib/ipsec/nss directory tree to the embedded platform​. Note that NSS embeds the full path in the DB files, so the path on proxy machine must be identical to the path on the destination machine​.

Author

Andrew Cagney, Daiki Ueno, Daniel Kahn Gillmor, D​. Hugh Redelmeier, Harald Jenny, Jose Quaresma, Michael Richardson, Paul Wouters, Simon Deziel, Tuomo Soini

Referenced By

ipsec(8).

08/25/2026 Libreswan 5.4 Executable programs