2017-12-12 2 views
1

私は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()) 
+0

あなたは変数がどのように私たちを示すことができどのバージョンのSwiftとCryptoSwiftを使用していますか? –

+0

Swift 3.2とCryptoSwift 0.7.0を使用している – RussVirtuoso

+0

CryptoSwiftの使用を避けるのが最善です。これは、Common Cryptoベースの実装よりも500〜1000倍遅いということです。アップルのCommon CryptoはFIPS認証を取得しているため、CryptoSwiftを使用することで、タイミングやパワー攻撃などの正確性とセキュリティが得られます。 – zaph

答えて

0

のような関数を呼び出しています:あなたがここにivを見ることができるように

public init(key: Array<UInt8>, iv: Array<UInt8>? = nil, blockMode: BlockMode = .CBC, padding: Padding = PKCS7()) throws { 

はのパラメータではありませんCBC - それはそうであるべきですが、ブロック暗号そのものです。 Swift 4にアップグレードするか、古いAPIに準拠する必要があります。

+0

それはバージョン間でAPIの醜い休憩です... –

0

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()) 
関連する問題