Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Zach Beane
zacl
Commits
42bb79f0
Commit
42bb79f0
authored
Nov 15, 2016
by
Zach Beane
Browse files
Add MD5-INIT, MD5-UPDATE, MD5-FINAL.
parent
fedb2906
Changes
2
Hide whitespace changes
Inline
Side-by-side
package-excl.lisp
View file @
42bb79f0
...
...
@@ -375,3 +375,37 @@ values otherwise."
(
defmacro
excl:push-atomic
(
value
place
)
`
(
push
,
value
,
place
))
;;; MD5
(
defun
excl:md5-init
()
(
make-md5-state
))
(
defun
excl:md5-update
(
state
data
&key
(
start
0
)
end
external-format
)
(
when
(
stringp
data
)
(
setf
data
(
string-to-octets
data
:external-format
(
or
external-format
:latin-1
)
:start
start
:end
(
or
end
(
length
data
))))
(
setf
start
0
)
(
setf
end
(
length
data
)))
(
update-md5-state
state
data
:start
start
:end
end
)
(
values
))
(
defun
excl:md5-final
(
state
&key
(
return
:integer
))
(
let
((
result
(
finalize-md5-state
state
)))
(
ecase
return
(
:usb8
result
)
(
:hex
(
with-output-to-string
(
s
)
(
map
nil
(
lambda
(
octet
)
(
format
s
"~2,'0X"
octet
))
result
)))
(
:integer
(
let
((
i
0
))
(
map
nil
(
lambda
(
octet
)
(
setf
i
(
logior
(
ash
i
8
)
octet
)))
result
)
i
)))))
package.lisp
View file @
42bb79f0
...
...
@@ -35,6 +35,10 @@
#:create-scanner
#:scan
#:split
)
(
:import-from
#:md5
#:make-md5-state
#:update-md5-state
#:finalize-md5-state
)
(
:import-from
#:split-sequence
#:split-sequence
)
(
:import-from
#:flexi-streams
...
...
@@ -133,6 +137,9 @@
#:then
#:thenret
#:else
)
(
:export
#:md5-init
#:md5-update
#:md5-final
)
(
:export
#:pop-atomic
#:push-atomic
#:single-channel-simple-stream
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment