Skip to content

Instantly share code, notes, and snippets.

@lukeredpath
Created January 6, 2021 12:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lukeredpath/79db6373d9c51226271153c62dc5f820 to your computer and use it in GitHub Desktop.
Save lukeredpath/79db6373d9c51226271153c62dc5f820 to your computer and use it in GitHub Desktop.
private func hexString(_ iterator: Array<UInt8>.Iterator) -> String {
return iterator.map { String(format: "%02x", $0) }.joined()
}
let exampleVerifier = "kM83K571n5KFW9u29Xu2qSqgoUwep4I2jZw8FGZg4Yr"
let verifierData = exampleVerifier.data(using: .utf8)!
// CommonCrypto implementation
var buffer = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
_ = verifierData.withUnsafeBytes { CC_SHA256($0.baseAddress, CC_LONG(verifierData.count), &buffer) }
let string1 = hexString(buffer.makeIterator())
let validHashedData = string1.data(using: .utf8)!
// CryptoKit implementation
let hash = SHA256.hash(data: verifierData)
let string2 = hexString(hash.makeIterator())
let invalidHashedData = string2.data(using: .utf8)!
print("\(base64EncodedString(validHashedData))")
print("\(base64EncodedString(invalidHashedData))")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment