Mercurial > core / lisp/ffi/blake3/pkg.lisp
changeset 687: |
c2f4e7ee921b |
parent: |
ebe3315b7add
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Mon, 30 Sep 2024 22:27:12 -0400 |
permissions: |
-rw-r--r-- |
description: |
ffi |
1 ;;; blake3.lisp --- low-level bindings to CBLAKE3 6 (defpackage :blake3/pkg 8 (:use :cl :std :sb-alien) 20 :blake3-hasher-init-keyed 21 :blake3-hasher-init-derive-key 22 :blake3-hasher-init-derive-key-raw 24 :blake3-hasher-finalize 25 :blake3-hasher-finalize-seek 31 (define-alien-loader "blake3") 33 (define-alien-routine blake3-version c-string) 35 (define-alien-type blake3-chunk-state 36 (struct blake3-chunk-state 37 (key (array unsigned-int 8)) 38 (chunk-counter unsigned-long) 39 (buf (array (unsigned 8) 64)) 40 (buf-len (unsigned 8)) 41 (blocks-compressed (unsigned 8)) 42 (flags (unsigned 8)))) 44 (define-alien-type blake3-hasher 46 (key (array unsigned-int 8)) 47 (chunk blake3-chunk-state) 48 (cv-stack-len (unsigned 8)) 49 (cv-stack (array (unsigned 8) 1760)))) 51 (define-alien-routine blake3-hasher-init void (self (* blake3-hasher))) 53 (define-alien-routine blake3-hasher-init-keyed void 54 (self (* blake3-hasher)) 55 (key (array (unsigned 8) 32))) 57 (define-alien-routine blake3-hasher-init-derive-key void 58 (self (* blake3-hasher)) 61 (define-alien-routine blake3-hasher-init-derive-key-raw void 62 (self (* blake3-hasher)) 66 (define-alien-routine blake3-hasher-update void 67 (self (* blake3-hasher)) 71 (define-alien-routine blake3-hasher-finalize void 72 (self (* blake3-hasher)) 73 (out (* (unsigned 8))) 76 (define-alien-routine blake3-hasher-finalize-seek void 77 (self (* blake3-hasher)) 79 (out (* unsigned-char)) 82 (define-alien-routine blake3-hasher-reset void (self (* blake3-hasher))) 84 (defmacro with-blake3-hasher (hvar &body body) 85 `(with-alien ((,hvar blake3-hasher)) 86 (blake3-hasher-init ,hvar)