I want to do ECB mode encryption of AES algorithm. I have used CryptoSwift.
I want to do encryption with ECB mode, key size 64 bits (random key) & no padding
. I have tried the following code but it is returned at AES instance.
Anyone can help me out?
func aesEncryption() {
func generateRandomString(length: Int) -> String {
let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
return String((0..<length).map{ _ in letters.randomElement()! })
}
/* Generate a random key */
let key = generateRandomString(length: 64)
/* AES cryptor instance */
guard let aes = try? AES(key: Array(key.utf8), blockMode: ECB(), padding: .noPadding) else { return }
/* Encrypt Data */
let inputData = "Hello CryptoSwift".data(using: .utf8)
guard let encryptedBytes = try? aes.encrypt(inputData!.bytes) else { return }
let encryptedData = Data(encryptedBytes)
print("encryptedData", encryptedData)
/* Decrypt Data */
guard let decryptedBytes = try? aes.decrypt(encryptedData.bytes) else { return }
let decryptedData = Data(decryptedBytes)
print("decryptedData", String(decoding: decryptedData, as: UTF8.self))
}
My code is working with 32-bit key length & pkcs7 padding. But I don't want that. I want do to it with 64-bit key length & no padding. Below is the working code:
/* Generate a random key */
let key = generateRandomString(length: 32)
/* AES cryptor instance */
guard let aes = try? AES(key: Array(key.utf8), blockMode: ECB(), padding: .pkcs7) else { return }