Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use crc32 from zlib in swift (Xcode 9)

I'm new to swift/xcode and am trying to use the crc32 function that, as mentioned here, is provided in zlib from libz.dylib .

I've modified the code so that I am now trying:

let message1 = "some message".first?.value!.data(using: String.Encoding.utf8, allowLossyConversion: false) let crc = crc32(CLong(0), UnsafePointer<Bytef>(strcat!.bytes), UInt(message1!.length))

however I am encountering the error: use of unresolved identifier 'crc32'.

Could anyone help me to figure out what step I might be missing in trying to use the crc32 function?

Thanks!

like image 361
Mikmac Avatar asked Nov 17 '22 18:11

Mikmac


1 Answers

In Swift 5:

import zlib

let data = Data(base64Encoded: "SGF2ZSBhIG5pY2UgZGF5ISA6KQ==")!
let checksum = data.withUnsafeBytes { crc32(0, $0.bindMemory(to: Bytef.self).baseAddress, uInt(data.count)) }
print("crc32: 0x\(String(format:"%08X", checksum))")
like image 134
Leszek Szary Avatar answered Dec 04 '22 04:12

Leszek Szary