August 12, 2023

Format Private Key Into Valid Private Key

I’ve a private.key from another platform but its using invalid format private key file as below.

{\rtf1\ansi\ansicpg1252\cocoartf2709
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\partightenfactor0

\f0\fs24 \cf0 -----BEGIN PRIVATE KEY-----\
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAV01KaHzqe2Mf\
o+3SAUz54hUQQcKKyV7a4PH61ymaBMlWV3D2roDRZm0RdRw9WUTD0/KDrBLJR9hz\
sySLLzSxyiE7b9BvloRbKtbZFMjhChRgm4YBi+M4C1Q0dqPeeQgSMdb3yilCj55y\
8d1oCO3R4I521OSmAae+Qq5ClV9lh9TocYVV02/02g2vLD1w5xOIho6bimLoCQN5\
241c340tgvvStVPjnkLMCsKibg==\
-----END PRIVATE KEY-----\
\
}

To format it into valid private key, use the following script to convert it or format the file.

cleaned_key=$(sed 's/\\f0\\fs24 \\cf0//g' private.key | tr -d '\\')
start_marker="-----BEGIN PRIVATE KEY-----"
end_marker="-----END PRIVATE KEY-----"
private_key=$(echo "$cleaned_key" | sed -n "/$start_marker/,/$end_marker/p")

echo "$private_key"