chibi-scheme/lib/chibi/crypto/sha2-native.scm
ilammy db2b598cde chibi.crypto: code style fixes
- Fixed some typos in sha-native.scm
- Removed unnecessary structs and unions from sha_context
- Used more efficient implementation of hex32
- Made (scheme base) a common import in (chibi crypto sha2)
2015-04-19 16:01:07 +03:00

24 lines
833 B
Scheme

;; sha2-native.scm -- SHA-2 digest algorithms native interface
;; Copyright (c) 2015 Alexei Lozovsky. All rights reserved.
;; BSD-style license: http://synthcode.com/license.txt
(define (process-sha-data! context src)
(cond ((or (bytevector? src) (string? src))
(add-sha-data! context src))
((input-port? src)
(let lp ((chunk (read-bytevector 1024 src)))
(unless (eof-object? chunk)
(add-sha-data! context chunk)
(lp (read-bytevector 1024 src)))))
(else
(error "unknown digest source: " src))))
(define (sha-224 src)
(let ((context (start-sha type-sha-224)))
(process-sha-data! context src)
(get-sha context)))
(define (sha-256 src)
(let ((context (start-sha type-sha-256)))
(process-sha-data! context src)
(get-sha context)))