Home - tkgstrator/Salmonia3 GitHub Wiki
Welcome to the Salmonia3 wiki!
HMAC-SHA1 with CryptoKit
import CryptoKit
let key: String = "secret"
let message: String = "foo bar"
let signatureKey: SymmetricKey = SymmetricKey(data: key.data(using: .utf8)!)
let signatureData: Data = Data(message.data(using: .utf8)!)
print(HMAC<Insecure.SHA1>.authenticationCode(for: signatureData, using: signatureKey))
Using extension
extension String {
var base64EncodedString: String {
return self.data(using: .utf8)!.base64EncodedString()
.replacingOccurrences(of: "=", with: "")
.replacingOccurrences(of: "+", with: "-")
.replacingOccurrences(of: "/", with: "_")
}
func hmacsha1(key: String) -> String {
let hash = HMAC<Insecure.SHA1>.authenticationCode(for: Data(self.data(using: .utf8)!), using: SymmetricKey(data: Data(key.data(using: .utf8)!)))
let hashArray: [UInt8] = Array(hash.map{ String(format: "%02x", $0) }).map{ UInt8($0, radix: 16)! }
let data: Data = Data(bytes: hashArray, count: hashArray.count)
return data.base64EncodedString()
}
}
GeometryReader
GemetryReader { geometry in
ScrollView {
// Contents
}
}