Marcin Krzyżanowski 8 жил өмнө
parent
commit
ed508e8ddc

+ 14 - 0
Tests/CryptoSwiftTests/AESTests.swift

@@ -306,6 +306,20 @@ final class AESTests: XCTestCase {
         let decrypted = try? aes2.decrypt(encrypted)
         XCTAssertTrue(decrypted! != plaintext, "failed")
     }
+
+    // https://github.com/krzyzanowskim/CryptoSwift/issues/394
+    func testOpenSSL_394() {
+        let plaintext = Array("Nullam quis risus eget urna mollis ornare vel eu leo.".utf8)
+        let key = Array("passwordpassword".utf8).md5() // -md md5
+        let iv  = Array("drowssapdrowssap".utf8) // -iv 64726f777373617064726f7773736170
+        let aes = try! AES(key: key, iv: iv, blockMode: .CBC, padding: PKCS7()) // -aes-128-cbc
+        let ciphertext = try! aes.encrypt(plaintext) // enc
+
+        // $ echo -n "Nullam quis risus eget urna mollis ornare vel eu leo." | openssl enc -aes-128-cbc -md md5 -nosalt -iv 64726f777373617064726f7773736170 -pass pass:passwordpassword -base64
+        // cij+965z2Xqoj9tIHgtA72ZPfv5sxnt76vwkIt1CodYY313oa7mr0pSc5o++g0CX
+        // YczxK2fGIa84xtwDtRMwBQ==
+        XCTAssertEqual(ciphertext.toBase64(), "cij+965z2Xqoj9tIHgtA72ZPfv5sxnt76vwkIt1CodYY313oa7mr0pSc5o++g0CXYczxK2fGIa84xtwDtRMwBQ==")
+    }
 }
 
 #if !CI