前提・実現したいこと
Swift初心者です。
SwiftのCryptoSwiftのFrameWorkを使って引数をAES256での暗号化を行なっています。
下記のようなclassを作成してシミュレーター上ではビルドできて正しく動作するのですが、ビルドターゲットを実機に切り替えると let aes = try AES(key: byteKey!, blockMode: .CBC(iv: iv))
で Type 'BlockMode' has no member 'CBC'
とエラーが発生します。
調べて見ても原因が不明でした。そもそもシミュレーターではビルドできて実機ではビルドできないということはあるんでしょうか?
何か解決策のわかるかたがいらっしゃいましたら、よろしくお願いいたします。
該当のソースコード
Swift
1import Foundation 2import CryptoSwift 3 4final class AESEncryption { 5 6 func encryption(text: String, key: String) -> (String, String) { 7 8 let cleartext = text 9 let byteText = cleartext.data(using: String.Encoding.utf8)?.bytes 10 let key = key 11 let byteKey = key.data(using: String.Encoding.utf8)?.bytes 12 let iv = AES.randomIV(AES.blockSize) 13 14 do { 15 16 let aes = try AES(key: byteKey!, blockMode: .CBC(iv: iv)) 17 let encrypted = try aes.encrypt(byteText!) 18 let strIV = NSData(bytes: iv, length: iv.count).base64EncodedString(options: .lineLength64Characters) 19 let strEnc = NSData(bytes: encrypted, length: encrypted.count).base64EncodedString(options: .lineLength64Characters) 20 21 return (strIV, strEnc) 22 23 } catch { 24 return ("Error", "Error") 25 } 26 } 27}
試したこと
- .CBCをCBCに変更したところビルドできた
[Common] _BSMachError: port 14a03; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
無効という感じでエラー
補足情報(FW/ツールのバージョンなど)
- Xcode Version 9.4
- Swift 4.1
- iOS 11.4
回答1件
あなたの回答
tips
プレビュー