Generate an OpenPGP v6 signing key with ML-DSA-65/Ed25519 hybrid cipher suite using sequoia-pgp.
Before you begin
You have accessed the automation hub API container and are running commands as the root user inside the temporary container.
About this task
The sequoia-pgp key generation process creates both a private signing key and its matching public certificate. The key is configured for signing only and uses quantum-resistant algorithms.
Procedure
-
Generate the PQC signing key and initialize the sequoia keystore.
-
Create the key with password protection (recommended for production):
sq key generate \
--new-password-file /run/secrets/$SQ_SECRET \
--cannot-encrypt \
--cannot-authenticate \
--home /var/lib/pulp/certs/sequoia \
--profile rfc9580 \
--cipher-suite mldsa65-ed25519 \
--own-key \
--name "Alice Smith" \
--email "<your-email>@example.com"
Replace Alice Smith and <your-email>@example.com with your actual user ID and email address.
-
Create the key without password protection (for testing only):
sq key generate \
--cannot-encrypt \
--cannot-authenticate \
--home /var/lib/pulp/certs/sequoia \
--profile rfc9580 \
--cipher-suite mldsa65-ed25519 \
--own-key \
--name "Alice Smith" \
--email "<your-email>@example.com"
Replace Alice Smith and <your-email>@example.com with your actual user ID and email address.
Key parameter descriptions:
--cannot-encrypt, --cannot-authenticate: Create a signing-only key by removing encryption and authentication capabilities.
--profile rfc9580, --cipher-suite mldsa65-ed25519: Configure Post-Quantum Cryptography signature algorithm using OpenPGP v6 standard.
--own-key: Mark the key as trusted in the Sequoia local keystore.
--new-password-file: Specify password file location for password-protected keys.
-
If you created a password-protected key, copy the password file to the Pulp volume.
cp /run/secrets/$SQ_SECRET /var/lib/pulp/certs/$SQ_SECRET
-
Verify the key was created successfully.
sq cert list --home /var/lib/pulp/certs/sequoia <your-email>
Replace <your-email> with the email address you used when generating the key.
-
Copy the key fingerprint from the output and export it as an environment variable.
export FINGERPRINT="<your-key-fingerprint>"
Replace <your-key-fingerprint> with the actual fingerprint displayed in the previous command output.
Results
You have generated a PQC signing key and stored its fingerprint for use in subsequent configuration steps.
What to do next
Export the public key certificate for distribution to systems that will verify signatures.