Mar 26, 2020
Gist: HMAC SHA256 signature generation in Swift, using CommonCrypto
import CommonCrypto
// CommonCrypto HMAC SHA256
func mac(secretKey: String, message: String) -> String {
let digestLength = Int(CC_SHA256_DIGEST_LENGTH)
let mac = UnsafeMutablePointer<CChar>.allocate(capacity: digestLength)
let cSecretKey: [CChar]? = secretKey.cString(using: .utf8)
let cSecretKeyLength = secretKey.lengthOfBytes(using: .utf8)
let cMessage: [CChar]? = message.cString(using: .utf8)
let cMessageLength = message.lengthOfBytes(using: .utf8)
CCHmac(CCHmacAlgorithm(kCCHmacAlgSHA256), cSecretKey, cSecretKeyLength, cMessage, cMessageLength, mac)
let macData = Data(bytes: mac, count: digestLength)
return macData.base64EncodedString()
}