I want to convert this code from Objective C to Swift 3 :
const char *cKey = [keyStr cStringUsingEncoding:NSISOLatin1StringEncoding];
const char *cData = [mixStr cStringUsingEncoding:NSASCIIStringEncoding];
unsigned char cHMAC[CC_SHA256_DIGEST_LENGTH];
CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), cData, strlen(cData), cHMAC);
NSMutableString *mac = [NSMutableString string];
for (int i=0; i<sizeof cHMAC; i++){
[mac appendFormat:@"%02hhx", cHMAC[i]];
}
So i write this but output in Objective C has 64 count and in my Swift code has 44 count.Therefor i think my swift code is wrong:
let cKey = encryptedStrKEYDataString.cString(using: String.Encoding.isoLatin1)
let cData = mix.cString(using: String.Encoding.isoLatin1)
let algorithm = CCHmacAlgorithm(kCCHmacAlgSHA256)
let size = Int(CC_SHA256_DIGEST_LENGTH)
var result = [CUnsignedChar](repeating: 0, count: size )
CCHmac(algorithm, cKey!, Int(strlen(cKey!)), cData!, Int(strlen(cData!)), &result)
let hmacData:NSData = NSData(bytes: result, length: size)
let hmacBase64 = hmacData.base64EncodedString(options: [.lineLength64Characters])