|
|
@@ -573,6 +573,21 @@ extension AESTests {
|
|
|
let decrypted = decrypt(encrypted)
|
|
|
XCTAssertEqual(decrypted, plaintext)
|
|
|
}
|
|
|
+
|
|
|
+ func testAESCCMTestCase1() {
|
|
|
+ let key: Array<UInt8> = [0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f];
|
|
|
+ let nonce: Array<UInt8> = [0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16]
|
|
|
+ let aad: Array<UInt8> = [0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07]
|
|
|
+ let plaintext: Array<UInt8> = [0x20, 0x21, 0x22, 0x23]
|
|
|
+ let expected: Array<UInt8> = [0x71, 0x62, 0x01, 0x5b, 0x4d, 0xac, 0x25, 0x5d]
|
|
|
+
|
|
|
+ let aes = try! AES(key: key, blockMode: CCM(nonce: nonce, tagLength: 4, messageLength: plaintext.count, additionalAuthenticatedData: aad), padding: .noPadding)
|
|
|
+ let encrypted = try! aes.encrypt(plaintext)
|
|
|
+ XCTAssertEqual(encrypted, expected, "encryption failed")
|
|
|
+// let decrypted = try! aes.decrypt(encrypted)
|
|
|
+// XCTAssertEqual(decrypted, plaintext, "decryption failed")
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
extension AESTests {
|
|
|
@@ -611,6 +626,7 @@ extension AESTests {
|
|
|
("testAESGCMTestCase7", testAESGCMTestCase7),
|
|
|
("testAESGCMTestCaseIrregularCombined1", testAESGCMTestCaseIrregularCombined1),
|
|
|
("testAESGCMTestCaseIrregularCombined2", testAESGCMTestCaseIrregularCombined2),
|
|
|
+ ("testAESCCMTestCase1", testAESCCMTestCase1)
|
|
|
]
|
|
|
return tests
|
|
|
}
|