2025-07-03 15:41:26 +02:00

13 lines
479 B
Nim

import bearssl/hash
proc bearSslHash*(hashClass: ptr HashClass, data: openArray[byte]): seq[byte] =
var compatCtx = HashCompatContext()
let buffSize = (hashClass[].desc shr HASHDESC_OUT_OFF) and HASHDESC_OUT_MASK
result = newSeq[byte](buffSize)
let hashClassPtrPtr: ConstPtrPtrHashClass = addr(compatCtx.vtable)
hashClass[].init(hashClassPtrPtr)
hashClass[].update(hashClassPtrPtr, addr data[0], data.len.uint)
hashClass[].`out`(hashClassPtrPtr, addr result[0])