在SDK8.3之前我用这种方式生成了我的hmac。现在我在CCHmac()函数上出错了。由于我是初学者,我无法弄清楚如何修复它。在此先感谢您的帮助!
xcode警告:不能埋没' CCHmac'使用类型的参数列表(UInt32,[CChar] ?, UInt,[CChar] ?, UInt,inout [(CUnsignedChar)]
func generateHMAC(key: String, data: String) -> String {
let cKey = key.cStringUsingEncoding(NSUTF8StringEncoding)
let cData = data.cStringUsingEncoding(NSUTF8StringEncoding)
var result = [CUnsignedChar](count: Int(CC_SHA512_DIGEST_LENGTH), repeatedValue: 0)
CCHmac(CCHmacAlgorithm(kCCHmacAlgSHA512), cKey, strlen(cKey!), cData, strlen(cData!), &result)
let hash = NSMutableString()
for var i = 0; i < result.count; i++ {
hash.appendFormat("%02hhx", result[i])
}
return hash as String
}
答案 0 :(得分:5)
问题在于toolset "arm_gcc"
返回strlen
,而UInt
的长度参数为CCHmac
s。
虽然你可以做一些强制,但你也可以使用两个数组的Int
属性,而不是调用count
。
strlen