Here is my code in swift 2
func AES128Decryption(base64ChiperText:String) -> (Bool,String)
{
let data = NSData(base64EncodedString: base64ChiperText, options: NSDataBase64DecodingOptions(rawValue: 0))!
print("data : \(data)")
let keyData: NSData! = (keyString as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!
print("keyData : \(keyData)")
let keyBytes = UnsafeMutablePointer<Void>(keyData.bytes)
print("keyBytes : \(keyBytes)")
//print("keyLength = \(keyData.length), keyData = \(keyData)")
//let message = "Don´t try to read this text. Top Secret Stuff"
// let data: NSData! = (message as NSString).dataUsingEncoding(NSUTF8StringEncoding) as NSData!
let dataLength = size_t(data.length)
print("dataLength : \(dataLength)")
let dataBytes = UnsafeMutablePointer<Void>(data.bytes)
print("dataBytes : \(dataBytes)")
//print("dataLength = \(dataLength), data = \(data)")
let cryptData = NSMutableData(length: Int(dataLength) + kCCBlockSizeAES128)
print("cryptData : \(cryptData)")
let cryptPointer = UnsafeMutablePointer<Void>(cryptData!.mutableBytes)
print("cryptPointer : \(cryptPointer)")
let cryptLength = size_t(cryptData!.length)
print("cryptLength : \(cryptLength)")
let keyLength = size_t(kCCKeySizeAES256)
print("keyLength : \(keyLength)")
let operation: CCOperation = UInt32(kCCDecrypt)
print("operation : \(operation)")
let algoritm: CCAlgorithm = UInt32(kCCAlgorithmAES128)
let options: CCOptions = UInt32(kCCOptionPKCS7Padding + kCCOptionECBMode)
var numBytesEncrypted :size_t = 0
let cryptStatus = CCCrypt(operation, algoritm, options, keyBytes, keyLength, nil, dataBytes, dataLength, cryptPointer, cryptLength,
&numBytesEncrypted)
if UInt32(cryptStatus) == UInt32(kCCSuccess)
{
//let x: UInt = numBytesEncrypted
cryptData!.length = Int(numBytesEncrypted)
print("cryptData : \(cryptData)")
//print("DecryptcryptLength = \(numBytesEncrypted), Decrypt = \(cryptData)")
// Not all data is a UTF-8 string so Base64 is used
//let base64cryptString = cryptData!.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
//print("base64DecryptString = \(base64cryptString)")
let utf8PlainText = NSString(data: cryptData!, encoding: NSUTF8StringEncoding)!
print( "utf8PlainText: \(utf8PlainText)")
return (true,utf8PlainText as String)
} else {
print("ErrorWhileDecrypt: \(cryptStatus)")
return (false,String(cryptStatus))
}
}
Error in this line of code in swift 3
let utf8PlainText = NSString(data: cryptData!, encoding: NSUTF8StringEncoding)!