0.10.6
This commit is contained in:
commit
92660a4ba0
228 files changed
+24496
No files matched your search
@@ -0,0 +1,33 @@
|
||||
import XCTest
|
||||
@testable import Luma
|
||||
|
||||
final class CryptoKitAESGCMEngineTests: XCTestCase {
|
||||
func testRoundTrip() {
|
||||
let engine = CryptoKitAESGCMEngine()
|
||||
let key = Data(repeating: 0x31, count: 16)
|
||||
let iv = Data(repeating: 0x22, count: 12)
|
||||
let plaintext = Data("hello omemo".utf8)
|
||||
var ciphertext = Data()
|
||||
var tag = Data()
|
||||
|
||||
XCTAssertTrue(engine.encrypt(iv: iv, key: key, message: plaintext, output: &ciphertext, tag: &tag))
|
||||
|
||||
var decrypted = Data()
|
||||
XCTAssertTrue(engine.decrypt(iv: iv, key: key, encoded: ciphertext, auth: tag, output: &decrypted))
|
||||
XCTAssertEqual(decrypted, plaintext)
|
||||
}
|
||||
|
||||
func testModifiedTagFails() {
|
||||
let engine = CryptoKitAESGCMEngine()
|
||||
let key = Data(repeating: 0x31, count: 16)
|
||||
let iv = Data(repeating: 0x22, count: 12)
|
||||
var ciphertext = Data()
|
||||
var tag = Data()
|
||||
XCTAssertTrue(engine.encrypt(iv: iv, key: key, message: Data("secret".utf8), output: &ciphertext, tag: &tag))
|
||||
tag[0] ^= 0x01
|
||||
|
||||
var decrypted = Data()
|
||||
XCTAssertFalse(engine.decrypt(iv: iv, key: key, encoded: ciphertext, auth: tag, output: &decrypted))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user