Skip to main content

key-transform

Transforms an OpenPGP key to PKCS#8 and OpenSSH key format.

Supports RSA, ECDSA and ED25519 keys.

Installation

Install via pipx or uv tool

uv tool install key-transform
# OR
pipx install key-transform

Usage

# Lookup secret key(s) and note key fingerprint
gpg -K
~/.gnupg/pubring.kbx
-------------------------------------------------------------
sec   ed25519 2026-02-06 [SC]
      972ACF51A09C0259060CFA035432496985998071
uid           [ultimate] Test Key <test@example.com>
ssb   cv25519 2026-02-06 [E]
ssb   rsa3072 2026-02-06 [A]
ssb   ed25519 2026-02-06 [A]
ssb   nistp256 2026-02-06 [A]

# Export the key
gpg --export-secret-key 972ACF51A09C0259060CFA035432496985998071 > secret_key.gpg

# Transform the key, output will be PKCS#8 and OpenSSH format
key-transform transform secret_key.gpg

#################### PGP Private Key 3F745041AAFE4699CB6FB57F3E311D69E96ADFDD RSAEncryptOrSign 3072 ####################
# SSH Pubkey:
ssh-rsa AAAAB3NzaC1yc2[...]

# PKCS8 Private Key:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIHdTBfBgkqhkiG9w0BBQ0wUjAxBgkqhkiG9w0BBQwwJAQQmv1ATOwwehUv7yd6
[...]
Nu6faDf4tiJQCfrBP0OL8Rt4yJTSHk79IZe8tysYfYVc01jl119v3Cc=
-----END ENCRYPTED PRIVATE KEY-----

# OpenSSH Private Key:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABC4U2kyj10gkOYW
[...]
OxarmihrTQIcdQpD0Ts1NrV9A/eg3Pua+FRmuVVzfY+fT8bP5+ztIQ5SDmcxmDwNLGDY5vD6jcR0
q2Sf5Fl7k1uKj1QmPA==
-----END OPENSSH PRIVATE KEY-----

########################################################################################################################
############### PGP Private Key 82080A5C69729B254E767F10030959F32C2268B7 EdDSA EllipticCurveOID.Ed25519 ################
# SSH Pubkey:
ssh-ed25519 AAAAC3Nza[...]

# PKCS8 Private Key:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIGjMF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBB+N0mJLilE1jtYvYNO
[...]
FmvKKIRiopWgsjUIgcPLRyoDWLdzKg==
-----END ENCRYPTED PRIVATE KEY-----

# OpenSSH Private Key:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCUuri5leG0RFKe
[...]
K5+JAItSAMQnM9LV5g4PT6nn56VtsSaM3dF+PM0lSoeJDNkR/6pZ7LLyphCwKQ==
-----END OPENSSH PRIVATE KEY-----

########################################################################################################################
############## PGP Private Key 963E77E42934A3BD5EDB2139527CD0C853415507 ECDSA EllipticCurveOID.NIST_P256 ###############
# SSH Pubkey:
ecdsa-sha2-nistp256 AAAAE2VjZH[...]

# PKCS8 Private Key:
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIH0MF8GCSqGSIb3DQEFDTBSMDEGCSqGSIb3DQEFDDAkBBA1GnMpIItB3JYv51b9
[...]
PZn5p3E77Q==
-----END ENCRYPTED PRIVATE KEY-----

# OpenSSH Private Key:
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABCqT2tcZRsyufkT
[...]
bg==
-----END OPENSSH PRIVATE KEY-----

########################################################################################################################

Metadata

Release files for key-transform 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for key-transform 1.0.1
File Size Uploaded
key_transform-1.0.1.tar.gz 14.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for key-transform 1.0.1
File Interpreter ABI Platform
key_transform-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 19.4 kB

Release files / key_transform-1.0.1.tar.gz

Download URL key_transform-1.0.1.tar.gz
Size 14.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2c481042488288860776319ecf06af84be1df82106ddbf466f5d64fb6effbada
BLAKE2b-256 checksum
How to use checksums
aec84f1851cfb70079a58f7d3a25307a19a3a87222f3b5e44bb83f68f039571e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / key_transform-1.0.1-py3-none-any.whl

Download URL key_transform-1.0.1-py3-none-any.whl
Size 5.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ef81a4200e480ca88142644c56094782e88a1a81921f4db12532ea5cb1a2ff27
BLAKE2b-256 checksum
How to use checksums
48f53c318f21a76531b83f1b9a9ef30a43b40c0570b85cf389fb618bad5c0ec5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page