FunctionPackage: exclToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version


Arguments: context &key return

Finalize and return the SHA512 hash from context in a format determined by the return keyword argument.

return can be one of the following values:

cl-user(4): (setq c (sha512-init))
#S(excl::md-context :ctx 9184192 :size 64)
cl-user(5): (sha512-update c "foo")
cl-user(6): (sha512-final c :return :usb8)
#(247 251 186 110 6 54 248 144 229 111 ...)

;;  Potential problem with :return :integer (or :return unspecified
;;  as the default is :integer). The call is to SHA512-FILE which calls
;;  SHA512-FINAL and returns the value SHA512-FINAL returns.
;;  Here we get the sha512 value in a shell:
% openssl dgst -sha512 -hex cmp04-profmenu.jpg
SHA512(xmldoc/html101/pictures/cmp04-profmenu.jpg)= 083059e92e5cecc3bbcf1707bc0f167564f7981a03b5340b1d1755f84ef04b239929c56c3b08409d31188a8103e24daf1311f5f4d01cb55180b1a000d5edf58f

;; Now we get it with SHA512-FILE:
cl-user(17): (sha512-file "~/cmp04-profmenu.jpg")
cl-user(18): (format t "~x" *)

;; Note the hex values are the same but the leading 0 is not printed
;; by Lisp, which is dealing with the value as an integer. The leading
;; 0 is preserved when the :return is :hex:
cl-user(21): (sha512-file "~/cmp04-profmenu.jpg" :return :hex)

See MD*, SHA*, HMAC, and other message digest support in miscellaneous.htm. See also digest-final.

Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

Allegro CL version 10.1
Unrevised from 10.0 to 10.1.
10.0 version