実現したいこと
Swiftで生成されるRSA512公開鍵のbyte数を94byteにしたい。
発生している問題
Android側で生成されたRSA512公開鍵のbyte数は94byteで一致していません。
iOS(Swift)側は74byteになっています。
下記サイトを見ると94byteが正しいのではと推測しています。
鍵生成アルゴリズムと強度ごとの公開鍵の長さ
公開鍵、証明書関連の知識が乏しくて、基礎的な間違いをしているかもしれませんが
何卒、よろしくお願い致します。
Swift
1 // 呼び出し処理 2 let keys = generateKeyPair() 3 var error: Unmanaged<CFError>? 4 if let cfdata = SecKeyCopyExternalRepresentation(keys.publicKey!, &error) { 5 let keyData:Data = cfdata as Data 6 let publicKeyArray = [UInt8](keyData) 7 // ここで74が表示されてしまう。 8 print("byte数 " + publicKeyArray.count.description) 9 } 10 11 /** 12 * 公開鍵、秘密鍵生成 13 */ 14 func generateKeyPair() -> (publicKey: SecKey?, privateKey: SecKey?) { 15 // 鍵の形式を指定 16 let parameters: [String: Any] = [ 17 kSecAttrKeyType as String: kSecAttrKeyTypeRSA, 18 kSecAttrKeySizeInBits as String: 512 19 ] 20 21 // KeyPairを生成する 22 var publicKey: SecKey? 23 var privateKey: SecKey? 24 let osStatus = SecKeyGeneratePair(parameters as CFDictionary, 25 &publicKey, 26 &privateKey) 27 28 // 公開鍵と秘密鍵を返却する 29 switch osStatus { 30 case noErr: 31 return (publicKey, privateKey) 32 default: 33 return (nil, nil) 34 } 35 } 36
補足情報(FW/ツールのバージョンなど)
XCode 9.4.1
Swift4.1
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/08 03:19 編集