source: project/release/4/message-digest/trunk/message-digest-item.scm @ 35341

Last change on this file since 35341 was 35341, checked in by kon, 15 months ago

add types, message-digest-result-form -> -type, -form is symbol, -byte-order is symbol, do not type check-/error- (no no no no no)

File size: 2.4 KB
Line 
1;;;; message-digest-item.scm
2;;;; Kon Lovett, Jan '06 (message-digest.scm)
3;;;; Kon Lovett, may '10 (message-digest.scm)
4;;;; Kon Lovett, Apr '12
5;;;; Kon Lovett, Aug '17
6
7;; Issues
8
9(module message-digest-item
10
11(;export
12  ;
13  message-digest-object
14  message-digest-file
15  message-digest-port
16  ;
17  message-digest-object!
18  message-digest-file!
19  message-digest-port!)
20
21(import scheme chicken)
22(use
23  message-digest-type
24  message-digest-update-item
25  typed-define)
26
27;;;
28
29;;
30
31(include "message-digest-types")
32
33;;; Single Source API
34
35;;
36
37(define: (message-digest-object (mdp message-digest-primitive) (obj *) . (opts list)) -> message-digest-result-type
38  (let-optionals* opts (
39    (restyp (message-digest-result-form))
40    (start 0)
41    (end #f) )
42    (let ((md (initialize-message-digest mdp)))
43      (message-digest-update-object md obj start end)
44      (finalize-message-digest md restyp) ) ) )
45
46(define: (message-digest-file (mdp message-digest-primitive) (flnm pathname) . (opts list)) -> message-digest-result-type
47  (let (
48    (restyp (message-digest-result-form))
49    (md (initialize-message-digest mdp)) )
50    (message-digest-update-file md flnm)
51    (finalize-message-digest md restyp) ) )
52
53(define: (message-digest-port (mdp message-digest-primitive) (port output-port) . (opts list)) -> message-digest-result-type
54  (let (
55    (restyp (message-digest-result-form))
56    (md (initialize-message-digest mdp)) )
57    (message-digest-update-port md port)
58    (finalize-message-digest md restyp) ) )
59
60;;
61
62(define: (message-digest-object! (mdp message-digest-primitive) (obj *) (buf message-digest-buffer) . (opts list)) -> message-digest-result-type
63  (let-optionals* opts (
64    (start 0)
65    (end #f) )
66    (let (
67      (md (initialize-message-digest mdp)) )
68      (message-digest-update-object md obj start end)
69      (finalize-message-digest! md buf) ) ) )
70
71(define: (message-digest-file! (mdp message-digest-primitive) (flnm pathname) (buf message-digest-buffer)) -> message-digest-result-type
72  (let (
73    (md (initialize-message-digest mdp)) )
74    (message-digest-update-file md flnm)
75    (finalize-message-digest! md buf) ) )
76
77(define: (message-digest-port! (mdp message-digest-primitive) (port output-port) (buf message-digest-buffer)) -> message-digest-result-type
78  (let (
79    (md (initialize-message-digest mdp)) )
80    (message-digest-update-port md port)
81    (finalize-message-digest! md buf) ) )
82
83) ;module message-digest-item
Note: See TracBrowser for help on using the repository browser.