OPENSSL-SPKAC(1ossl)

๐Ÿ“ฆ version 3.5.0, in opensuse-leap 16.0

โœจ NAME โœจ

okay bestie, welcome to openssl-spkac(1ossl) โ€” the SPKAC printing and generating command, and she is literally here to handle your Netscape signed public key and challenge files ๐Ÿ’…


๐Ÿซถ SYNOPSIS ๐Ÿซถ

       openssl spkac [-help] [-in filename] [-out filename] [-digest digest]
       [-key filename|uri] [-keyform DER|PEM|P12|ENGINE] [-passin arg]
       [-challenge string] [-pubkey] [-spkac spkacname] [-spksect section]
       [-noout] [-verify] [-engine id] [-provider name] [-provider-path path]
       [-provparam [name:]key=value] [-propquery propq]

๐ŸŒธ DESCRIPTION ๐ŸŒธ

This command processes Netscape signed public key and challenge (SPKAC) files. It can print out their contents, verify the signature and produce its own SPKACs from a supplied private key. No cap, she does all three. ๐Ÿ’–


๐Ÿ’… OPTIONS ๐Ÿ’…

  • -help โ€” prints out a usage message. Helpful queen behavior. โœจ
  • -in filename โ€” specifies the input filename to read from, or standard input if this option is not specified. Ignored if the -key option is used. Okay? Periodt.
  • -out filename โ€” specifies the output filename to write to, or standard output by default. Classic stdout slay. ๐ŸŽ€
  • -digest digest โ€” use the specified digest to sign a created SPKAC file. The default digest algorithm is MD5. Yes, MD5 is the default โ€” thatโ€™s what the page says, bestie.
  • -key filename|uri โ€” create an SPKAC file using the private key specified by filename or uri. The -in, -noout, -spksect and -verify options are ignored if present. She said what she said. ๐Ÿ’€
  • -keyform DER|PEM|P12|ENGINE โ€” the key format; unspecified by default. See openssl-format-options(1) for details. Format tea goes here.
  • -passin arg โ€” the input file password source. For more information about the format of arg, see openssl-passphrase-options(1). Password lore unlocked. ๐Ÿ”‘
  • -challenge string โ€” specifies the challenge string if an SPKAC is being created. Hello, challenge string moment. ๐ŸŒˆ
  • -spkac spkacname โ€” allows an alternative name for the variable containing the SPKAC. The default is "SPKAC". This option affects both generated and input SPKAC files. Default is not mysterious, itโ€™s literally right there. ๐Ÿ‘‘
  • -spksect section โ€” allows an alternative name for the section containing the SPKAC. The default is the default section. Very โ€œthe default is the defaultโ€ of her. โœจ
  • -noout โ€” donโ€™t output the text version of the SPKAC (not used if an SPKAC is being created). No text dump when youโ€™re busy birthing an SPKAC. ๐Ÿฆ‹
  • -pubkey โ€” output the public key of an SPKAC (not used if an SPKAC is being created). Public key reveal, but only when it applies. ๐Ÿ”ฅ
  • -verify โ€” verifies the digital signature on the supplied SPKAC. Vibe check, but cryptographic. โœ…
  • -engine id โ€” see โ€œEngine Optionsโ€ in openssl(1). This option is deprecated. Deprecated, bestie โ€” sheโ€™s giving legacy energy. ๐Ÿ’€
  • -provider name โ€” see โ€œProvider Optionsโ€ in openssl(1), provider(7), and property(7). Provider options section says hi.
  • -provider-path path โ€” see โ€œProvider Optionsโ€ in openssl(1), provider(7), and property(7). Path to the provider tea.
  • -provparam [name:]key=value โ€” see โ€œProvider Optionsโ€ in openssl(1), provider(7), and property(7). Params, but make it provider.
  • -propquery propq โ€” see โ€œProvider Optionsโ€ in openssl(1), provider(7), and property(7). Property query, iconic as always.

๐Ÿฆ‹ EXAMPLES ๐Ÿฆ‹

Print out the contents of an SPKAC:

openssl spkac -in spkac.cnf

Verify the signature of an SPKAC:

openssl spkac -in spkac.cnf -noout -verify

Create an SPKAC using the challenge string "hello":

openssl spkac -key key.pem -challenge hello -out spkac.cnf

Example of an SPKAC, (long lines split up for clarity):

SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA\
1cCoq2Wa3Ixs47uI7FPVwHVIPDx5yso105Y6zpozam135a\
8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03uPFoQIDAQAB\
FgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJ\
h1bEIYuc2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnD\
dq+NQ3F+X4deMx9AaEglZtULwV4=

๐Ÿงš NOTES ๐Ÿงš

A created SPKAC with suitable DN components appended can be fed to openssl-ca(1). Like, add the right DN bits and send her to CA land. ๐Ÿ’–

SPKACs are typically generated by Netscape when a form is submitted containing the KEYGEN tag as part of the certificate enrollment process. Netscape lore, no cap.

The challenge string permits a primitive form of proof of possession of private key. By checking the SPKAC signature and a random challenge string some guarantee is given that the user knows the private key corresponding to the public key being certified. This is important in some applications. Without this it is possible for a previous SPKAC to be used in a โ€œreplay attackโ€. Replay attack warning โ€” do not ignore, bestie. ๐Ÿ˜ญ


โญ SEE ALSO โญ

openssl(1), openssl-ca(1)


๐ŸŒˆ HISTORY ๐ŸŒˆ

The -engine option was deprecated in OpenSSL 3.0. Legacy era.

The -digest option was added in OpenSSL 3.0. New-ish queen behavior. โœจ


Copyright 2000-2021 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the โ€œLicenseโ€). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>. Legal text stays legal text, but make it cute. ๐Ÿซถ


This lil page is from OpenSSL 3.5.0, dated 2026-09-25 โ€” mwah, go slay some SPKACs ๐Ÿ’‹

๐Ÿ“ฆ where this page comes from