func digest(secret: String, request: String) -> String! {
let key = secret.cStringUsingEncoding(NSUTF8StringEncoding)
let data = request.cStringUsingEncoding(NSUTF8StringEncoding)
let result = UnsafeMutablePointer<CUnsignedChar>.alloc(Int(CC_SHA256_DIGEST_LENGTH))
CCHmac(CCHmacAlgorithm(kCCHmacAlgSHA256), key!, strlen(key!), data!, strlen(data!), result)
let HMAC = NSData(bytes: result, length:Int(CC_SHA256_DIGEST_LENGTH))
let signature = HMAC.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.EncodingEndLineWithLineFeed)
result.destroy()
return signature
} |