実現したいこと
Swiftで下記のページにある
Online RSA Key Generator
で生成されている 512bit:Public Keyの
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
で囲まれた文字列を出力したい。
試したこと
SwiftとOnline RSA Key Generatorとの違い
・最初の2文字は固定で、Swift上だと"ME"になっている。Online RSA Key Generatorでは"MF"
・文字数がSwift:100文字固定ですが、Online RSA Key Generator:128文字前後
Swift
1 override func viewDidLoad() { 2 super.viewDidLoad() 3 // Do any additional setup after loading the view, typically from a nib. 4 5 let keys = generateKeyPair() 6 var error: Unmanaged<CFError>? 7 if let cfdata = SecKeyCopyExternalRepresentation(keys.publicKey!, &error) { 8 let keyData:Data = cfdata as Data 9 let dataStr = keyData.base64EncodedString() 10 print("str = " + dataStr) 11 print("count = " + dataStr.count.description) 12 } 13 14 } 15 /** 16 * 公開鍵、秘密鍵生成 17 */ 18 func generateKeyPair() -> (publicKey: SecKey?, privateKey: SecKey?) { 19 20 // 鍵の形式を指定 21 let parameters: [String: Any] = [ 22 kSecAttrKeyType as String: kSecAttrKeyTypeRSA, 23 kSecAttrKeySizeInBits as String: 512 24 ] 25 26 // KeyPairを生成する 27 var publicKey: SecKey? 28 var privateKey: SecKey? 29 let osStatus = SecKeyGeneratePair(parameters as CFDictionary, 30 &publicKey, 31 &privateKey) 32 33 // 公開鍵と秘密鍵を返却する 34 switch osStatus { 35 case noErr: 36 return (publicKey, privateKey) 37 default: 38 return (nil, nil) 39 } 40 }
補足情報(FW/ツールのバージョンなど)
XCode 9.4.1
Swift4.1
以上です。
どんな些細な情報でも回答頂けたらと思います。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。