IPSEC-EDDSASIGKEY(8)

๐Ÿ“ฆ
version 5.4.1 ยท 3 versions
, in fedora 43, fedora 44

๐ŸŽ€ IPSEC-EDDSASIGKEY ๐ŸŽ€

okay so bestie, welcome to ipsec-eddsasigkey ๐Ÿ’– โ€” it lives in the Executable programs corner of the Libreswan man pages (section 8, periodt). Sit down, hydrate, we're making you a key. ๐Ÿฆ‹


๐ŸŒธ NAME ๐ŸŒธ

ipsec-eddsasigkey โ€” generate an 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. That's the whole menu, no cap. โœจ

The public exponent is forced to the value 3, which has important speed advantages for signature checking. ๐ŸŽ๏ธ

โš ๏ธ But beware bestie: the resulting keys have known weaknesses as encryption keys and should not be used for that purpose. Like, not even a little. Encryption is NOT their moment. ๐Ÿ™ˆ

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. ๐Ÿคซ (silent main character energy, honestly)

Now, every option, one by one, because I would never gatekeep:

  • --verbose โ€” live commentary on standard error, like a group chat update for your keygen. Default behavior is total silence until it's ready to drop output. ๐ŸŽค
  • --seeddev device โ€” specifies a source for random bits used to seed the crypto library's RNG. The default is /dev/random (see random(4)). ๐Ÿ‘‘

Lore time ๐Ÿ“–: 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. ๐Ÿ’€ fr fr, streams of zeroes. in the wild. not the vibe.
  • --seedbits bits โ€” 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. ๐Ÿงฎ

FIPS mode check ๐Ÿšท: 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.

  • --nssdir directory โ€” 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. ๐Ÿ—‚๏ธ
  • --nsspw password โ€” specifies the nss cryptographic module authentication password, but only 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. ๐Ÿ”
  • --hostname hostname โ€” it's sitting right there in the synopsis up top ๐Ÿ‘† and this page doesn't spill any more tea than that, so that's genuinely all we've got. ๐Ÿซถ
  • curvename โ€” the positional arg, the named curve you're signing on. Currently only ed25519 is accepted. ๐Ÿ’…

๐ŸŒˆ 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)). โœจ ate.


๐Ÿ—‚๏ธ 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. ๐Ÿ’– iconic lineage tbh.

  • The --round and --noopt options were obsoleted as these were only used with the old non-library crypto code. ๐Ÿชฆ rip
  • 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. ๐Ÿ˜ญ yeah. it just vibes at its own pace.

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. No shortcuts bestie, paths have to match exactly. ๐Ÿซ 

๐Ÿ’œ AUTHOR ๐Ÿ’œ

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


okay that's the whole page, you're officially caught up ๐Ÿ’… this one's from Libreswan 5.4.1, dated 10/23/2026 โ€” go make some iconic signatures bestie, and remember: encryption is not the assignment here ๐ŸŽ€๐Ÿ’–โœจ

๐Ÿ“ฆ where this page comes from