2017-12-12 1 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

당신이 변수가 얼마나 우리를 보여줄 수 : https://github.com/krzyzanowskim/CryptoSwift/tree/swift32#aes-advanced-usage

이 질문에 대답하려면,이 사용자의 요구에 적합한 형태이다 초기화 된 Swift 및 CryptoSwift 버전은 무엇입니까? –

+0

Swift 3.2 및 CryptoSwift 0.7.0을 사용하는 사람 – RussVirtuoso

+0

CryptoSwift를 사용하지 않는 것이 가장 좋습니다. 다른 것들은 Common Crypto 기반 구현보다 500-1000 배 느립니다. Apple의 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가 바뀌면서 API 사용법에 대한 올바른 README를 확인해야합니다. 여기

스위프트 3.2 (swift32 지점)에 대한 README입니다 :

try AES(key: key, iv: iv, blockMode: .CBC, padding: PKCS7()) 
관련 문제