;;;; message-digest-item.scm ;;;; Kon Lovett, Jan '06 (message-digest.scm) ;;;; Kon Lovett, may '10 (message-digest.scm) ;;;; Kon Lovett, Apr '12 ;;;; Kon Lovett, Aug '17 ;; Issues (module message-digest-item (;export ; message-digest-object message-digest-file message-digest-port ; message-digest-object! message-digest-file! message-digest-port!) (import scheme chicken) (use message-digest-type message-digest-update-item typed-define) ;;; ;; (include "message-digest-types") ;;; Single Source API ;; (define: (message-digest-object (mdp message-digest-primitive) (obj *) . (opts list)) --> message-digest-result-type (let-optionals* opts ( (restyp (message-digest-result-form)) (start 0) (end #f) ) (let ((md (initialize-message-digest mdp))) (message-digest-update-object md obj start end) (finalize-message-digest md restyp) ) ) ) (define: (message-digest-file (mdp message-digest-primitive) (flnm pathname) . (opts list)) --> message-digest-result-type (let ( (restyp (message-digest-result-form)) (md (initialize-message-digest mdp)) ) (message-digest-update-file md flnm) (finalize-message-digest md restyp) ) ) (define: (message-digest-port (mdp message-digest-primitive) (port output-port) . (opts list)) --> message-digest-result-type (let ( (restyp (message-digest-result-form)) (md (initialize-message-digest mdp)) ) (message-digest-update-port md port) (finalize-message-digest md restyp) ) ) ;; (define: (message-digest-object! (mdp message-digest-primitive) (obj *) (buf message-digest-buffer) . (opts list)) -> message-digest-result-type (let-optionals* opts ( (start 0) (end #f) ) (let ( (md (initialize-message-digest mdp)) ) (message-digest-update-object md obj start end) (finalize-message-digest! md buf) ) ) ) (define: (message-digest-file! (mdp message-digest-primitive) (flnm pathname) (buf message-digest-buffer)) -> message-digest-result-type (let ( (md (initialize-message-digest mdp)) ) (message-digest-update-file md flnm) (finalize-message-digest! md buf) ) ) (define: (message-digest-port! (mdp message-digest-primitive) (port output-port) (buf message-digest-buffer)) -> message-digest-result-type (let ( (md (initialize-message-digest mdp)) ) (message-digest-update-port md port) (finalize-message-digest! md buf) ) ) ) ;module message-digest-item