Skip to contents

The write_pem functions exports a key or certificate to the standard base64 PEM format. For private keys it is possible to set a password.

Usage

write_pem(x, path = NULL, password = NULL)

write_der(x, path = NULL)

write_pkcs1(x, path = NULL, password = NULL)

write_ssh(pubkey, path = NULL)

write_openssh_pem(key, path = NULL)

Arguments

x

a public/private key or certificate object

path

file to write to. If NULL it returns the output as a string.

password

string or callback function to set password (only applicable for private keys).

pubkey

a public key

key

a private key

Details

The pkcs1 format is the old legacy format used by OpenSSH. PKCS1 does not support the new ed25519 keys, for which you need write_openssh_pem. For non-ssh clients, we recommend to simply use write_pem to export keys and certs into the recommended formats.

Examples

# Generate RSA keypair
key <- rsa_keygen()
pubkey <- key$pubkey

# Write to output formats
write_ssh(pubkey)
#> [1] "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB437G5ImDaTXDLMxR7MErOIZ0Ysvm8BWPtT08KEE0olhErx+nx/5Ht9xnwpMC3UPxVhL5RLGmhikfR3riZPLNc4Old0TqIoXRWpOyJpTPpZroHdp+oySNUCwnc6p7/leVcTIvSEAAwjjdVmWok84MREan41pp0OEK/5TB3+hEj/cF79GND3LfIl/xrr4BMMv4GzVuUYyJeqzWWjee43k9RfQctpwc0DxCpWpjoy95DH0YkpcFOBRyfSl4T64zunT8w2+wmyhG96BB/kc/AYy8UzCX+T2YlYSlZMDhvCqHZ7pUXKWi7FroAjdS26LZtH6qAoWo9ir0fE55NAyV1XAz"
write_pem(pubkey)
#> [1] "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgeN+xuSJg2k1wyzMUezB\nKziGdGLL5vAVj7U9PChBNKJYRK8fp8f+R7fcZ8KTAt1D8VYS+USxpoYpH0d64mTy\nzXODpXdE6iKF0VqTsiaUz6Wa6B3afqMkjVAsJ3Oqe/5XlXEyL0hAAMI43VZlqJPO\nDERGp+NaadDhCv+Uwd/oRI/3Be/RjQ9y3yJf8a6+ATDL+Bs1blGMiXqs1lo3nuN5\nPUX0HLacHNA8QqVqY6MveQx9GJKXBTgUcn0peE+uM7p0/MNvsJsoRvegQf5HPwGM\nvFMwl/k9mJWEpWTA4bwqh2e6VFylouxa6AI3Utui2bR+qgKFqPYq9HxOeTQMldVw\nMwIDAQAB\n-----END PUBLIC KEY-----\n"
write_pem(key, password = "super secret")
#> [1] "-----BEGIN ENCRYPTED PRIVATE KEY-----\nMIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQIa6qu5Grd1QYCAggA\nMAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECGN4WxV1qmstBIIEyI9ZNss9sKkB\nn27zcXhSQGcC/d+aS516w/8YAC71qh4vwQNdbMPAXJXZ06qakhryJVhj3rPe1MWj\nfBAukER04HSM+TQwwnHcrWZPTgcLMCohOwaXOHi+68sZL+TIZbusqT3VVJzQpXH2\n7c8rnM0C2sWTMESBs97perSCvBsRoUuf9LMN6iCi6FLdCdZ+AV9xIDJyOYn5lJ0R\ntyxzVlD8/0HShGeaP9AaeIKiqgaTVC9zm1ZYBa1eYK5PNrKbDGydspHC6ufNgua3\nzeuUIbLtqfTSF71I1SarwTmdGVY9iaheoEnh2oHBvl/iaZzH7qswzzRtetdIOnSL\n3Y77CYs98y8h+s+zFQsBnPtXW2IrAbcXDnl4CiEyr53dqabzDYOYVDh4Flz99nn5\nVQhre5r+7J9xaWU1RBIK22dkPX7JmyUHc9+Bl3BJeJKfTOEgKXrKdvB4vOOC+em+\nYgyKBAVTXLNaEKK8ZcSA7WcrvTpgs0ZOSAJMMkgDvsgD6bzz/b2Goo+PFfN/xvl/\np973AH9Uzthjjj/WYiecsZpB3S7CZmhlKtIkZzLec6xgmTXkUVJCNJ1hxkg47WYC\nQCnJIcaMZoh/vGOkL5E3NM325qSuJMEYToG08fDKAI6jejUrcRkCToD/B3EUxVWM\nbryHLELznl7v+pZd1Z866D0vgcdgOflCoaYL9+fmFtWmQKUnV8GgFlEIPj1o8Cl/\nhnWv0+2t+0kYEsBtWzJ2EiV3OB9Vfh+cpLW/HXmrZb5riHB+nb+oh6oXZ7v3qnC0\nxEtlGUBo0hPu/s4edy1W6a0lma41TSQpfwBwQzCKu+WqkFWyW1TjcjrcNN37HVd0\nj3OGToPb/dMupK6KtOZVqibmTricd3v9dXNamMTZmko5RgdcE9sVwJxT2g1RT1ov\n3UkRBZp38u9BCLh4ttN4btMfeoEECowELDlu0uyodfHyGqJM7JG7mxNoIH5qbS8u\ny1roBZyHuqHvUlKav1Hq9bptlR0y1OAwdLeYdwOYrUgW72+NZXfKKzWHpjksOb2T\n3FSOkCE1A1Vb2ZleLjQCaGB/n0Bw6FBuO0Uwh+mSuXP+nyodPmmHVmsw6KXcgxNX\nl4YKhKz5+uvnEsmK0mRHHDKpIAVt4el1om7LoCXTm4kQmar6gciuZ091MlAcARGS\nNp+ICE5+fhMaIZtBDyqZthBCANHBN6Tf05RNqiZHlCAMYZ3w0Gu7AQxgsPAqr0SN\ndZK4UBlGisYNhGsd1cSwMl9UoLCbzLSW1RhM4tEElwGgxmxlPZgilHdgJMTDMS4f\n54ag3ASGuRl6p1sDVi/UnIBEwjmNGpRu397/OOSso3TRESf5n86XZkpiYiGN1KF/\nGsTMyGxE5eixsoTMDcUW56cOOU3A+DqHwG36awzpHP+sBn5xogkntfwCTK0Xw+j0\nfRhiNfmbV7YCyf2K8s8KcjnWyKI0/S/2S6xfjQ5vgCHa4bStghzP/Ard4PYWJdqe\nsEEtMahCFfkNcIwcy32p+VE8Iz40ln8+XFlKOMxgzvf2lhanpBZ7o54XKM8fQK2Y\n9pAkT1GKLRW4P/I4pb7detRFn8Qy05F63g2crkmse5hrpskodhHjAtxGm3F1T6wu\nCZYMWtVokg3Vfmb6MDiATA==\n-----END ENCRYPTED PRIVATE KEY-----\n"