私はCryptoSwiftを統合していますが、このエラー "メンバー 'CBC'は引数がありません。メンバー 'CBC'には引数がありません
あなたはlooking at the CryptoSwift API for version 3あなたはAESのために、次の初期化子を取得している場合は、私はこの
let enc = try! AES(key: key, blockMode: .CBC(iv: iv)).encrypt(self.arrayOfBytes())
私はCryptoSwiftを統合していますが、このエラー "メンバー 'CBC'は引数がありません。メンバー 'CBC'には引数がありません
あなたはlooking at the CryptoSwift API for version 3あなたはAESのために、次の初期化子を取得している場合は、私はこの
let enc = try! AES(key: key, blockMode: .CBC(iv: iv)).encrypt(self.arrayOfBytes())
のような関数を呼び出しています:あなたがここにiv
を見ることができるように
public init(key: Array<UInt8>, iv: Array<UInt8>? = nil, blockMode: BlockMode = .CBC, padding: Padding = PKCS7()) throws {
はのパラメータではありませんCBC - それはそうであるべきですが、ブロック暗号そのものです。 Swift 4にアップグレードするか、古いAPIに準拠する必要があります。
それはバージョン間でAPIの醜い休憩です... –
Swift 3.2については、APIの使用状況が正しく変更されたため、正しいREADMEを確認する必要があります。ここで
はスウィフト3.2(swift32支店)のためのREADMEです: https://github.com/krzyzanowskim/CryptoSwift/tree/swift32#aes-advanced-usage
質問に答えるために、これはあなたのニーズに適切な形式である:
try AES(key: key, iv: iv, blockMode: .CBC, padding: PKCS7())
あなたは変数がどのように私たちを示すことができどのバージョンのSwiftとCryptoSwiftを使用していますか? –
Swift 3.2とCryptoSwift 0.7.0を使用している – RussVirtuoso
CryptoSwiftの使用を避けるのが最善です。これは、Common Cryptoベースの実装よりも500〜1000倍遅いということです。アップルのCommon CryptoはFIPS認証を取得しているため、CryptoSwiftを使用することで、タイミングやパワー攻撃などの正確性とセキュリティが得られます。 – zaph