I have an encryption function that receives data and key, with an internal iv and returns an encrypted string. I can encrypt every line containing only English characters, but not about Arabic. This is my function. Please help me find the problem. thanks
- (NSString *) Encrypt: (NSString *) data second: (NSString *) key
{
size_t outLength;
NSMutableData * cipherData = [NSMutableData dataWithLength: data.length + kCCBlockSizeAES128];
Byte byte [] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}; // It`s not valid. The main iv is secret
NSData * datakey = [NSData dataWithBytes: key.UTF8String length: key.length];
NSData * datadata = [NSData dataWithBytes: data.UTF8String length: data.length];
CCCryptorStatus result = CCCrypt (kCCEncrypt
, kCCAlgorithmAES128
, kCCOptionPKCS7Padding
, datakey.bytes
, [datakey length]
byte
, datadata.bytes
, [datadata length]
, cipherData.mutableBytes
, cipherData.length
, & outLength);
if (result == kCCSuccess) {
cipherData.length = outLength;
}
else {
}
NSData *encryptedData=cipherData;
NSString *str=[encryptedData base64EncodedStringWithOptions: NSDataBase64Encoding64CharacterLineLength];
return str;
}
source
share