PKCS#1 ⇄ PKCS#8, SPKI ⇄ PKCS#1 public, PEM ⇄ DER — exactly what openssl pkcs8 -topk8 does, as an API. By formatho.com.
Free, no signup, runs entirely in your browser — your data never leaves your device.
curl -G "https://key-format-converter-formatho.filesformatho.workers.dev/api" \ --data-urlencode "key=-----BEGIN RSA PRIVATE KEY----- ... your key ...-----END RSA PRIVATE KEY-----" \ --data-urlencode "to=pkcs8"
Response (excerpt):
{
"input": { "format": "pkcs1", "bits": 2048 },
"converted": { "format": "pkcs8", "bits": 2048 },
"pem": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----",
"round_trip_ok": true
}
| to= | input | output label |
|---|---|---|
| pkcs8 | PKCS#1 private (BEGIN RSA PRIVATE KEY) | BEGIN PRIVATE KEY |
| pkcs1 | PKCS#8 private (BEGIN PRIVATE KEY) | BEGIN RSA PRIVATE KEY |
| spki | PKCS#1 public (BEGIN RSA PUBLIC KEY) | BEGIN PUBLIC KEY |
| pkcs1-public | SPKI public (BEGIN PUBLIC KEY) | BEGIN RSA PUBLIC KEY |
| der | any of the above | base64 DER bytes |
genrsa produces PKCS#1round_trip_ok: true) before it is returned