mirror of
https://github.com/pmai/sha3.git
synced 2025-12-22 07:44:29 +01:00
Adjust documentation for release 1.1.0, adjust copyrights.
This commit is contained in:
2
COPYING
Normal file → Executable file
2
COPYING
Normal file → Executable file
@ -1,4 +1,4 @@
|
|||||||
Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai
|
Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|||||||
14
NEWS
Normal file → Executable file
14
NEWS
Normal file → Executable file
@ -1,3 +1,17 @@
|
|||||||
|
Release 1.1.0
|
||||||
|
=============
|
||||||
|
|
||||||
|
* Change sha3 functions to match the final FIPS 202 SHA3 standard,
|
||||||
|
by appending a 01 suffix to messages prior to digest calculation.
|
||||||
|
The old Keccak submission behavior can be retained by passing in
|
||||||
|
the new raw-keccak-p keyword argument with true to the relevant
|
||||||
|
functions. Thanks to David McClain for prompting this change.
|
||||||
|
|
||||||
|
* Fixes a bug in the bug fix of release 1.0.2 for the sha3-update
|
||||||
|
handling of not completely filled buffers reported by David McClain,
|
||||||
|
which could lead to out-of-bounds accesses in calls to the
|
||||||
|
pad-message-to-width function.
|
||||||
|
|
||||||
Release 1.0.2
|
Release 1.0.2
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
|||||||
44
README
Normal file → Executable file
44
README
Normal file → Executable file
@ -10,6 +10,16 @@ therefore erroneous message digests being generated. Uses with
|
|||||||
only one call to sha3-update and the high-level routines were not
|
only one call to sha3-update and the high-level routines were not
|
||||||
affected by this bug.
|
affected by this bug.
|
||||||
|
|
||||||
|
NOTE that prior to release 1.1.0 this package computed digests
|
||||||
|
based on the Keccak submission to the SHA-3 contest and did not
|
||||||
|
yet take into account the added suffix that the FIPS 202 SHA-3
|
||||||
|
final standard adds to messages prior to calculating the digest,
|
||||||
|
since this was not part of the Keccak submission. Starting with
|
||||||
|
1.1.0 the functions in the sha3 package do by default calculate
|
||||||
|
disgests that match the FIPS 202 standard, and will calculate
|
||||||
|
the old pre-standard digests only if the new optional keyword
|
||||||
|
argument :raw-keccak-p is passed with a true value.
|
||||||
|
|
||||||
The code should be portable across nearly all ANSI compliant CL
|
The code should be portable across nearly all ANSI compliant CL
|
||||||
implementations with specialized versions tuned for implementations
|
implementations with specialized versions tuned for implementations
|
||||||
that offer unboxed 64bit arithmetic, unboxed 32bit arithmetic and for
|
that offer unboxed 64bit arithmetic, unboxed 32bit arithmetic and for
|
||||||
@ -51,11 +61,14 @@ The mid-level interfaces to the digest routines are the functions
|
|||||||
simple-array with element-type (unsigned-byte 8), bounded by `start'
|
simple-array with element-type (unsigned-byte 8), bounded by `start'
|
||||||
and `end', which must be numeric bounding-indices.
|
and `end', which must be numeric bounding-indices.
|
||||||
|
|
||||||
- sha3:sha3-final state &key output-bit-length
|
- sha3:sha3-final state &key output-bit-length raw-keccak-p
|
||||||
|
|
||||||
If the given SHA-3 state `state' has not already been finalized,
|
If the given SHA-3 state `state' has not already been finalized,
|
||||||
finalize it by processing any remaining input in its buffer, with
|
finalize it by processing any remaining input in its buffer, with
|
||||||
suitable padding as specified by the SHA-3 standard. Returns the
|
the specified suffix of 01 and suitable padding as specified by the
|
||||||
|
SHA-3 standard (the specified SHA-3 suffix can be elided with the
|
||||||
|
optional keyword argument `raw-keccak-p' to generate digests as the
|
||||||
|
initial Keccak submission would have generated). Returns the
|
||||||
message digest as a simple-array of (unsigned-byte 8). The length
|
message digest as a simple-array of (unsigned-byte 8). The length
|
||||||
of the returned digest is determined either by the output bit length
|
of the returned digest is determined either by the output bit length
|
||||||
or bit rate specified on state creation, or for the special case of
|
or bit rate specified on state creation, or for the special case of
|
||||||
@ -67,28 +80,43 @@ For convenience the following high-level functions produce digests in
|
|||||||
one step from 1d simple-arrays and streams with element-type
|
one step from 1d simple-arrays and streams with element-type
|
||||||
(unsigned-byte 8), as well as files:
|
(unsigned-byte 8), as well as files:
|
||||||
|
|
||||||
- sha3:sha3-digest-vector vector &key (start 0) end (output-bit-length 512)
|
- sha3:sha3-digest-vector vector &key (start 0) end (output-bit-length 512) raw-keccak-p
|
||||||
|
|
||||||
Calculate an SHA-3 message-digest of data in `vector', which should
|
Calculate an SHA-3 message-digest of data in `vector', which should
|
||||||
be a 1d simple-array with element type (unsigned-byte 8), bounded by
|
be a 1d simple-array with element type (unsigned-byte 8), bounded by
|
||||||
`start' and `end'. The bit length of the message digest produced is
|
`start' and `end'. The bit length of the message digest produced is
|
||||||
controlled by `output-bit-length', which can take on the values 224,
|
controlled by `output-bit-length', which can take on the values 224,
|
||||||
256, 288, 384 and 512, which is the default value.
|
256, 288, 384 and 512, which is the default value. Using the optional
|
||||||
|
`raw-keccak-p' keyword argument the SHA-3 mandated 01 suffix that is
|
||||||
|
appended to the actual message prior to padding can be elided to yield
|
||||||
|
message digests that match the original Keccak submission instead of
|
||||||
|
the actual SHA-3 standard. Use this option only for compatibility
|
||||||
|
with historical implementations.
|
||||||
|
|
||||||
- sha3:sha3-digest-stream stream &key (output-bit-length 512)
|
- sha3:sha3-digest-stream stream &key (output-bit-length 512) raw-keccak-p
|
||||||
|
|
||||||
Calculate an SHA-3 message-digest of data read from `stream', which
|
Calculate an SHA-3 message-digest of data read from `stream', which
|
||||||
should be a stream with element type (unsigned-byte 8). The bit
|
should be a stream with element type (unsigned-byte 8). The bit
|
||||||
length of the message digest produced is controlled by
|
length of the message digest produced is controlled by
|
||||||
`output-bit-length', which can take on the values 224, 256, 288, 384
|
`output-bit-length', which can take on the values 224, 256, 288, 384
|
||||||
and 512, which is the default value.
|
and 512, which is the default value. Using the optional `raw-keccak-p'
|
||||||
|
keyword argument the SHA-3 mandated 01 suffix that is appended to the
|
||||||
|
actual message prior to padding can be elided to yield message digests
|
||||||
|
that match the original Keccak submission instead of the actual SHA-3
|
||||||
|
standard. Use this option only for compatibility with historical
|
||||||
|
implementations.
|
||||||
|
|
||||||
- sha3:sha3-digest-file pathname &key (output-bit-length 512)
|
- sha3:sha3-digest-file pathname &key (output-bit-length 512) raw-keccak-p
|
||||||
|
|
||||||
Calculate an SHA-3 message-digest of the file specified by
|
Calculate an SHA-3 message-digest of the file specified by
|
||||||
`pathname'. The bit length of the message digest produced is
|
`pathname'. The bit length of the message digest produced is
|
||||||
controlled by `output-bit-length', which can take on the values 224,
|
controlled by `output-bit-length', which can take on the values 224,
|
||||||
256, 288, 384 and 512, which is the default value.
|
256, 288, 384 and 512, which is the default value. Using the optional
|
||||||
|
`raw-keccak-p' keyword argument the SHA-3 mandated 01 suffix that is
|
||||||
|
appended to the actual message prior to padding can be elided to yield
|
||||||
|
message digests that match the original Keccak submission instead of
|
||||||
|
the actual SHA-3 standard. Use this option only for compatibility
|
||||||
|
with historical implementations.
|
||||||
|
|
||||||
Note that in order to generate a message digest of a string it will
|
Note that in order to generate a message digest of a string it will
|
||||||
have to be converted to a simple-array with element-type
|
have to be converted to a simple-array with element-type
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
2
keccak-16bit.lisp
Normal file → Executable file
2
keccak-16bit.lisp
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
2
keccak-32bit.lisp
Normal file → Executable file
2
keccak-32bit.lisp
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
2
keccak-64bit.lisp
Normal file → Executable file
2
keccak-64bit.lisp
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
2
keccak-reference.lisp
Normal file → Executable file
2
keccak-reference.lisp
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
2
pkgdef.lisp
Normal file → Executable file
2
pkgdef.lisp
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
4
sha3.asd
Normal file → Executable file
4
sha3.asd
Normal file → Executable file
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
@ -42,7 +42,7 @@
|
|||||||
:author "Pierre R. Mai <pmai@pmsf.de>"
|
:author "Pierre R. Mai <pmai@pmsf.de>"
|
||||||
:maintainer "Pierre R. Mai <pmai@pmsf.de>"
|
:maintainer "Pierre R. Mai <pmai@pmsf.de>"
|
||||||
:licence "MIT/X11"
|
:licence "MIT/X11"
|
||||||
:version "1.0.2"
|
:version "1.1.0"
|
||||||
#+sbcl :depends-on #+sbcl ("sb-rotate-byte")
|
#+sbcl :depends-on #+sbcl ("sb-rotate-byte")
|
||||||
:components ((:file "pkgdef")
|
:components ((:file "pkgdef")
|
||||||
(:file "common" :depends-on ("pkgdef"))
|
(:file "common" :depends-on ("pkgdef"))
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
;;;; SHA3 --- Secure Hash Algorithm 3 (Keccak) Implementation
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2012 PMSF IT Consulting Pierre R. Mai.
|
;;;; Copyright (C) 2012 -- 2016 PMSF IT Consulting Pierre R. Mai.
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
;;;; Permission is hereby granted, free of charge, to any person obtaining
|
||||||
;;;; a copy of this software and associated documentation files (the
|
;;;; a copy of this software and associated documentation files (the
|
||||||
|
|||||||
Reference in New Issue
Block a user