Как разобрать закрытый ключ сертификата в Go - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь проанализировать файл .key и получить незашифрованный ключ, в основном при попытке повторить следующую команду в go.

Сертификат и его ключ генерируются SAT в Мехико .

openssl pkcs8 -inform DER -in 'CSD01_AAA010101AAA.key' -passin pass: 12345678a -out 'CSD01_AAA010101AAA.key.pem

Я пробовал две вещи

Первый:

kf, err := ioutil.ReadFile(keyFile)
if err != nil {
    return err
}
pk, err :=x509.ParsePKCS1PrivateKey(kf)
if err != nil {
    return err
}

Возвращает следующую ошибку: asn1: structure error: tags don't match (2 vs {class:0 tag:16 length:64 isCompound:true}) {optional:false explicit:false application:false private:false defaultValue:<nil> tag:<nil> stringType:0 timeType:0 set:false omitEmpty:false} int @2

Секунда

block, rest := pem.Decode(kf)

Но возвращаемый блок равен nil.

Вот файл .key в base64 base64.StdEncoding.EncodeToString(kf):

MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS+AgEAMASCBMh8HGnnIFjXUZksmWc3tPtUuDpGANn4wJIH+lpSwoTTpH0pm/oovBWkov2kmKIkVApNlpvACDAsEisCxKunyxGS7WKrguSXRMIpDOdAhMrs2qGKXml9y+BxCycUitTrKb8BQ6MiyqZGTjYv+QKhWFwgrk9WG9MVciabhhZFK0io9AXFxVt3JcZTpS4iaK2AM2MQ79Oct/S90RBwR/h93rDjmrfpXgPRX6Crzghsh2OIR0lkpubH5VK+AhqxaoMh9fgpgnJYL+DxMOBn+HIVAjnfySOjMmsWX/XwOZAKlixI09LYhwIGwgFAXO5LVUIQJR1CnbzfU76TyRslThdODSlVEAgw3b8BDaQWpPpg4zuWJxJlFep8LWuclMdOhaCGA/34BjKm03+ApT0s6uXX6EpaTEvTko7t41ugpbwE/6XQjMt4xmRNCFjcGU7J8FEwEfIMbZb03Da5t0LVsTBEYuzehS3t2pLY8JRaaMjoNEovi6m4PVLp7T3BKtAvZHB3sE4ad9brhV5Ld1+JMbZCXpCvVlutgPhEZZAaVU3S3FZZ6QfJ+hgEygqYg29Mk3LGBwvptw9xHeS2Ffl1taKpHU2FuSscicvWHId9tHdfyWrWs2tZrXmZqdDl+Xzn/S3ioAyjLnVewMb29W1p8CIfZJ3//PTYopb8k1O/J8NXPfsBdpJiYz0ykLkYs2B8ls1dz/SP8D070p3ffBBvLVg9maLgbfg9clnYeUbMEUtmfJFjvymeN4U0Uy8/O74b/nfFQcNhY2I0Ni5a4rp9VhXMhsWBHuurQzjxCAPxXJFiXO8EusniN5U0bHI6tvgL+hXf8sYbQ4ZOoaLUgswsvHfqyPmJSQlHpNTroRJwpVIPkBSI0/hLdhpAtT2Rmxx5J3fnQV2jprfJHP+8Q/PCo/g4LNBb0BRbFccQKo8WOVMHJ/ePlhOS+Xj6ZEgM4Y349EFzJWixmBTrzhYwzn1h2VSJcBv1W0cqWDERdtS7KgATO1zlzk8kb4CZDGM1s3n0FOvFYx1wb6UT2LHxWS4tVpxSVc/gvvZVpcqjNg6mbn0twDCXct0mT/0aiEEimnbpk3sX0xvWazG1lKddXmtrWPlf89LdRetboKSXkLYqLQZSbsO4WejCIiogUCdEWdk/F+LFAVXQwABsJx8P8DGRXPwkZIi2i18NFSl+R3vsxapi7ymRitrkSO14hjj/zq5XJNUordn68hbYr1gdOA1k9hJMJFoOnl3ch986VUKCHkUDJBoSnIphC34+geVwe0sM7mNWfVBmI0cpOL+/AMLG2wRRH4EGA83XJUC6elHQ/Koe9ujRSdsKmbs3hawAZ0fLdxhca864taCM9p69KR2d61GlJwNSSiuqhZyNoYax2CNg5vs5RDiZWAsUSg7HMjoGfJpr7k64XPjMePQsYm9GsCtSg2Qvc0PlEswFPod3UHVg97K6v7rySyh5p8PI8PHOFiRm7lsApkrysa82Htx+HMZIkAkgURZAL6sBReX13QaTVZx5f39SMEKTa2XKH7zvJmwHJpj7zu8sad4X3rzKIjhYteh3oGkSFmH6OXTrz4tamA4i1qrlCoiNnHkdrdvgLzmKBN3jzJqzdV8wlZW22XVbWG+8aHvx9g8oNQ0=

А вот .cert в base64

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...