Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenSSL iOS swift:获取PEM_read_bio_PrivateKey nil_Ios_Swift_Encryption_Openssl - Fatal编程技术网

OpenSSL iOS swift:获取PEM_read_bio_PrivateKey nil

OpenSSL iOS swift:获取PEM_read_bio_PrivateKey nil,ios,swift,encryption,openssl,Ios,Swift,Encryption,Openssl,我正在ios swift中使用Openssl库,希望使用提供的@srsa解密加密的私钥。这里srsa是密码短语。PEM_read_bio_PrivateKey在这里得到零分。请检查下面的代码片段 "encrypted_private_key" : "-----BEGIN ENCRYPTED PRIVATE KEY-----\r\nMIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIysWhJMC/TvkCAggA\r\nM

我正在ios swift中使用Openssl库,希望使用提供的@srsa解密加密的私钥。这里srsa是密码短语。PEM_read_bio_PrivateKey在这里得到零分。请检查下面的代码片段

"encrypted_private_key" : "-----BEGIN ENCRYPTED PRIVATE KEY-----\r\nMIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIysWhJMC/TvkCAggA\r\nMB0GCWCGSAFlAwQBKgQQgttwCnv0IFah3/+zjXLYIQSCBNAtaLd4WOtNgQoI3Xpz\r\nKAQfdBrh0V25lRoaFZJ6BLD4UqD62zTT1TlGko9/XG5XAuONjwr9YOL0VWcdDyeD\r\nASzgUrmd5QN3mMuiVPld2rb2RSvgWSxUKA6yWguZTA2lh7hwFyVz4igjJ5zMlph7\r\n2cdbodDrTf+0K9orgRn3BV3UJyY70JZIr9Uj9DRfiBW8MByA6ChgEt25YrbOImol\r\nEVKQ1JoOxAI89EMpfKrN8h2ujf63674cviA5KxYwRaAdMVGr+C9ipMC/mk17THQl\r\nFj2+pYJRHdWl0vH72tAVsuYlDHNI55Yqg2+H6ZlStdlG0rybWAkCNIIwWsj86fo3\r\n/i/rDi/CFXhcHT2MpaznbPOoPn85nYGfHZHRlQUM61Ipp+Vg8ftI4ekI/dWiPjMv\r\nh2MRCa9pVJ4hjIkS3Z/7yEzRzA1Xj+qckJeFYstZXaAOvh80QxjE2bAn16F9AWCW\r\nMFHxH/Y3XPBci/kfwg4qYLQKVplnlRtPknqV+1JDj+1OPBWgjYeuWNzgxc4mJs0H\r\n+UeCMvFgDEUDZXMC+KsK7OCav2eTP9sjdkvjOT7RY0BIxaO9hqgilYcVPBtqRQPO\r\n7ctJIfzUOo/7abQpGillMTGXOIue1dEnXuoYCEPpEtxzKrQSGE8ORqxZogYaIuyI\r\nHC82fAlr9Aoo1dnBw3H2cdt56RnmZsASoj8/ZsNrcgaldBlyM4ImKt9vd28neNdy\r\n2jVVWjlXZYFTunpPhJrIHO2TeC9szg3cZ3NLZhP5nEz6WOsd1n5jify4LR2ici2e\r\nsUFWfPE1JtOXy4Yd1C5+mtg7I1bkROzZOxYC69aQBygggtp1nXavuq4ECrKk/gj7\r\nOsLkC0Jh91cj45lYwnt9SO8lSVwpFspQCwalG7cAyLVD3jeLH5nbs3fEP3BXE8in\r\ntSgTXFjbwyBD6nJ0cxKYMQ+yzr9dDQI55n1mKdyFgEWMBD2MWTEdXCBzreXBcYWD\r\ngDRarxKbQaWd9ANCT1Us1nBc08OvxQiLIo8dhDd/qcIx+kWS+o1Uxc0eY9HRYhX+\r\nYPmA0Jzf6dCxHPc+1+ib/wIGlhgA1xc/HkILy7k/Q5c7s5ogDuyNeFfncjlmidaW\r\nPqhHN+EhqIbmPbogiewXUovZ6OmSmAkG4x4ZO6qn9myWtSEwz70bDrKIA2sJWK/k\r\nFccmW5l5dHmSPKc7fLnA6U0wRgUoE/iiE7gl5ROjEevM/G9AZhjdiL+6/U8yYOwF\r\ntbB87qQUvI27UtSWoEE0LdVcmUDKlJN7Gw+Vkk/szueKFYCVBlJVcba0TrLYUq6H\r\nnQttGvyWKqysI/JHvd2QcHywufF90I0WYBCZ+JnHBchKfZNcfIFv38GemfeOwWu5\r\nadK+ivkHOjq3Q/WLCcegjvE5/ZqkG8RVZVZJ/4oH1bQPP5nVP7FJ7cMSx1ZszkD8\r\nuhc3FltRpS5238otTnO0WNbwmNbVYe/j6on4bvrzlzKq3CTe0Tn0HA31DXt7Rw2y\r\nIINtnOjgUQZRhsfdMT3NDsmhRgxFbmda4nmBatRqWt1WPKz8rwio3WWzFiOgE8DV\r\nLtx+DF9h7EpowL4IA3eusOtrOProizjyFZVvgsLbwFBNMckvmiwcq/V6iaN52ZxX\r\nNO9XbQrKd3VsrvPEE9YqyQAsHQ==\r\n-----END ENCRYPTED PRIVATE KEY-----\r\n"

"srsa" = "x8SBIvL/L0h3GUsVtYz8Mk69KwEe9ibZxw62UT0Vy5k4"

let beginning = "-----BEGIN ENCRYPTED PRIVATE KEY-----"
                        let tail = "-----END ENCRYPTED PRIVATE KEY-----"
                        let certificateString = encrypted_private_key.replacingOccurrences(of: beginning, with: "")
                                                           .replacingOccurrences(of: tail, with: "")
                                                           .replacingOccurrences(of: "\n", with: "")
                                                           .replacingOccurrences(of: " ", with: "")
                                                            .replacingOccurrences(of: "\r", with: "")

guard let data = Data(base64Encoded: certificateString!) else {
print("Unable to cast string to data")
    return nil }

let boi = BIO_new_mem_buf(data.bytes, Int32(data.count))
let passPhrase = UnsafeMutablePointer(mutating: (self.srsa as NSString).utf8String
let privateKey = PEM_read_bio_PrivateKey(boi, nil, nil, passPhrase)
在这里得到私钥零…请帮忙
提前感谢。

您粘贴的密钥未正确解析,您错过了转义的
\/
字符

这是更换后的钥匙:

MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIysWhJMC\/TvkCAggA
MB0GCWCGSAFlAwQBKgQQgttwCnv0IFah3\/+zjXLYIQSCBNAtaLd4WOtNgQoI3Xpz
KAQfdBrh0V25lRoaFZJ6BLD4UqD62zTT1TlGko9\/XG5XAuONjwr9YOL0VWcdDyeD
ASzgUrmd5QN3mMuiVPld2rb2RSvgWSxUKA6yWguZTA2lh7hwFyVz4igjJ5zMlph7
2cdbodDrTf+0K9orgRn3BV3UJyY70JZIr9Uj9DRfiBW8MByA6ChgEt25YrbOImol
EVKQ1JoOxAI89EMpfKrN8h2ujf63674cviA5KxYwRaAdMVGr+C9ipMC\/mk17THQl
Fj2+pYJRHdWl0vH72tAVsuYlDHNI55Yqg2+H6ZlStdlG0rybWAkCNIIwWsj86fo3
\/i\/rDi\/CFXhcHT2MpaznbPOoPn85nYGfHZHRlQUM61Ipp+Vg8ftI4ekI\/dWiPjMv
h2MRCa9pVJ4hjIkS3Z\/7yEzRzA1Xj+qckJeFYstZXaAOvh80QxjE2bAn16F9AWCW
MFHxH\/Y3XPBci\/kfwg4qYLQKVplnlRtPknqV+1JDj+1OPBWgjYeuWNzgxc4mJs0H
+UeCMvFgDEUDZXMC+KsK7OCav2eTP9sjdkvjOT7RY0BIxaO9hqgilYcVPBtqRQPO
7ctJIfzUOo\/7abQpGillMTGXOIue1dEnXuoYCEPpEtxzKrQSGE8ORqxZogYaIuyI
HC82fAlr9Aoo1dnBw3H2cdt56RnmZsASoj8\/ZsNrcgaldBlyM4ImKt9vd28neNdy
2jVVWjlXZYFTunpPhJrIHO2TeC9szg3cZ3NLZhP5nEz6WOsd1n5jify4LR2ici2e
sUFWfPE1JtOXy4Yd1C5+mtg7I1bkROzZOxYC69aQBygggtp1nXavuq4ECrKk\/gj7
OsLkC0Jh91cj45lYwnt9SO8lSVwpFspQCwalG7cAyLVD3jeLH5nbs3fEP3BXE8in
tSgTXFjbwyBD6nJ0cxKYMQ+yzr9dDQI55n1mKdyFgEWMBD2MWTEdXCBzreXBcYWD
gDRarxKbQaWd9ANCT1Us1nBc08OvxQiLIo8dhDd\/qcIx+kWS+o1Uxc0eY9HRYhX+
YPmA0Jzf6dCxHPc+1+ib\/wIGlhgA1xc\/HkILy7k\/Q5c7s5ogDuyNeFfncjlmidaW
PqhHN+EhqIbmPbogiewXUovZ6OmSmAkG4x4ZO6qn9myWtSEwz70bDrKIA2sJWK\/k
FccmW5l5dHmSPKc7fLnA6U0wRgUoE\/iiE7gl5ROjEevM\/G9AZhjdiL+6\/U8yYOwF
tbB87qQUvI27UtSWoEE0LdVcmUDKlJN7Gw+Vkk\/szueKFYCVBlJVcba0TrLYUq6H
nQttGvyWKqysI\/JHvd2QcHywufF90I0WYBCZ+JnHBchKfZNcfIFv38GemfeOwWu5
adK+ivkHOjq3Q\/WLCcegjvE5\/ZqkG8RVZVZJ\/4oH1bQPP5nVP7FJ7cMSx1ZszkD8
uhc3FltRpS5238otTnO0WNbwmNbVYe\/j6on4bvrzlzKq3CTe0Tn0HA31DXt7Rw2y
IINtnOjgUQZRhsfdMT3NDsmhRgxFbmda4nmBatRqWt1WPKz8rwio3WWzFiOgE8DV
Ltx+DF9h7EpowL4IA3eusOtrOProizjyFZVvgsLbwFBNMckvmiwcq\/V6iaN52ZxX
NO9XbQrKd3VsrvPEE9YqyQAsHQ==
请注意不均匀的填充,这是由于行长不均匀造成的,行长应始终为64个字符。这是固定键:

MIIFHzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQIysWhJMC/TvkCAggA
MB0GCWCGSAFlAwQBKgQQgttwCnv0IFah3/+zjXLYIQSCBNAtaLd4WOtNgQoI3Xpz
KAQfdBrh0V25lRoaFZJ6BLD4UqD62zTT1TlGko9/XG5XAuONjwr9YOL0VWcdDyeD
ASzgUrmd5QN3mMuiVPld2rb2RSvgWSxUKA6yWguZTA2lh7hwFyVz4igjJ5zMlph7
2cdbodDrTf+0K9orgRn3BV3UJyY70JZIr9Uj9DRfiBW8MByA6ChgEt25YrbOImol
EVKQ1JoOxAI89EMpfKrN8h2ujf63674cviA5KxYwRaAdMVGr+C9ipMC/mk17THQl
Fj2+pYJRHdWl0vH72tAVsuYlDHNI55Yqg2+H6ZlStdlG0rybWAkCNIIwWsj86fo3
/i/rDi/CFXhcHT2MpaznbPOoPn85nYGfHZHRlQUM61Ipp+Vg8ftI4ekI/dWiPjMv
h2MRCa9pVJ4hjIkS3Z/7yEzRzA1Xj+qckJeFYstZXaAOvh80QxjE2bAn16F9AWCW
MFHxH/Y3XPBci/kfwg4qYLQKVplnlRtPknqV+1JDj+1OPBWgjYeuWNzgxc4mJs0H
+UeCMvFgDEUDZXMC+KsK7OCav2eTP9sjdkvjOT7RY0BIxaO9hqgilYcVPBtqRQPO
7ctJIfzUOo/7abQpGillMTGXOIue1dEnXuoYCEPpEtxzKrQSGE8ORqxZogYaIuyI
HC82fAlr9Aoo1dnBw3H2cdt56RnmZsASoj8/ZsNrcgaldBlyM4ImKt9vd28neNdy
2jVVWjlXZYFTunpPhJrIHO2TeC9szg3cZ3NLZhP5nEz6WOsd1n5jify4LR2ici2e
sUFWfPE1JtOXy4Yd1C5+mtg7I1bkROzZOxYC69aQBygggtp1nXavuq4ECrKk/gj7
OsLkC0Jh91cj45lYwnt9SO8lSVwpFspQCwalG7cAyLVD3jeLH5nbs3fEP3BXE8in
tSgTXFjbwyBD6nJ0cxKYMQ+yzr9dDQI55n1mKdyFgEWMBD2MWTEdXCBzreXBcYWD
gDRarxKbQaWd9ANCT1Us1nBc08OvxQiLIo8dhDd/qcIx+kWS+o1Uxc0eY9HRYhX+
YPmA0Jzf6dCxHPc+1+ib/wIGlhgA1xc/HkILy7k/Q5c7s5ogDuyNeFfncjlmidaW
PqhHN+EhqIbmPbogiewXUovZ6OmSmAkG4x4ZO6qn9myWtSEwz70bDrKIA2sJWK/k
FccmW5l5dHmSPKc7fLnA6U0wRgUoE/iiE7gl5ROjEevM/G9AZhjdiL+6/U8yYOwF
tbB87qQUvI27UtSWoEE0LdVcmUDKlJN7Gw+Vkk/szueKFYCVBlJVcba0TrLYUq6H
nQttGvyWKqysI/JHvd2QcHywufF90I0WYBCZ+JnHBchKfZNcfIFv38GemfeOwWu5
adK+ivkHOjq3Q/WLCcegjvE5/ZqkG8RVZVZJ/4oH1bQPP5nVP7FJ7cMSx1ZszkD8
uhc3FltRpS5238otTnO0WNbwmNbVYe/j6on4bvrzlzKq3CTe0Tn0HA31DXt7Rw2y
IINtnOjgUQZRhsfdMT3NDsmhRgxFbmda4nmBatRqWt1WPKz8rwio3WWzFiOgE8DV
Ltx+DF9h7EpowL4IA3eusOtrOProizjyFZVvgsLbwFBNMckvmiwcq/V6iaN52ZxX
NO9XbQrKd3VsrvPEE9YqyQAsHQ==

另外,我希望这个私钥不是您计划用于生产或任何安全性的私钥,因为您愿意泄露密码。

我已经在帖子中更新了加密的密钥。打印副本时出错。您是否也用更新的密钥进行了检查?我不是来为你调试东西的,试着打印出密钥并检查它的格式是否正确,这是你最初犯的明显错误。是的,我检查了密钥,仍然得到相同的问题。。