ironclad_0.33.0/ironclad-text.asd0000664000175000017500000000036312223007206013676 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (asdf:defsystem :ironclad-text :components ((:module :src :serial t :components ((:file "text") ))) :depends-on (:ironclad :flexi-streams)) ironclad_0.33.0/ironclad.asd0000664000175000017500000003400312417613075012726 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (cl:defpackage #:ironclad-system (:use :cl)) (cl:in-package #:ironclad-system) ;;; easy-to-type readmacro for creating s-boxes and the like (defun array-reader (stream subchar arg) (declare (ignore subchar)) (let ((array-data (read stream nil stream nil)) (array-element-type `(unsigned-byte ,arg))) ;; FIXME: need to make this work for multi-dimensional arrays `(make-array ,(length array-data) :element-type ',array-element-type :initial-contents ',array-data))) (defparameter *ironclad-readtable* (let ((readtable (copy-readtable nil))) (set-dispatch-macro-character #\# #\@ #'array-reader readtable) readtable)) (defclass ironclad-source-file (asdf:cl-source-file) ()) (defclass txt-file (asdf:doc-file) ((type :initform "txt"))) (defclass css-file (asdf:doc-file) ((type :initform "css"))) (asdf:defsystem :ironclad :version "0.33.0" :author "Nathan Froyd " :maintainer "Nathan Froyd " :description "A cryptographic toolkit written in pure Common Lisp" :default-component-class ironclad-source-file :depends-on (#+sbcl sb-rotate-byte #+sbcl sb-posix nibbles) :components ((:static-file "README") (:static-file "LICENSE") (:static-file "TODO") (:static-file "NEWS") (:module "src" :components ((:file "package") (:file "conditions" :depends-on ("package")) (:file "util" :depends-on ("package")) (:file "macro-utils" :depends-on ("package")) (:file "common" :depends-on ("package")) ;; FIXME: make this depend on :FEATURE :IRONCLAD-GRAY-STREAMS #+(or lispworks sbcl openmcl cmu allegro) (:file "octet-stream" :depends-on ("common")) (:file "padding" :depends-on ("common")) (:file "kdf-common" :depends-on ("package")) (:file "pkcs5" :depends-on ("common" "kdf-common")) (:file "scrypt" :depends-on ("kdf-common" "pkcs5")) (:file "password-hash" :depends-on ("pkcs5")) (:file "math" :depends-on ("prng" "public-key")) (:module "sbcl-opt" :depends-on ("package" "common") :components ((:file "fndb") (:file "x86oid-vm" :depends-on ("fndb")))) (:module "ciphers" :depends-on ("common" "macro-utils") :components ( ;; block ciphers of various kinds (:file "cipher") (:file "modes" :depends-on ("cipher")) (:file "make-cipher" :depends-on ("cipher")) (:file "null-cipher" :depends-on ("cipher")) (:file "aes" :depends-on ("cipher")) (:file "des" :depends-on ("cipher")) (:file "blowfish" :depends-on ("cipher")) (:file "twofish" :depends-on ("cipher")) (:file "idea" :depends-on ("cipher")) (:file "misty1" :depends-on ("cipher")) (:file "square" :depends-on ("cipher")) (:file "rc2" :depends-on ("cipher")) (:file "rc5" :depends-on ("cipher")) (:file "rc6" :depends-on ("cipher")) (:file "tea" :depends-on ("cipher")) (:file "xtea" :depends-on ("cipher")) (:file "cast5" :depends-on ("cipher")) ;; stream ciphers (:file "arcfour" :depends-on ("cipher")) (:file "salsa20" :depends-on ("cipher")) (:file "chacha" :depends-on ("cipher")))) (:module "digests" :depends-on ("common" "macro-utils" "sbcl-opt") :components ((:file "digest") (:file "crc24" :depends-on ("digest")) (:file "crc32" :depends-on ("digest")) (:file "adler32" :depends-on ("digest")) (:file "md2" :depends-on ("digest")) (:file "md4" :depends-on ("digest")) (:file "md5" :depends-on ("digest")) (:file "md5-lispworks-int32" :depends-on ("digest")) (:file "sha1" :depends-on ("digest")) (:file "sha256" :depends-on ("digest")) (:file "sha512" :depends-on ("digest")) (:file "ripemd-128" :depends-on ("digest")) (:file "ripemd-160" :depends-on ("digest")) (:file "tiger" :depends-on ("digest")) (:file "whirlpool" :depends-on ("digest")) (:file "tree-hash" :depends-on ("digest")))) (:module "macs" :depends-on ("common" "digests") :components ((:file "hmac") (:file "cmac"))) (:module "public-key" :depends-on ("package") :components ((:file "public-key") (:file "dsa" :depends-on ("public-key")) (:file "rsa" :depends-on ("public-key")))) (:module "prng" :depends-on ("digests" "ciphers") :components ((:file "prng") (:file "fortuna" :depends-on ("prng" "generator")) (:file "generator"))))) (:module "doc" :components ((:html-file "ironclad") ;; XXX ASDF bogosity (:txt-file "ironclad-doc") (:css-file "style"))))) (defun ironclad-implementation-features () #+sbcl (list* sb-c:*backend-byte-order* (if (= sb-vm:n-word-bits 32) :32-bit :64-bit) :ironclad-fast-mod32-arithmetic :ironclad-gray-streams (when (member :x86-64 *features*) '(:ironclad-fast-mod64-arithmetic))) #+cmu (list (c:backend-byte-order c:*target-backend*) (if (= vm:word-bits 32) :32-bit :64-bit) :ironclad-fast-mod32-arithmetic :ironclad-gray-streams) #+allegro (list :ironclad-gray-streams) #+lispworks (list :ironclad-gray-streams ;; Disable due to problem reports from Lispworks users and ;; non-obviousness of the fix. #+nil (when (not (member :lispworks4 *features*)) '(:ironclad-md5-lispworks-int32))) #+openmcl (list :ironclad-gray-streams) #-(or sbcl cmu allegro lispworks openmcl) nil) ;;; Borrowed from iolib. (defun defknown-redefinition-error-p (error) (and (typep error 'simple-error) (search "overwriting old FUN-INFO" (simple-condition-format-control error)))) (macrolet ((do-silently (&body body) `(handler-bind ((style-warning #'muffle-warning) ;; It's about as fast as we can make it, ;; and a number of the notes relate to code ;; that we're running at compile time, ;; which we don't care about the speed of ;; anyway... #+sbcl (sb-ext:compiler-note #'muffle-warning) ((satisfies defknown-redefinition-error-p) #'continue)) ,@body))) (defmethod asdf:perform :around ((op asdf:compile-op) (c ironclad-source-file)) (let ((*readtable* *ironclad-readtable*) (*print-base* 10) ; INTERN'ing FORMAT'd symbols (*print-case* :upcase) #+sbcl (sb-ext:*inline-expansion-limit* (max sb-ext:*inline-expansion-limit* 1000)) #+cmu (ext:*inline-expansion-limit* (max ext:*inline-expansion-limit* 1000)) (*features* (append (ironclad-implementation-features) *features*))) (do-silently (call-next-method)))) (defmethod asdf:perform :around ((op asdf:load-op) (c ironclad-source-file)) (do-silently (call-next-method)))) (defmethod asdf:perform :after ((op asdf:load-op) (c (eql (asdf:find-system :ironclad)))) (provide :ironclad)) ;;; testing (defclass test-vector-file (asdf:static-file) ((type :initform "testvec"))) (defpackage :ironclad-tests (:nicknames :crypto-tests) (:use :cl)) (defmethod asdf:perform ((op asdf:test-op) (c (eql (asdf:find-system :ironclad)))) (asdf:oos 'asdf:test-op 'ironclad-tests)) (asdf:defsystem ironclad-tests :depends-on (ironclad) :version "0.6" :in-order-to ((asdf:test-op (asdf:load-op :ironclad-tests))) :components ((:module "testing" :components ((:file "rt") (:file "testfuns" :depends-on ("rt")) (:module "test-vectors" :depends-on ("testfuns") :components ((:file "macs") (:file "modes") (:file "ciphers") (:file "digests") (:file "padding") (:file "pkcs5") (:file "scrypt") (:file "ironclad") (:file "prng-tests") ;; test vectors (:test-vector-file "crc24") (:test-vector-file "crc32") (:test-vector-file "adler32") (:test-vector-file "md2") (:test-vector-file "md4") (:test-vector-file "md5") (:test-vector-file "sha1") (:test-vector-file "sha224") (:test-vector-file "sha256") (:test-vector-file "sha384") (:test-vector-file "sha512") (:test-vector-file "ripemd-128") (:test-vector-file "ripemd-160") (:test-vector-file "tiger") (:test-vector-file "whirlpool") (:test-vector-file "hmac") (:test-vector-file "cmac") (:test-vector-file "tree-hash") ;; block ciphers of various kinds (:test-vector-file "null") (:test-vector-file "aes") (:test-vector-file "des") (:test-vector-file "3des") (:test-vector-file "blowfish") (:test-vector-file "twofish") (:test-vector-file "idea") (:test-vector-file "misty1") (:test-vector-file "square") (:test-vector-file "rc2") (:test-vector-file "rc5") (:test-vector-file "rc6") (:test-vector-file "tea") (:test-vector-file "xtea") (:test-vector-file "cast5") ;; modes (:test-vector-file "cbc") (:test-vector-file "ctr") (:test-vector-file "ofb") (:test-vector-file "cfb") (:test-vector-file "cfb8") ;; stream ciphers (:test-vector-file "arcfour") (:test-vector-file "salsa20") (:test-vector-file "salsa20-12") (:test-vector-file "salsa20-8") (:test-vector-file "chacha") (:test-vector-file "chacha-12") (:test-vector-file "chacha-8") ;; prng (:test-vector-file "prng"))))))) (defmethod asdf:perform ((op asdf:test-op) (c (eql (asdf:find-system :ironclad-tests)))) (or (funcall (intern "DO-TESTS" (find-package "RTEST"))) (error "TEST-OP failed for IRONCLAD-TESTS"))) ironclad_0.33.0/README0000644000175000017500000000270211305364032011310 0ustar00This is the README for Ironclad, a cryptography package for ANSI Common Lisp. It includes several popular block encryption algorithms and several popular hash functions. This release also includes some initial public-key cryptography functionality with the addition of DSA signing and verification. (As a bonus, this software used to sign this release was written in pure Common Lisp.) This release is intended as a prototype and as a basis for discussion and refinement. Most of the algorithms were written with efficiency for specific Common Lisp implementations in mind, although portable code is provided as an alternative in nearly all instances. The framework should be flexible enough to accomodate implementation-specific optimizations when possible. Documentation is currently minimal. Documentation strings for most of the exported functions should be provided; these strings provide a decent overview of what the library is capable of. Test vectors for many of the algorithms are included to provide a level of confidence in the correctness of the implementations. A (incomplete) TODO list is included with the package. The NEWS file provides a high-level overview of what has changed since the last release. ASDF packaging is provided; (asdf:oos 'asdf:load-op :ironclad) should be all you need to get started. Comments, criticisms, additions, and optimizations are welcome at the below email address. Nathan Froyd froydnj@gmail.com 30 January 2006 ironclad_0.33.0/LICENSE0000644000175000017500000000275111305364032011441 0ustar00Copyright (c) 2004-2008, Nathan Froyd All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holders nor the names of contributors to this software may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ironclad_0.33.0/TODO0000644000175000017500000002175311741553104011133 0ustar00hey emacs, show me an -*- mode: outline -*- * misc ** cleanup octet-stream: positions are either INDEX or POSITION, not both The latter requires :SHADOW adjustments in Ironclad's DEFPACKAGE. ** WRITE-SEQUENCE on crypting-streams ** HMACING-STREAM * ciphers to add CAST6 SEED MARS Serpent Camellia ...others?... * add OpenPGP functions This would involve writing some simple base64 encoding and decoding. I'm not sure how to add this and achieve the right amount of generality and functionality. Just writing an OpenPGP parser is straightforward, but determining what to do with the data is a little more complicated. * add {EN,DE}CRYPTING-STREAM capabilities Encrypts data written to it before writing the (now-encrypted) data to an underlying stream. Of course, the equivalent functionality is available for decrypting. This might finesse the current lack of padding functionality in the library: when the stream is closed, the appropriate amount and kind of padding is added. Not sure that this is necessarily the right idea, although when people are encrypting data, they are generally doing so before writing said data someplace else. I don't encrypt data in memory just for the fun of it. (These are partially written, see octet-stream.lisp.) * make a condition hierarchy for the library Some conditions have been added as of 0.7, but there probably need to be more, with helpful messages along the way. * move generic function definitions to their own file There's a lot of generic function definitions floating around as of version 0.5 and there are likely to be many more as the library grows. Perhaps the DEFGENERIC forms should be moved into their own file; such a change would make the source tree cleaner and provide a good starting point for people interested in examining the library's functionality. * add functional version of encryption and decryption {ENCRYPT,DECRYPT}-MESSAGE would be perfect for this; although they were originally conceived for public-key operations (and therefore they have to return a fresh octet vector), they make perfect candidates for providing functional interfaces to encryption and decryption as well. Figuring out short block interfaces for this and padding issues, however, will be a little tricky. * remove generic function calls from inner loops ENCRYPT-WITH-MODE, by virtue of calling -ENCRYPT-BLOCK on every iteration of the loop, requires -ENCRYPT-BLOCK to repeatedly extract the cipher-specific data from the provided cipher context. No idea if this is a bottleneck (probably not). Doing this extraction on every iteration of the loop is overhead, though--unnecessary overhead compared to a C implementation. Pulling the extraction out of the loop in a clean, cipher-independent manner is probably pretty hairy, however. * figure out interface for extra cipher creation parameters RC5, for instance, is configurable in the number of rounds. The number of rounds must be fixed the way the current system works. Configuring the number of rounds for TEA and XTEA would be another example of where this is useful. Surely there are other reasons, too. * add more cipher modes of operation CBC with ciphertext stealing (CBC-CTS) (this would require some sort of ENCRYPT-FINAL-BLOCK interface so we would know when to perform the ciphertext stealing) PCBC, for all those Lispers who want to implement Kerberos 4 OpenPGP CFB * add padding primitives This should be combined, somehow, with an ENCRYPT-FINAL-BLOCK generic function. This lets the caller do padding and encryption in one shot. An alternative to ENCRYPT-FINAL-BLOCK is to provide a :PROCESS-FINAL-BLOCK argument to {ENCRYPT,DECRYPT}, which seems cleaner and easier to add. * efficient 32-bit implementations of SHA2-{512,384} These digests are currently implemented with straight 64-bit arithmetic, which is elegant, but causes a lot of consing on 32-bit platforms. Is it worth spending the time to tweak these? * add other MACs The NESSIE project has a boatload of MAC recommendations with test vectors and everything. Adding other MACs would help with cleaning up the MAC interface (or lack thereof). ** unified interface for MAC construction, updating, etc. * add other digests Are there any other reputable hash functions? * figure out interface for stream ciphers WiderWake 4+1 SEAL (intellectual property issues, although that doesn't seem to stop many other crypto libraries) * add public-key crypto DSA signing and verification routines have been added as of version 0.11. RSA, Elgamal, elliptic-curve crypto, and others remain to be added. One issue that has yet to be resolved is how to handle the myriad signature/encryption schemes for RSA. * random number generation Doing this right would require adding an interface to get at entropy sources on various operating systems. We could just punt this out to the user and have an ADD-ENTROPY function that the user would need to call from time to time. Very inconvenient, though. * blue-sky ideas ** implementation-specific algorithm implementations Ironclad is written with implementations that are capable of performing 32-bit unboxed arithmetic in mind. However, there is no reason to leave other implementations out in the cold. I particularly have in mind ABCL, whose clean Java integration could facilitate using Java's crypto routines for many of the algorithms Ironclad provides. Using 32-bit integer arithmetic in LispWorks (SYSTEM:INT32-*) and DEF*LAPFUNCTION in ClozureCL, along with architecture-specific VOPs and/or DEF{KNOWN,OPTIMIZER,TRANSFORM} in SBCL/CMUCL are other ways of doing this. ** compilable encryption and decryption routines One trick that's commonly used in high-performance crypto libraries is unrolling inner loops of ciphers, which are generally Feistel networks of some sort. This transformation has many benefits: avoiding jumps and compiling more efficient code for structure accesses, to name two. Ironclad features unrolled loops in various places (e.g. the CAST5 and Blowfish ciphers). Unrolled loops can be particularly helpful in Common Lisp because the compiler can often optimize away things like array bounds checks. Unfortunately, this tends to limit the libraries to only handling a fixed number of rounds (or other configurable parameters of block ciphers). Accomodating variable numbers of rounds makes life easier for the truly paranoid and is more in the spirit of the ciphers as originally designed. One way of getting around this limitation would be to use Common Lisp's provision of the COMPILE function at create-the-cipher time. One could compile--on demand--specialized encryption/decryption routines that only accomodated a fixed number of rounds (or other static configuration parameters). This facility would be particularly helpful for those ciphers whose round keys are variable in the number of rounds chosen; bounds checking for accesses to these keys could be done away with entirely (except perhaps for a check to ensure the round key vector is of the proper length and type). Furthermore, the round keys could actually be compiled directly into the code--as 32-bit constant arguments on the x86, for example. Such a change would necessarily make the compiled routines key-specific, but perhaps that would be OK. (When reading the specifications for Blowfish and Twofish, the authors make much of this capability by citing screaming performance numbers for this scenario while noting that modifying the code for each individual key is difficult. In Ironclad, providing three differing levels of generality--general, n-rounds-specific, and key-specific--would be relatively easy compared to the difficulty of doing it in C.) Changes to MAKE-CIPHER--a keyword argument specifying the level of specialization--would be necessary. Extensive changes to the individual block ciphers would also be necessary. Perhaps this sort of facility need not be added to all ciphers; the common ones could come first (e.g. AES) and less-common ones would be converted as people contributed patches or needs were found for them. ** use word-aligned loads when possible The current code uses byte loads + shifts and ors to fetch (UNSIGNED-BYTE 32) values out of a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). Some implementations (I have in mind particularly SBCL and CMUCL) could use a more efficient mechanism if the offset of the (UNSIGNED-BYTE 32) value was known to be four-byte aligned. Once this was done for each encryption/decryption function for a particular block cipher, the high-level generic functions could call efficient versions if possible, eliminating some overhead. There is actually some (SBCL) support for this in cipher.lisp, in the alternate definition for WITH-WORDS. It doesn't make that much of a difference--at least not in the case where WITH-WORDS needs to check for alignment and safety. It might be a win if there were several different *-ENCRYPT-BLOCK functions and the high-level ones knew which one to call, but... * add option to allow INTEGER-TO-OCTETS to output directly to a buffer This could be handy in certain internals, e.g. in GENERATE-BLOCKS. ironclad_0.33.0/NEWS0000664000175000017500000005567212417557303011161 0ustar00-*- mode: outline -*- * Version 0.33, released 2014-10-15 ** bug fixes Included prng.testvec in the packaged tarball. The group parameter accessors for DSA keys have been fixed to not throw errors. (Thanks to Patrick Stein.) ** new features The convenience function WITH-DIGESTING-STREAM has been added to the IRONCLAD package. (Thanks to Samium Gromoff.) A new convenience package, IRONCLAD-TEXT, is included with this release; when loaded, IRONCLAD-TEXT exports the function WITH-DIGESTING-TEXT-STREAM from the IRONCLAD package. IRONCLAD-TEXT depends on FLEXI-STREAMS. The Salsa20 and ChaCha stream ciphers have been added, in full and reduced-round variants. The scrypt hash function's performance has been improved on x86-64 SBCL. Type checking for the PBKDF key derivation functions has been improved. * Version 0.32.1, released 2012-12-29 ** bug fixes Fixed octet-streams for Allegro versions >= 9.0. (Thanks to Elliott Johnson.) Fixed WRITE-SEQUENCE on octet-output-streams. (Thanks to Martin Nzioki.) Tweak system definition to work better with newer versions of ASDF. (Thanks to François-René Rideau.) Fixed problems with the Fortuna prng. (Thanks to Robert Uhl.) * Version 0.32, released 2012-11-13 ** bug fixes Fixed a SB!WIN32 typo. (Thanks to Leonard Huang.) Fix cipher key verification for implementations that don't provide a specialized (UNSIGNED-BYTE 8) array. (Thanks to ralcantaraperez on github.) Fix CAST5 compilation on some versions of Lispworks. Fix an invalid LOOP form in the bignum math code. (Thanks to Juan Jose Garcia Ripoll.) Fix a problem that some (all?) versions of x86-64 CCL have with the 64-bit SHA variants. ** improvements The x86oid assembly SHA expand functions have been made significantly smaller and faster. ** new features An implementation of the scrypt key derivation function has been added. Please see the documentation for details. (Thanks to Chris Howey.) * Version 0.31, released 2012-07-01 ** bug fixes Fixed a problem with digest buffering introduced in Ironclad 0.29. (Thanks to Zach Beane for the bug report.) MD5 on some versions of Lispworks works correctly again; unfortunately this change required disabling the improved MD5 implementation added in Ironclad 0.30. (Thanks to Chhi'mèd Künzang for the bug report.) Some compiler warnings on Lispworks have been fixed. (Thanks to Chhi'mèd Künzang for the bug report.) The digest functions now really check their types instead of incorrectly relying on DECLARE to provide the necessary type checks. (Thanks to dbunner-de on Github for the bug report.) ** improvements Encryption and decryption with block ciphers and small numbers of blocks should be somewhat faster. Several small improvements have been made to the digest code which may make it slightly faster when hashing short blocks of data. The modular inverse code has been made significantly faster, which should improve performance of public-key algorithms. (Thanks to Robert Uhl.) Several digest tests should no longer fail on Clozure CL. There have been reports of tests taking inordinate amounts of time on various CCL versions on various platforms, however. (CCL 1.8, for instance, works fine on Linux/x86-64, but explodes on Windows.) ** new features An implementation of the Fortuna pseudo-random number generator has been added. Please see the documentation for details. (Thanks to Robert Uhl for the implementation.) * Version 0.30, released 2012-03-27 ** bug fixes Fixed a bug in COPY-DIGEST for SHA224 and SHA384. (Thanks to Robert Uhl for noticing.) ** improvements Added a Lispworks-specific MD5 implementation. (Thanks to Pierre R. Mai for the implementation and Klaus Harbo for integrating it into Ironclad.) Fixed bugs with *PRINT-CASE* and Allegro CL's modern mode. (Thanks to Robert Uhl and Hans Huebner.) Ironclad now uses nibbles for its internal word-reffing and -setting functions. This change should speed up most operations by a small amount on x86oid SBCL platforms. SHA-512/384 should be somewhat faster on x86-64 SBCL. The copy of rt.lisp included for testing has been updated to match the version commonly in use. (Thanks to Anton Vodonosov for pointing this out.) * Version 0.29, released 2011-11-17 ** bug fixes Fixed ENCRYPTED-MESSAGE-LENGTH (not a supported interface) for ECB and CBC modes. (Thanks to Ron Garrett.) The compiler macros for the high-level digest functions now cope with the user's setting of *PRINT-CASE*. (Thanks to Robert Uhl.) ** improvements Assembler versions of several core functions have been added for x86 and x86-64 SBCL. The functions include: - octet copy loops; - SHA1's core functions; - SHA256's core expand function. You need a recent SBCL to compile Ironclad now. ** new features Added PBKDF convenience functions. (Thanks to Vladimir Sedach.) * Version 0.28, released 2010-03-26 ** bug fixes Fixed errors on 32-bit big-endian CMUCL and SBCL. (Thanks to Raymond Toy.) Fixed an error with INTEGER-TO-OCTETS :BIG-ENDIAN NIL. (Thanks to Daniel Janus.) ** improvements The code has been tweaked to generate less code for platforms that do not support inlined 32-bit arithmetic. ** new features Trees hashes are now supported, including the most common variant, Tiger tree hashes. Please see the documentation for details. (Thanks to Fare Rideau.) * Version 0.27, released 2009-03-28 ** bug fixes Fixed several issues that came up with Allegro CL 8.1. (Thanks to Utz-Uwe Haus.) Fixed compilation issues when the user had a non-standard *PRINT-CASE*. (Thanks to Gustavo.) Fixed an issue with LispWorks's recent update for conformance with DEFSTRUCT's specification. (Thanks to John Fremlin.) ** improvements HMAC-DIGEST now supports placing the produced digest into a user-provided buffer. Please see the documentation for details. HMAC now supports digests with larger block sizes than 64 bytes (such as SHA2-512). HMAC should be somewhat more efficient when producing digests. REINITIALIZE-INSTANCE is now supported on HMAC objects. Please see the documentation for details. CLEAR-OUTPUT is now supported on digesting streams. ** new features The SHA-224, SHA2-384 and SHA2-512 digest functions have been added, with tests. Key derivation functions from PKCS #5 have been added. On Gray streams-supporting implementations, WRITE-SEQUENCE is supported on several stream classes, with more to come. * Version 0.26, released 2008-05-17 ** bug fixes RC6 now compiles without error on non-x86 SBCL. (Thanks to Kevin Reid.) ** incompatible changes PRODUCE-DIGEST now *modifies* the state of the digest object passed to it. If you want to preserve that state for later, you will have to explicitly call COPY-DIGEST. ** improvements Compiler macros were added to improve the performance of DIGEST-{SEQUENCE,STREAM,FILE}. (Thanks to Attila Lendvai for motivating this.) Digest performance should be improved due to using structures; this change should bring digest performance back in line with where it was circa version 0.22. * Version 0.25, released 2008-02-24 ** bug fixes CRC32 now works properly and agrees with other CRC32 implementations. (Thanks to Todd Sabin.) The testsuite is once again included. (Thanks to Peter Graves for pointing out the missing files.) ** improvements BYTE-ARRAY-TO-HEX-STRING and ASCII-STRING-TO-BYTE-ARRAY have been optimized and should perform better. (Thanks to Attila Lendvai for the optimizations.) A compiler macro was added to improve the performance of MAKE-DIGEST. MAKE-DIGEST should also be faster in cases where the compiler macro does not apply. (Thanks to Attila Lendvai for motivating this.) ** new features The null cipher has been added to ease implementation of some security protocols. It is a block cipher with a BLOCK-LENGTH of 8 bytes. * Version 0.24, released 2008-02-09 ** bug fixes A bogus DECLAIM in Whirlpool's implementation has been fixed. ** improvements The way Whirlpool's registers are represented was changed slightly; the new representation should be slightly more efficient and silences an error in OpenMCL and LispWorks. Due to the changes, it is recommended that you compile this version of Ironclad in a fresh Lisp instance. (Thanks to Chun Tian.) Lispworks support for octet streams has been added. OpenMCL support for octet streams has been tweaked and should actually work now. (Thanks to Chun Tian.) * Version 0.23, released 31-12-2007 ** bug fixes VERIFY-SIGNATURE for DSA signatures now respects the START and END keyword arguments. (Thanks to Ildar.) ** improvements More refactoring of the internals has been performed; Ironclad should be slightly smaller as a result. Digest finalization on most digest types should cons significantly less. ** new features REINITIALIZE-INSTANCE is now supported on digest objects. CLEAR-OUTPUT is now supported on octet output streams. A compiler macro was added to improve the performance of MAKE-CIPHER. The Whirlpool digest function has been added, with tests. (Thanks to Peter Gijsels.) DIGEST-FILE, DIGEST-STREAM, and UPDATE-DIGEST with a stream to update from now accept three new keyword arguments: :BUFFER to specify a temporary buffer into which the data from the file/stream should be read, and :START and :END to specify the extent of the buffer that should be used. DIGEST-FILE, DIGEST-STREAM, and DIGEST-SEQUENCE now also accept a digest object as their first argument in addition to a digest specifier. * Version 0.22, released 12-06-2007 ** bug fixes Fixed issues with octet streams and Allegro CL. (Thanks to "quasilists".) Fixed a bug in some type declarations that was causing XCL to (rightly) complain when compiling Ironclad. (Thanks to Peter Graves.) The rsa.lisp file previously advertised to be in the distribution is now actually present. (Thanks to oudeis.) ** new features Byte-wise CFB mode (:CFB8) encryption and decryption have been added. (Thanks to Robert J. Macomber for suggesting this might be necessary for interoperating with other crypto toolkits.) UPDATE-DIGEST has new methods that can update the digest from a stream. See the documentation for details. * Version 0.21, released 21-04-2007 ** bug fixes Rewrote internal key-checking logic to provide a better error message when a :KEY argument is not provided to MAKE-CIPHER. (Thanks to Mark Carter.) Fixed LIST calls that exceeded CALL-ARGUMENTS-LIMIT. (Thanks to piso on #lisp.) Fixed tests to use RTEST nickname rather than RT to avoid name conflicts for LispWorks users. (Thanks to Sven Van Caekenberghe.) Fixed the Twofish, Blowfish, CAST5, and RC6 ciphers to work properly in LispWorks. (Thanks to Sven Van Caekenberghe.) Fixed a problem with DEFINE-DIGEST-REGISTERS. (Thanks to Sven Van Caekenberghe.) Fixed a problem with CMUCL and octet-streams. (Thanks to Raymond Toy.) * Version 0.20.1, released 21-02-2007 ** bug fixes Fixed system definition to push onto *FEATURES* correctly in CMUCL. (Thanks to Raymond Toy.) Fixed several mismatches in the documentation between the arglists and the prose that described them. (Thanks to Zach Beane.) Fixed IRONCLAD-TESTS to include the 3des test vectors. (Thanks to Raymond Toy and fe[nl]ix on #lisp who reported this.) * Version 0.20, released 20-02-2007 ** bug fixes The "counting" part of CTR mode in SBCL has been fixed. A bug in SHA-1 and SHA-256's usage of LOOP has been fixed. ** incompatible changes The interface to MAKE-CIPHER has been redone. Please see the documentation for details. ** improvements Square, TEA, and XTEA now come with test vectors. CRC24, CRC32, and Adler32 now come with test vectors. The test suite has been significantly reworked. It is now somewhat faster to execute and the compilation time for the system IRONCLAD-TESTS has been significantly reduced. Documentation for the library has been written; see doc/ironclad.html. Corrections and suggestions for improvements are much appreciated. The internals of cipher definition and ENCRYPT/DECRYPT have been rewritten. The net result is that the footprint of Ironclad has been reduced by ~25% (x86 SBCL) due to fewer methods being defined for each cipher. Furthermore, adding new ciphers will add only a few methods, rather than the large number that were created before. ** new features PRODUCE-DIGEST and DIGEST-{STREAM,SEQUENCE,FILE} can optionally place the computed digest into a preallocated user-supplied buffer. Please see the documentation for these functions for details. (Thanks to Zach Beane for suggesting this feature.) RSA encryption routines have been added. These are very "raw" routines, undoubtedly in need of some polish. Support for CMACs (NIST 800-38B and RFC 4439) has been added. (Thanks to Koga Kazuo for an initial implementation.) * Version 0.13, released 03-05-2006 ** improvements Added a (require :gray-streams) for CMUCL. (Thanks to Raymond Toy for suggesting this.) SHA-1 should now work on older versions of CLISP. (>= 2.34 or so) Tiger is now supported on all Common Lisps, not just SBCL. ** new features The ARCFOUR stream cipher has been added, with tests. A new mode for ARCFOUR and similar stream ciphers, imaginatively named :STREAM, is used when creating an ARCFOUR cipher context with MAKE-CIPHER. (Thanks to Tim Daly Jr.) {EN,DE}CRYPT-IN-PLACE have been added to make the programmer's intent clearer and to provide shorter calls for common operations. Digesting streams, which compute a specified digest of data being written, are now available on all Lisps that support octet streams. The digest of the data written so far may be retrieved with PRODUCE-DIGEST. * Version 0.12, released 30-01-2006 ** bugfixes Fixed XTEA decryption. Fixed incorrect type declarations in the Adler32 digest. (Thanks to Thas on #lisp. Thanks to Xach for permission to borrow his code from Salza.) Fixed MAKE-OCTET-INPUT-STREAM to instantiate the right class. (Thanks to Eric Marsden.) ** new features The RC2 block cipher has been added, with tests. Octet streams are now supported on Allegro CL and CMUCL. A family of functions, UB{16,32,64}REF/{BE,LE}, has been added for referencing (UNSIGNED-BYTE {16,32,64}) values of the appropriate endianness from octet vectors. These functions are SETF-able. ** improvements Exported EXPT-MOD from the IRONCLAD package. * Version 0.11, released 10-11-2005 ** bugfixes Fixed tests HMAC.0 and HMAC.1 (which would have worked had they referred to the proper ASCII-STRING-TO-BYTE-ARRAY...). (Thanks to Raymond Toy.) Fixed CBC mode decryption to match CBC mode encryption. *blush* (Thanks to Travis Cross.) Sanity checks have been added to the test suite to make this sort of thing less likely to happen in the future. Fixed the initializer for CRC24; CRC24 now works properly. Fixed a hashing bug common to MD{2,4,5}, SHA-1, SHA-256, RIPEMD-128, RIPEMD-160, and Tiger when updating the digest state with an amount of data smaller than the space remaining in the internal buffer. Tests have been added to ensure this doesn't happen again. Fixed DIGEST-SEQUENCE on SBCL and CMUCL to respect the fill-pointer of a vector. (Thanks to Steve Smith.) ** new features A new generic function to inspect supported key lengths for ciphers has been added. By no small coincidence, it is named KEY-LENGTHS. Please see its documentation string for details. (Thanks to Travis Cross.) Counter mode (:CTR) encryption and decryption has been added. Octet streams, which are like string-streams, only for octet vectors, have been added. As of this release, they only work in SBCL and OpenMCL; if your favorite implementation is not supported, patches are welcome. Asymmetric encryption routines have been included in this release; only DSA (signing and verification) routines are included. Although test vectors are not (yet) included, this release of Ironclad was signed using routines from Ironclad. IMPORTANT: Please note that DSA signing of messages is on the *digest* of the message, not the message itself. Please also note that the DSA signing routine requires *random* numbers; it currently uses CL:RANDOM for this purpose, which is probably *NOT* secure enough for your needs. Please make any changes you deem necessary to the signing routine to accomodate your security level. Feedback is sought on the interface to the routines: - MAKE-PUBLIC-KEY - MAKE-PRIVATE-KEY - SIGN-MESSAGE - VERIFY-MESSAGE DEFGENERICs for ENCRYPT-MESSAGE and DECRYPT-MESSAGE have been included. No methods on them are currently defined. Methods for RSA keys and ElGamal keys will likely be forthcoming in a future release. Feedback is also requested for those functions as well. * Version 0.10, released 01-11-2005 ** bugfixes Exported several block cipher context class names that were previously unexported. Digesting files and streams now works properly on MCL and other Lisps that "mangle" stream-element-type. (Thanks to Hoan Ton-That.) ** new features Functions ASCII-STRING-TO-BYTE-ARRAY and BYTE-ARRAY-TO-HEX-STRING were moved from the IRONCLAD-TESTS package into Ironclad itself. These functions seem useful enough to have around at all times. Please see the docstrings for these functions for usage documentation. (Thanks to kire on #lisp for suggesting this.) ** improvements The memory footprint of Ironclad should be slightly reduced. MAKE-CIPHER throws real errors for unsupported ciphers (IRONCLAD:UNSUPPORTED-CIPHER) or modes (IRONCLAD:UNSUPPORTED-MODE), rather than NO-APPLICABLE-METHOD. * Version 0.9.1, released 13-09-2005 ** bugfixes Fixed problems related to non-ANSI use of SUBSEQ on circular lists. * Version 0.9, released 13-09-2005 ** bugfixes The TripleDES block cipher now passes all included test vectors. ** new features The RC6 block cipher has been added, with tests. The MISTY1 block cipher has been added, with tests. MISTY1 is unique among the current crop of ciphers supported by Ironclad, as an implementation that uses 16-bit arithmetic rather than 32-bit is straightforward. Therefore, MISTY1's performance should be better than, say, DES or Blowfish on Common Lisp implementations that do not support unboxed 32-bit arithmetic. ** performance improvements The performance of the SHA-1 and SHA-256 hash functions should be significantly improved. * Version 0.8, released 29-08-2005 ** bugfixes Added missing :LOAD-TOPLEVEL to EVAL-WHEN in blowfish.lisp; tests now pass on ACL 7.0, Linux/x86. (Thanks to chavatar on #lisp.) Fixed a case when digesting a file would throw a TYPE-ERROR. (Thanks to Hoan Ton-That.) Test vectors have been added for TripleDES, which immediately caught several bugs in the current implementation. However, many of the TripleDES tests do not pass in the current release. Using TripleDES until all tests pass is not recommended. Test vectors have been added for SHA-1, which immediately caught a bug in the production of digests. This bug has been fixed. ** new features The RC5 cipher has been added, with tests. The SHA-256 hash function has been added, with tests. * Version 0.7.2, released 24-08-2005 ** bugfixes Fixed calls to ROL32 to only use positive arguments. This change should result in more tests (particularly the Twofish tests) passing on non-SBCL implementations. (Thanks to Raymond Toy for tracking this one down.) Fixed some ACL 6.2 (trial) warnings related to multiply-defined functions, non-EVAL-WHEN'd DEFCONSTANT forms, unused variables, and an incomplete ASDF system definition. These fixes should also eliminate warnings in other implementations as well. (Thanks to chavatar on #lisp for motivating this.) * Version 0.7.1, released 23-08-2005 ** bugfixes UPDATE-HMAC now returns the HMAC object upon which it operated, rather than internal hashing state. (Thanks to rich_holygoat on #lisp.) Condition names are now exported from the IRONCLAD package. FINALIZE-ADLER32-STATE was fixed to properly store and return the computed digest. (Thanks to Raymond Toy.) The test suite now excludes Tiger on non-SBCL Common Lisps (since Tiger is currently only supported on SBCL). (Thanks to Raymond Toy.) * Version 0.7, released 11-08-2005 ** incompatible changes Support for SBCL versions older than 0.9.0 has been removed. ** bugfixes The RIPEMD family of hash functions now passes all included test vectors. The MD4 hash function now passes all included test vectors. The CAST5 block cipher now passes all included test vectors. When appropriate, ARRAY-DIMENSION-LIMIT is now used to specify types instead of ARRAY-TOTAL-SIZE-LIMIT. A bug related to an argument-passing mismatch between the low-level hashing routines and their high-level counterparts has been fixed. ** new features TripleDES has been added. Real conditions (subclasses of IRONCLAD:IRONCLAD-ERROR) are now signaled in several exceptional situations. *** introspection changes New generic functions DIGEST-LENGTH and BLOCK-LENGTH have been added. Please see the documentation strings for these generic functions for details. * Version 0.6, released 21-02-2005 ** bugfixes Due to the addition of a real, functioning test suite, many bugs have been fixed, including an embarassing one involving decryption. While not all of the provided digest functions and ciphers pass the test suite yet, the number of fixes brought about by adding the test suite called for a new release. The AES, Twofish, IDEA, DES, and Blowfish implementations pass the test suite along with the MD5, SHA-1 and Tiger hash function implementations. ** new features The checksums Adler32, CRC24, and CRC32 have been added. The IDEA and Twofish ciphers have been added. New digest interfaces have been added. Please check the documentation strings for MAKE-DIGEST, COPY-DIGEST, UPDATE-DIGEST, and PRODUCE-DIGEST for details. Support for HMACs has been added. ** optimizations FETCH-UB32 and STORE-UB32 are now coded inline, which should eliminate bignum consing in some implementations. Better type declarations have been added to make the extraction of word-sized data from (UNSIGNED-BYTE 32) vectors less expensive. The Blowfish implementation has been optimized and should cons less. The AES implementation has been optimized and should be at least 2x faster. * Version 0.5, released 05-01-2005 ** bugfixes The Square cipher was severly broken in previous releases. This oversight has been remedied. Other ciphers were broken in similar ways (e.g. argument ordering problems) and the function definitions for the cipher operation modes were broken as well. These problems have been fixed. ** incompatible changes Strings are no longer "digestable"--you must convert the string to a byte vector before digesting it. Hex strings are no longer permitted as keys for ciphers. ** introspection changes Added functions {DIGEST,CIPHER,MODE}-SUPPORTED-P and LIST-ALL-{DIGEST,CIPHER,MODE}S so applications can determine on the fly what algorithms are supported by the package. ** test framework added Test vectors from official specifications have been added to the package and ASDF definitions for a test framework have been added as well. Note that the testing suite is not yet fully operational. :) * Version 0.4, released 27-11-2004 Cipher keys can now be specified as hexadecimal strings or as byte vectors. Various little cleanups were made. * Version 0.3, released 26-11-2004 initial release ironclad_0.33.0/src/package.lisp0000664000175000017500000000625412247651776013537 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (cl:defpackage :ironclad (:use :cl) (:nicknames :crypto) (:shadow null) (:import-from #:nibbles #:ub16ref/le #:ub16ref/be #:ub32ref/le #:ub32ref/be #:ub64ref/le #:ub64ref/be) (:export ;; referencing multiple-octet values in an octet vector (SETF-able) #:ub16ref/be #:ub16ref/le #:ub32ref/be #:ub32ref/le #:ub64ref/le #:ub64ref/be ;; hash functions #:digest-sequence #:digest-stream #:digest-file #:make-digest #:copy-digest #:update-digest #:produce-digest ;; HMACs #:make-hmac #:update-hmac #:hmac-digest ;; CMACs #:make-cmac #:update-cmac #:cmac-digest ;; introspection #:cipher-supported-p #:list-all-ciphers #:digest-supported-p #:list-all-digests #:mode-supported-p #:list-all-modes #:block-length #:digest-length #:key-lengths ;; high-level block cipher operators #:make-cipher #:encrypt #:decrypt #:encrypt-in-place #:decrypt-in-place ;; arguments to (MAKE-CIPHER ... :MODE X) #:ecb #:cbc #:ctr #:ofb #:cfb #:stream ;; KDFs #:pbkdf1 #:pbkdf2 #:scrypt-kdf #:make-kdf #:derive-key ;; KDF convenience functions #:make-random-salt #:pbkdf2-hash-password #:pbkdf2-hash-password-to-combined-string #:pbkdf2-check-password ;; public-key encryption operations #:make-public-key #:make-private-key #:sign-message #:verify-signature #:encrypt-message #:decrypt-message ;; signatures #:make-dsa-signature ;; public-key slot readers #:dsa-key-p #:dsa-key-q #:dsa-key-g #:dsa-key-y #:dsa-key-x #:dsa-signature-r #:dsa-signature-s ;; pseudo-random number generators #:pseudo-random-number-generator #:list-all-prngs #:make-prng #:random-data #:read-os-random-seed #:read-seed #:write-seed #:fortuna-prng #:add-random-event #:fortuna #:strong-random #:random-bits #:*prng* ;; cryptographic math #:generate-prime #:prime-p #:generate-prime-in-range #:egcd ;; conditions #:ironclad-error #:initialization-vector-not-supplied #:invalid-initialization-vector #:invalid-key-length #:unsupported-cipher #:unsupported-mode #:unsupported-digest #:unsupported-kdf #:unsupported-scrypt-cost-factors #:insufficient-buffer-space #:invalid-padding #:key-not-supplied ;; utilities #:byte-array-to-hex-string #:hex-string-to-byte-array #:ascii-string-to-byte-array #:octets-to-integer #:integer-to-octets #:expt-mod ;; streams #:make-octet-input-stream #:make-octet-output-stream #:get-output-stream-octets #:make-digesting-stream #:execute-with-digesting-stream #:with-digesting-stream #:execute-with-digesting-text-stream #:with-digesting-text-stream) ;; supported digests (:export #:whirlpool #:md2 #:md4 #:md5 #:adler32 #:crc24 #:crc32 #:tiger #:sha1 #:sha224 #:sha256 #:sha384 #:sha512 #:tree-hash #:make-tiger-tree-hash #:ripemd-128 #:ripemd-160) ;; supported block ciphers (:export #:blowfish #:tea #:xtea #:square #:rc2 #:rc5 #:rc6 #:des #:3des #:aes #:twofish #:cast5 #:idea #:misty1 #:null) ;; supported stream ciphers (:export #:arcfour #:salsa20 #:salsa20/12 #:salsa20/8 #:chacha #:chacha/12 #:chacha/8)) ironclad_0.33.0/src/conditions.lisp0000644000175000017500000001165412221540662014272 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; conditions.lisp -- various error conditions (in-package :ironclad) (define-condition ironclad-error (simple-error) ()) (define-condition key-not-supplied (ironclad-error) ((cipher :initarg :cipher :reader cipher)) (:report (lambda (condition stream) (format stream "Cipher ~A requires a key" (cipher condition)))) (:documentation "Signaled when a key is not provided at the initialization of a cipher.")) (define-condition initialization-vector-not-supplied (ironclad-error) ((mode :initarg :mode :reader mode)) (:report (lambda (condition stream) (format stream "Mode ~A requires an initialization vector" (mode condition)))) (:documentation "Signaled when an initialization vector is required for a particular mode of operation but not supplied.")) (define-condition invalid-initialization-vector (ironclad-error) ((cipher :initarg :cipher :reader cipher) (block-length :initarg :block-length :reader block-length)) (:report (lambda (condition stream) (format stream "Cipher ~A requires an initialization vector of length ~D" (cipher condition) (block-length condition)))) (:documentation "Signaled when an invalid initialization vector is supplied to MAKE-CIPHER.")) (define-condition invalid-key-length (ironclad-error) ((cipher :initarg :cipher :reader cipher) (lengths :initarg :accepted-lengths :reader accepted-lengths)) (:report (lambda (condition stream) (format stream "Cipher ~A only accepts keys of these lengths: ~A" (cipher condition) (accepted-lengths condition)))) (:documentation "Signaled when a key is not the proper length for a cipher.")) (define-condition unsupported-cipher (ironclad-error) ((cipher :initarg :name :reader cipher)) (:report (lambda (condition stream) (format stream "Cipher ~A is not a supported cipher" (cipher condition)))) (:documentation "Signaled when an invalid cipher name is provided to MAKE-CIPHER.")) (define-condition unsupported-mode (ironclad-error) ((mode :initarg :mode :reader mode) (cipher :initarg :cipher :reader cipher)) (:report (lambda (condition stream) (if (cipher condition) (format stream "Mode ~A is not a supported mode for ~A" (mode condition) (cipher condition)) (format stream "Mode ~A is not a supported mode" (mode condition))))) (:documentation "Signaled when an invalid mode name is provided to MAKE-CIPHER.")) (define-condition unsupported-digest (ironclad-error) ((digest :initarg :name :reader digest)) (:report (lambda (condition stream) (format stream "Digest ~A is not a supported digest" (digest condition)))) (:documentation "Signaled when an invalid digest name is provided to MAKE-DIGEST.")) (define-condition unsupported-kdf (ironclad-error) ((kdf :initarg :kdf :reader kdf)) (:report (lambda (condition stream) (format stream "~A is not a supported key derivation function" (kdf condition)))) (:documentation "Signaled when an invalid key derivation function name is provided to MAKE-KDF.")) (define-condition unsupported-scrypt-cost-factors (ironclad-error) ((N :initarg :N :reader cost-N) (r :initarg :r :reader cost-r) (p :initarg :p :reader cost-p)) (:report (lambda (condition stream) (format stream "Scrypt cost factors not supported. N=~A must be a power of two and (r=~A * p=~A) <= 2^30." (cost-N condition) (cost-r condition) (cost-p condition)))) (:documentation "Signaled when a invalid cost factors are provided to MAKE-SCRYPT-KDF.")) (define-condition insufficient-buffer-space (ironclad-error) ((buffer :initarg :buffer :reader insufficient-buffer-space-buffer) (start :initarg :start :reader insufficient-buffer-space-start) (length :initarg :length :reader insufficient-buffer-space-length)) (:report (lambda (condition stream) (format stream "Buffer ~A cannot accomodate ~D elements starting at index ~D" (insufficient-buffer-space-buffer condition) (insufficient-buffer-space-length condition) (insufficient-buffer-space-start condition)))) (:documentation "Signaled when insufficient buffer space exists for an operation.")) (define-condition invalid-padding (ironclad-error) ((padding-name :initarg :name :reader invalid-padding-padding-name) (block :initarg :block :reader invalid-padding-block)) (:report (lambda (condition stream) (format stream "The ~A padding in block ~A is invalid" (invalid-padding-padding-name condition) (invalid-padding-block condition)))) (:documentation "Signaled when padding in a block is determined to be invalid.")) ironclad_0.33.0/src/util.lisp0000644000175000017500000000643611761302200013070 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; util.lisp -- functions that come in handy in crypto applications (in-package :crypto) (declaim (inline byte-array-to-hex-string hex-string-to-byte-array ascii-string-to-byte-array)) (defun byte-array-to-hex-string (vector &key (start 0) end (element-type 'base-char)) "Return a string containing the hexadecimal representation of the subsequence of VECTOR between START and END. ELEMENT-TYPE controls the element-type of the returned string." (declare (type (vector (unsigned-byte 8)) vector) (type fixnum start) (type (or cl:null fixnum) end) (optimize (speed 3) (safety 1))) (let* ((end (or end (length vector))) (length (- end start)) (hexdigits #.(coerce "0123456789abcdef" 'simple-base-string))) (loop with string = (ecase element-type ;; so that the compiler optimization can jump in (base-char (make-string (* length 2) :element-type 'base-char)) (character (make-string (* length 2) :element-type 'character))) for i from start below end for j from 0 below (* length 2) by 2 do (let ((byte (aref vector i))) (declare (optimize (safety 0))) (setf (aref string j) (aref hexdigits (ldb (byte 4 4) byte)) (aref string (1+ j)) (aref hexdigits (ldb (byte 4 0) byte)))) finally (return string)))) (defun hex-string-to-byte-array (string &key (start 0) (end nil)) "Parses a substring of STRING delimited by START and END of hexadecimal digits into a byte array." (declare (type string string)) (let* ((end (or end (length string))) (length (/ (- end start) 2)) (key (make-array length :element-type '(unsigned-byte 8)))) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (flet ((char-to-digit (char) (or (position char "0123456789abcdef" :test #'char-equal) (error "~A is not a hex digit" char)))) (loop for i from 0 for j from start below end by 2 do (setf (aref key i) (+ (* (char-to-digit (char string j)) 16) (char-to-digit (char string (1+ j))))) finally (return key))))) (defun ascii-string-to-byte-array (string &key (start 0) end) "Convert STRING to a (VECTOR (UNSIGNED-BYTE 8)). It is an error if STRING contains any character whose CHAR-CODE is greater than 255." (declare (type string string) (type fixnum start) (type (or cl:null fixnum) end) (optimize (speed 3) (safety 1))) (let* ((length (length string)) (vec (make-array length :element-type '(unsigned-byte 8))) (end (or end length))) (loop for i from start below end do (let ((byte (char-code (char string i)))) (unless (< byte 256) (error "~A is not an ASCII character" (char string i))) (setf (aref vec i) byte)) finally (return vec)))) (declaim (notinline byte-array-to-hex-string hex-string-to-byte-array ascii-string-to-byte-array)) ironclad_0.33.0/src/macro-utils.lisp0000644000175000017500000000120611761302200014340 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; macro-utils.lisp -- things to make compiler macros easier (in-package :crypto) (defun quotationp (thing) (and (consp thing) (consp (rest thing)) (cl:null (cddr thing)) (eq (first thing) 'quote))) (defun unquote (thing) (if (quotationp thing) (second thing) thing)) (defun massage-symbol (symbol) (let ((package (symbol-package symbol)) (ironclad (load-time-value (find-package :ironclad)))) (cond ((eq package ironclad) symbol) ((eq package (load-time-value (find-package :keyword))) (find-symbol (symbol-name symbol) ironclad)) (t nil)))) ironclad_0.33.0/src/common.lisp0000644000175000017500000004172012250245725013412 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; common.lisp -- efficient implementations of mod32 arithmetic and macros ;;; Functions in this file are intended to be fast (in-package :crypto) (defmacro defconst (name value) `(defconstant ,name (if (boundp ',name) (symbol-value ',name) ,value))) ;;; CMUCL and SBCL both have an internal type for this, but we'd like to ;;; be portable, so we define our own. (deftype index () '(mod #.array-dimension-limit)) (deftype index+1 () `(mod ,(1+ array-dimension-limit))) ;;; We write something like this all over the place. (deftype simple-octet-vector (&optional length) (let ((length (or length '*))) `(simple-array (unsigned-byte 8) (,length)))) ;;; a global specification of optimization settings (eval-when (:compile-toplevel :load-toplevel :execute) (defun burn-baby-burn () '(optimize (speed 3) (safety 0) (space 0) (debug 0) (compilation-speed 0))) (defun hold-me-back () '(declare (optimize (speed 3) (space 0) (compilation-speed 0) #-cmu (safety 1) #-cmu (debug 1) #+cmu (safety 0) #+cmu (debug 0)) #+cmu (ext:optimize-interface (safety 1) (debug 1)))) ) ; EVAL-WHEN ;;; extracting individual bytes from integers ;;; We used to declare these functions with much stricter types (e.g. ;;; (UNSIGNED-BYTE 32) as the lone argument), but we need to access ;;; bytes of both 32-bit and 64-bit words and the types would just get ;;; in our way. We declare these functions as inline; a good Common ;;; Lisp compiler should be able to generate efficient code from the ;;; declarations at the point of the call. ;;; These functions are named according to big-endian conventions. The ;;; comment is here because I always forget and need to be reminded. #.(loop for i from 1 to 8 collect (let ((name (read-from-string (format nil "~:R-~A" i '#:byte)))) `(progn (declaim (inline ,name)) (declaim (ftype (function (unsigned-byte) (unsigned-byte 8)) ,name)) (defun ,name (ub) (declare (type unsigned-byte ub)) (ldb (byte 8 ,(* 8 (1- i))) ub)))) into forms finally (return `(progn ,@forms))) ;;; fetching/storing appropriately-sized integers from octet vectors (eval-when (:compile-toplevel :load-toplevel :execute) (defun ubref-fun-name (bitsize big-endian-p) (nibbles::byte-ref-fun-name bitsize nil big-endian-p)) ) ; EVAL-WHEN ;;; efficient 32-bit arithmetic, which a lot of algorithms require (declaim #+ironclad-fast-mod32-arithmetic (inline mod32+) (ftype (function ((unsigned-byte 32) (unsigned-byte 32)) (unsigned-byte 32)) mod32+)) (defun mod32+ (a b) (declare (type (unsigned-byte 32) a b)) (ldb (byte 32 0) (+ a b))) #+cmu (define-compiler-macro mod32+ (a b) `(ext:truly-the (unsigned-byte 32) (+ ,a ,b))) #+sbcl (define-compiler-macro mod32+ (a b) `(ldb (byte 32 0) (+ ,a ,b))) ;;; mostly needed for CAST* (declaim #+ironclad-fast-mod32-arithmetic (inline mod32-) (ftype (function ((unsigned-byte 32) (unsigned-byte 32)) (unsigned-byte 32)) mod32-)) (defun mod32- (a b) (declare (type (unsigned-byte 32) a b)) (ldb (byte 32 0) (- a b))) #+cmu (define-compiler-macro mod32- (a b) `(ext:truly-the (unsigned-byte 32) (- ,a ,b))) #+sbcl (define-compiler-macro mod32- (a b) `(ldb (byte 32 0) (- ,a ,b))) ;;; mostly needed for RC6 (declaim #+ironclad-fast-mod32-arithmetic (inline mod32*) (ftype (function ((unsigned-byte 32) (unsigned-byte 32)) (unsigned-byte 32)) mod32*)) (defun mod32* (a b) (declare (type (unsigned-byte 32) a b)) (ldb (byte 32 0) (* a b))) #+cmu (define-compiler-macro mod32* (a b) `(ext:truly-the (unsigned-byte 32) (* ,a ,b))) #+sbcl (define-compiler-macro mod32* (a b) `(ldb (byte 32 0) (* ,a ,b))) (declaim #+ironclad-fast-mod32-arithmetic (inline mod32ash) (ftype (function ((unsigned-byte 32) (integer -31 31)) (unsigned-byte 32)) mod32ash)) (defun mod32ash (num count) (declare (type (unsigned-byte 32) num)) (declare (type (integer -31 31) count)) (ldb (byte 32 0) (ash num count))) #+sbcl (define-compiler-macro mod32ash (num count) ;; work around SBCL optimizing bug as described by APD: ;; http://www.caddr.com/macho/archives/sbcl-devel/2004-8/3877.html `(logand #xffffffff (ash ,num ,count))) (declaim #+ironclad-fast-mod32-arithmetic (inline mod32lognot) (ftype (function ((unsigned-byte 32)) (unsigned-byte 32)) mod32lognot)) (defun mod32lognot (num) (ldb (byte 32 0) (lognot num))) #+sbcl (define-compiler-macro mod32lognot (num) `(ldb (byte 32 0) (lognot ,num))) (declaim #+ironclad-fast-mod32-arithmetic (inline rol32 ror32) (ftype (function ((unsigned-byte 32) (unsigned-byte 5)) (unsigned-byte 32)) rol32 ror32)) (defun rol32 (a s) (declare (type (unsigned-byte 32) a) (type (integer 0 32) s)) #+cmu (kernel:32bit-logical-or #+little-endian (kernel:shift-towards-end a s) #+big-endian (kernel:shift-towards-start a s) (ash a (- s 32))) #+sbcl (sb-rotate-byte:rotate-byte s (byte 32 0) a) #-(or sbcl cmu) (logior (ldb (byte 32 0) (ash a s)) (ash a (- s 32)))) (defun ror32 (a s) (declare (type (unsigned-byte 32) a) (type (integer 0 32) s)) #+sbcl (sb-rotate-byte:rotate-byte (- s) (byte 32 0) a) #-sbcl (rol32 a (- 32 s))) (declaim #+ironclad-fast-mod64-arithmetic (inline mod64+ mod64- mod64*) (ftype (function ((unsigned-byte 64) (unsigned-byte 64)) (unsigned-byte 64)) mod64+)) (defun mod64+ (a b) (declare (type (unsigned-byte 64) a b)) (ldb (byte 64 0) (+ a b))) #+sbcl (define-compiler-macro mod64+ (a b) `(ldb (byte 64 0) (+ ,a ,b))) (defun mod64- (a b) (declare (type (unsigned-byte 64) a b)) (ldb (byte 64 0) (- a b))) #+sbcl (define-compiler-macro mod64- (a b) `(ldb (byte 64 0) (- ,a ,b))) (defun mod64* (a b) (declare (type (unsigned-byte 64) a b)) (ldb (byte 64 0) (* a b))) #+sbcl (define-compiler-macro mod64* (a b) `(ldb (byte 64 0) (* ,a ,b))) (declaim #+ironclad-fast-mod64-arithmetic (inline rol64 ror64) (ftype (function ((unsigned-byte 64) (unsigned-byte 6)) (unsigned-byte 64)) rol64 ror64)) (declaim #+ironclad-fast-mod64-arithmetic (inline mod64ash) (ftype (function ((unsigned-byte 64) (integer -63 63)) (unsigned-byte 64)) mod64ash)) (defun mod64ash (num count) (declare (type (unsigned-byte 64) num)) (declare (type (integer -63 63) count)) (ldb (byte 64 0) (ash num count))) #+sbcl (define-compiler-macro mod64ash (num count) ;; work around SBCL optimizing bug as described by APD: ;; http://www.caddr.com/macho/archives/sbcl-devel/2004-8/3877.html `(logand #xffffffffffffffff (ash ,num ,count))) (declaim #+ironclad-fast-mod64-arithmetic (inline mod64lognot) (ftype (function ((unsigned-byte 64)) (unsigned-byte 64)) mod64lognot)) (defun mod64lognot (num) (ldb (byte 64 0) (lognot num))) #+sbcl (define-compiler-macro mod64lognot (num) `(ldb (byte 64 0) (lognot ,num))) (declaim #+ironclad-fast-mod64-arithmetic (inline rol64 ror64) (ftype (function ((unsigned-byte 64) (unsigned-byte 6)) (unsigned-byte 64)) rol64 ror64)) (defun rol64 (a s) (declare (type (unsigned-byte 64) a) (type (integer 0 64) s)) #+(and sbcl ironclad-fast-mod64-arithmetic) (sb-rotate-byte:rotate-byte s (byte 64 0) a) #-(and sbcl ironclad-fast-mod64-arithmetic) (logior (ldb (byte 64 0) (ash a s)) (ash a (- s 64)))) (defun ror64 (a s) (declare (type (unsigned-byte 64) a) (type (integer 0 64) s)) #+(and sbcl ironclad-fast-mod64-arithmetic) (sb-rotate-byte:rotate-byte (- s) (byte 64 0) a) #-(and sbcl ironclad-fast-mod64-arithmetic) (rol64 a (- 64 s))) ;;; 64-bit utilities (declaim #+ironclad-fast-mod32-arithmetic (inline %add-with-carry %subtract-with-borrow)) ;;; The names are taken from sbcl and cmucl's bignum routines. ;;; Naturally, they work the same way (which means %SUBTRACT-WITH-BORROW ;;; is a little weird). (defun %add-with-carry (x y carry) (declare (type (unsigned-byte 32) x y) (type (mod 2) carry)) #+(and sbcl 32-bit) (sb-bignum:%add-with-carry x y carry) #+(and cmucl 32-bit) (bignum:%add-with-carry x y carry) #-(or (and sbcl 32-bit) (and cmucl 32-bit)) (let* ((temp (mod32+ x y)) (temp-carry (if (< temp x) 1 0)) (result (mod32+ temp carry))) (values result (logior temp-carry (if (< result temp) 1 0))))) (defun %subtract-with-borrow (x y borrow) (declare (type (unsigned-byte 32) x y) (type (mod 2) borrow)) #+(and sbcl 32-bit) (sb-bignum:%subtract-with-borrow x y borrow) #+(and cmucl 32-bit) (bignum:%subtract-with-borrow x y borrow) #-(or (and sbcl 32-bit) (and cmucl 32-bit)) (let ((temp (mod32- x y))) (cond ((zerop borrow) (values (mod32- temp 1) (if (< y x) 1 0))) (t (values temp (logxor (if (< x y) 1 0) 1)))))) ;;; efficient 8-byte -> 32-byte buffer copy routines, mostly used by ;;; the hash functions. we provide big-endian and little-endian ;;; versions. (declaim (inline fill-block-le-ub8 fill-block-be-ub8)) (declaim (inline copy-to-buffer)) (defun copy-to-buffer (from from-offset count buffer buffer-offset) "Copy a partial segment from input vector from starting at from-offset and copying count elements into the 64 byte buffer starting at buffer-offset." (declare (type index from-offset) (type (integer 0 127) count buffer-offset) (type simple-octet-vector from) (type simple-octet-vector buffer) #.(burn-baby-burn)) #+cmu (kernel:bit-bash-copy from (+ (* vm:vector-data-offset vm:word-bits) (* from-offset vm:byte-bits)) buffer (+ (* vm:vector-data-offset vm:word-bits) (* buffer-offset vm:byte-bits)) (* count vm:byte-bits)) #+sbcl (sb-kernel:ub8-bash-copy from from-offset buffer buffer-offset count) #-(or cmu sbcl) (loop for buffer-index of-type (integer 0 64) from buffer-offset for from-index of-type fixnum from from-offset below (+ from-offset count) do (setf (aref buffer buffer-index) (aref from from-index)))) (defun fill-block-ub8-le (block buffer offset) "Convert a complete 64 (UNSIGNED-BYTE 8) input BUFFER starting from OFFSET into the given (UNSIGNED-BYTE 32) BLOCK." (declare (type (integer 0 #.(- array-dimension-limit 64)) offset) (type (simple-array (unsigned-byte 32) (16)) block) (type simple-octet-vector buffer)) #+(and :cmu :little-endian) (kernel:bit-bash-copy buffer (+ (* vm:vector-data-offset vm:word-bits) (* offset vm:byte-bits)) block (* vm:vector-data-offset vm:word-bits) (* 64 vm:byte-bits)) #+(and :sbcl :little-endian) (sb-kernel:ub8-bash-copy buffer offset block 0 64) #-(or (and :sbcl :little-endian) (and :cmu :little-endian)) (loop for i of-type (integer 0 16) from 0 for j of-type (integer 0 #.array-dimension-limit) from offset to (+ offset 63) by 4 do (setf (aref block i) (nibbles:ub32ref/le buffer j)))) (defun fill-block-ub8-be (block buffer offset) "Convert a complete 64 (unsigned-byte 8) input vector segment starting from offset into the given 16 word SHA1 block. Calling this function without subsequently calling EXPAND-BLOCK results in undefined behavior." (declare (type (integer 0 #.(- array-dimension-limit 64)) offset) (type (simple-array (unsigned-byte 32) (*)) block) (type simple-octet-vector buffer)) ;; convert to 32-bit words #+(and :cmu :big-endian) (kernel:bit-bash-copy buffer (+ (* vm:vector-data-offset vm:word-bits) (* offset vm:byte-bits)) block (* vm:vector-data-offset vm:word-bits) (* 64 vm:byte-bits)) #+(and :sbcl :big-endian) (sb-kernel:ub8-bash-copy buffer offset block 0 64) #-(or (and :sbcl :big-endian) (and :cmu :big-endian)) (loop for i of-type (integer 0 16) from 0 for j of-type (integer 0 #.array-dimension-limit) from offset to (+ offset 63) by 4 do (setf (aref block i) (nibbles:ub32ref/be buffer j))) (values)) (defun fill-block-ub8-le/64 (block buffer offset) "Convert a complete 128 (unsigned-byte 8) input vector segment starting from offset into the given 16 qword SHA1 block. Calling this function without subsequently calling EXPAND-BLOCK results in undefined behavior." (declare (type (integer 0 #.(- array-dimension-limit 64)) offset) (type (simple-array (unsigned-byte 64) (*)) block) (type simple-octet-vector buffer) #.(burn-baby-burn)) ;; convert to 64-bit words #+(and :cmu :little-endian :64-bit) (kernel:bit-bash-copy buffer (+ (* vm:vector-data-offset vm:word-bits) (* offset vm:byte-bits)) block (* vm:vector-data-offset vm:word-bits) (* 64 vm:byte-bits)) #+(and :sbcl :little-endian :64-bit) (sb-kernel:ub8-bash-copy buffer offset block 0 64) #-(or (and :sbcl :little-endian :64-bit) (and :cmu :little-endian :64-bit)) (loop for i of-type (integer 0 8) from 0 for j of-type (integer 0 #.array-dimension-limit) from offset to (+ offset 63) by 8 do (setf (aref block i) (nibbles:ub64ref/le buffer j)))) (defun fill-block-ub8-be/64 (block buffer offset) "Convert a complete 128 (unsigned-byte 8) input vector segment starting from offset into the given 16 qword SHA1 block. Calling this function without subsequently calling EXPAND-BLOCK results in undefined behavior." (declare (type (integer 0 #.(- array-dimension-limit 128)) offset) (type (simple-array (unsigned-byte 64) (*)) block) (type simple-octet-vector buffer) #.(burn-baby-burn)) ;; convert to 64-bit words #+(and :cmu :big-endian :64-bit) (kernel:bit-bash-copy buffer (+ (* vm:vector-data-offset vm:word-bits) (* offset vm:byte-bits)) block (* vm:vector-data-offset vm:word-bits) (* 128 vm:byte-bits)) #+(and :sbcl :big-endian :64-bit) (sb-kernel:ub8-bash-copy buffer offset block 0 128) #-(or (and :sbcl :big-endian) (and :cmu :big-endian)) (loop for i of-type (integer 0 16) from 0 for j of-type (integer 0 #.array-dimension-limit) from offset to (+ offset 127) by 8 do (setf (aref block i) (nibbles:ub64ref/be buffer j)))) (declaim (notinline xor-block)) (defun xor-block (block-length input-block1 input-block2 input-block2-start output-block output-block-start) (declare (type (simple-array (unsigned-byte 8) (*)) input-block1 input-block2 output-block)) (declare (type index block-length input-block2-start output-block-start)) (cond ;; These are the only architectures with efficient nibbles ;; accessors currently. Happily, they also do efficient ;; unaligned access, which helps make this block efficient. #+(and sbcl (or x86 x86-64)) ((zerop (mod block-length sb-vm:n-word-bytes)) (macrolet ((frob (accessor) `(loop for i from 0 below block-length by ,sb-vm:n-word-bytes do (setf (,accessor output-block (+ output-block-start i)) (logxor (,accessor input-block1 i) (,accessor input-block2 (+ input-block2-start i))))))) (ecase sb-vm:n-word-bits (32 (frob nibbles:ub32ref/le)) (64 (frob nibbles:ub64ref/le))))) (t (dotimes (i block-length) (setf (aref output-block (+ output-block-start i)) (logxor (aref input-block1 i) (aref input-block2 (+ input-block2-start i)))))))) (define-compiler-macro xor-block (&whole form &environment env block-length input-block1 input-block2 input-block2-start output-block output-block-start) (cond ;; These are the only architectures with efficient nibbles ;; accessors currently. #+(and sbcl (or x86 x86-64)) ((and (constantp block-length env) (zerop (mod block-length sb-vm:n-word-bytes))) (let ((accessor (ecase sb-vm:n-word-bits (32 'nibbles:ub32ref/le) (64 'nibbles:ub64ref/le)))) `(loop for i from 0 below ,block-length by ,sb-vm:n-word-bytes do (setf (,accessor ,output-block (+ ,output-block-start i)) (logxor (,accessor ,input-block1 i) (,accessor ,input-block2 (+ ,input-block2-start i))))))) (t form))) ;;; a few functions that are useful during compilation (defun make-circular-list (&rest elements) (let ((list (copy-seq elements))) (setf (cdr (last list)) list))) ;;; SUBSEQ is defined to error on circular lists, so we define our own (defun circular-list-subseq (list start end) (let* ((length (- end start)) (subseq (make-list length))) (do ((i 0 (1+ i)) (list (nthcdr start list) (cdr list)) (xsubseq subseq (cdr xsubseq))) ((>= i length) subseq) (setf (first xsubseq) (first list))))) ironclad_0.33.0/src/octet-stream.lisp0000664000175000017500000004102212220031523014510 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; octet-stream.lisp -- like string-streams, but with (VECTOR (UNSIGNED-BYTE 8)) (in-package :crypto) ;;; portability definitions #+cmu (eval-when (:compile-toplevel :load-toplevel :execute) (require :gray-streams)) ;;; TRIVIAL-GRAY-STREAMS has it, we might as well, too... #+allegro (eval-when (:compile-toplevel :load-toplevel :execute) (unless (fboundp #+(and allegro-version>= (not (version>= 9))) 'stream:stream-write-string #+(and allegro-version>= (version>= 9)) 'excl:stream-write-string) (require "streamc.fasl"))) (eval-when (:compile-toplevel :load-toplevel :execute) (defvar *binary-input-stream-class* (quote #+lispworks stream:fundamental-binary-input-stream #+sbcl sb-gray:fundamental-binary-input-stream #+openmcl gray:fundamental-binary-input-stream #+cmu ext:fundamental-binary-input-stream #+allegro excl:fundamental-binary-input-stream #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *binary-output-stream-class* (quote #+lispworks stream:fundamental-binary-output-stream #+sbcl sb-gray:fundamental-binary-output-stream #+openmcl gray:fundamental-binary-output-stream #+cmu ext:fundamental-binary-output-stream #+allegro excl:fundamental-binary-output-stream #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) ;;; FIXME: how to do CMUCL support for this? (defvar *stream-element-type-function* (quote #+lispworks cl:stream-element-type #+sbcl sb-gray::stream-element-type #+openmcl cl:stream-element-type #+cmu cl:stream-element-type #+allegro cl:stream-element-type #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-read-byte-function* (quote #+lispworks stream:stream-read-byte #+sbcl sb-gray:stream-read-byte #+openmcl gray:stream-read-byte #+cmu ext:stream-read-byte #+allegro excl:stream-read-byte #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-write-byte-function* (quote #+lispworks stream:stream-write-byte #+sbcl sb-gray:stream-write-byte #+openmcl gray:stream-write-byte #+cmu ext:stream-write-byte #+allegro excl:stream-write-byte #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-read-sequence-function* (quote #+lispworks stream:stream-read-sequence #+sbcl sb-gray:stream-read-sequence #+openmcl ccl:stream-read-vector #+cmu ext:stream-read-sequence #+allegro excl:stream-read-sequence #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-write-sequence-function* (quote #+lispworks stream:stream-write-sequence #+sbcl sb-gray:stream-write-sequence #+openmcl ccl:stream-write-vector #+cmu ext:stream-write-sequence #+allegro excl:stream-write-sequence #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-finish-output-function* (quote #+lispworks stream:stream-finish-output #+sbcl sb-gray:stream-finish-output #+openmcl gray:stream-finish-output #+cmu ext:stream-finish-output #+allegro excl:stream-finish-output #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-force-output-function* (quote #+lispworks stream:stream-force-output #+sbcl sb-gray:stream-force-output #+openmcl gray:stream-force-output #+cmu ext:stream-force-output #+allegro excl:stream-force-output #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) (defvar *stream-clear-output-function* (quote #+lispworks stream:stream-clear-output #+sbcl sb-gray:stream-clear-output #+openmcl gray:stream-clear-output #+cmu ext:stream-clear-output #+allegro excl:stream-clear-output #-(or lispworks sbcl openmcl cmu allegro) (error "octet streams not supported in this implementation"))) ) ;;; implementation via Gray streams ;;; These could be specialized for particular implementations by hooking ;;; in directly to the "native" stream methods for the implementation. (defclass octet-stream () ((buffer :accessor buffer :initarg :buffer :type simple-octet-vector))) (defmethod #.*stream-element-type-function* ((stream octet-stream)) '(unsigned-byte 8)) (defmacro define-stream-read-sequence (specializer type &body body) #+sbcl `(defmethod sb-gray:stream-read-sequence ((stream ,specializer) seq &optional (start 0) end) (typecase seq (,type (let ((end (or end (length seq)))) ,@body)) (t (call-next-method)))) #+cmu `(defmethod ext:stream-read-sequence ((stream ,specializer) seq &optional (start 0) end) (typecase seq (,type (let ((end (or end (length seq)))) ,@body)) (t (call-next-method)))) #+allegro `(defmethod excl:stream-read-sequence ((stream ,specializer) seq &optional (start 0) end) (typecase seq (,type (let ((end (or end (length seq)))) ,@body)) (t (call-next-method)))) #+openmcl `(defmethod ccl:stream-read-vector ((stream ,specializer) seq start end) (typecase seq (,type ,@body) (t (call-next-method)))) #+lispworks `(defmethod stream:stream-read-sequence ((stream ,specializer) seq start end) (typecase seq (,type ,@body) (t (call-next-method))))) (defmacro define-stream-write-sequence (specializer type &body body) #+sbcl `(defmethod sb-gray:stream-write-sequence ((stream ,specializer) seq &optional (start 0) end) (typecase seq (,type (let ((end (or end (length seq)))) ,@body)) (t (call-next-method)))) #+cmu `(defmethod ext:stream-write-sequence ((stream ,specializer) seq &optional (start 0) end) (typecase seq (,type (let ((end (or end (length seq)))) ,@body)) (t (call-next-method)))) #+allegro (let ((stream-write-sequence #+(not allegro-version>=) 'stream:stream-write-sequence #+(and allegro-version>= (not (version>= 9))) 'stream:stream-write-sequence #+(and allegro-version>= (version>= 9)) 'excl:stream-write-sequence)) `(defmethod ,stream-write-sequence ((stream ,specializer) seq &optional (start 0) end) (typecase seq (,type (let ((end (or end (length seq)))) ,@body)) (t (call-next-method))))) #+openmcl `(defmethod ccl:stream-write-vector ((stream ,specializer) seq start end) (typecase seq (,type ,@body) (t (call-next-method)))) #+lispworks `(defmethod stream:stream-write-sequence ((stream ,specializer) seq start end) (typecase seq (,type ,@body) (t (call-next-method))))) (defun execute-with-digesting-stream (digest fn) (with-open-stream (stream (make-digesting-stream digest)) (funcall fn stream) (produce-digest stream))) (defmacro with-digesting-stream ((var digest) &body body) `(execute-with-digesting-stream ,digest (lambda (,var) ,@body))) ;;; input streams (defclass octet-input-stream (octet-stream #.*binary-input-stream-class*) ((index :accessor index :initarg :index :type index) (end :accessor end :initarg :end :type index))) (defmethod #.*stream-read-byte-function* ((stream octet-input-stream)) (let ((buffer (buffer stream)) (index (index stream))) (declare (type simple-octet-vector buffer)) (cond ((>= index (end stream)) :eof) (t (setf (index stream) (1+ index)) (aref buffer index))))) (define-stream-read-sequence octet-input-stream simple-octet-vector (let ((buffer (buffer stream)) (index (index stream)) (buffer-end (end stream))) (declare (type simple-octet-vector buffer)) (let* ((remaining (- buffer-end index)) (length (- end start)) (amount (min remaining length))) (replace seq buffer :start1 start :end1 end :start2 index :end2 buffer-end) (setf (index stream) (+ index amount)) (+ start amount)))) (defun make-octet-input-stream (buffer &optional (start 0) end) "As MAKE-STRING-INPUT-STREAM, only with octets instead of characters." (declare (type simple-octet-vector buffer) (type index start) (type (or index cl:null) end)) (let ((end (or end (length buffer)))) (make-instance 'octet-input-stream :buffer buffer :index start :end end))) ;;; output streams (defclass octet-output-stream (octet-stream #.*binary-output-stream-class*) ((index :accessor index :initform 0 :type index))) (defmethod #.*stream-write-byte-function* ((stream octet-output-stream) integer) (declare (type (unsigned-byte 8) integer)) (let* ((buffer (buffer stream)) (length (length buffer)) (index (index stream))) (declare (type simple-octet-vector buffer)) (when (>= index (length buffer)) (let ((new-buffer (make-array (* 2 length) :element-type '(unsigned-byte 8)))) (declare (type simple-octet-vector new-buffer)) (replace new-buffer buffer) (setf buffer new-buffer (buffer stream) new-buffer))) (setf (aref buffer index) integer (index stream) (1+ index)) integer)) (define-stream-write-sequence octet-output-stream simple-octet-vector (let* ((buffer (buffer stream)) (length (length buffer)) (index (index stream)) (amount (- end start))) (declare (type simple-octet-vector buffer)) (when (>= (+ index amount) length) (let ((new-buffer (make-array (* 2 (max amount length)) :element-type '(unsigned-byte 8)))) (declare (type simple-octet-vector new-buffer)) (replace new-buffer buffer) (setf buffer new-buffer (buffer stream) new-buffer))) (replace buffer seq :start1 index :start2 start :end2 end) (incf (index stream) amount) seq)) (defmethod #.*stream-clear-output-function* ((stream octet-output-stream)) (setf (index stream) 0) nil) (defun get-output-stream-octets (stream) "As GET-OUTPUT-STREAM-STRING, only with an octet output-stream instead of a string output-stream." (let ((buffer (buffer stream)) (index (index stream))) (setf (index stream) 0) (subseq buffer 0 index))) (defun make-octet-output-stream () "As MAKE-STRING-OUTPUT-STREAM, only with octets instead of characters." (make-instance 'octet-output-stream :buffer (make-array 128 :element-type '(unsigned-byte 8)))) ;;; digesting streams (defclass digesting-stream (#.*binary-output-stream-class*) ((digest :initarg :digest :reader stream-digest) (buffer :initform (make-array 64 :element-type '(unsigned-byte 8)) :reader stream-buffer) (position :initform 0 :reader stream-buffer-position))) (defmethod #.*stream-element-type-function* ((stream digesting-stream)) '(unsigned-byte 8)) (defun make-digesting-stream (digest) (make-instance 'digesting-stream :digest (make-digest digest))) (defmethod #.*stream-write-byte-function* ((stream digesting-stream) byte) (declare (type (unsigned-byte 8) byte)) (with-slots (digest buffer position) stream (setf (aref buffer position) byte) (when (= (incf position) 64) (update-digest digest buffer :start 0 :end 64) (setf position 0)) byte)) (define-stream-write-sequence digesting-stream simple-octet-vector (unless (zerop (stream-buffer-position stream)) (update-digest (stream-digest stream) (stream-buffer stream) :end (stream-buffer-position stream)) (setf (slot-value stream 'position) 0)) (update-digest (stream-digest stream) seq :start start :end end) seq) (defmethod #.*stream-clear-output-function* ((stream digesting-stream)) (with-slots (digest position) stream (setf position 0) (reinitialize-instance digest) nil)) (defmethod produce-digest ((stream digesting-stream) &key digest (digest-start 0)) (with-slots ((%digest digest) buffer position) stream (unless (zerop position) (update-digest %digest buffer :start 0 :end position) (setf position 0)) (let ((copy (copy-digest %digest))) (produce-digest copy :digest digest :digest-start digest-start)))) ;;; encrypting and decrypting streams (defclass crypting-stream () ((cipher :initarg :cipher :reader stream-cipher) (buffer :initarg :buffer :reader stream-buffer) (n-bytes-valid :initform 0 :reader stream-n-bytes-valid) (position :initform 0 :reader stream-buffer-position) (padding :initarg :padding :reader stream-padding) (wrapped-stream :initarg :stream :reader stream-wrapped-stream))) (defmethod #.*stream-element-type-function* ((stream crypting-stream)) '(unsigned-byte 8)) (defclass encrypting-input-stream (crypting-stream #.*binary-input-stream-class*) ()) (defclass encrypting-output-stream (crypting-stream #.*binary-output-stream-class*) ()) (defclass decrypting-input-stream (crypting-stream #.*binary-input-stream-class*) ()) (defclass decrypting-output-stream (crypting-stream #.*binary-output-stream-class*) ()) (deftype stream-direction () '(member :input :output)) (defun make-encrypting-stream (stream cipher mode key &key initialization-vector (direction :output) (padding :none)) (declare (type stream-direction direction)) (declare (ignorable padding)) (let* ((context (make-cipher cipher :mode mode :key key :initialization-vector initialization-vector)) (block-length (max (block-length cipher) 16)) (buffer (make-array block-length :element-type '(unsigned-byte 8)))) (if (eq direction :input) (make-instance 'encrypting-input-stream :stream stream :cipher context :buffer buffer) (make-instance 'encrypting-output-stream :stream stream :cipher context :buffer buffer)))) (defun make-decrypting-stream (stream cipher mode key &key initialization-vector (padding :none) (direction :input)) (declare (type stream-direction direction)) (declare (ignorable padding)) (let* ((context (make-cipher cipher :mode mode :key key :initialization-vector initialization-vector)) (block-length (max (block-length cipher) 16)) (buffer (make-array block-length :element-type '(unsigned-byte 8)))) (if (eq direction :input) (make-instance 'decrypting-input-stream :stream stream :cipher context :buffer buffer) (make-instance 'decrypting-output-stream :stream stream :cipher context :buffer buffer)))) ;;; FIXME: padding issues (defun crypting-stream-read-byte (stream cryptfun) (with-slots (wrapped-stream cipher buffer n-bytes-valid position) stream (when (= position n-bytes-valid) (setf n-bytes-valid (read-sequence buffer wrapped-stream) position 0) (when (zerop n-bytes-valid) (return-from crypting-stream-read-byte :eof)) (funcall cryptfun cipher buffer buffer)) (prog1 (aref buffer position) (incf position)))) (defun crypting-stream-write-byte (stream byte cryptfun) (with-slots (wrapped-stream cipher buffer n-bytes-valid position) stream (when (= position n-bytes-valid) (funcall cryptfun cipher buffer buffer) (write-sequence buffer wrapped-stream) (setf position 0)) (prog1 (setf (aref buffer position) byte) (incf position)))) (defmethod #.*stream-read-byte-function* ((stream encrypting-input-stream)) (crypting-stream-read-byte stream #'encrypt)) (defmethod #.*stream-read-byte-function* ((stream decrypting-input-stream)) (crypting-stream-read-byte stream #'decrypt)) (defmethod #.*stream-write-byte-function* ((stream encrypting-output-stream) byte) (declare (type (unsigned-byte 8) byte)) (crypting-stream-write-byte stream byte #'encrypt)) (defmethod #.*stream-write-byte-function* ((stream decrypting-output-stream) byte) (declare (type (unsigned-byte 8) byte)) (crypting-stream-write-byte stream byte #'decrypt)) ironclad_0.33.0/src/padding.lisp0000644000175000017500000000246711761302200013521 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; padding.lisp -- implementation of various padding algorithms (in-package :crypto) (defclass padding () ()) (defgeneric add-padding-bytes (padding text start block-offset block-size) (:documentation "Add padding to the block in TEXT beginning at position START. Padding is done according to PADDING and assumes that text prior to BLOCK-OFFSET is user-supplied. This function assumes that the portion of TEXT from START to (+ START BLOCK-SIZE) is writable.")) (defgeneric count-padding-bytes (padding text start block-size) (:documentation "Return the number of bytes of padding in the block in TEXT beginning at START. The padding algorithm used for the block is PADDING.")) ;;; PKCS7 padding (defclass pkcs7-padding (padding) ()) (defmethod add-padding-bytes ((padding pkcs7-padding) text start block-offset block-size) (declare (type simple-octet-vector text)) (declare (type index start block-offset)) (let* ((n-padding-bytes (- block-size block-offset)) (pad-byte (if (zerop n-padding-bytes) block-size n-padding-bytes))) (declare (type (unsigned-byte 8) pad-byte)) (loop for i from (+ start block-offset) for j from 0 below n-padding-bytes do (setf (aref text i) pad-byte)) (values))) ironclad_0.33.0/src/kdf-common.lisp0000644000175000017500000000227612050564747014165 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) (defgeneric derive-key (kdf passphrase salt iteration-count key-length)) (defclass pbkdf1 () ((digest :reader kdf-digest))) (defclass pbkdf2 () ((digest-name :initarg :digest :reader kdf-digest))) (defclass scrypt-kdf () ((N :initarg :N :reader scrypt-kdf-N) (r :initarg :r :reader scrypt-kdf-r) (p :initarg :p :reader scrypt-kdf-p))) (defun make-kdf (kind &key digest (N 4096) (r 8) (p 2)) ;; PBKDF1, at least, will do stricter checking; this is good enough for now. "digest is used for pbkdf1 and pbkdf2. N, p, and r are cost factors for scrypt." (case kind (pbkdf1 (unless (digestp digest) (error 'unsupported-digest :name digest)) (make-instance 'pbkdf1 :digest digest)) (pbkdf2 (unless (digestp digest) (error 'unsupported-digest :name digest)) (make-instance 'pbkdf2 :digest digest)) (scrypt-kdf (when (or (<= N 1) (not (zerop (logand N (1- N)))) (>= (* r p) (expt 2 30))) (error 'unsupported-scrypt-cost-factors :N N :r r :p p)) (make-instance 'scrypt-kdf :N N :r r :p p)) (t (error 'unsupported-kdf :kdf kind)))) ironclad_0.33.0/src/pkcs5.lisp0000664000175000017500000000654312222266271013153 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) ;;; PBKDF1 from RFC 2898, section 5.1 (defmethod shared-initialize :after ((kdf pbkdf1) slot-names &rest initargs &key digest &allow-other-keys) (declare (ignore slot-names initargs)) (let ((digest-name (massage-symbol digest))) (cond ;; Permit DIGEST to be NULL to indicate reinitializing the whole ;; instance. ((cl:null digest) (reinitialize-instance (kdf-digest kdf))) ((not (digestp digest-name)) (error 'unsupported-digest :name digest-name)) ;; Don't cons unnecessarily. (Although this depends how expensive ;; TYPEP is with a non-constant type...) ((and (slot-boundp kdf 'digest) (typep (digest kdf) digest-name)) (reinitialize-instance (kdf-digest kdf))) ((member digest-name '(md2 md5 sha1)) (setf (slot-value kdf 'digest) (funcall (the function (get digest-name '%make-digest))))) (t (error "Digest ~A not supported for PBKDF1" digest))) kdf)) (defmethod derive-key ((kdf pbkdf1) passphrase salt iteration-count key-length) (check-type iteration-count (integer 1 *)) (check-type key-length (integer 1 *)) (loop with digest = (kdf-digest kdf) with digest-length = (digest-length digest) with key = (make-array 20 :element-type '(unsigned-byte 8)) initially (update-digest digest passphrase) (update-digest digest salt) (produce-digest digest :digest key) for i from 1 below iteration-count do (reinitialize-instance digest) (update-digest digest key :end digest-length) (produce-digest digest :digest key) finally (return (subseq key 0 (min key-length (length key)))))) ;;; PBKDF2, from RFC 2898, section 5.2 (defun pbkdf2-derive-key (digest passphrase salt iteration-count key-length) (check-type iteration-count (integer 1 *)) (check-type key-length (integer 1 *)) (loop with count = 1 with hmac = (make-hmac passphrase digest) with hmac-length = (digest-length digest) with key = (make-array key-length :element-type '(unsigned-byte 8) :initial-element 0) with key-position = 0 with count-buffer = (make-array 4 :element-type '(unsigned-byte 8)) with hmac-out = (make-array hmac-length :element-type '(unsigned-byte 8)) while (plusp key-length) do (let ((size (min hmac-length key-length))) (reinitialize-instance hmac :key passphrase) (update-hmac hmac salt) (setf (nibbles:ub32ref/be count-buffer 0) count) (update-hmac hmac count-buffer) (hmac-digest hmac :buffer hmac-out) (xor-block size hmac-out key key-position key key-position) (loop for i from 1 below iteration-count do (reinitialize-instance hmac :key passphrase) (update-hmac hmac hmac-out) (hmac-digest hmac :buffer hmac-out) (xor-block size hmac-out key key-position key key-position) finally (decf key-length size) (incf key-position size) (incf count))) finally (return key))) (defmethod derive-key ((kdf pbkdf2) passphrase salt iteration-count key-length) (pbkdf2-derive-key (kdf-digest kdf) passphrase salt iteration-count key-length)) ironclad_0.33.0/src/scrypt.lisp0000664000175000017500000000561612247660274013462 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) ;;; scrypt from Colin Percival's ;;; "Stronger Key Derivation via Sequential Memory-Hard Functions" ;;; presented at BSDCan'09, May 2009. ;;; http://www.tarsnap.com/scrypt.html (defun scrypt-vector-salsa (b) (declare (type (simple-octet-vector 64) b)) (let ((x (make-array 16 :element-type '(unsigned-byte 32)))) (declare (type (simple-array (unsigned-byte 32) (16)) x)) (declare (dynamic-extent x)) (fill-block-ub8-le x b 0) (salsa20/8-core b x))) (defun block-mix (b xy xy-start r) (declare (type (simple-array (unsigned-byte 8) (*)) b xy)) ;; The derivation of the bound here is that (* I 64) in the first loop below ;; must be a legitimate array index. That loop runs to (* 2 R), hence the ;; truncation by 128. The subtraction of 64 comes from loops further down. (declare (type (integer 0 (#.(truncate (- array-dimension-limit 64) 128))) r)) (let ((xs (make-array 64 :element-type '(unsigned-byte 8)))) (declare (type (simple-array (unsigned-byte 8) (64)) xs)) (declare (dynamic-extent xs)) (replace xs b :start2 (* 64 (1- (* 2 r))) :end1 64) (dotimes (i (* 2 r)) (xor-block 64 xs b (* i 64) xs 0) (scrypt-vector-salsa xs) (replace xy xs :start1 (+ xy-start (* i 64)) :end2 64)) (dotimes (i r) (replace b xy :start1 (* i 64) :end1 (+ 64 (* i 64)) :start2 (+ xy-start (* 64 2 i)))) (dotimes (i r) (replace b xy :start1 (* 64 (+ i r)) :end1 (+ (* 64 (+ i r)) 64) :start2 (+ xy-start (* 64 (1+ (* i 2)))))))) (defun smix (b b-start r N v xy) (declare (type (simple-array (unsigned-byte 8) (*)) b v xy)) (declare (type (integer 0 (#.(truncate array-dimension-limit 128))) r)) (let ((x xy) (xy-start (* 128 r)) (smix-length (* 128 r))) (replace x b :end1 smix-length :start2 b-start) (dotimes (i N) (replace v x :start1 (* i smix-length) :end2 smix-length) (block-mix x xy xy-start r)) (dotimes (i N) (let ((j (ldb (byte 32 0) (logand (nibbles:ub64ref/le x (* (1- (* 2 r)) 64)) (1- N))))) (xor-block smix-length x v (* j smix-length) x 0) (block-mix x xy xy-start r))) (replace b x :start1 b-start :end1 (+ b-start smix-length)))) (defmethod derive-key ((kdf scrypt-kdf) passphrase salt iteration-count key-length) (declare (ignore iteration-count)) (let* ((pb-kdf (make-kdf 'PBKDF2 :digest 'SHA256)) (xy (make-array (* 256 (scrypt-kdf-r kdf)) :element-type '(unsigned-byte 8))) (v (make-array (* 128 (scrypt-kdf-r kdf) (scrypt-kdf-N kdf)) :element-type '(unsigned-byte 8))) (b (derive-key pb-kdf passphrase salt 1 (* (scrypt-kdf-p kdf) 128 (scrypt-kdf-r kdf))))) (dotimes (i (scrypt-kdf-p kdf)) (smix b (* i 128 (scrypt-kdf-r kdf)) (scrypt-kdf-r kdf) (scrypt-kdf-N kdf) v xy)) (reinitialize-instance pb-kdf :digest 'SHA256) (derive-key pb-kdf passphrase b 1 key-length))) ironclad_0.33.0/src/password-hash.lisp0000644000175000017500000000637511761302200014700 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) (defun make-random-salt (&optional (size 16)) "Generate a byte vector of SIZE (default 16) random bytes, suitable for use as a password salt." (let ((salt (make-array size :element-type '(unsigned-byte 8)))) (dotimes (i size) (setf (aref salt i) (random 256))) salt)) (defun pbkdf2-hash-password (password &key (salt (make-random-salt)) (digest 'sha256) (iterations 1000)) "Given a PASSWORD as a byte vector, a SALT as a byte vector (MAKE-RANDOM-SALT is called to generate a random salt if none is provided), a digest function (SHA256 by default), and a number of iterations (1000), returns the PBKDF2-derived hash of the password (byte vector) as the first value, and the SALT (byte vector) as the second value." (values (pbkdf2-derive-key digest password salt iterations (digest-length digest)) salt)) (defun pbkdf2-hash-password-to-combined-string (password &key (salt (make-random-salt)) (digest 'sha256) (iterations 1000)) "Given a PASSWORD byte vector, a SALT as a byte vector (MAKE-RANDOM-SALT is called to generate a random salt if none is provided), a digest function (SHA256 by default), and a number of iterations (1000), returns the salt and PBKDF2-derived hash of the password encoded in a single ASCII string, suitable for use with PBKDF2-CHECK-PASSWORD." (format nil "PBKDF2$~a:~a$~a$~a" digest iterations (byte-array-to-hex-string salt) (byte-array-to-hex-string (pbkdf2-hash-password password :iterations iterations :salt salt :digest digest)))) (defun pbkdf2-check-password (password combined-salt-and-digest) "Given a PASSWORD byte vector and a combined salt and digest string produced by PBKDF2-HASH-PASSWORD-TO-COMBINED-STRING, checks whether the password is valid." ;; can we have a dependency on regular expressions, please? (let* ((positions (loop with start = 0 repeat 3 collect (setf start (position #\$ combined-salt-and-digest :start (1+ start))))) (digest-separator-position (position #\: combined-salt-and-digest :start (first positions)))) (not (mismatch (pbkdf2-hash-password password :digest (find-symbol (subseq combined-salt-and-digest (1+ (first positions)) digest-separator-position) '#:ironclad) :iterations (parse-integer combined-salt-and-digest :start (1+ digest-separator-position) :end (second positions)) :salt (hex-string-to-byte-array combined-salt-and-digest :start (1+ (second positions)) :end (third positions))) (hex-string-to-byte-array combined-salt-and-digest :start (1+ (third positions))))))) ironclad_0.33.0/src/math.lisp0000644000175000017500000001066112031676203013047 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) (defun egcd (a b) "Extended Euclidean algorithm, aka extended greatest common denominator." (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)) (type integer a b)) (assert (and (>= a 0) (>= b 0))) (do ((q 0) (c a (- d (* q c))) (d b c) (u_c 1 (- u_d (* q u_c))) (v_c 0 (- v_d (* q v_c))) (u_d 0 u_c) (v_d 1 v_c)) ((= c 0) (values d u_d v_d)) (setq q (floor d c)))) (defconst +small-primes+ (make-array 269 :element-type 'fixnum :initial-contents '(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409 419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571 577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733 739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997 1009 1013 1019 1021 1031 1033 1039 1049 1051 1061 1063 1069 1087 1091 1093 1097 1103 1109 1117 1123 1129 1151 1153 1163 1171 1181 1187 1193 1201 1213 1217 1223 1229 1231 1237 1249 1259 1277 1279 1283 1289 1291 1297 1301 1303 1307 1319 1321 1327 1361 1367 1373 1381 1399 1409 1423 1427 1429 1433 1439 1447 1451 1453 1459 1471 1481 1483 1487 1489 1493 1499 1511 1523 1531 1543 1549 1553 1559 1567 1571 1579 1583 1597 1601 1607 1609 1613 1619 1621 1627 1637 1657 1663 1667 1669 1693 1697 1699 1709 1721 1723))) (defun generate-small-primes (n) "Generates a list of all primes up to N using the Sieve of Eratosthenes. Was used to generate the list above; included for mathematical interest." (assert (<= 2 n (expt 2 20))) (loop for i from 2 to n with array = (make-array (1+ n) :initial-element 1) unless (zerop (aref array i)) do (loop for j from 2 to (floor (/ n i)) do (setf (aref array (* i j)) 0)) finally (return (loop for j from 2 to n unless (zerop (aref array j)) collect j)))) (defun prime-p (n &optional (prng *prng*)) "True if N is a prime number (with very high probability; 1:2^128 chance of returning true for a composite number." (assert (>= n 3)) (if (find n +small-primes+) t (loop for p across +small-primes+ while (< p n) when (zerop (mod n p)) do (return nil) end finally (return (rabin-miller n prng))))) (defun rabin-miller (n prng) "Rabin-Miller probabalistic primality test. There is a 1:2^128 chance that a composite number will be determined to be a prime number using this test." (declare (optimize (speed 3) (safety 0) (space 0) (debug 0)) (type integer n)) (assert (and (>= n 3) (oddp n))) (loop for s of-type integer = (1- n) then (the integer (/ s 2)) and tt of-type integer = 0 then (1+ tt) while (zerop (mod s 2)) finally (return (loop for k from 0 to 128 by 2 for a = (+ 2 (strong-random (- n 2) prng)) for v = (expt-mod a s n) if (not (= v 1)) do (loop for i = 0 then (1+ i) while (not (= v (1- n))) if (= i (1- tt)) do (return-from rabin-miller) else do (setf v (expt-mod v 2 n))) finally (return t))))) (defun generate-prime-in-range (lower-limit upper-limit &optional (prng *prng*)) (assert (< 0 lower-limit upper-limit)) (loop for r = (strong-random (- upper-limit lower-limit -1) prng) for x = (+ r lower-limit) until (prime-p x prng) finally (return x))) (defun generate-prime (num-bits &optional (prng *prng*)) "Return a NUM-BITS-bit prime number with very high probability (1:2^128 chance of returning a composite number)." (loop with big = (ash 2 (1- num-bits)) for x = (logior (strong-random big prng) big 1) until (prime-p x prng) finally (return x))) ironclad_0.33.0/src/sbcl-opt/fndb.lisp0000664000175000017500000000253112247655651014566 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- #+sbcl (in-package :sb-c) #+sbcl (progn (defknown (ironclad::fill-block-ub8-le ironclad::fill-block-ub8-be) ((simple-array (unsigned-byte 32) (*)) (simple-array (unsigned-byte 8) (*)) (integer 0 #.(- array-dimension-limit 64))) (values)) #+x86-64 (defknown ironclad::fill-block-ub8-le/64 ((simple-array (unsigned-byte 64) (*)) (simple-array (unsigned-byte 8) (*)) (integer 0 #.(- array-dimension-limit 64))) (values)) #+x86-64 (defknown ironclad::fill-block-ub8-be/64 ((simple-array (unsigned-byte 64) (*)) (simple-array (unsigned-byte 8) (*)) (integer 0 #.(- array-dimension-limit 128))) (values)) (defknown ironclad::expand-block ((simple-array (unsigned-byte 32) (*))) (values)) (defknown ironclad::%update-sha1-block ((simple-array (unsigned-byte 32) (*)) (simple-array (unsigned-byte 32) (*))) (simple-array (unsigned-byte 32) (*))) (defknown ironclad::sha256-expand-block ((simple-array (unsigned-byte 32) (*))) (values)) #+x86-64 (defknown ironclad::x-salsa-core ((signed-byte 61) (simple-array (unsigned-byte 8) (*)) (simple-array (unsigned-byte 32) (*))) (values)) #+x86-64 (defknown ironclad::x-chacha-core ((signed-byte 61) (simple-array (unsigned-byte 8) (*)) (simple-array (unsigned-byte 32) (*))) (values)) );#+sbcl ironclad_0.33.0/src/sbcl-opt/x86oid-vm.lisp0000664000175000017500000004054312247720722015413 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- #+sbcl (in-package :sb-vm) #+(and sbcl (or x86 x86-64)) (progn (define-vop (fill-block-ub8) (:policy :fast-safe) (:args (block :scs (descriptor-reg)) (buffer :scs (descriptor-reg)) (offset :scs (unsigned-reg immediate) :target buffer-index)) (:variant-vars big-endian-p bytes-to-copy 64-bit-p) (:temporary (:sc unsigned-reg) temp buffer-index block-index) (:generator 50 (let* ((data-offset (- (* n-word-bytes vector-data-offset) other-pointer-lowtag)) (block-disp (+ data-offset bytes-to-copy)) (ea-size #+x86 :dword #+x86-64 :qword) (immediate-offset (sc-is offset immediate)) (unroll (if immediate-offset 2 1)) (loop (gen-label))) (flet ((ea-for-buffer (&optional (offset 0)) (if immediate-offset (make-ea ea-size :base buffer :index block-index :scale n-word-bytes :disp (+ block-disp offset)) (make-ea ea-size :base buffer :index buffer-index :disp data-offset))) (ea-for-block (&optional (offset 0)) (make-ea ea-size :base block :index block-index :scale n-word-bytes :disp (+ block-disp offset))) (handle-endianness (x) (when big-endian-p (inst bswap x) #+x86-64 (unless 64-bit-p (inst rol x 32))))) (unless immediate-offset (move buffer-index offset)) (inst mov block-index (- (truncate bytes-to-copy n-word-bytes))) (emit-label loop) (inst mov temp (ea-for-buffer 0)) (when immediate-offset (inst mov buffer-index (ea-for-buffer n-word-bytes))) (handle-endianness temp) (when immediate-offset (handle-endianness buffer-index)) (inst mov (ea-for-block) temp) (when immediate-offset (inst mov (ea-for-block n-word-bytes) buffer-index)) (unless immediate-offset (inst add buffer-index n-word-bytes)) (inst add block-index unroll) (inst jmp :nz loop))))) (define-vop (fill-block-ub8-le fill-block-ub8) (:translate ironclad::fill-block-ub8-le) (:arg-types simple-array-unsigned-byte-32 simple-array-unsigned-byte-8 positive-fixnum) (:variant nil 64 nil)) (define-vop (fill-block-ub8-be fill-block-ub8) (:translate ironclad::fill-block-ub8-be) (:arg-types simple-array-unsigned-byte-32 simple-array-unsigned-byte-8 positive-fixnum) (:variant t 64 nil)) #+x86-64 (define-vop (fill-block-ub8-le/64 fill-block-ub8) (:translate ironclad::fill-block-ub8-le/64) (:arg-types simple-array-unsigned-byte-64 simple-array-unsigned-byte-8 positive-fixnum) ;; Yes. Really. Inconsistent naming FTW. (:variant nil 64 t)) #+x86-64 (define-vop (fill-block-ub8-be/64 fill-block-ub8) (:translate ironclad::fill-block-ub8-be/64) (:arg-types simple-array-unsigned-byte-64 simple-array-unsigned-byte-8 positive-fixnum) (:variant t 128 t)) (define-vop (expand-block) (:translate ironclad::expand-block) (:policy :fast-safe) (:args (block :scs (descriptor-reg))) (:arg-types simple-array-unsigned-byte-32) (:temporary (:sc unsigned-reg) temp count) (:generator 100 (flet ((block-word (elem-offset) (make-ea :dword :base block :index count :scale 4 :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 4 elem-offset))))) (let ((loop (gen-label)) #+x86-64 (temp (reg-in-size temp :dword))) (inst mov count 16) (emit-label loop) (inst mov temp (block-word -3)) (inst xor temp (block-word -8)) (inst xor temp (block-word -14)) (inst xor temp (block-word -16)) (inst rol temp 1) (inst mov (block-word 0) temp) (inst add count 1) (inst cmp count 79) (inst jmp :le loop))))) (define-vop (sha256-expand-block) (:translate ironclad::sha256-expand-block) (:policy :fast-safe) (:args (block :scs (descriptor-reg))) (:arg-types simple-array-unsigned-byte-32) (:temporary (:sc unsigned-reg) t1 t2 t3 t4 count) (:generator 100 (flet ((block-word (elem-offset) (make-ea :dword :base block :index count :scale 4 :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 4 elem-offset))))) (let ((loop (gen-label)) #+x86-64 (t1 (reg-in-size t1 :dword)) #+x86-64 (t2 (reg-in-size t2 :dword)) #+x86-64 (t3 (reg-in-size t3 :dword)) #+x86-64 (t4 (reg-in-size t4 :dword))) ;; The code could definitely be improved for x86-64 by using ;; more temporaries, but this version works on both 32- and ;; 64-bit and eliminates many of the stupidities in the modular ;; arithmetic version (mostly on 64-bit, but some lameness in ;; the 32-bit version as well). (inst mov count 16) (emit-label loop) (inst mov t1 (block-word -2)) ;; sigma1 (inst mov t2 t1) (inst rol t2 15) (inst mov t3 t1) (inst rol t3 13) (inst xor t2 t3) (inst shr t1 10) (inst xor t1 t2) (inst mov t2 (block-word -15)) ;; sigma0 (inst mov t3 t2) (inst rol t3 25) (inst mov t4 t2) (inst rol t4 14) (inst xor t3 t4) (inst shr t2 3) (inst xor t2 t3) (inst add t1 (block-word -7)) (inst add t2 (block-word -16)) (inst add t1 t2) (inst mov (block-word 0) t1) (inst add count 1) (inst cmp count 63) (inst jmp :le loop))))) ;;; Implementing this for x86 would require nasty hacks with ;;; pseudo-atomic. Might just be worth it for the speed increase, ;;; though. The code is also probably not scheduled optimally. #+x86-64 (define-vop (update-sha1-block) (:translate ironclad::%update-sha1-block) (:policy :fast-safe) (:args (regs :scs (descriptor-reg) :target result) (block :scs (descriptor-reg))) (:arg-types simple-array-unsigned-byte-32 simple-array-unsigned-byte-32) (:results (result :scs (descriptor-reg))) (:result-types simple-array-unsigned-byte-32) (:temporary (:sc unsigned-reg) a b c d e t1 t2) (:generator 1000 (let ((a (reg-in-size a :dword)) (b (reg-in-size b :dword)) (c (reg-in-size c :dword)) (d (reg-in-size d :dword)) (e (reg-in-size e :dword)) (t1 (reg-in-size t1 :dword)) (t2 (reg-in-size t2 :dword)) (k1 #x5a827999) (k2 #x6ed9eba1) (k3 #x-70e44324) (k4 #x-359d3e2a)) (labels ((block/reg-ea (base index) (make-ea :dword :base base :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 4 index)))) (f1 (a b c d e n) (inst mov t2 a) (inst mov t1 c) (inst rol t2 5) (inst xor t1 d) (inst add t2 (block/reg-ea block n)) (inst and t1 b) (inst xor t1 d) (inst lea e (make-ea :dword :base t1 :index e :disp k1)) (inst rol b 30) (inst add e t2)) (f2/4 (a b c d e n k) (inst mov t2 a) (inst mov t1 d) (inst rol t2 5) (inst xor t1 c) (inst add t2 (block/reg-ea block n)) (inst xor t1 b) (inst lea e (make-ea :dword :base t1 :index e :disp k)) (inst rol b 30) (inst add e t2)) (f2 (a b c d e n) (f2/4 a b c d e n k2)) (f4 (a b c d e n) (f2/4 a b c d e n k4)) (f3 (a b c d e n) (inst mov t2 c) (inst mov t1 c) (inst and t2 b) (inst or t1 b) (inst and t1 d) (inst or t1 t2) (inst mov t2 a) (inst rol t2 5) (inst add t2 (block/reg-ea block n)) (inst rol b 30) (inst lea e (make-ea :dword :base t1 :index e :disp k3)) (inst add e t2)) (sha1-rounds (start end f) (let ((xvars (ironclad::make-circular-list a b c d e))) (loop for i from start upto end for vars on xvars by #'cddddr do (multiple-value-bind (a b c d e) (apply #'values (ironclad::circular-list-subseq vars 0 5)) (funcall f a b c d e i)))))) (inst mov a (block/reg-ea regs 0)) (inst mov b (block/reg-ea regs 1)) (inst mov c (block/reg-ea regs 2)) (inst mov d (block/reg-ea regs 3)) (inst mov e (block/reg-ea regs 4)) (sha1-rounds 0 19 #'f1) (sha1-rounds 20 39 #'f2) (sha1-rounds 40 59 #'f3) (sha1-rounds 60 79 #'f4) (inst add (block/reg-ea regs 0) a) (inst add (block/reg-ea regs 1) b) (inst add (block/reg-ea regs 2) c) (inst add (block/reg-ea regs 3) d) (inst add (block/reg-ea regs 4) e) (move result regs))))) #+x86-64 (define-vop (salsa-core-fast) (:translate ironclad::x-salsa-core) (:policy :fast-safe) (:args (buffer :scs (descriptor-reg)) (state :scs (descriptor-reg))) (:info n-rounds) (:arg-types (:constant (signed-byte 61)) simple-array-unsigned-byte-8 simple-array-unsigned-byte-32) (:temporary (:sc double-reg) x0 x1 x2 x3) (:temporary (:sc unsigned-reg) r0 r1 r2 r3 temp count) (:generator 1000 (labels ((nth-xmm-mem (base i) (make-ea :qword :base base :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 16 i)))) (ea (i) (make-ea :dword :base buffer :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 4 i)))) (quarter-round (y0 y1 y2 y3) (let ((r0 (reg-in-size r0 :dword)) (r1 (reg-in-size r1 :dword)) (r2 (reg-in-size r2 :dword)) (r3 (reg-in-size r3 :dword)) (temp (reg-in-size temp :dword))) ;; x[y0] = XOR(x[y0],ROTATE(PLUS(x[y3],x[y2]), 7)); ;; x[y1] = XOR(x[y1],ROTATE(PLUS(x[y0],x[y3]), 9)); ;; x[y2] = XOR(x[y2],ROTATE(PLUS(x[y1],x[y0]),13)); ;; x[y3] = XOR(x[y3],ROTATE(PLUS(x[y2],x[y1]),18)); (inst mov r2 (ea y2)) (inst mov r3 (ea y3)) (inst lea r0 (make-ea :dword :base r3 :index r2)) (inst rol r0 7) (inst xor r0 (ea y0)) (inst lea r1 (make-ea :dword :base r0 :index r3)) (inst rol r1 9) (inst xor r1 (ea y1)) (inst lea temp (make-ea :dword :base r1 :index r0)) (inst rol temp 13) (inst xor r2 temp) (inst lea temp (make-ea :dword :base r2 :index r1)) (inst rol temp 18) (inst xor r3 temp) (inst mov (ea y0) r0) (inst mov (ea y1) r1) (inst mov (ea y2) r2) (inst mov (ea y3) r3)))) ;; copy state to the output buffer (inst movdqa x0 (nth-xmm-mem state 0)) (inst movdqa x1 (nth-xmm-mem state 1)) (inst movdqa x2 (nth-xmm-mem state 2)) (inst movdqa x3 (nth-xmm-mem state 3)) (inst movdqa (nth-xmm-mem buffer 0) x0) (inst movdqa (nth-xmm-mem buffer 1) x1) (inst movdqa (nth-xmm-mem buffer 2) x2) (inst movdqa (nth-xmm-mem buffer 3) x3) (let ((repeat (gen-label))) (inst mov count n-rounds) (emit-label repeat) (quarter-round 4 8 12 0) (quarter-round 9 13 1 5) (quarter-round 14 2 6 10) (quarter-round 3 7 11 15) (quarter-round 1 2 3 0) (quarter-round 6 7 4 5) (quarter-round 11 8 9 10) (quarter-round 12 13 14 15) (inst sub count 1) (inst jmp :nz repeat)) (inst paddd x0 (nth-xmm-mem buffer 0)) (inst paddd x1 (nth-xmm-mem buffer 1)) (inst paddd x2 (nth-xmm-mem buffer 2)) (inst paddd x3 (nth-xmm-mem buffer 3)) (inst movdqa (nth-xmm-mem buffer 0) x0) (inst movdqa (nth-xmm-mem buffer 1) x1) (inst movdqa (nth-xmm-mem buffer 2) x2) (inst movdqa (nth-xmm-mem buffer 3) x3)))) #+x86-64 (define-vop (chacha-core-fast) (:translate ironclad::x-chacha-core) (:policy :fast-safe) (:args (buffer :scs (descriptor-reg)) (state :scs (descriptor-reg))) (:info n-rounds) (:arg-types (:constant (signed-byte 61)) simple-array-unsigned-byte-8 simple-array-unsigned-byte-32) (:temporary (:sc double-reg) x0 x1 x2 x3) (:temporary (:sc unsigned-reg) r0 r1 r2 r3 temp count) (:generator 1000 (labels ((nth-xmm-mem (base i) (make-ea :qword :base base :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 16 i)))) (ea (i) (make-ea :dword :base buffer :disp (+ (- (* n-word-bytes vector-data-offset) other-pointer-lowtag) (* 4 i)))) (quarter-round (y0 y1 y2 y3) (let ((r0 (reg-in-size r0 :dword)) (r1 (reg-in-size r1 :dword)) (r2 (reg-in-size r2 :dword)) (r3 (reg-in-size r3 :dword)) (temp (reg-in-size temp :dword))) (inst mov r0 (ea y0)) (inst add r0 (ea y1)) (inst mov r3 (ea y3)) (inst xor r3 r0) (inst rol r3 16) (inst mov r2 (ea y2)) (inst add r2 r3) (inst mov r1 (ea y1)) (inst xor r1 r2) (inst rol r1 12) (inst add r0 r1) (inst xor r3 r0) (inst rol r3 8) (inst add r2 r3) (inst xor r1 r2) (inst rol r1 7) (inst mov (ea y0) r0) (inst mov (ea y1) r1) (inst mov (ea y2) r2) (inst mov (ea y3) r3)))) ;; copy state to the output buffer (inst movdqa x0 (nth-xmm-mem state 0)) (inst movdqa x1 (nth-xmm-mem state 1)) (inst movdqa x2 (nth-xmm-mem state 2)) (inst movdqa x3 (nth-xmm-mem state 3)) (inst movdqa (nth-xmm-mem buffer 0) x0) (inst movdqa (nth-xmm-mem buffer 1) x1) (inst movdqa (nth-xmm-mem buffer 2) x2) (inst movdqa (nth-xmm-mem buffer 3) x3) (let ((repeat (gen-label))) (inst mov count n-rounds) (emit-label repeat) (quarter-round 0 4 8 12) (quarter-round 1 5 9 13) (quarter-round 2 6 10 14) (quarter-round 3 7 11 15) (quarter-round 0 5 10 15) (quarter-round 1 6 11 12) (quarter-round 2 7 8 13) (quarter-round 3 4 9 14) (inst sub count 1) (inst jmp :nz repeat)) (inst paddd x0 (nth-xmm-mem buffer 0)) (inst paddd x1 (nth-xmm-mem buffer 1)) (inst paddd x2 (nth-xmm-mem buffer 2)) (inst paddd x3 (nth-xmm-mem buffer 3)) (inst movdqa (nth-xmm-mem buffer 0) x0) (inst movdqa (nth-xmm-mem buffer 1) x1) (inst movdqa (nth-xmm-mem buffer 2) x2) (inst movdqa (nth-xmm-mem buffer 3) x3)))) ) ; PROGN ironclad_0.33.0/src/ciphers/cipher.lisp0000664000175000017500000004314212222266343015031 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; cipher.lisp -- generic functions for symmetric encryption (in-package :crypto) (defclass cipher () ((mode :initarg :mode :accessor mode) (mode-name :reader mode-name) (initialized-p :initform nil :accessor initialized-p))) ;;; Block ciphers are denoted by the use of the {8,16}-byte-block-mixin. (defclass stream-cipher (cipher) ()) (defun encrypt (cipher plaintext ciphertext &key (plaintext-start 0) plaintext-end (ciphertext-start 0) handle-final-block) "Encrypt the data in PLAINTEXT between PLAINTEXT-START and PLAINTEXT-END according to CIPHER. Places the encrypted data in CIPHERTEXT, beginning at CIPHERTEXT-START. Less data than (- PLAINTEXT-END PLAINTEXT-START) may be encrypted, depending on the alignment constraints of CIPHER and the amount of space available in CIPHERTEXT." (check-type plaintext vector) (let ((plaintext-end (or plaintext-end (length plaintext)))) (funcall (slot-value (mode cipher) 'encrypt-function) plaintext ciphertext plaintext-start plaintext-end ciphertext-start handle-final-block))) (defun decrypt (cipher ciphertext plaintext &key (ciphertext-start 0) ciphertext-end (plaintext-start 0) handle-final-block) "Decrypt the data in CIPHERTEXT between CIPHERTEXT-START and CIPHERTEXT-END according to CIPHER. Places the decrypted data in PLAINTEXT, beginning at PLAINTEXT-START. Less data than (- CIPHERTEXT-END CIPHERTEXT-START) may be encrypted, depending on the alignment constraints of CIPHER and the amount of space available in PLAINTEXT." (check-type ciphertext vector) (let ((ciphertext-end (or ciphertext-end (length ciphertext)))) (funcall (slot-value (mode cipher) 'decrypt-function) ciphertext plaintext ciphertext-start ciphertext-end plaintext-start handle-final-block))) (defun encrypt-in-place (cipher text &key (start 0) end) (encrypt cipher text text :plaintext-start start :plaintext-end end :ciphertext-start start)) (defun decrypt-in-place (cipher text &key (start 0) end) (decrypt cipher text text :ciphertext-start start :ciphertext-end end :plaintext-start start)) ;;; utilities for wordwise fetches and stores ;;; we attempt to make this as efficient as possible. the first check we ;;; do is to see whether or not the range ;;; [INITIAL-OFFSET, INITIAL-OFFSET + BLOCK-SIZE) is within the bounds of ;;; the array. if not, then we do the fetches as normal. if so, then we ;;; can either (DECLARE (SAFETY 0)) to avoid the bounds-checking on the ;;; fetches, or we can do full-word fetches if INITIAL-OFFSET is ;;; word-addressable and the implementation supports it. #+nil (defmacro with-words (((&rest word-vars) array initial-offset &key (size 4) (big-endian t)) &body body) (let ((ref-sym (ubref-fun-name (* size 8) big-endian)) (n-bytes (* (length word-vars) size))) (flet ((generate-fetches (n-fetches) (loop for offset from 0 by size below (* n-fetches size) collect `(,ref-sym ,array (+ ,initial-offset ,offset))))) `(multiple-value-bind ,word-vars (let ((length (length ,array))) (cond ((<= ,initial-offset (- length ,n-bytes)) ,(if (and (member :sbcl *features*) (= size 4) (or (and big-endian (member :big-endian *features*)) (and (not big-endian) (member :little-endian *features*)))) `(if (logtest ,initial-offset (1- ,size)) ;; do FETCH-UB* way (locally (declare (optimize (safety 0))) (values ,@(generate-fetches (length word-vars)))) (let ((word-offset (truncate ,initial-offset 4))) (values ,@(loop for offset from 0 below (length word-vars) collect `(sb-kernel:%vector-raw-bits ,array (+ word-offset ,offset)))))) `(locally (declare (optimize (safety 0))) (values ,@(generate-fetches (length word-vars)))))) (t (values ,@(generate-fetches (length word-vars)))))) (declare (type (unsigned-byte ,(* size 8)) ,@word-vars)) (macrolet ((store-words (buffer buffer-offset &rest word-vars) (loop for word-var in word-vars for offset from 0 by ,size collect `(setf (,',ref-sym ,buffer (+ ,buffer-offset ,offset)) ,word-var) into stores finally (return `(progn ,@stores))))) ,@body))))) (defmacro with-words (((&rest word-vars) array initial-offset &key (size 4) (big-endian t)) &body body) (let ((ref-sym (ubref-fun-name (* size 8) big-endian))) (loop for word-var in word-vars for offset from 0 by size collect `(,word-var (,ref-sym ,array (+ ,initial-offset ,offset))) into let-bindings finally (return `(macrolet ((store-words (buffer buffer-offset &rest word-vars) (loop for word-var in word-vars for offset from 0 by ,size collect `(setf (,',ref-sym ,buffer (+ ,buffer-offset ,offset)) ,word-var) into stores finally (return `(progn ,@stores))))) (let ,let-bindings (declare (type (unsigned-byte ,(* size 8)) ,@word-vars)) ,@body)))))) ;;; mixins for dispatching (defclass 8-byte-block-mixin () ()) (defclass 16-byte-block-mixin () ()) ;;; defining ciphers ;;; the idea behind this is that one only has to implement encryption ;;; and decryption of a block for a particular cipher (and perhaps ;;; some key generation) and then "define" the cipher with some ;;; parameters. necessary interface functions will be auto-generated ;;; with this macro. ;;; possible things to go in INITARGS ;;; ;;; * (:encrypt-function #'cipher-encrypt-block) ;;; * (:decrypt-function #'cipher-decrypt-block) ;;; * (:key-length (:fixed &rest lengths)) ;;; * (:key-length (:variable low high increment)) ;;; * (:constructor #'create-cipher-context) (defmacro defcipher (name &rest initargs) (%defcipher name initargs)) ;;; KLUDGE: we add the blocksize to these two forms so that we can declare ;;; the type of the *-START parameters correctly. That is, good Lisp ;;; implementations will see that references into the plaintext and ;;; ciphertext can never overflow into bignum land; shorter code should ;;; then be generated. This is a kludge, however, because we're putting ;;; the blocksize in three different places: once in the encryptor, once ;;; in the decryptor, and once in the DEFCIPHER form. It would be nice ;;; if there was one single place to put everything. (defmacro define-block-encryptor (algorithm blocksize &body body) `(defun ,(intern (format nil "~A-~A" algorithm '#:encrypt-block)) (context plaintext plaintext-start ciphertext ciphertext-start) (declare (optimize (speed 3) (debug 0) (space 0))) (declare (type simple-octet-vector plaintext ciphertext) (type (integer 0 ,(- array-dimension-limit blocksize)) plaintext-start ciphertext-start)) ,@body)) (defmacro define-block-decryptor (algorithm blocksize &body body) `(defun ,(intern (format nil "~A-~A" algorithm '#:decrypt-block)) (context ciphertext ciphertext-start plaintext plaintext-start) (declare (optimize (speed 3) (debug 0) (space 0))) (declare (type simple-octet-vector ciphertext plaintext) (type (integer 0 ,(- array-dimension-limit blocksize)) ciphertext-start plaintext-start)) ,@body)) (defmacro define-stream-cryptor (algorithm &body body) `(defun ,(intern (format nil "~A-~A" algorithm '#:crypt)) (context plaintext plaintext-start ciphertext ciphertext-start length) (declare (optimize (speed 3) (debug 0) (space 0))) (declare (type simple-octet-vector plaintext ciphertext)) (declare (type index plaintext-start ciphertext-start length)) ,@body)) (defgeneric verify-key (cipher key) (:documentation "Return T if KEY is a valid encryption key for CIPHER.")) ;; Catch various errors. (defmethod verify-key (cipher key) ;; check the key first (when (cl:null key) (error 'key-not-supplied :cipher cipher)) (unless (typep key '(vector (unsigned-byte 8))) (error 'type-error :datum key :expected-type '(vector (unsigned-byte 8)))) ;; hmmm, the key looks OK. what about the cipher? (unless (member cipher (list-all-ciphers)) (error 'unsupported-cipher :name cipher))) (defgeneric schedule-key (cipher key) (:documentation "Schedule KEY for CIPHER, filling CIPHER with any round keys, etc. needed for encryption and decryption.")) (defmethod schedule-key :before ((cipher cipher) key) (verify-key cipher key)) ;;; introspection (defclass cipher-info () ((class-name :reader %class-name :initarg :class-name) (name :reader cipher :initarg :cipher) (block-length :reader %block-length :initarg :block-length) (key-lengths :reader %key-lengths :initarg :key-lengths))) (defmethod print-object ((object cipher-info) stream) (print-unreadable-object (object stream :type t) (format stream "~A" (cipher object)))) (defun %find-cipher (name) (and (symbolp name) (let ((name (massage-symbol name))) (and name (get name '%cipher-info))))) (defun (setf %find-cipher) (cipher-info name) (setf (get (massage-symbol name) '%cipher-info) cipher-info)) (defgeneric key-lengths (cipher) (:documentation "Return a list of possible lengths of a key for CIPHER. CIPHER may either be a cipher name as accepted by MAKE-CIPHER or a cipher object as returned by MAKE-CIPHER. NIL is returned if CIPHER does not name a known cipher or is not a cipher object.")) (defmethod key-lengths (cipher) (let ((cipher-info (%find-cipher cipher))) (and cipher-info (%key-lengths cipher-info)))) (defmethod key-lengths ((cipher cipher)) (key-lengths (class-name (class-of cipher)))) (defgeneric block-length (cipher) (:documentation "Return the number of bytes in an encryption or decryption block for CIPHER. CIPHER may either be a cipher name as accepted by MAKE-CIPHER or a cipher object as returned by MAKE-CIPHER. NIL is returned if CIPHER does not name a known cipher or is not a cipher object.")) (defmethod block-length ((cipher symbol)) (let ((cipher-info (%find-cipher (massage-symbol cipher)))) (and cipher-info (%block-length cipher-info)))) (defmethod block-length ((cipher cipher)) (block-length (class-name (class-of cipher)))) (defmethod block-length ((cipher 8-byte-block-mixin)) 8) (defmethod block-length ((cipher 16-byte-block-mixin)) 16) (defun list-all-ciphers () (loop for symbol being each external-symbol of (find-package :ironclad) if (%find-cipher symbol) collect symbol)) (defun cipher-supported-p (name) "Return T if the cipher NAME is supported as an argument to MAKE-CIPHER." (not (cl:null (%find-cipher name)))) (defun acceptable-key-lengths* (key-length-spec) (ecase (car key-length-spec) (:fixed (loop for length in (cdr key-length-spec) collect `(= length ,length) into forms finally (return `(or ,@forms)))) (:variable (destructuring-bind (low high increment) (cdr key-length-spec) (if (= increment 1) `(<= ,low length ,high) ;; Punt. It'd be a weird cipher implemented otherwise. (error "Need to implement the (/= INCREMENT 1) case")))))) (defun acceptable-key-lengths (key-length-spec) (ecase (car key-length-spec) (:fixed (cdr key-length-spec)) (:variable (destructuring-bind (low high increment) (cdr key-length-spec) (loop for i from low to high by increment collect i))))) (defun generate-key-verifier-methods (name key-length-spec) (let ((acceptable-key-lengths (acceptable-key-lengths key-length-spec))) `(defmethod verify-key ((cipher ,name) (key vector)) (check-type key (array (unsigned-byte 8) (*))) (let ((length (length key))) (cond (,(acceptable-key-lengths* key-length-spec) (copy-seq key)) (t (error 'invalid-key-length :cipher ',name :accepted-lengths ',acceptable-key-lengths))))))) (defun generate-common-cipher-methods (name block-length key-length-spec) `(progn ;; make sure we pass in valid keys ,(generate-key-verifier-methods name key-length-spec) (setf (%find-cipher ',name) (make-instance 'cipher-info :class-name ',name :cipher ',name :block-length ,block-length :key-lengths ',(acceptable-key-lengths key-length-spec))))) (defun generate-block-cipher-forms (name key-length-spec encrypt-function decrypt-function) (declare (ignorable key-length-spec)) `(progn (defmethod encrypt-function ((cipher ,name)) #',encrypt-function) (defmethod decrypt-function ((cipher ,name)) #',decrypt-function))) (defun generate-stream-cipher-forms (name key-length-spec crypt-function) (declare (ignorable key-length-spec)) `(progn (defmethod encrypt-function ((cipher ,name)) #',crypt-function) (defmethod decrypt-function ((cipher ,name)) #',crypt-function))) (defun %defcipher (name initargs) (let ((encrypt-function nil) (decrypt-function nil) (crypt-function nil) (block-length nil) (mode :block) (key-length-spec nil) (constructor nil)) (declare (ignorable constructor)) (loop for (arg value) in initargs do (case arg (:encrypt-function (if (not encrypt-function) (setf encrypt-function value) (error "Specified :ENCRYPT-FUNCTION multiple times."))) (:decrypt-function (if (not decrypt-function) (setf decrypt-function value) (error "Specified :DECRYPT-FUNCTION multiple times."))) (:crypt-function (if (not crypt-function) (setf crypt-function value) (error "Specified :CRYPT-FUNCTION multiple times."))) (:mode (setf mode value)) (:block-length (cond (block-length (error "Specified :BLOCK-LENGTH multiple times.")) ((or (not (integerp value)) (not (plusp value))) (error ":BLOCK-LENGTH must be a positive, integral number.")) (t (setf block-length value)))) (:key-length (cond (key-length-spec (error "Specified :KEY-LENGTH multiple times.")) ((not (consp value)) (error ":KEY-LENGTH value must be a list.")) ((and (not (eq :fixed (car value))) (not (eq :variable (car value)))) (error "First element of :KEY-LENGTH spec must be either :FIXED or :VARIABLE.")) ((eq :fixed (car value)) (if (and (cdr value) (every #'integerp (cdr value)) (every #'plusp (cdr value))) (setf key-length-spec value) ;;; FIXME: better error message (error "bad :FIXED specification for :KEY-LENGTH."))) ((eq :variable (car value)) (if (and (cl:null (nthcdr 4 value)) (every #'integerp (cdr value)) (every #'plusp (cdr value)) (< (cadr value) (caddr value))) (setf key-length-spec value) (error "bad :VARIABLE specification for :KEY-LENGTH.")))))) finally (cond ((and (eq mode :block) key-length-spec encrypt-function decrypt-function) (return `(progn ,(generate-common-cipher-methods name block-length key-length-spec) ,(generate-block-cipher-forms name key-length-spec encrypt-function decrypt-function)))) ((and (eq mode :stream) crypt-function key-length-spec) (return `(progn ,(generate-common-cipher-methods name 1 key-length-spec) ,(generate-stream-cipher-forms name key-length-spec crypt-function)))) (t (error "Didn't specify all required fields for DEFCIPHER")))))) ironclad_0.33.0/src/ciphers/modes.lisp0000664000175000017500000006557012406267172014704 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; modes.lisp -- using encryption modes with block ciphers (in-package :crypto) (defgeneric encrypted-message-length (cipher mode length &optional handle-final-block) (:documentation "Return the length a message of LENGTH would be if it were to be encrypted (decrypted) with CIPHER in MODE. HANDLE-FINAL-BLOCK indicates whether we are encrypting up to and including the final block (so that short blocks may be taken into account, if applicable). Note that this computation may involve MODE's state.")) (defgeneric mode-crypt-functions (cipher mode) (:documentation "Returns two functions that perform encryption and decryption, respectively, with CIPHER in MODE. The lambda list of each function is (IN OUT IN-START IN-END OUT-START HANDLE-FINAL-BLOCK). HANDLE-FINAL-BLOCK is as in ENCRYPT and DECRYPT; the remaining parameters should be self-explanatory. Each function, when called, returns two values: the number of octets processed from IN and the number of octets processed from OUT. Note that for some cipher modes, IN and OUT may be different.")) (defclass encryption-mode () ((encrypt-function :reader encrypt-function) (decrypt-function :reader decrypt-function))) (defclass ecb-mode (encryption-mode) ()) (defclass stream-mode (encryption-mode) ()) (defclass inititialization-vector-mixin () ((iv :reader iv :initarg :initialization-vector) (position :accessor iv-position :initform 0))) (defclass cbc-mode (encryption-mode inititialization-vector-mixin) ()) (defclass ofb-mode (encryption-mode inititialization-vector-mixin) ()) (defclass cfb-mode (encryption-mode inititialization-vector-mixin) ()) (defclass cfb8-mode (encryption-mode inititialization-vector-mixin) ()) (defclass ctr-mode (encryption-mode inititialization-vector-mixin) ()) (defclass padded-cipher-mode (encryption-mode) ((buffer :reader buffer) (buffer-index :accessor buffer-index :initform 0) (sub-mode :reader sub-mode :initarg :sub-mode))) (defmethod print-object ((object encryption-mode) stream) (print-unreadable-object (object stream :identity t) (format stream "~A" (class-name (class-of object))))) (defmethod initialize-instance :after ((mode encryption-mode) &key cipher) (multiple-value-bind (efun dfun) (mode-crypt-functions cipher mode) (setf (slot-value mode 'encrypt-function) efun (slot-value mode 'decrypt-function) dfun))) (defmethod initialize-instance :after ((mode padded-cipher-mode) &key buffer-length) (setf (slot-value mode 'buffer) (make-array buffer-length :element-type '(unsigned-byte 8)))) (defvar *supported-modes* (list :ecb :cbc :ofb :cfb :cfb8 :ctr)) (defun mode-supported-p (name) (member name *supported-modes*)) (defun list-all-modes () (copy-seq *supported-modes*)) (defmethod encrypt-message (cipher msg &key (start 0) (end (length msg))) (let* ((length (- end start)) (encrypted-length (encrypted-message-length cipher (mode cipher) length t)) (encrypted-message (make-array encrypted-length :element-type '(unsigned-byte 8)))) (encrypt cipher msg encrypted-message :plaintext-start start :plaintext-end end :handle-final-block t) encrypted-message)) (defun increment-counter-block (block) (let ((length (length block)) (carry 1)) (loop for i from (1- length) downto 0 until (zerop carry) do (let ((sum (+ (aref block i) carry))) (setf (aref block i) (ldb (byte 8 0) sum) carry (ldb (byte 1 8) sum)))) (values))) ;;; Only really works on big-endian processors... #+nil (defun increment-counter-block (block) (let ((words (truncate (length block) sb-vm:n-word-bytes)) (carry 1)) (loop for i from (1- words) downto 0 until (zerop carry) do (let ((word (sb-kernel:%vector-raw-bits block i))) (multiple-value-setq (word carry) (sb-bignum:%add-with-carry word 0 carry)) (setf (sb-kernel:%vector-raw-bits block i) word))) (values))) ;;; This way is kind of ugly, but I don't know a better way. (macrolet ((define-mode-function (&rest mode-definition-funs &environment env) (loop for fun in mode-definition-funs collect (macroexpand `(,fun 16-byte-block-mixin 16) env) into forms collect (macroexpand `(,fun 8-byte-block-mixin 8) env) into forms finally (return `(progn ,@forms)))) (mode-lambda (&body body) `(lambda (in out in-start in-end out-start handle-final-block) (declare (type simple-octet-vector in out)) (declare (type index in-start in-end out-start)) (declare (ignorable handle-final-block)) ,@body))) ;;; ECB mode (macrolet ((mode-crypt (cipher-specializer block-length-expr) `(defmethod mode-crypt-functions ((cipher ,cipher-specializer) (mode ecb-mode)) (flet ((ecb-crypt-function (function) (declare (type function function)) (mode-lambda (loop with offset of-type index = in-start while (<= offset (- in-end ,block-length-expr)) do (funcall function cipher in offset out out-start) (incf offset ,block-length-expr) (incf out-start ,block-length-expr) finally (return (let ((n-bytes-processed (- offset in-start))) (values n-bytes-processed n-bytes-processed))))))) (values (ecb-crypt-function (encrypt-function cipher)) (ecb-crypt-function (decrypt-function cipher)))))) (message-length (cipher-specializer block-length-expr) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode ecb-mode) length &optional handle-final-block) (declare (ignore handle-final-block)) (* (truncate length ,block-length-expr) ,block-length-expr)))) (define-mode-function mode-crypt message-length)) ;;; CBC mode (macrolet ((mode-crypt (cipher-specializer block-length-expr) `(defmethod mode-crypt-functions ((cipher ,cipher-specializer) (mode cbc-mode)) (let ((efun (encrypt-function cipher)) (dfun (decrypt-function cipher)) (iv (iv mode))) (declare (type function efun dfun)) (declare (type (simple-octet-vector ,block-length-expr) iv)) (declare (inline xor-block)) (values (mode-lambda (loop with offset of-type index = in-start while (<= offset (- in-end ,block-length-expr)) do (xor-block ,block-length-expr iv in offset out out-start) (funcall efun cipher out out-start out out-start) (replace iv out :start1 0 :end1 ,block-length-expr :start2 out-start) (incf offset ,block-length-expr) (incf out-start ,block-length-expr) finally (return (let ((n-bytes-processed (- offset in-start))) (values n-bytes-processed n-bytes-processed))))) (mode-lambda (let ((temp-block (make-array ,block-length-expr :element-type '(unsigned-byte 8)))) (declare (type (simple-octet-vector ,block-length-expr) temp-block)) (declare (dynamic-extent temp-block)) (declare (inline xor-block)) (loop with offset of-type index = in-start while (<= offset (- in-end ,block-length-expr)) do (replace temp-block in :start1 0 :end1 ,block-length-expr :start2 offset) (funcall dfun cipher in offset out out-start) (xor-block ,block-length-expr iv out out-start out out-start) (replace iv temp-block :end1 ,block-length-expr :end2 ,block-length-expr) (incf offset ,block-length-expr) (incf out-start ,block-length-expr) finally (return (let ((n-bytes-processed (- offset in-start))) (values n-bytes-processed n-bytes-processed)))))))))) (message-length (cipher-specializer block-length-expr) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode cbc-mode) length &optional handle-final-block) (declare (ignore handle-final-block)) (* (truncate length ,block-length-expr) ,block-length-expr)))) (define-mode-function mode-crypt message-length)) ;;; CFB mode (macrolet ((mode-crypt (cipher-specializer block-length-expr) `(defmethod mode-crypt-functions ((cipher ,cipher-specializer) (mode cfb-mode)) (let ((function (encrypt-function cipher)) (iv (iv mode)) (iv-position (iv-position mode))) (declare (type function function)) (declare (type (simple-octet-vector ,block-length-expr) iv)) (declare (type (integer 0 (,block-length-expr)) iv-position)) (values (mode-lambda (loop for i of-type index from in-start below in-end for j of-type index from out-start do (when (zerop iv-position) (funcall function cipher iv 0 iv 0)) (let ((b (logxor (aref in i) (aref iv iv-position)))) (setf (aref out j) b) (setf (aref iv iv-position) b) (setf iv-position (mod (1+ iv-position) ,block-length-expr))) finally (return (let ((n-bytes-processed (- in-end in-start))) (values n-bytes-processed n-bytes-processed))))) (mode-lambda (loop for i of-type index from in-start below in-end for j of-type index from out-start do (when (zerop iv-position) (funcall function cipher iv 0 iv 0)) (let ((b (logxor (aref in i) (aref iv iv-position)))) (setf (aref out j) b) (setf (aref iv iv-position) (aref in i)) (setf iv-position (mod (1+ iv-position) ,block-length-expr))) finally (return (let ((n-bytes-processed (- in-end in-start))) (values n-bytes-processed n-bytes-processed))))))))) (message-length (cipher-specializer block-length-expr) (declare (ignore block-length-expr)) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode cfb-mode) length &optional handle-final-block) (declare (ignore handle-final-block)) ;; We can encrypt the whole thing. length))) (define-mode-function mode-crypt message-length)) ;;; CFB8 mode (macrolet ((mode-crypt (cipher-specializer block-length-expr) `(defmethod mode-crypt-functions ((cipher ,cipher-specializer) (mode cfb8-mode)) (let ((function (encrypt-function cipher)) (iv (iv mode)) (encrypted-iv (nibbles:make-octet-vector ,block-length-expr))) (declare (type function function)) (declare (type (simple-octet-vector ,block-length-expr) iv encrypted-iv)) (values (mode-lambda (loop for i of-type index from in-start below in-end for j of-type index from out-start do (replace encrypted-iv iv :end1 ,block-length-expr :end2 ,block-length-expr) (funcall function cipher encrypted-iv 0 encrypted-iv 0) (let ((b (logxor (aref in i) (aref encrypted-iv 0)))) (setf (aref out j) b) (replace iv iv :start1 0 :start2 1 :end1 (1- ,block-length-expr) :end2 ,block-length-expr) (setf (aref iv (1- ,block-length-expr)) b)) finally (return (let ((n-bytes-processed (- in-end in-start))) (values n-bytes-processed n-bytes-processed))))) (mode-lambda (loop for i of-type index from in-start below in-end for j of-type index from out-start do (replace encrypted-iv iv :end1 ,block-length-expr :end2 ,block-length-expr) (funcall function cipher encrypted-iv 0 encrypted-iv 0) (replace iv iv :start1 0 :start2 1 :end1 (1- ,block-length-expr) :end2 ,block-length-expr) (let ((b (aref in i))) (setf (aref iv (1- ,block-length-expr)) b) (setf (aref out j) (logxor b (aref encrypted-iv 0)))) finally (return (let ((n-bytes-processed (- in-end in-start))) (values n-bytes-processed n-bytes-processed))))))))) (message-length (cipher-specializer block-length-expr) (declare (ignore block-length-expr)) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode cfb8-mode) length &optional handle-final-block) (declare (ignore handle-final-block)) ;; We can encrypt the whole thing. length))) (define-mode-function mode-crypt message-length)) ;;; OFB mode (macrolet ((mode-crypt (cipher-specializer block-length-expr) `(defmethod mode-crypt-functions ((cipher ,cipher-specializer) (mode ofb-mode)) (let ((iv (iv mode)) (iv-position (iv-position mode))) (declare (type (simple-octet-vector ,block-length-expr) iv)) (declare (type (integer 0 (,block-length-expr)) iv-position)) (flet ((ofb-crypt-function (function) (declare (type function function)) (mode-lambda (loop for i of-type index from in-start below in-end for j of-type index from out-start do (when (zerop iv-position) (funcall function cipher iv 0 iv 0)) (setf (aref out j) (logxor (aref in i) (aref iv iv-position))) (setf iv-position (mod (1+ iv-position) ,block-length-expr)) finally (return (let ((n-bytes-processed (- in-end in-start))) (values n-bytes-processed n-bytes-processed))))))) (let ((f (ofb-crypt-function (encrypt-function cipher)))) (values f f)))))) (message-length (cipher-specializer block-length-expr) (declare (ignore block-length-expr)) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode ofb-mode) length &optional handle-final-block) (declare (ignore handle-final-block)) ;; We can encrypt the whole thing. length))) (define-mode-function mode-crypt message-length)) ;;; CTR mode (macrolet ((mode-crypt (cipher-specializer block-length-expr) `(defmethod mode-crypt-functions ((cipher ,cipher-specializer) (mode ctr-mode)) (let ((iv (iv mode)) (encrypted-iv (nibbles:make-octet-vector ,block-length-expr)) (iv-position (iv-position mode))) (declare (type (simple-octet-vector ,block-length-expr) iv encrypted-iv)) (declare (type (integer 0 (,block-length-expr)) iv-position)) (flet ((ctr-crypt-function (function) (declare (type function function)) (mode-lambda (loop for i of-type index from in-start below in-end for j of-type index from out-start do (when (zerop iv-position) (funcall function cipher iv 0 encrypted-iv 0) (increment-counter-block iv)) (setf (aref out j) (logxor (aref in i) (aref encrypted-iv iv-position))) (setf iv-position (mod (1+ iv-position) ,block-length-expr)) finally (return (let ((n-bytes-processed (- in-end in-start))) (values n-bytes-processed n-bytes-processed))))))) (let ((f (ctr-crypt-function (encrypt-function cipher)))) (values f f)))))) (message-length (cipher-specializer block-length-expr) (declare (ignore block-length-expr)) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode ctr-mode) length &optional handle-final-block) (declare (ignore handle-final-block)) ;; We can encrypt the whole thing. length))) (define-mode-function mode-crypt message-length)) ;;; Padded modes (macrolet ((encrypt (cipher-specializer block-length-expr) `(defmethod encrypt-with-mode ((cipher ,cipher-specializer) (mode padded-cipher-mode) plaintext ciphertext plaintext-start plaintext-end ciphertext-start handle-final-block) (declare (type simple-octet-vector plaintext ciphertext)) (declare (type index plaintext-start plaintext-end ciphertext-start)) (declare (ignorable handle-final-block)) (let* ((buffer (buffer mode)) (sub-mode (sub-mode mode)) (buffer-index (buffer-index mode)) (amount (- ,block-length-expr buffer-index)) (plaintext-length (- plaintext-end plaintext-start)) (n-bytes-encrypted 0)) (declare (type (simple-octet-vector ,block-length-expr) buffer)) (when (> plaintext-length amount) (replace buffer plaintext :start1 buffer-index :end1 ,block-length-expr :start2 plaintext-start) (encrypt-with-mode cipher sub-mode plaintext ciphertext plaintext-start plaintext-end ciphertext-start nil) (setf buffer-index 0) (decf plaintext-length amount) (incf plaintext-start amount) (incf n-bytes-encrypted amount) (loop while (> plaintext-length ,block-length-expr) do (encrypt-with-mode cipher sub-mode plaintext ciphertext plaintext-start (+ plaintext-start ,block-length-expr) (+ ciphertext-start n-bytes-encrypted) nil) (decf plaintext-length ,block-length-expr) (incf plaintext-start ,block-length-expr) (incf n-bytes-encrypted ,block-length-expr))) (replace buffer plaintext :start2 plaintext-start :end2 plaintext-end) (setf (buffer-index mode) plaintext-length) (values (+ n-bytes-encrypted plaintext-length) n-bytes-encrypted)))) (decrypt (cipher-specializer block-length-expr) `(defmethod decrypt-with-mode ((cipher ,cipher-specializer) (mode padded-cipher-mode) ciphertext plaintext ciphertext-start ciphertext-end plaintext-start handle-final-block) (declare (type simple-octet-vector plaintext ciphertext)) (declare (type index ciphertext-start ciphertext-end plaintext-start)) (declare (ignorable handle-final-block)) (let* ((buffer (buffer mode)) (sub-mode (sub-mode mode)) (buffer-index (buffer-index mode)) (amount (- ,block-length-expr buffer-index)) (ciphertext-length (- ciphertext-end ciphertext-start)) (n-bytes-decrypted 0)) (when (> ciphertext-length amount) (replace buffer ciphertext :start1 buffer-index :end1 ,block-length-expr :start2 ciphertext-start) (decrypt-with-mode cipher sub-mode ciphertext plaintext ciphertext-start ciphertext-end plaintext-start nil) (setf buffer-index 0) (decf ciphertext-length amount) (incf ciphertext-start amount) (incf n-bytes-decrypted amount) (loop while (> ciphertext-length ,block-length-expr) do (decrypt-with-mode cipher sub-mode ciphertext plaintext ciphertext-start (+ ciphertext-start ,block-length-expr) (+ ciphertext-start n-bytes-decrypted) nil) (decf ciphertext-length ,block-length-expr) (incf ciphertext-start ,block-length-expr) (incf n-bytes-decrypted ,block-length-expr))) (replace buffer ciphertext :start2 ciphertext-start :end2 ciphertext-end) (setf (buffer-index mode) ciphertext-length) (values (+ n-bytes-decrypted ciphertext-length) n-bytes-decrypted)))) (message-length (cipher-specializer block-length-expr) `(defmethod encrypted-message-length ((cipher ,cipher-specializer) (mode padded-cipher-mode) length &optional handle-final-block) (let* ((buffer-index (buffer-index mode)) (total-amount (+ buffer-index length))) (cond (handle-final-block ;; Calculate how much padding we will need. (multiple-value-bind (full-blocks leftover) (ceiling total-amount ,block-length-expr) (declare (ignore leftover)) (* full-blocks ,block-length-expr))) (t ;; Return the number of full blocks we will encrypt. (multiple-value-bind (full-blocks leftover) (floor total-amount ,block-length-expr) (declare (ignore leftover)) (* full-blocks ,block-length-expr)))))))) (define-mode-function encrypt decrypt message-length)) (defmethod mode-crypt-functions (cipher (mode stream-mode)) (flet ((stream-crypt-function (function) (declare (type function function)) (mode-lambda (let ((length (- in-end in-start))) (when (plusp length) (funcall function cipher in in-start out out-start length)) (let ((n-bytes-processed (max 0 length))) (values n-bytes-processed n-bytes-processed)))))) (values (stream-crypt-function (encrypt-function cipher)) (stream-crypt-function (decrypt-function cipher))))) ) ; DEFINE-MODE-FUNCTION MACROLET (defmethod encrypted-message-length (context (mode stream-mode) length &optional handle-final-block) (declare (ignore context mode handle-final-block)) (declare (type index length)) length) ironclad_0.33.0/src/ciphers/make-cipher.lisp0000664000175000017500000001527412221271006015740 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; make-cipher.lisp -- all the machinery necessary for MAKE-CIPHER (in-package :crypto) ;;; Validity of modes for ciphers. (defgeneric valid-mode-for-cipher-p (cipher mode)) (defmethod valid-mode-for-cipher-p (cipher mode) nil) (defun valid-mode-for-block-cipher-p (mode) (member mode '(:ecb :cbc :ofb :cfb :cfb8 :ctr ecb cbc ofb cfb cfb8 ctr))) (defmethod valid-mode-for-cipher-p ((cipher 16-byte-block-mixin) mode) (valid-mode-for-block-cipher-p mode)) (defmethod valid-mode-for-cipher-p ((cipher 8-byte-block-mixin) mode) (valid-mode-for-block-cipher-p mode)) (defmethod valid-mode-for-cipher-p ((cipher stream-cipher) mode) (or (eq mode :stream) (eq mode 'stream))) (defun make-mode-for-cipher (cipher mode &optional initialization-vector) (let ((block-length (block-length cipher))) (flet ((make-extended-mode (mode-class) (declare (ignorable mode-class)) (unless initialization-vector (error 'initialization-vector-not-supplied :mode mode)) (unless (typep initialization-vector '(vector (unsigned-byte 8))) (error 'type-error :datum initialization-vector :expected-type '(vector (unsigned-byte 8)))) (unless (= (length initialization-vector) block-length) (error 'invalid-initialization-vector :cipher (class-name (class-of cipher)) :block-length block-length)) (make-instance mode-class :initialization-vector (copy-seq initialization-vector) :cipher cipher))) (case mode ((:ecb ecb) (make-instance 'ecb-mode :cipher cipher)) ((:cbc cbc) (make-extended-mode 'cbc-mode)) ((:ofb ofb) (make-extended-mode 'ofb-mode)) ((:cfb cfb) (make-extended-mode 'cfb-mode)) ((:cfb8 cfb8) (make-extended-mode 'cfb8-mode)) ((:ctr ctr) (make-extended-mode 'ctr-mode)) (:stream (make-instance 'stream-mode :cipher cipher)) (t (error 'unsupported-mode :mode mode)))))) ;;; CLOS methods. ;;; This is where all the work gets done. (defmethod shared-initialize :after ((cipher cipher) slot-names &rest initargs &key (key nil key-p) (mode nil mode-p) (padding nil padding-p) (initialization-vector nil iv-p) &allow-other-keys) (declare (ignorable padding padding-p iv-p initargs)) ;; We always want to check that we have a valid key when we initialize ;; a cipher (what good is an unkeyed cipher?). We want to check for ;; a valid key upon reinitialization only if one has been provided. (when (or (not (initialized-p cipher)) key-p) (schedule-key cipher key)) ;; Check that the mode is valid for the cipher we are initializing. (when (and (or (not (initialized-p cipher)) mode-p) (not (valid-mode-for-cipher-p cipher mode))) ;; FIXME: (CLASS-NAME (CLASS-OF ...)) is not quite right. (error 'unsupported-mode :mode mode :cipher (class-name (class-of cipher)))) (when (and iv-p (not mode-p)) (setq mode (mode-name cipher))) (when (or mode-p iv-p) (setf (slot-value cipher 'mode-name) mode) (let ((mode-instance (make-mode-for-cipher cipher mode initialization-vector))) (typecase (mode cipher) #+nil (padded-mode (setf (mode (mode cipher)) mode-instance)) (t (setf (mode cipher) mode-instance))))) #+nil (when padding-p (typecase (mode cipher) (padded-mode (setf (padding (mode cipher)) padding)) (t (setf (padding (mode cipher)) (make-instance 'padded-mode :mode mode :padding padding :buffer-length (block-length cipher)))))) cipher) (defmethod initialize-instance :after ((cipher cipher) &rest initargs &key key mode padding initialization-vector &allow-other-keys) (declare (ignore key mode padding initialization-vector initargs)) (setf (initialized-p cipher) t) cipher) (defun %block-cipher-p (info) (not (= (%block-length info) 1))) (defun find-cipher-or-lose (name) (let ((cipher-info (%find-cipher name))) (unless cipher-info (error 'unsupported-cipher :name name)) cipher-info)) (defun validate-parameters-for-cipher-info (cipher-info mode padding) (cond ((%block-cipher-p cipher-info) ;; Block cipher. (when (or (eq mode 'stream) (eq mode :stream)) (error 'unsupported-mode :cipher (cipher cipher-info) :mode mode))) (t ;; Stream cipher. (unless (or (eq mode 'stream) (eq mode :stream)) (error 'unsupported-mode :cipher (cipher cipher-info) :mode mode)) (when padding (error "padding is not supported for stream ciphers")))) cipher-info) (defun make-cipher (name &key key mode initialization-vector padding) "Return a cipher object using algorithm NAME with KEY in the specified MODE. If MODE requires an initialization vector, it must be provided as INITIALIZATION-VECTOR; otherwise, the INITIALIZATION-VECTOR argument is ignored." (let ((cipher-info (find-cipher-or-lose name))) (validate-parameters-for-cipher-info cipher-info mode padding) (make-instance (%class-name cipher-info) :key key :mode mode :initialization-vector initialization-vector :padding padding))) ;;; Many implementations can optimize MAKE-INSTANCE of a constant class ;;; name; try to enable that optimization by converting MAKE-CIPHER to ;;; such a form. (define-compiler-macro make-cipher (&whole form &environment env name &rest keys &key key mode initialization-vector padding &allow-other-keys) (declare (ignore env keys)) (cond ((or (keywordp name) (and (quotationp name) (symbolp name))) (let ((cipher-info (ignore-errors (validate-parameters-for-cipher-info (find-cipher-or-lose (unquote name)) (unquote mode) padding)))) (if cipher-info `(make-instance ',(%class-name cipher-info) :key ,key :mode ,mode :initialization-vector ,initialization-vector :padding ,padding) form))) (t form))) ironclad_0.33.0/src/ciphers/null-cipher.lisp0000644000175000017500000000431111761302200015760 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; null-cipher.lisp -- the do-nothing cipher ;;; It's not very secure, but it does come in handy to serve as a dummy ;;; cipher in security protocols before ciphers and keys have been ;;; established. (cl:in-package :crypto) (eval-when (:compile-toplevel :load-toplevel :execute) (defconstant +null-block-length+ 8) ) (defclass null (cipher 8-byte-block-mixin) ((key :accessor null-key :type simple-octet-vector) (key-index :accessor null-key-index :initform 0 :type fixnum))) (defun null-crypt-block (context in in-start out out-start) (declare (type simple-octet-vector in out)) (let* ((key (null-key context)) (key-index (null-key-index context)) (key-length (length key))) (declare (type simple-octet-vector key)) (cond ((= key-length 1) (let ((byte (aref key 0))) ;; Ignore the case where we just crypt in place. (unless (and (zerop byte) (eq in out) (= in-start out-start)) (dotimes (i +null-block-length+) (setf (aref out (+ out-start i)) (logxor byte (aref in (+ in-start i)))))))) (t (dotimes (i +null-block-length+) (setf (aref out (+ out-start i)) (logxor (aref key key-index) (aref in (+ in-start i)))) (incf key-index) (when (>= key-index key-length) (setf key-index 0))) (setf (null-key-index context) key-index))))) (define-block-encryptor null #.+null-block-length+ (null-crypt-block context plaintext plaintext-start ciphertext ciphertext-start)) (define-block-decryptor null #.+null-block-length+ (null-crypt-block context ciphertext ciphertext-start plaintext plaintext-start)) (defmethod schedule-key ((cipher null) key) ;; Optimize the probable common case of a key with bytes all the same. (let ((short-key (remove-duplicates key))) (if (= (length short-key) 1) (setf (null-key cipher) short-key) (setf (null-key cipher) key)) cipher)) (defcipher null (:encrypt-function null-encrypt-block) (:decrypt-function null-decrypt-block) (:block-length #.+null-block-length+) (:key-length (:variable 1 256 1))) ironclad_0.33.0/src/ciphers/aes.lisp0000644000175000017500000013044411761302200014315 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; aes.lisp -- implementation of the Rijndael block cipher ;;; ;;; Currently limited to 128-bit block sizes, although the full range of ;;; key sizes is supported. (in-package :crypto) ;;; FIXME: is it work it to combine these into one large array and ;;; subscript into that rather than having separate arrays? CMUCL ;;; and SBCL don't seem to want to keep the constant in a register, ;;; preferring to reload it at every reference, so a single large ;;; array scheme might not be the best for them (yet) (declaim (type (simple-array (unsigned-byte 32) (256)) Te0 Te1 Te2 Te3 Te4 Td0 Td1 Td2 Td3 Td4)) (defconst Te0 #32@(#xc66363a5 #xf87c7c84 #xee777799 #xf67b7b8d #xfff2f20d #xd66b6bbd #xde6f6fb1 #x91c5c554 #x60303050 #x02010103 #xce6767a9 #x562b2b7d #xe7fefe19 #xb5d7d762 #x4dababe6 #xec76769a #x8fcaca45 #x1f82829d #x89c9c940 #xfa7d7d87 #xeffafa15 #xb25959eb #x8e4747c9 #xfbf0f00b #x41adadec #xb3d4d467 #x5fa2a2fd #x45afafea #x239c9cbf #x53a4a4f7 #xe4727296 #x9bc0c05b #x75b7b7c2 #xe1fdfd1c #x3d9393ae #x4c26266a #x6c36365a #x7e3f3f41 #xf5f7f702 #x83cccc4f #x6834345c #x51a5a5f4 #xd1e5e534 #xf9f1f108 #xe2717193 #xabd8d873 #x62313153 #x2a15153f #x0804040c #x95c7c752 #x46232365 #x9dc3c35e #x30181828 #x379696a1 #x0a05050f #x2f9a9ab5 #x0e070709 #x24121236 #x1b80809b #xdfe2e23d #xcdebeb26 #x4e272769 #x7fb2b2cd #xea75759f #x1209091b #x1d83839e #x582c2c74 #x341a1a2e #x361b1b2d #xdc6e6eb2 #xb45a5aee #x5ba0a0fb #xa45252f6 #x763b3b4d #xb7d6d661 #x7db3b3ce #x5229297b #xdde3e33e #x5e2f2f71 #x13848497 #xa65353f5 #xb9d1d168 #x00000000 #xc1eded2c #x40202060 #xe3fcfc1f #x79b1b1c8 #xb65b5bed #xd46a6abe #x8dcbcb46 #x67bebed9 #x7239394b #x944a4ade #x984c4cd4 #xb05858e8 #x85cfcf4a #xbbd0d06b #xc5efef2a #x4faaaae5 #xedfbfb16 #x864343c5 #x9a4d4dd7 #x66333355 #x11858594 #x8a4545cf #xe9f9f910 #x04020206 #xfe7f7f81 #xa05050f0 #x783c3c44 #x259f9fba #x4ba8a8e3 #xa25151f3 #x5da3a3fe #x804040c0 #x058f8f8a #x3f9292ad #x219d9dbc #x70383848 #xf1f5f504 #x63bcbcdf #x77b6b6c1 #xafdada75 #x42212163 #x20101030 #xe5ffff1a #xfdf3f30e #xbfd2d26d #x81cdcd4c #x180c0c14 #x26131335 #xc3ecec2f #xbe5f5fe1 #x359797a2 #x884444cc #x2e171739 #x93c4c457 #x55a7a7f2 #xfc7e7e82 #x7a3d3d47 #xc86464ac #xba5d5de7 #x3219192b #xe6737395 #xc06060a0 #x19818198 #x9e4f4fd1 #xa3dcdc7f #x44222266 #x542a2a7e #x3b9090ab #x0b888883 #x8c4646ca #xc7eeee29 #x6bb8b8d3 #x2814143c #xa7dede79 #xbc5e5ee2 #x160b0b1d #xaddbdb76 #xdbe0e03b #x64323256 #x743a3a4e #x140a0a1e #x924949db #x0c06060a #x4824246c #xb85c5ce4 #x9fc2c25d #xbdd3d36e #x43acacef #xc46262a6 #x399191a8 #x319595a4 #xd3e4e437 #xf279798b #xd5e7e732 #x8bc8c843 #x6e373759 #xda6d6db7 #x018d8d8c #xb1d5d564 #x9c4e4ed2 #x49a9a9e0 #xd86c6cb4 #xac5656fa #xf3f4f407 #xcfeaea25 #xca6565af #xf47a7a8e #x47aeaee9 #x10080818 #x6fbabad5 #xf0787888 #x4a25256f #x5c2e2e72 #x381c1c24 #x57a6a6f1 #x73b4b4c7 #x97c6c651 #xcbe8e823 #xa1dddd7c #xe874749c #x3e1f1f21 #x964b4bdd #x61bdbddc #x0d8b8b86 #x0f8a8a85 #xe0707090 #x7c3e3e42 #x71b5b5c4 #xcc6666aa #x904848d8 #x06030305 #xf7f6f601 #x1c0e0e12 #xc26161a3 #x6a35355f #xae5757f9 #x69b9b9d0 #x17868691 #x99c1c158 #x3a1d1d27 #x279e9eb9 #xd9e1e138 #xebf8f813 #x2b9898b3 #x22111133 #xd26969bb #xa9d9d970 #x078e8e89 #x339494a7 #x2d9b9bb6 #x3c1e1e22 #x15878792 #xc9e9e920 #x87cece49 #xaa5555ff #x50282878 #xa5dfdf7a #x038c8c8f #x59a1a1f8 #x09898980 #x1a0d0d17 #x65bfbfda #xd7e6e631 #x844242c6 #xd06868b8 #x824141c3 #x299999b0 #x5a2d2d77 #x1e0f0f11 #x7bb0b0cb #xa85454fc #x6dbbbbd6 #x2c16163a)) (defconst Te1 #32@(#xa5c66363 #x84f87c7c #x99ee7777 #x8df67b7b #x0dfff2f2 #xbdd66b6b #xb1de6f6f #x5491c5c5 #x50603030 #x03020101 #xa9ce6767 #x7d562b2b #x19e7fefe #x62b5d7d7 #xe64dabab #x9aec7676 #x458fcaca #x9d1f8282 #x4089c9c9 #x87fa7d7d #x15effafa #xebb25959 #xc98e4747 #x0bfbf0f0 #xec41adad #x67b3d4d4 #xfd5fa2a2 #xea45afaf #xbf239c9c #xf753a4a4 #x96e47272 #x5b9bc0c0 #xc275b7b7 #x1ce1fdfd #xae3d9393 #x6a4c2626 #x5a6c3636 #x417e3f3f #x02f5f7f7 #x4f83cccc #x5c683434 #xf451a5a5 #x34d1e5e5 #x08f9f1f1 #x93e27171 #x73abd8d8 #x53623131 #x3f2a1515 #x0c080404 #x5295c7c7 #x65462323 #x5e9dc3c3 #x28301818 #xa1379696 #x0f0a0505 #xb52f9a9a #x090e0707 #x36241212 #x9b1b8080 #x3ddfe2e2 #x26cdebeb #x694e2727 #xcd7fb2b2 #x9fea7575 #x1b120909 #x9e1d8383 #x74582c2c #x2e341a1a #x2d361b1b #xb2dc6e6e #xeeb45a5a #xfb5ba0a0 #xf6a45252 #x4d763b3b #x61b7d6d6 #xce7db3b3 #x7b522929 #x3edde3e3 #x715e2f2f #x97138484 #xf5a65353 #x68b9d1d1 #x00000000 #x2cc1eded #x60402020 #x1fe3fcfc #xc879b1b1 #xedb65b5b #xbed46a6a #x468dcbcb #xd967bebe #x4b723939 #xde944a4a #xd4984c4c #xe8b05858 #x4a85cfcf #x6bbbd0d0 #x2ac5efef #xe54faaaa #x16edfbfb #xc5864343 #xd79a4d4d #x55663333 #x94118585 #xcf8a4545 #x10e9f9f9 #x06040202 #x81fe7f7f #xf0a05050 #x44783c3c #xba259f9f #xe34ba8a8 #xf3a25151 #xfe5da3a3 #xc0804040 #x8a058f8f #xad3f9292 #xbc219d9d #x48703838 #x04f1f5f5 #xdf63bcbc #xc177b6b6 #x75afdada #x63422121 #x30201010 #x1ae5ffff #x0efdf3f3 #x6dbfd2d2 #x4c81cdcd #x14180c0c #x35261313 #x2fc3ecec #xe1be5f5f #xa2359797 #xcc884444 #x392e1717 #x5793c4c4 #xf255a7a7 #x82fc7e7e #x477a3d3d #xacc86464 #xe7ba5d5d #x2b321919 #x95e67373 #xa0c06060 #x98198181 #xd19e4f4f #x7fa3dcdc #x66442222 #x7e542a2a #xab3b9090 #x830b8888 #xca8c4646 #x29c7eeee #xd36bb8b8 #x3c281414 #x79a7dede #xe2bc5e5e #x1d160b0b #x76addbdb #x3bdbe0e0 #x56643232 #x4e743a3a #x1e140a0a #xdb924949 #x0a0c0606 #x6c482424 #xe4b85c5c #x5d9fc2c2 #x6ebdd3d3 #xef43acac #xa6c46262 #xa8399191 #xa4319595 #x37d3e4e4 #x8bf27979 #x32d5e7e7 #x438bc8c8 #x596e3737 #xb7da6d6d #x8c018d8d #x64b1d5d5 #xd29c4e4e #xe049a9a9 #xb4d86c6c #xfaac5656 #x07f3f4f4 #x25cfeaea #xafca6565 #x8ef47a7a #xe947aeae #x18100808 #xd56fbaba #x88f07878 #x6f4a2525 #x725c2e2e #x24381c1c #xf157a6a6 #xc773b4b4 #x5197c6c6 #x23cbe8e8 #x7ca1dddd #x9ce87474 #x213e1f1f #xdd964b4b #xdc61bdbd #x860d8b8b #x850f8a8a #x90e07070 #x427c3e3e #xc471b5b5 #xaacc6666 #xd8904848 #x05060303 #x01f7f6f6 #x121c0e0e #xa3c26161 #x5f6a3535 #xf9ae5757 #xd069b9b9 #x91178686 #x5899c1c1 #x273a1d1d #xb9279e9e #x38d9e1e1 #x13ebf8f8 #xb32b9898 #x33221111 #xbbd26969 #x70a9d9d9 #x89078e8e #xa7339494 #xb62d9b9b #x223c1e1e #x92158787 #x20c9e9e9 #x4987cece #xffaa5555 #x78502828 #x7aa5dfdf #x8f038c8c #xf859a1a1 #x80098989 #x171a0d0d #xda65bfbf #x31d7e6e6 #xc6844242 #xb8d06868 #xc3824141 #xb0299999 #x775a2d2d #x111e0f0f #xcb7bb0b0 #xfca85454 #xd66dbbbb #x3a2c1616)) (defconst Te2 #32@(#x63a5c663 #x7c84f87c #x7799ee77 #x7b8df67b #xf20dfff2 #x6bbdd66b #x6fb1de6f #xc55491c5 #x30506030 #x01030201 #x67a9ce67 #x2b7d562b #xfe19e7fe #xd762b5d7 #xabe64dab #x769aec76 #xca458fca #x829d1f82 #xc94089c9 #x7d87fa7d #xfa15effa #x59ebb259 #x47c98e47 #xf00bfbf0 #xadec41ad #xd467b3d4 #xa2fd5fa2 #xafea45af #x9cbf239c #xa4f753a4 #x7296e472 #xc05b9bc0 #xb7c275b7 #xfd1ce1fd #x93ae3d93 #x266a4c26 #x365a6c36 #x3f417e3f #xf702f5f7 #xcc4f83cc #x345c6834 #xa5f451a5 #xe534d1e5 #xf108f9f1 #x7193e271 #xd873abd8 #x31536231 #x153f2a15 #x040c0804 #xc75295c7 #x23654623 #xc35e9dc3 #x18283018 #x96a13796 #x050f0a05 #x9ab52f9a #x07090e07 #x12362412 #x809b1b80 #xe23ddfe2 #xeb26cdeb #x27694e27 #xb2cd7fb2 #x759fea75 #x091b1209 #x839e1d83 #x2c74582c #x1a2e341a #x1b2d361b #x6eb2dc6e #x5aeeb45a #xa0fb5ba0 #x52f6a452 #x3b4d763b #xd661b7d6 #xb3ce7db3 #x297b5229 #xe33edde3 #x2f715e2f #x84971384 #x53f5a653 #xd168b9d1 #x00000000 #xed2cc1ed #x20604020 #xfc1fe3fc #xb1c879b1 #x5bedb65b #x6abed46a #xcb468dcb #xbed967be #x394b7239 #x4ade944a #x4cd4984c #x58e8b058 #xcf4a85cf #xd06bbbd0 #xef2ac5ef #xaae54faa #xfb16edfb #x43c58643 #x4dd79a4d #x33556633 #x85941185 #x45cf8a45 #xf910e9f9 #x02060402 #x7f81fe7f #x50f0a050 #x3c44783c #x9fba259f #xa8e34ba8 #x51f3a251 #xa3fe5da3 #x40c08040 #x8f8a058f #x92ad3f92 #x9dbc219d #x38487038 #xf504f1f5 #xbcdf63bc #xb6c177b6 #xda75afda #x21634221 #x10302010 #xff1ae5ff #xf30efdf3 #xd26dbfd2 #xcd4c81cd #x0c14180c #x13352613 #xec2fc3ec #x5fe1be5f #x97a23597 #x44cc8844 #x17392e17 #xc45793c4 #xa7f255a7 #x7e82fc7e #x3d477a3d #x64acc864 #x5de7ba5d #x192b3219 #x7395e673 #x60a0c060 #x81981981 #x4fd19e4f #xdc7fa3dc #x22664422 #x2a7e542a #x90ab3b90 #x88830b88 #x46ca8c46 #xee29c7ee #xb8d36bb8 #x143c2814 #xde79a7de #x5ee2bc5e #x0b1d160b #xdb76addb #xe03bdbe0 #x32566432 #x3a4e743a #x0a1e140a #x49db9249 #x060a0c06 #x246c4824 #x5ce4b85c #xc25d9fc2 #xd36ebdd3 #xacef43ac #x62a6c462 #x91a83991 #x95a43195 #xe437d3e4 #x798bf279 #xe732d5e7 #xc8438bc8 #x37596e37 #x6db7da6d #x8d8c018d #xd564b1d5 #x4ed29c4e #xa9e049a9 #x6cb4d86c #x56faac56 #xf407f3f4 #xea25cfea #x65afca65 #x7a8ef47a #xaee947ae #x08181008 #xbad56fba #x7888f078 #x256f4a25 #x2e725c2e #x1c24381c #xa6f157a6 #xb4c773b4 #xc65197c6 #xe823cbe8 #xdd7ca1dd #x749ce874 #x1f213e1f #x4bdd964b #xbddc61bd #x8b860d8b #x8a850f8a #x7090e070 #x3e427c3e #xb5c471b5 #x66aacc66 #x48d89048 #x03050603 #xf601f7f6 #x0e121c0e #x61a3c261 #x355f6a35 #x57f9ae57 #xb9d069b9 #x86911786 #xc15899c1 #x1d273a1d #x9eb9279e #xe138d9e1 #xf813ebf8 #x98b32b98 #x11332211 #x69bbd269 #xd970a9d9 #x8e89078e #x94a73394 #x9bb62d9b #x1e223c1e #x87921587 #xe920c9e9 #xce4987ce #x55ffaa55 #x28785028 #xdf7aa5df #x8c8f038c #xa1f859a1 #x89800989 #x0d171a0d #xbfda65bf #xe631d7e6 #x42c68442 #x68b8d068 #x41c38241 #x99b02999 #x2d775a2d #x0f111e0f #xb0cb7bb0 #x54fca854 #xbbd66dbb #x163a2c16)) (defconst Te3 #32@(#x6363a5c6 #x7c7c84f8 #x777799ee #x7b7b8df6 #xf2f20dff #x6b6bbdd6 #x6f6fb1de #xc5c55491 #x30305060 #x01010302 #x6767a9ce #x2b2b7d56 #xfefe19e7 #xd7d762b5 #xababe64d #x76769aec #xcaca458f #x82829d1f #xc9c94089 #x7d7d87fa #xfafa15ef #x5959ebb2 #x4747c98e #xf0f00bfb #xadadec41 #xd4d467b3 #xa2a2fd5f #xafafea45 #x9c9cbf23 #xa4a4f753 #x727296e4 #xc0c05b9b #xb7b7c275 #xfdfd1ce1 #x9393ae3d #x26266a4c #x36365a6c #x3f3f417e #xf7f702f5 #xcccc4f83 #x34345c68 #xa5a5f451 #xe5e534d1 #xf1f108f9 #x717193e2 #xd8d873ab #x31315362 #x15153f2a #x04040c08 #xc7c75295 #x23236546 #xc3c35e9d #x18182830 #x9696a137 #x05050f0a #x9a9ab52f #x0707090e #x12123624 #x80809b1b #xe2e23ddf #xebeb26cd #x2727694e #xb2b2cd7f #x75759fea #x09091b12 #x83839e1d #x2c2c7458 #x1a1a2e34 #x1b1b2d36 #x6e6eb2dc #x5a5aeeb4 #xa0a0fb5b #x5252f6a4 #x3b3b4d76 #xd6d661b7 #xb3b3ce7d #x29297b52 #xe3e33edd #x2f2f715e #x84849713 #x5353f5a6 #xd1d168b9 #x00000000 #xeded2cc1 #x20206040 #xfcfc1fe3 #xb1b1c879 #x5b5bedb6 #x6a6abed4 #xcbcb468d #xbebed967 #x39394b72 #x4a4ade94 #x4c4cd498 #x5858e8b0 #xcfcf4a85 #xd0d06bbb #xefef2ac5 #xaaaae54f #xfbfb16ed #x4343c586 #x4d4dd79a #x33335566 #x85859411 #x4545cf8a #xf9f910e9 #x02020604 #x7f7f81fe #x5050f0a0 #x3c3c4478 #x9f9fba25 #xa8a8e34b #x5151f3a2 #xa3a3fe5d #x4040c080 #x8f8f8a05 #x9292ad3f #x9d9dbc21 #x38384870 #xf5f504f1 #xbcbcdf63 #xb6b6c177 #xdada75af #x21216342 #x10103020 #xffff1ae5 #xf3f30efd #xd2d26dbf #xcdcd4c81 #x0c0c1418 #x13133526 #xecec2fc3 #x5f5fe1be #x9797a235 #x4444cc88 #x1717392e #xc4c45793 #xa7a7f255 #x7e7e82fc #x3d3d477a #x6464acc8 #x5d5de7ba #x19192b32 #x737395e6 #x6060a0c0 #x81819819 #x4f4fd19e #xdcdc7fa3 #x22226644 #x2a2a7e54 #x9090ab3b #x8888830b #x4646ca8c #xeeee29c7 #xb8b8d36b #x14143c28 #xdede79a7 #x5e5ee2bc #x0b0b1d16 #xdbdb76ad #xe0e03bdb #x32325664 #x3a3a4e74 #x0a0a1e14 #x4949db92 #x06060a0c #x24246c48 #x5c5ce4b8 #xc2c25d9f #xd3d36ebd #xacacef43 #x6262a6c4 #x9191a839 #x9595a431 #xe4e437d3 #x79798bf2 #xe7e732d5 #xc8c8438b #x3737596e #x6d6db7da #x8d8d8c01 #xd5d564b1 #x4e4ed29c #xa9a9e049 #x6c6cb4d8 #x5656faac #xf4f407f3 #xeaea25cf #x6565afca #x7a7a8ef4 #xaeaee947 #x08081810 #xbabad56f #x787888f0 #x25256f4a #x2e2e725c #x1c1c2438 #xa6a6f157 #xb4b4c773 #xc6c65197 #xe8e823cb #xdddd7ca1 #x74749ce8 #x1f1f213e #x4b4bdd96 #xbdbddc61 #x8b8b860d #x8a8a850f #x707090e0 #x3e3e427c #xb5b5c471 #x6666aacc #x4848d890 #x03030506 #xf6f601f7 #x0e0e121c #x6161a3c2 #x35355f6a #x5757f9ae #xb9b9d069 #x86869117 #xc1c15899 #x1d1d273a #x9e9eb927 #xe1e138d9 #xf8f813eb #x9898b32b #x11113322 #x6969bbd2 #xd9d970a9 #x8e8e8907 #x9494a733 #x9b9bb62d #x1e1e223c #x87879215 #xe9e920c9 #xcece4987 #x5555ffaa #x28287850 #xdfdf7aa5 #x8c8c8f03 #xa1a1f859 #x89898009 #x0d0d171a #xbfbfda65 #xe6e631d7 #x4242c684 #x6868b8d0 #x4141c382 #x9999b029 #x2d2d775a #x0f0f111e #xb0b0cb7b #x5454fca8 #xbbbbd66d #x16163a2c)) (defconst Te4 #32@(#x63636363 #x7c7c7c7c #x77777777 #x7b7b7b7b #xf2f2f2f2 #x6b6b6b6b #x6f6f6f6f #xc5c5c5c5 #x30303030 #x01010101 #x67676767 #x2b2b2b2b #xfefefefe #xd7d7d7d7 #xabababab #x76767676 #xcacacaca #x82828282 #xc9c9c9c9 #x7d7d7d7d #xfafafafa #x59595959 #x47474747 #xf0f0f0f0 #xadadadad #xd4d4d4d4 #xa2a2a2a2 #xafafafaf #x9c9c9c9c #xa4a4a4a4 #x72727272 #xc0c0c0c0 #xb7b7b7b7 #xfdfdfdfd #x93939393 #x26262626 #x36363636 #x3f3f3f3f #xf7f7f7f7 #xcccccccc #x34343434 #xa5a5a5a5 #xe5e5e5e5 #xf1f1f1f1 #x71717171 #xd8d8d8d8 #x31313131 #x15151515 #x04040404 #xc7c7c7c7 #x23232323 #xc3c3c3c3 #x18181818 #x96969696 #x05050505 #x9a9a9a9a #x07070707 #x12121212 #x80808080 #xe2e2e2e2 #xebebebeb #x27272727 #xb2b2b2b2 #x75757575 #x09090909 #x83838383 #x2c2c2c2c #x1a1a1a1a #x1b1b1b1b #x6e6e6e6e #x5a5a5a5a #xa0a0a0a0 #x52525252 #x3b3b3b3b #xd6d6d6d6 #xb3b3b3b3 #x29292929 #xe3e3e3e3 #x2f2f2f2f #x84848484 #x53535353 #xd1d1d1d1 #x00000000 #xedededed #x20202020 #xfcfcfcfc #xb1b1b1b1 #x5b5b5b5b #x6a6a6a6a #xcbcbcbcb #xbebebebe #x39393939 #x4a4a4a4a #x4c4c4c4c #x58585858 #xcfcfcfcf #xd0d0d0d0 #xefefefef #xaaaaaaaa #xfbfbfbfb #x43434343 #x4d4d4d4d #x33333333 #x85858585 #x45454545 #xf9f9f9f9 #x02020202 #x7f7f7f7f #x50505050 #x3c3c3c3c #x9f9f9f9f #xa8a8a8a8 #x51515151 #xa3a3a3a3 #x40404040 #x8f8f8f8f #x92929292 #x9d9d9d9d #x38383838 #xf5f5f5f5 #xbcbcbcbc #xb6b6b6b6 #xdadadada #x21212121 #x10101010 #xffffffff #xf3f3f3f3 #xd2d2d2d2 #xcdcdcdcd #x0c0c0c0c #x13131313 #xecececec #x5f5f5f5f #x97979797 #x44444444 #x17171717 #xc4c4c4c4 #xa7a7a7a7 #x7e7e7e7e #x3d3d3d3d #x64646464 #x5d5d5d5d #x19191919 #x73737373 #x60606060 #x81818181 #x4f4f4f4f #xdcdcdcdc #x22222222 #x2a2a2a2a #x90909090 #x88888888 #x46464646 #xeeeeeeee #xb8b8b8b8 #x14141414 #xdededede #x5e5e5e5e #x0b0b0b0b #xdbdbdbdb #xe0e0e0e0 #x32323232 #x3a3a3a3a #x0a0a0a0a #x49494949 #x06060606 #x24242424 #x5c5c5c5c #xc2c2c2c2 #xd3d3d3d3 #xacacacac #x62626262 #x91919191 #x95959595 #xe4e4e4e4 #x79797979 #xe7e7e7e7 #xc8c8c8c8 #x37373737 #x6d6d6d6d #x8d8d8d8d #xd5d5d5d5 #x4e4e4e4e #xa9a9a9a9 #x6c6c6c6c #x56565656 #xf4f4f4f4 #xeaeaeaea #x65656565 #x7a7a7a7a #xaeaeaeae #x08080808 #xbabababa #x78787878 #x25252525 #x2e2e2e2e #x1c1c1c1c #xa6a6a6a6 #xb4b4b4b4 #xc6c6c6c6 #xe8e8e8e8 #xdddddddd #x74747474 #x1f1f1f1f #x4b4b4b4b #xbdbdbdbd #x8b8b8b8b #x8a8a8a8a #x70707070 #x3e3e3e3e #xb5b5b5b5 #x66666666 #x48484848 #x03030303 #xf6f6f6f6 #x0e0e0e0e #x61616161 #x35353535 #x57575757 #xb9b9b9b9 #x86868686 #xc1c1c1c1 #x1d1d1d1d #x9e9e9e9e #xe1e1e1e1 #xf8f8f8f8 #x98989898 #x11111111 #x69696969 #xd9d9d9d9 #x8e8e8e8e #x94949494 #x9b9b9b9b #x1e1e1e1e #x87878787 #xe9e9e9e9 #xcececece #x55555555 #x28282828 #xdfdfdfdf #x8c8c8c8c #xa1a1a1a1 #x89898989 #x0d0d0d0d #xbfbfbfbf #xe6e6e6e6 #x42424242 #x68686868 #x41414141 #x99999999 #x2d2d2d2d #x0f0f0f0f #xb0b0b0b0 #x54545454 #xbbbbbbbb #x16161616)) (defconst Td0 #32@(#x51f4a750 #x7e416553 #x1a17a4c3 #x3a275e96 #x3bab6bcb #x1f9d45f1 #xacfa58ab #x4be30393 #x2030fa55 #xad766df6 #x88cc7691 #xf5024c25 #x4fe5d7fc #xc52acbd7 #x26354480 #xb562a38f #xdeb15a49 #x25ba1b67 #x45ea0e98 #x5dfec0e1 #xc32f7502 #x814cf012 #x8d4697a3 #x6bd3f9c6 #x038f5fe7 #x15929c95 #xbf6d7aeb #x955259da #xd4be832d #x587421d3 #x49e06929 #x8ec9c844 #x75c2896a #xf48e7978 #x99583e6b #x27b971dd #xbee14fb6 #xf088ad17 #xc920ac66 #x7dce3ab4 #x63df4a18 #xe51a3182 #x97513360 #x62537f45 #xb16477e0 #xbb6bae84 #xfe81a01c #xf9082b94 #x70486858 #x8f45fd19 #x94de6c87 #x527bf8b7 #xab73d323 #x724b02e2 #xe31f8f57 #x6655ab2a #xb2eb2807 #x2fb5c203 #x86c57b9a #xd33708a5 #x302887f2 #x23bfa5b2 #x02036aba #xed16825c #x8acf1c2b #xa779b492 #xf307f2f0 #x4e69e2a1 #x65daf4cd #x0605bed5 #xd134621f #xc4a6fe8a #x342e539d #xa2f355a0 #x058ae132 #xa4f6eb75 #x0b83ec39 #x4060efaa #x5e719f06 #xbd6e1051 #x3e218af9 #x96dd063d #xdd3e05ae #x4de6bd46 #x91548db5 #x71c45d05 #x0406d46f #x605015ff #x1998fb24 #xd6bde997 #x894043cc #x67d99e77 #xb0e842bd #x07898b88 #xe7195b38 #x79c8eedb #xa17c0a47 #x7c420fe9 #xf8841ec9 #x00000000 #x09808683 #x322bed48 #x1e1170ac #x6c5a724e #xfd0efffb #x0f853856 #x3daed51e #x362d3927 #x0a0fd964 #x685ca621 #x9b5b54d1 #x24362e3a #x0c0a67b1 #x9357e70f #xb4ee96d2 #x1b9b919e #x80c0c54f #x61dc20a2 #x5a774b69 #x1c121a16 #xe293ba0a #xc0a02ae5 #x3c22e043 #x121b171d #x0e090d0b #xf28bc7ad #x2db6a8b9 #x141ea9c8 #x57f11985 #xaf75074c #xee99ddbb #xa37f60fd #xf701269f #x5c72f5bc #x44663bc5 #x5bfb7e34 #x8b432976 #xcb23c6dc #xb6edfc68 #xb8e4f163 #xd731dcca #x42638510 #x13972240 #x84c61120 #x854a247d #xd2bb3df8 #xaef93211 #xc729a16d #x1d9e2f4b #xdcb230f3 #x0d8652ec #x77c1e3d0 #x2bb3166c #xa970b999 #x119448fa #x47e96422 #xa8fc8cc4 #xa0f03f1a #x567d2cd8 #x223390ef #x87494ec7 #xd938d1c1 #x8ccaa2fe #x98d40b36 #xa6f581cf #xa57ade28 #xdab78e26 #x3fadbfa4 #x2c3a9de4 #x5078920d #x6a5fcc9b #x547e4662 #xf68d13c2 #x90d8b8e8 #x2e39f75e #x82c3aff5 #x9f5d80be #x69d0937c #x6fd52da9 #xcf2512b3 #xc8ac993b #x10187da7 #xe89c636e #xdb3bbb7b #xcd267809 #x6e5918f4 #xec9ab701 #x834f9aa8 #xe6956e65 #xaaffe67e #x21bccf08 #xef15e8e6 #xbae79bd9 #x4a6f36ce #xea9f09d4 #x29b07cd6 #x31a4b2af #x2a3f2331 #xc6a59430 #x35a266c0 #x744ebc37 #xfc82caa6 #xe090d0b0 #x33a7d815 #xf104984a #x41ecdaf7 #x7fcd500e #x1791f62f #x764dd68d #x43efb04d #xccaa4d54 #xe49604df #x9ed1b5e3 #x4c6a881b #xc12c1fb8 #x4665517f #x9d5eea04 #x018c355d #xfa877473 #xfb0b412e #xb3671d5a #x92dbd252 #xe9105633 #x6dd64713 #x9ad7618c #x37a10c7a #x59f8148e #xeb133c89 #xcea927ee #xb761c935 #xe11ce5ed #x7a47b13c #x9cd2df59 #x55f2733f #x1814ce79 #x73c737bf #x53f7cdea #x5ffdaa5b #xdf3d6f14 #x7844db86 #xcaaff381 #xb968c43e #x3824342c #xc2a3405f #x161dc372 #xbce2250c #x283c498b #xff0d9541 #x39a80171 #x080cb3de #xd8b4e49c #x6456c190 #x7bcb8461 #xd532b670 #x486c5c74 #xd0b85742)) (defconst Td1 #32@(#x5051f4a7 #x537e4165 #xc31a17a4 #x963a275e #xcb3bab6b #xf11f9d45 #xabacfa58 #x934be303 #x552030fa #xf6ad766d #x9188cc76 #x25f5024c #xfc4fe5d7 #xd7c52acb #x80263544 #x8fb562a3 #x49deb15a #x6725ba1b #x9845ea0e #xe15dfec0 #x02c32f75 #x12814cf0 #xa38d4697 #xc66bd3f9 #xe7038f5f #x9515929c #xebbf6d7a #xda955259 #x2dd4be83 #xd3587421 #x2949e069 #x448ec9c8 #x6a75c289 #x78f48e79 #x6b99583e #xdd27b971 #xb6bee14f #x17f088ad #x66c920ac #xb47dce3a #x1863df4a #x82e51a31 #x60975133 #x4562537f #xe0b16477 #x84bb6bae #x1cfe81a0 #x94f9082b #x58704868 #x198f45fd #x8794de6c #xb7527bf8 #x23ab73d3 #xe2724b02 #x57e31f8f #x2a6655ab #x07b2eb28 #x032fb5c2 #x9a86c57b #xa5d33708 #xf2302887 #xb223bfa5 #xba02036a #x5ced1682 #x2b8acf1c #x92a779b4 #xf0f307f2 #xa14e69e2 #xcd65daf4 #xd50605be #x1fd13462 #x8ac4a6fe #x9d342e53 #xa0a2f355 #x32058ae1 #x75a4f6eb #x390b83ec #xaa4060ef #x065e719f #x51bd6e10 #xf93e218a #x3d96dd06 #xaedd3e05 #x464de6bd #xb591548d #x0571c45d #x6f0406d4 #xff605015 #x241998fb #x97d6bde9 #xcc894043 #x7767d99e #xbdb0e842 #x8807898b #x38e7195b #xdb79c8ee #x47a17c0a #xe97c420f #xc9f8841e #x00000000 #x83098086 #x48322bed #xac1e1170 #x4e6c5a72 #xfbfd0eff #x560f8538 #x1e3daed5 #x27362d39 #x640a0fd9 #x21685ca6 #xd19b5b54 #x3a24362e #xb10c0a67 #x0f9357e7 #xd2b4ee96 #x9e1b9b91 #x4f80c0c5 #xa261dc20 #x695a774b #x161c121a #x0ae293ba #xe5c0a02a #x433c22e0 #x1d121b17 #x0b0e090d #xadf28bc7 #xb92db6a8 #xc8141ea9 #x8557f119 #x4caf7507 #xbbee99dd #xfda37f60 #x9ff70126 #xbc5c72f5 #xc544663b #x345bfb7e #x768b4329 #xdccb23c6 #x68b6edfc #x63b8e4f1 #xcad731dc #x10426385 #x40139722 #x2084c611 #x7d854a24 #xf8d2bb3d #x11aef932 #x6dc729a1 #x4b1d9e2f #xf3dcb230 #xec0d8652 #xd077c1e3 #x6c2bb316 #x99a970b9 #xfa119448 #x2247e964 #xc4a8fc8c #x1aa0f03f #xd8567d2c #xef223390 #xc787494e #xc1d938d1 #xfe8ccaa2 #x3698d40b #xcfa6f581 #x28a57ade #x26dab78e #xa43fadbf #xe42c3a9d #x0d507892 #x9b6a5fcc #x62547e46 #xc2f68d13 #xe890d8b8 #x5e2e39f7 #xf582c3af #xbe9f5d80 #x7c69d093 #xa96fd52d #xb3cf2512 #x3bc8ac99 #xa710187d #x6ee89c63 #x7bdb3bbb #x09cd2678 #xf46e5918 #x01ec9ab7 #xa8834f9a #x65e6956e #x7eaaffe6 #x0821bccf #xe6ef15e8 #xd9bae79b #xce4a6f36 #xd4ea9f09 #xd629b07c #xaf31a4b2 #x312a3f23 #x30c6a594 #xc035a266 #x37744ebc #xa6fc82ca #xb0e090d0 #x1533a7d8 #x4af10498 #xf741ecda #x0e7fcd50 #x2f1791f6 #x8d764dd6 #x4d43efb0 #x54ccaa4d #xdfe49604 #xe39ed1b5 #x1b4c6a88 #xb8c12c1f #x7f466551 #x049d5eea #x5d018c35 #x73fa8774 #x2efb0b41 #x5ab3671d #x5292dbd2 #x33e91056 #x136dd647 #x8c9ad761 #x7a37a10c #x8e59f814 #x89eb133c #xeecea927 #x35b761c9 #xede11ce5 #x3c7a47b1 #x599cd2df #x3f55f273 #x791814ce #xbf73c737 #xea53f7cd #x5b5ffdaa #x14df3d6f #x867844db #x81caaff3 #x3eb968c4 #x2c382434 #x5fc2a340 #x72161dc3 #x0cbce225 #x8b283c49 #x41ff0d95 #x7139a801 #xde080cb3 #x9cd8b4e4 #x906456c1 #x617bcb84 #x70d532b6 #x74486c5c #x42d0b857)) (defconst Td2 #32@(#xa75051f4 #x65537e41 #xa4c31a17 #x5e963a27 #x6bcb3bab #x45f11f9d #x58abacfa #x03934be3 #xfa552030 #x6df6ad76 #x769188cc #x4c25f502 #xd7fc4fe5 #xcbd7c52a #x44802635 #xa38fb562 #x5a49deb1 #x1b6725ba #x0e9845ea #xc0e15dfe #x7502c32f #xf012814c #x97a38d46 #xf9c66bd3 #x5fe7038f #x9c951592 #x7aebbf6d #x59da9552 #x832dd4be #x21d35874 #x692949e0 #xc8448ec9 #x896a75c2 #x7978f48e #x3e6b9958 #x71dd27b9 #x4fb6bee1 #xad17f088 #xac66c920 #x3ab47dce #x4a1863df #x3182e51a #x33609751 #x7f456253 #x77e0b164 #xae84bb6b #xa01cfe81 #x2b94f908 #x68587048 #xfd198f45 #x6c8794de #xf8b7527b #xd323ab73 #x02e2724b #x8f57e31f #xab2a6655 #x2807b2eb #xc2032fb5 #x7b9a86c5 #x08a5d337 #x87f23028 #xa5b223bf #x6aba0203 #x825ced16 #x1c2b8acf #xb492a779 #xf2f0f307 #xe2a14e69 #xf4cd65da #xbed50605 #x621fd134 #xfe8ac4a6 #x539d342e #x55a0a2f3 #xe132058a #xeb75a4f6 #xec390b83 #xefaa4060 #x9f065e71 #x1051bd6e #x8af93e21 #x063d96dd #x05aedd3e #xbd464de6 #x8db59154 #x5d0571c4 #xd46f0406 #x15ff6050 #xfb241998 #xe997d6bd #x43cc8940 #x9e7767d9 #x42bdb0e8 #x8b880789 #x5b38e719 #xeedb79c8 #x0a47a17c #x0fe97c42 #x1ec9f884 #x00000000 #x86830980 #xed48322b #x70ac1e11 #x724e6c5a #xfffbfd0e #x38560f85 #xd51e3dae #x3927362d #xd9640a0f #xa621685c #x54d19b5b #x2e3a2436 #x67b10c0a #xe70f9357 #x96d2b4ee #x919e1b9b #xc54f80c0 #x20a261dc #x4b695a77 #x1a161c12 #xba0ae293 #x2ae5c0a0 #xe0433c22 #x171d121b #x0d0b0e09 #xc7adf28b #xa8b92db6 #xa9c8141e #x198557f1 #x074caf75 #xddbbee99 #x60fda37f #x269ff701 #xf5bc5c72 #x3bc54466 #x7e345bfb #x29768b43 #xc6dccb23 #xfc68b6ed #xf163b8e4 #xdccad731 #x85104263 #x22401397 #x112084c6 #x247d854a #x3df8d2bb #x3211aef9 #xa16dc729 #x2f4b1d9e #x30f3dcb2 #x52ec0d86 #xe3d077c1 #x166c2bb3 #xb999a970 #x48fa1194 #x642247e9 #x8cc4a8fc #x3f1aa0f0 #x2cd8567d #x90ef2233 #x4ec78749 #xd1c1d938 #xa2fe8cca #x0b3698d4 #x81cfa6f5 #xde28a57a #x8e26dab7 #xbfa43fad #x9de42c3a #x920d5078 #xcc9b6a5f #x4662547e #x13c2f68d #xb8e890d8 #xf75e2e39 #xaff582c3 #x80be9f5d #x937c69d0 #x2da96fd5 #x12b3cf25 #x993bc8ac #x7da71018 #x636ee89c #xbb7bdb3b #x7809cd26 #x18f46e59 #xb701ec9a #x9aa8834f #x6e65e695 #xe67eaaff #xcf0821bc #xe8e6ef15 #x9bd9bae7 #x36ce4a6f #x09d4ea9f #x7cd629b0 #xb2af31a4 #x23312a3f #x9430c6a5 #x66c035a2 #xbc37744e #xcaa6fc82 #xd0b0e090 #xd81533a7 #x984af104 #xdaf741ec #x500e7fcd #xf62f1791 #xd68d764d #xb04d43ef #x4d54ccaa #x04dfe496 #xb5e39ed1 #x881b4c6a #x1fb8c12c #x517f4665 #xea049d5e #x355d018c #x7473fa87 #x412efb0b #x1d5ab367 #xd25292db #x5633e910 #x47136dd6 #x618c9ad7 #x0c7a37a1 #x148e59f8 #x3c89eb13 #x27eecea9 #xc935b761 #xe5ede11c #xb13c7a47 #xdf599cd2 #x733f55f2 #xce791814 #x37bf73c7 #xcdea53f7 #xaa5b5ffd #x6f14df3d #xdb867844 #xf381caaf #xc43eb968 #x342c3824 #x405fc2a3 #xc372161d #x250cbce2 #x498b283c #x9541ff0d #x017139a8 #xb3de080c #xe49cd8b4 #xc1906456 #x84617bcb #xb670d532 #x5c74486c #x5742d0b8)) (defconst Td3 #32@(#xf4a75051 #x4165537e #x17a4c31a #x275e963a #xab6bcb3b #x9d45f11f #xfa58abac #xe303934b #x30fa5520 #x766df6ad #xcc769188 #x024c25f5 #xe5d7fc4f #x2acbd7c5 #x35448026 #x62a38fb5 #xb15a49de #xba1b6725 #xea0e9845 #xfec0e15d #x2f7502c3 #x4cf01281 #x4697a38d #xd3f9c66b #x8f5fe703 #x929c9515 #x6d7aebbf #x5259da95 #xbe832dd4 #x7421d358 #xe0692949 #xc9c8448e #xc2896a75 #x8e7978f4 #x583e6b99 #xb971dd27 #xe14fb6be #x88ad17f0 #x20ac66c9 #xce3ab47d #xdf4a1863 #x1a3182e5 #x51336097 #x537f4562 #x6477e0b1 #x6bae84bb #x81a01cfe #x082b94f9 #x48685870 #x45fd198f #xde6c8794 #x7bf8b752 #x73d323ab #x4b02e272 #x1f8f57e3 #x55ab2a66 #xeb2807b2 #xb5c2032f #xc57b9a86 #x3708a5d3 #x2887f230 #xbfa5b223 #x036aba02 #x16825ced #xcf1c2b8a #x79b492a7 #x07f2f0f3 #x69e2a14e #xdaf4cd65 #x05bed506 #x34621fd1 #xa6fe8ac4 #x2e539d34 #xf355a0a2 #x8ae13205 #xf6eb75a4 #x83ec390b #x60efaa40 #x719f065e #x6e1051bd #x218af93e #xdd063d96 #x3e05aedd #xe6bd464d #x548db591 #xc45d0571 #x06d46f04 #x5015ff60 #x98fb2419 #xbde997d6 #x4043cc89 #xd99e7767 #xe842bdb0 #x898b8807 #x195b38e7 #xc8eedb79 #x7c0a47a1 #x420fe97c #x841ec9f8 #x00000000 #x80868309 #x2bed4832 #x1170ac1e #x5a724e6c #x0efffbfd #x8538560f #xaed51e3d #x2d392736 #x0fd9640a #x5ca62168 #x5b54d19b #x362e3a24 #x0a67b10c #x57e70f93 #xee96d2b4 #x9b919e1b #xc0c54f80 #xdc20a261 #x774b695a #x121a161c #x93ba0ae2 #xa02ae5c0 #x22e0433c #x1b171d12 #x090d0b0e #x8bc7adf2 #xb6a8b92d #x1ea9c814 #xf1198557 #x75074caf #x99ddbbee #x7f60fda3 #x01269ff7 #x72f5bc5c #x663bc544 #xfb7e345b #x4329768b #x23c6dccb #xedfc68b6 #xe4f163b8 #x31dccad7 #x63851042 #x97224013 #xc6112084 #x4a247d85 #xbb3df8d2 #xf93211ae #x29a16dc7 #x9e2f4b1d #xb230f3dc #x8652ec0d #xc1e3d077 #xb3166c2b #x70b999a9 #x9448fa11 #xe9642247 #xfc8cc4a8 #xf03f1aa0 #x7d2cd856 #x3390ef22 #x494ec787 #x38d1c1d9 #xcaa2fe8c #xd40b3698 #xf581cfa6 #x7ade28a5 #xb78e26da #xadbfa43f #x3a9de42c #x78920d50 #x5fcc9b6a #x7e466254 #x8d13c2f6 #xd8b8e890 #x39f75e2e #xc3aff582 #x5d80be9f #xd0937c69 #xd52da96f #x2512b3cf #xac993bc8 #x187da710 #x9c636ee8 #x3bbb7bdb #x267809cd #x5918f46e #x9ab701ec #x4f9aa883 #x956e65e6 #xffe67eaa #xbccf0821 #x15e8e6ef #xe79bd9ba #x6f36ce4a #x9f09d4ea #xb07cd629 #xa4b2af31 #x3f23312a #xa59430c6 #xa266c035 #x4ebc3774 #x82caa6fc #x90d0b0e0 #xa7d81533 #x04984af1 #xecdaf741 #xcd500e7f #x91f62f17 #x4dd68d76 #xefb04d43 #xaa4d54cc #x9604dfe4 #xd1b5e39e #x6a881b4c #x2c1fb8c1 #x65517f46 #x5eea049d #x8c355d01 #x877473fa #x0b412efb #x671d5ab3 #xdbd25292 #x105633e9 #xd647136d #xd7618c9a #xa10c7a37 #xf8148e59 #x133c89eb #xa927eece #x61c935b7 #x1ce5ede1 #x47b13c7a #xd2df599c #xf2733f55 #x14ce7918 #xc737bf73 #xf7cdea53 #xfdaa5b5f #x3d6f14df #x44db8678 #xaff381ca #x68c43eb9 #x24342c38 #xa3405fc2 #x1dc37216 #xe2250cbc #x3c498b28 #x0d9541ff #xa8017139 #x0cb3de08 #xb4e49cd8 #x56c19064 #xcb84617b #x32b670d5 #x6c5c7448 #xb85742d0)) (defconst Td4 #32@(#x52525252 #x09090909 #x6a6a6a6a #xd5d5d5d5 #x30303030 #x36363636 #xa5a5a5a5 #x38383838 #xbfbfbfbf #x40404040 #xa3a3a3a3 #x9e9e9e9e #x81818181 #xf3f3f3f3 #xd7d7d7d7 #xfbfbfbfb #x7c7c7c7c #xe3e3e3e3 #x39393939 #x82828282 #x9b9b9b9b #x2f2f2f2f #xffffffff #x87878787 #x34343434 #x8e8e8e8e #x43434343 #x44444444 #xc4c4c4c4 #xdededede #xe9e9e9e9 #xcbcbcbcb #x54545454 #x7b7b7b7b #x94949494 #x32323232 #xa6a6a6a6 #xc2c2c2c2 #x23232323 #x3d3d3d3d #xeeeeeeee #x4c4c4c4c #x95959595 #x0b0b0b0b #x42424242 #xfafafafa #xc3c3c3c3 #x4e4e4e4e #x08080808 #x2e2e2e2e #xa1a1a1a1 #x66666666 #x28282828 #xd9d9d9d9 #x24242424 #xb2b2b2b2 #x76767676 #x5b5b5b5b #xa2a2a2a2 #x49494949 #x6d6d6d6d #x8b8b8b8b #xd1d1d1d1 #x25252525 #x72727272 #xf8f8f8f8 #xf6f6f6f6 #x64646464 #x86868686 #x68686868 #x98989898 #x16161616 #xd4d4d4d4 #xa4a4a4a4 #x5c5c5c5c #xcccccccc #x5d5d5d5d #x65656565 #xb6b6b6b6 #x92929292 #x6c6c6c6c #x70707070 #x48484848 #x50505050 #xfdfdfdfd #xedededed #xb9b9b9b9 #xdadadada #x5e5e5e5e #x15151515 #x46464646 #x57575757 #xa7a7a7a7 #x8d8d8d8d #x9d9d9d9d #x84848484 #x90909090 #xd8d8d8d8 #xabababab #x00000000 #x8c8c8c8c #xbcbcbcbc #xd3d3d3d3 #x0a0a0a0a #xf7f7f7f7 #xe4e4e4e4 #x58585858 #x05050505 #xb8b8b8b8 #xb3b3b3b3 #x45454545 #x06060606 #xd0d0d0d0 #x2c2c2c2c #x1e1e1e1e #x8f8f8f8f #xcacacaca #x3f3f3f3f #x0f0f0f0f #x02020202 #xc1c1c1c1 #xafafafaf #xbdbdbdbd #x03030303 #x01010101 #x13131313 #x8a8a8a8a #x6b6b6b6b #x3a3a3a3a #x91919191 #x11111111 #x41414141 #x4f4f4f4f #x67676767 #xdcdcdcdc #xeaeaeaea #x97979797 #xf2f2f2f2 #xcfcfcfcf #xcececece #xf0f0f0f0 #xb4b4b4b4 #xe6e6e6e6 #x73737373 #x96969696 #xacacacac #x74747474 #x22222222 #xe7e7e7e7 #xadadadad #x35353535 #x85858585 #xe2e2e2e2 #xf9f9f9f9 #x37373737 #xe8e8e8e8 #x1c1c1c1c #x75757575 #xdfdfdfdf #x6e6e6e6e #x47474747 #xf1f1f1f1 #x1a1a1a1a #x71717171 #x1d1d1d1d #x29292929 #xc5c5c5c5 #x89898989 #x6f6f6f6f #xb7b7b7b7 #x62626262 #x0e0e0e0e #xaaaaaaaa #x18181818 #xbebebebe #x1b1b1b1b #xfcfcfcfc #x56565656 #x3e3e3e3e #x4b4b4b4b #xc6c6c6c6 #xd2d2d2d2 #x79797979 #x20202020 #x9a9a9a9a #xdbdbdbdb #xc0c0c0c0 #xfefefefe #x78787878 #xcdcdcdcd #x5a5a5a5a #xf4f4f4f4 #x1f1f1f1f #xdddddddd #xa8a8a8a8 #x33333333 #x88888888 #x07070707 #xc7c7c7c7 #x31313131 #xb1b1b1b1 #x12121212 #x10101010 #x59595959 #x27272727 #x80808080 #xecececec #x5f5f5f5f #x60606060 #x51515151 #x7f7f7f7f #xa9a9a9a9 #x19191919 #xb5b5b5b5 #x4a4a4a4a #x0d0d0d0d #x2d2d2d2d #xe5e5e5e5 #x7a7a7a7a #x9f9f9f9f #x93939393 #xc9c9c9c9 #x9c9c9c9c #xefefefef #xa0a0a0a0 #xe0e0e0e0 #x3b3b3b3b #x4d4d4d4d #xaeaeaeae #x2a2a2a2a #xf5f5f5f5 #xb0b0b0b0 #xc8c8c8c8 #xebebebeb #xbbbbbbbb #x3c3c3c3c #x83838383 #x53535353 #x99999999 #x61616161 #x17171717 #x2b2b2b2b #x04040404 #x7e7e7e7e #xbabababa #x77777777 #xd6d6d6d6 #x26262626 #xe1e1e1e1 #x69696969 #x14141414 #x63636363 #x55555555 #x21212121 #x0c0c0c0c #x7d7d7d7d)) (declaim (type (simple-array (unsigned-byte 32) (10)) round-constants)) (defconst round-constants #32@(#x01000000 #x02000000 #x04000000 #x08000000 #x10000000 #x20000000 #x40000000 #x80000000 #x1B000000 #x36000000)) ;;; the actual AES implementation ;;; waste a little space for "common" 128-bit keys, but is anybody really ;;; going to notice? (deftype aes-round-keys () '(simple-array (unsigned-byte 32) (60))) (defclass aes (cipher 16-byte-block-mixin) ((encryption-round-keys :accessor encryption-round-keys :type aes-round-keys) (decryption-round-keys :accessor decryption-round-keys :type aes-round-keys) (n-rounds :accessor n-rounds))) (defun allocate-round-keys (key) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (ecase (length key) ((16 24 32) (make-array 60 :element-type '(unsigned-byte 32) :initial-element 0)))) (defun generate-128-bit-round-keys (round-keys key) (declare (type aes-round-keys round-keys) (type (simple-array (unsigned-byte 8) (16)) key) (optimize (speed 3) (space 0) (debug 0))) (let ((round-key-offset 0)) (declare (type (integer 0 43) round-key-offset)) (macrolet ((rk-ref (x) `(aref round-keys (+ ,x round-key-offset)))) (dotimes (i 4) (setf (rk-ref i) (nibbles:ub32ref/be key (* 4 i)))) (dotimes (i 10 (values round-keys 10)) (declare (type (integer 0 10) i)) (let ((tmp (rk-ref 3))) (declare (type (unsigned-byte 32) tmp)) (setf (rk-ref 4) (logxor (rk-ref 0) (logand (aref Te4 (third-byte tmp)) #xff000000) (logand (aref Te4 (second-byte tmp)) #x00ff0000) (logand (aref Te4 (first-byte tmp)) #x0000ff00) (logand (aref Te4 (fourth-byte tmp)) #x000000ff) (aref round-constants i)) (rk-ref 5) (logxor (rk-ref 1) (rk-ref 4)) (rk-ref 6) (logxor (rk-ref 2) (rk-ref 5)) (rk-ref 7) (logxor (rk-ref 3) (rk-ref 6))) (incf round-key-offset 4)))))) (defun generate-192-bit-round-keys (round-keys key) (declare (type aes-round-keys round-keys) (type (simple-array (unsigned-byte 8) (24)) key) (optimize (speed 3) (space 0) (debug 0))) (let ((round-key-offset 0)) (declare (type (integer 0 51) round-key-offset)) (macrolet ((rk-ref (x) `(aref round-keys (+ ,x round-key-offset)))) (dotimes (i 6) (setf (rk-ref i) (nibbles:ub32ref/be key (* 4 i)))) (dotimes (i 8) (let ((tmp (rk-ref 5))) (declare (type (unsigned-byte 32) tmp)) (setf (rk-ref 6) (logxor (rk-ref 0) (logand (aref Te4 (third-byte tmp)) #xff000000) (logand (aref Te4 (second-byte tmp)) #x00ff0000) (logand (aref Te4 (first-byte tmp)) #x0000ff00) (logand (aref Te4 (fourth-byte tmp)) #x000000ff) (aref round-constants i)) (rk-ref 7) (logxor (rk-ref 1) (rk-ref 6)) (rk-ref 8) (logxor (rk-ref 2) (rk-ref 7)) (rk-ref 9) (logxor (rk-ref 3) (rk-ref 8))) (when (= 8 (1+ i)) (return-from generate-192-bit-round-keys (values round-keys 12))) (setf (rk-ref 10) (logxor (rk-ref 4) (rk-ref 9)) (rk-ref 11) (logxor (rk-ref 5) (rk-ref 10))) (incf round-key-offset 6)))))) (defun generate-256-bit-round-keys (round-keys key) (declare (type aes-round-keys round-keys) (type (simple-array (unsigned-byte 8) (32)) key) (optimize (speed 3) (space 0) (debug 0))) (let ((round-key-offset 0)) (declare (type (integer 0 59) round-key-offset)) (macrolet ((rk-ref (x) `(aref round-keys (+ ,x round-key-offset)))) (dotimes (i 8) (setf (rk-ref i) (nibbles:ub32ref/be key (* 4 i)))) (dotimes (i 7) (let ((tmp (rk-ref 7))) (declare (type (unsigned-byte 32) tmp)) (setf (rk-ref 8) (logxor (rk-ref 0) (logand (aref Te4 (third-byte tmp)) #xff000000) (logand (aref Te4 (second-byte tmp)) #x00ff0000) (logand (aref Te4 (first-byte tmp)) #x0000ff00) (logand (aref Te4 (fourth-byte tmp)) #x000000ff) (aref round-constants i)) (rk-ref 9) (logxor (rk-ref 1) (rk-ref 8)) (rk-ref 10) (logxor (rk-ref 2) (rk-ref 9)) (rk-ref 11) (logxor (rk-ref 3) (rk-ref 10))) (when (= 7 (1+ i)) (return-from generate-256-bit-round-keys (values round-keys 14)))) (let ((tmp (rk-ref 11))) (declare (type (unsigned-byte 32) tmp)) (setf (rk-ref 12) (logxor (rk-ref 4) (logand (aref Te4 (fourth-byte tmp)) #xff000000) (logand (aref Te4 (third-byte tmp)) #x00ff0000) (logand (aref Te4 (second-byte tmp)) #x0000ff00) (logand (aref Te4 (first-byte tmp)) #x000000ff)) (rk-ref 13) (logxor (rk-ref 5) (rk-ref 12)) (rk-ref 14) (logxor (rk-ref 6) (rk-ref 13)) (rk-ref 15) (logxor (rk-ref 7) (rk-ref 14))) (incf round-key-offset 8)))))) (defun generate-round-keys-for-encryption (key round-keys) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (ecase (length key) (16 (generate-128-bit-round-keys round-keys key)) (24 (generate-192-bit-round-keys round-keys key)) (32 (generate-256-bit-round-keys round-keys key)))) (defun generate-round-keys-for-decryption (round-keys n-rounds) (declare (type aes-round-keys round-keys) (type (unsigned-byte 16) n-rounds)) ;; invert the order of the round keys (do ((i 0 (+ 4 i)) (j (* 4 n-rounds) (- j 4))) ((>= i j)) (declare (type (unsigned-byte 16) i j)) (rotatef (aref round-keys i) (aref round-keys j)) (rotatef (aref round-keys (+ 1 i)) (aref round-keys (+ 1 j))) (rotatef (aref round-keys (+ 2 i)) (aref round-keys (+ 2 j))) (rotatef (aref round-keys (+ 3 i)) (aref round-keys (+ 3 j)))) ;; apply inverse MixColumn transform to all round keys but the first (macrolet ((rk-ref (x) `(aref round-keys (+ ,x round-keys-offset)))) (do ((i 1 (+ 1 i)) (round-keys-offset 4 (+ 4 round-keys-offset))) ((>= i n-rounds) (values round-keys n-rounds)) (declare (type (unsigned-byte 16) round-keys-offset)) (macrolet ((mix-column (x) `(let ((column (rk-ref ,x))) (declare (type (unsigned-byte 32) column)) (setf (rk-ref ,x) (logxor (aref Td0 (first-byte (aref Te4 (fourth-byte column)))) (aref Td1 (first-byte (aref Te4 (third-byte column)))) (aref Td2 (first-byte (aref Te4 (second-byte column)))) (aref Td3 (first-byte (aref Te4 (first-byte column))))))))) (mix-column 0) (mix-column 1) (mix-column 2) (mix-column 3))))) (macrolet ((mix (rk a0 a1 a2 a3 sym0 sym1 sym2 sym3) `(logxor (aref ,a0 (fourth-byte ,sym0)) (aref ,a1 (third-byte ,sym1)) (aref ,a2 (second-byte ,sym2)) (aref ,a3 (first-byte ,sym3)) (rk-ref ,rk))) (mix-s-into-t-encrypting (offset) `(setf t0 (mix ,offset Te0 Te1 Te2 Te3 s0 s1 s2 s3) t1 (mix (1+ ,offset) Te0 Te1 Te2 Te3 s1 s2 s3 s0) t2 (mix (+ ,offset 2) Te0 Te1 Te2 Te3 s2 s3 s0 s1) t3 (mix (+ ,offset 3) Te0 Te1 Te2 Te3 s3 s0 s1 s2))) (mix-t-into-s-encrypting (offset) `(setf s0 (mix ,offset Te0 Te1 Te2 Te3 t0 t1 t2 t3) s1 (mix (1+ ,offset) Te0 Te1 Te2 Te3 t1 t2 t3 t0) s2 (mix (+ ,offset 2) Te0 Te1 Te2 Te3 t2 t3 t0 t1) s3 (mix (+ ,offset 3) Te0 Te1 Te2 Te3 t3 t0 t1 t2))) (mix-s-into-t-decrypting (offset) `(setf t0 (mix ,offset Td0 Td1 Td2 Td3 s0 s3 s2 s1) t1 (mix (1+ ,offset) Td0 Td1 Td2 Td3 s1 s0 s3 s2) t2 (mix (+ ,offset 2) Td0 Td1 Td2 Td3 s2 s1 s0 s3) t3 (mix (+ ,offset 3) Td0 Td1 Td2 Td3 s3 s2 s1 s0))) (mix-t-into-s-decrypting (offset) `(setf s0 (mix ,offset Td0 Td1 Td2 Td3 t0 t3 t2 t1) s1 (mix (1+ ,offset) Td0 Td1 Td2 Td3 t1 t0 t3 t2) s2 (mix (+ ,offset 2) Td0 Td1 Td2 Td3 t2 t1 t0 t3) s3 (mix (+ ,offset 3) Td0 Td1 Td2 Td3 t3 t2 t1 t0))) (rk-ref (x) `(aref round-keys (+ ,x round-key-offset))) #+nil (rk-ref (x) `(aref round-keys (+ ,x 0)))) (define-block-encryptor aes 16 (let ((round-keys (encryption-round-keys context)) (n-rounds (n-rounds context))) (declare (type aes-round-keys round-keys)) (declare (type (integer 0 14) n-rounds)) ;; the "optimized implementation" also had a fully unrolled version of ;; this loop hanging around. it might be worthwhile to translate it and ;; see if it actually gains us anything. a wizard would do this with a ;; macro which allows one to easily switch between unrolled and ;; non-unrolled versions. I am not a wizard. (with-words ((s0 s1 s2 s3) plaintext plaintext-start) (let ((t0 0) (t1 0) (t2 0) (t3 0) (round-key-offset 0)) (declare (type (unsigned-byte 32) t0 t1 t2 t3)) (declare (type (unsigned-byte 16) round-key-offset)) ;; initial whitening (setf s0 (logxor s0 (aref round-keys 0)) s1 (logxor s1 (aref round-keys 1)) s2 (logxor s2 (aref round-keys 2)) s3 (logxor s3 (aref round-keys 3))) (do ((round (truncate n-rounds 2) (1- round))) ((zerop round)) (declare (type (unsigned-byte 16) round)) (mix-s-into-t-encrypting 4) (incf round-key-offset 8) (when (= round 1) (return-from nil (values))) (mix-t-into-s-encrypting 0)) ;; apply last round and dump cipher state into the ciphertext (flet ((apply-round (round-key u0 u1 u2 u3) (declare (type (unsigned-byte 32) round-key u0 u1 u2 u3)) (logxor (logand (aref Te4 (fourth-byte u0)) #xff000000) (logand (aref Te4 (third-byte u1)) #x00ff0000) (logand (aref Te4 (second-byte u2)) #x0000ff00) (logand (aref Te4 (first-byte u3)) #x000000ff) round-key))) (declare (inline apply-round)) (store-words ciphertext ciphertext-start (apply-round (rk-ref 0) t0 t1 t2 t3) (apply-round (rk-ref 1) t1 t2 t3 t0) (apply-round (rk-ref 2) t2 t3 t0 t1) (apply-round (rk-ref 3) t3 t0 t1 t2))))))) (define-block-decryptor aes 16 (let ((round-keys (decryption-round-keys context)) (n-rounds (n-rounds context))) (declare (type aes-round-keys round-keys)) (declare (type (unsigned-byte 16) n-rounds)) (with-words ((s0 s1 s2 s3) ciphertext ciphertext-start) (let ((t0 0) (t1 0) (t2 0) (t3 0) (round-key-offset 0)) (declare (type (unsigned-byte 32) t0 t1 t2 t3)) (declare (type (unsigned-byte 16) round-key-offset)) ;; initial whitening (setf s0 (logxor s0 (aref round-keys 0)) s1 (logxor s1 (aref round-keys 1)) s2 (logxor s2 (aref round-keys 2)) s3 (logxor s3 (aref round-keys 3))) (do ((round (truncate n-rounds 2) (1- round))) ((zerop round)) (declare (type (unsigned-byte 16) round)) (mix-s-into-t-decrypting 4) (incf round-key-offset 8) (when (= round 1) (return-from nil (values))) (mix-t-into-s-decrypting 0)) ;; apply last round and dump cipher state into plaintext (flet ((apply-round (round-key u0 u1 u2 u3) (declare (type (unsigned-byte 32) round-key u0 u1 u2 u3)) (logxor (logand (aref Td4 (fourth-byte u0)) #xff000000) (logand (aref Td4 (third-byte u1)) #x00ff0000) (logand (aref Td4 (second-byte u2)) #x0000ff00) (logand (aref Td4 (first-byte u3)) #x000000ff) round-key))) (declare (inline apply-round)) (store-words plaintext plaintext-start (apply-round (rk-ref 0) t0 t3 t2 t1) (apply-round (rk-ref 1) t1 t0 t3 t2) (apply-round (rk-ref 2) t2 t1 t0 t3) (apply-round (rk-ref 3) t3 t2 t1 t0))))))) ) ; MACROLET (defmethod schedule-key ((cipher aes) key) (multiple-value-bind (encryption-keys n-rounds) (generate-round-keys-for-encryption key (allocate-round-keys key)) (declare (type aes-round-keys encryption-keys)) (let ((decryption-keys (copy-seq encryption-keys))) (generate-round-keys-for-decryption decryption-keys n-rounds) (setf (encryption-round-keys cipher) encryption-keys (decryption-round-keys cipher) decryption-keys (n-rounds cipher) n-rounds) cipher))) (defcipher aes (:encrypt-function aes-encrypt-block) (:decrypt-function aes-decrypt-block) (:block-length 16) (:key-length (:fixed 16 24 32))) ironclad_0.33.0/src/ciphers/des.lisp0000644000175000017500000004356511761302200014327 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; des.lisp -- implementation of DES ;;; converted from the C code appearing in _Applied Cryptography_ by ;;; Bruce Schneier to Common Lisp. Unfortunately, a lot of C-isms ;;; remain, so this is not the prettiest Common Lisp code ever. (in-package :crypto) ;;; the sboxes of DES (declaim (type (simple-array (unsigned-byte 32) (64)) des-sbox0 des-sbox1 des-sbox2 des-sbox3 des-sbox4 des-sbox5 des-sbox6 des-sbox7)) (defconst des-sbox0 #32@( #x01010400 #x00000000 #x00010000 #x01010404 #x01010004 #x00010404 #x00000004 #x00010000 #x00000400 #x01010400 #x01010404 #x00000400 #x01000404 #x01010004 #x01000000 #x00000004 #x00000404 #x01000400 #x01000400 #x00010400 #x00010400 #x01010000 #x01010000 #x01000404 #x00010004 #x01000004 #x01000004 #x00010004 #x00000000 #x00000404 #x00010404 #x01000000 #x00010000 #x01010404 #x00000004 #x01010000 #x01010400 #x01000000 #x01000000 #x00000400 #x01010004 #x00010000 #x00010400 #x01000004 #x00000400 #x00000004 #x01000404 #x00010404 #x01010404 #x00010004 #x01010000 #x01000404 #x01000004 #x00000404 #x00010404 #x01010400 #x00000404 #x01000400 #x01000400 #x00000000 #x00010004 #x00010400 #x00000000 #x01010004 )) (defconst des-sbox1 #32@( #x80108020 #x80008000 #x00008000 #x00108020 #x00100000 #x00000020 #x80100020 #x80008020 #x80000020 #x80108020 #x80108000 #x80000000 #x80008000 #x00100000 #x00000020 #x80100020 #x00108000 #x00100020 #x80008020 #x00000000 #x80000000 #x00008000 #x00108020 #x80100000 #x00100020 #x80000020 #x00000000 #x00108000 #x00008020 #x80108000 #x80100000 #x00008020 #x00000000 #x00108020 #x80100020 #x00100000 #x80008020 #x80100000 #x80108000 #x00008000 #x80100000 #x80008000 #x00000020 #x80108020 #x00108020 #x00000020 #x00008000 #x80000000 #x00008020 #x80108000 #x00100000 #x80000020 #x00100020 #x80008020 #x80000020 #x00100020 #x00108000 #x00000000 #x80008000 #x00008020 #x80000000 #x80100020 #x80108020 #x00108000 )) (defconst des-sbox2 #32@( #x00000208 #x08020200 #x00000000 #x08020008 #x08000200 #x00000000 #x00020208 #x08000200 #x00020008 #x08000008 #x08000008 #x00020000 #x08020208 #x00020008 #x08020000 #x00000208 #x08000000 #x00000008 #x08020200 #x00000200 #x00020200 #x08020000 #x08020008 #x00020208 #x08000208 #x00020200 #x00020000 #x08000208 #x00000008 #x08020208 #x00000200 #x08000000 #x08020200 #x08000000 #x00020008 #x00000208 #x00020000 #x08020200 #x08000200 #x00000000 #x00000200 #x00020008 #x08020208 #x08000200 #x08000008 #x00000200 #x00000000 #x08020008 #x08000208 #x00020000 #x08000000 #x08020208 #x00000008 #x00020208 #x00020200 #x08000008 #x08020000 #x08000208 #x00000208 #x08020000 #x00020208 #x00000008 #x08020008 #x00020200 )) (defconst des-sbox3 #32@( #x00802001 #x00002081 #x00002081 #x00000080 #x00802080 #x00800081 #x00800001 #x00002001 #x00000000 #x00802000 #x00802000 #x00802081 #x00000081 #x00000000 #x00800080 #x00800001 #x00000001 #x00002000 #x00800000 #x00802001 #x00000080 #x00800000 #x00002001 #x00002080 #x00800081 #x00000001 #x00002080 #x00800080 #x00002000 #x00802080 #x00802081 #x00000081 #x00800080 #x00800001 #x00802000 #x00802081 #x00000081 #x00000000 #x00000000 #x00802000 #x00002080 #x00800080 #x00800081 #x00000001 #x00802001 #x00002081 #x00002081 #x00000080 #x00802081 #x00000081 #x00000001 #x00002000 #x00800001 #x00002001 #x00802080 #x00800081 #x00002001 #x00002080 #x00800000 #x00802001 #x00000080 #x00800000 #x00002000 #x00802080 )) (defconst des-sbox4 #32@( #x00000100 #x02080100 #x02080000 #x42000100 #x00080000 #x00000100 #x40000000 #x02080000 #x40080100 #x00080000 #x02000100 #x40080100 #x42000100 #x42080000 #x00080100 #x40000000 #x02000000 #x40080000 #x40080000 #x00000000 #x40000100 #x42080100 #x42080100 #x02000100 #x42080000 #x40000100 #x00000000 #x42000000 #x02080100 #x02000000 #x42000000 #x00080100 #x00080000 #x42000100 #x00000100 #x02000000 #x40000000 #x02080000 #x42000100 #x40080100 #x02000100 #x40000000 #x42080000 #x02080100 #x40080100 #x00000100 #x02000000 #x42080000 #x42080100 #x00080100 #x42000000 #x42080100 #x02080000 #x00000000 #x40080000 #x42000000 #x00080100 #x02000100 #x40000100 #x00080000 #x00000000 #x40080000 #x02080100 #x40000100 )) (defconst des-sbox5 #32@( #x20000010 #x20400000 #x00004000 #x20404010 #x20400000 #x00000010 #x20404010 #x00400000 #x20004000 #x00404010 #x00400000 #x20000010 #x00400010 #x20004000 #x20000000 #x00004010 #x00000000 #x00400010 #x20004010 #x00004000 #x00404000 #x20004010 #x00000010 #x20400010 #x20400010 #x00000000 #x00404010 #x20404000 #x00004010 #x00404000 #x20404000 #x20000000 #x20004000 #x00000010 #x20400010 #x00404000 #x20404010 #x00400000 #x00004010 #x20000010 #x00400000 #x20004000 #x20000000 #x00004010 #x20000010 #x20404010 #x00404000 #x20400000 #x00404010 #x20404000 #x00000000 #x20400010 #x00000010 #x00004000 #x20400000 #x00404010 #x00004000 #x00400010 #x20004010 #x00000000 #x20404000 #x20000000 #x00400010 #x20004010 )) (defconst des-sbox6 #32@( #x00200000 #x04200002 #x04000802 #x00000000 #x00000800 #x04000802 #x00200802 #x04200800 #x04200802 #x00200000 #x00000000 #x04000002 #x00000002 #x04000000 #x04200002 #x00000802 #x04000800 #x00200802 #x00200002 #x04000800 #x04000002 #x04200000 #x04200800 #x00200002 #x04200000 #x00000800 #x00000802 #x04200802 #x00200800 #x00000002 #x04000000 #x00200800 #x04000000 #x00200800 #x00200000 #x04000802 #x04000802 #x04200002 #x04200002 #x00000002 #x00200002 #x04000000 #x04000800 #x00200000 #x04200800 #x00000802 #x00200802 #x04200800 #x00000802 #x04000002 #x04200802 #x04200000 #x00200800 #x00000000 #x00000002 #x04200802 #x00000000 #x00200802 #x04200000 #x00000800 #x04000002 #x04000800 #x00000800 #x00200002 )) (defconst des-sbox7 #32@( #x10001040 #x00001000 #x00040000 #x10041040 #x10000000 #x10001040 #x00000040 #x10000000 #x00040040 #x10040000 #x10041040 #x00041000 #x10041000 #x00041040 #x00001000 #x00000040 #x10040000 #x10000040 #x10001000 #x00001040 #x00041000 #x00040040 #x10040040 #x10041000 #x00001040 #x00000000 #x00000000 #x10040040 #x10000040 #x10001000 #x00041040 #x00040000 #x00041040 #x00040000 #x10041000 #x00001000 #x00000040 #x10040040 #x00001000 #x00041040 #x10001000 #x00000040 #x10000040 #x10040000 #x10040040 #x10000000 #x00040000 #x10001040 #x00000000 #x10041040 #x00040040 #x10000040 #x10040000 #x10001000 #x10001040 #x00000000 #x10041040 #x00041000 #x00041000 #x00001040 #x00001040 #x00040040 #x10000000 #x10041000 )) ;;; permutations and rotations for the key schedule (defconst permutation1 (make-array 56 :element-type '(unsigned-byte 8) :initial-contents (list 56 48 40 32 24 16 8 0 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 60 52 44 36 28 20 12 4 27 19 11 3))) (defconst total-rotations (make-array 16 :element-type '(unsigned-byte 5) :initial-contents (list 1 2 4 6 8 10 12 14 15 17 19 21 23 25 27 28))) (defconst permutation2 (make-array 48 :element-type '(unsigned-byte 8) :initial-contents (list 13 16 10 23 0 4 2 27 14 5 20 9 22 18 11 3 25 7 15 6 26 19 12 1 40 51 30 36 46 54 29 39 50 44 32 47 43 48 38 55 33 52 45 41 49 35 28 31))) ;;; actual encryption and decryption guts (deftype des-round-keys () '(simple-array (unsigned-byte 32) (32))) (macrolet ((frob (left right shift-amount constant) `(setf work (logand (logxor (mod32ash ,left ,shift-amount) ,right) ,constant) ,right (logxor ,right work) ,left (logxor (mod32ash work ,(- shift-amount)) ,left))) (6-bits (val offset) `(ldb (byte 6 ,offset) ,val)) (sbox-subst (val sbox0 sbox1 sbox2 sbox3) `(logior (aref ,sbox0 (6-bits ,val 0)) (aref ,sbox1 (6-bits ,val 8)) (aref ,sbox2 (6-bits ,val 16)) (aref ,sbox3 (6-bits ,val 24)))) (des-round (left right keys index) `(let* ((work (logxor (rol32 ,right 28) (aref ,keys ,index))) (fval (sbox-subst work des-sbox6 des-sbox4 des-sbox2 des-sbox0))) (declare (type (unsigned-byte 32) work fval)) (setf work (logxor ,right (aref ,keys (1+ ,index))) fval (logior fval (sbox-subst work des-sbox7 des-sbox5 des-sbox3 des-sbox1)) ,left (logxor ,left fval)))) (des-initial-permutation (left right) `(progn (frob ,left ,right -4 #x0f0f0f0f) (frob ,left ,right -16 #x0000ffff) (frob ,right ,left -2 #x33333333) (frob ,right ,left -8 #x00ff00ff) (setf ,right (rol32 ,right 1) work (logand (logxor ,left ,right) #xaaaaaaaa) ,left (logxor ,left work) ,right (logxor ,right work) ,left (rol32 ,left 1)))) (des-final-permutation (left right) `(progn (setf ,right (rol32 ,right 31) work (logand (logxor ,left ,right) #xaaaaaaaa) ,left (logxor ,left work) ,right (logxor ,right work) ,left (rol32 ,left 31)) (frob ,left ,right -8 #x00ff00ff) (frob ,left ,right -2 #x33333333) (frob ,right ,left -16 #x0000ffff) (frob ,right ,left -4 #x0f0f0f0f))) (des-munge-core (left right keys) `(do ((round 0 (1+ round)) (key-index 0 (+ key-index 4))) ((>= round 8)) (des-round ,left ,right ,keys key-index) (des-round ,right ,left ,keys (+ key-index 2))))) (defun des-munge-block (input input-start output output-start keys) (declare (type (simple-array (unsigned-byte 8) (*)) input output)) (declare (type (integer 0 #.(- array-dimension-limit 8)) input-start output-start)) (declare (type des-round-keys keys)) (with-words ((left right) input input-start) (let ((work 0)) (declare (type (unsigned-byte 32) work)) (des-initial-permutation left right) ;; now the real work begins (des-munge-core left right keys) (des-final-permutation left right) (store-words output output-start right left)))) (defun 3des-munge-block (input input-start output output-start k1 k2 k3) (declare (type (simple-array (unsigned-byte 8) (*)) input output)) (declare (type (integer 0 #.(- array-dimension-limit 8)) input-start output-start)) (declare (type des-round-keys k1 k2 k3)) (with-words ((left right) input input-start) (let ((work 0)) (declare (type (unsigned-byte 32) work)) (des-initial-permutation left right) ;; now the real work begins (des-munge-core left right k1) (des-munge-core right left k2) (des-munge-core left right k3) (des-final-permutation left right) (store-words output output-start right left)))) ) ; MACROLET ;;; ECB mode encryption and decryption (defclass des (cipher 8-byte-block-mixin) ((encryption-keys :accessor encryption-keys :type des-round-keys) (decryption-keys :accessor decryption-keys :type des-round-keys))) (define-block-encryptor des 8 (des-munge-block plaintext plaintext-start ciphertext ciphertext-start (encryption-keys context))) (define-block-decryptor des 8 (des-munge-block ciphertext ciphertext-start plaintext plaintext-start (decryption-keys context))) (defclass 3des (cipher 8-byte-block-mixin) ((encryption-keys-1 :accessor encryption-keys-1 :type des-round-keys) (decryption-keys-1 :accessor decryption-keys-1 :type des-round-keys) (encryption-keys-2 :accessor encryption-keys-2 :type des-round-keys) (decryption-keys-2 :accessor decryption-keys-2 :type des-round-keys) (encryption-keys-3 :accessor encryption-keys-3 :type des-round-keys) (decryption-keys-3 :accessor decryption-keys-3 :type des-round-keys))) (define-block-encryptor 3des 8 (3des-munge-block plaintext plaintext-start ciphertext ciphertext-start (encryption-keys-1 context) (decryption-keys-2 context) (encryption-keys-3 context))) (define-block-decryptor 3des 8 (3des-munge-block ciphertext ciphertext-start plaintext plaintext-start (decryption-keys-3 context) (encryption-keys-2 context) (decryption-keys-1 context))) ;;; key scheduling ;;; `dough' being a cute pun from Schiener's code. (defun des-cook-key-schedule (dough) (let ((schedule (make-array 32 :element-type '(unsigned-byte 32) :initial-element 0))) (declare (type des-round-keys dough schedule)) (do ((dough-index 0 (+ dough-index 2)) (schedule-index 0 (+ schedule-index 2))) ((>= dough-index 32) schedule) (declare (optimize (debug 3))) (let ((schedule-index+1 (1+ schedule-index)) (dough-index+1 (1+ dough-index))) (setf (aref schedule schedule-index) (let ((dough0 (aref dough dough-index)) (dough1 (aref dough dough-index+1))) (logior (mod32ash (mask-field (byte 6 18) dough0) 6) (mod32ash (mask-field (byte 6 6) dough0) 10) (mod32ash (mask-field (byte 6 18) dough1) -10) (mod32ash (mask-field (byte 6 6) dough1) -6))) (aref schedule schedule-index+1) (let ((dough0 (aref dough dough-index)) (dough1 (aref dough dough-index+1))) (logior (mod32ash (mask-field (byte 6 12) dough0) 12) (mod32ash (mask-field (byte 6 0) dough0) 16) (mod32ash (mask-field (byte 6 12) dough1) -4) (mask-field (byte 6 0) dough1)))))))) (defun compute-des-encryption-keys (key) (declare (type (simple-array (unsigned-byte 8) (8)) key)) (let ((pc1m (make-array 56 :element-type '(unsigned-byte 8) :initial-element 0)) (pcr (make-array 56 :element-type '(unsigned-byte 8) :initial-element 0)) (kn (make-array 32 :element-type '(unsigned-byte 32) :initial-element 0))) (dotimes (j 56) (let* ((l (aref permutation1 j)) (m (logand l #x7))) (setf (aref pc1m j) (logand (aref key (ldb (byte 4 3) l)) (ash 1 (- 7 m)))))) (dotimes (i 16) (let* ((m (ash i 1)) (n (1+ m))) (dotimes (j 28) (let ((l (+ j (aref total-rotations i)))) (if (< l 28) (setf (aref pcr j) (aref pc1m l)) (setf (aref pcr j) (aref pc1m (- l 28)))))) (do ((j 28 (1+ j))) ((= j 56)) (let ((l (+ j (aref total-rotations i)))) (if (< l 56) (setf (aref pcr j) (aref pc1m l)) (setf (aref pcr j) (aref pc1m (- l 28)))))) (dotimes (j 24) (unless (zerop (aref pcr (aref permutation2 j))) (setf (aref kn m) (logior (aref kn m) (ash 1 (- 24 (1+ j)))))) (unless (zerop (aref pcr (aref permutation2 (+ j 24)))) (setf (aref kn n) (logior (aref kn n) (ash 1 (- 24 (1+ j))))))))) (des-cook-key-schedule kn))) (defun compute-round-keys-for-des-key (key) (let ((encryption-keys (compute-des-encryption-keys key)) (decryption-keys (make-array 32 :element-type '(unsigned-byte 32)))) (declare (type des-round-keys encryption-keys decryption-keys)) (do ((i 0 (+ i 2))) ((= i 32) (values encryption-keys decryption-keys)) (setf (aref decryption-keys (1+ i)) (aref encryption-keys (- 31 i)) (aref decryption-keys i) (aref encryption-keys (- 31 (1+ i))))))) (defmethod schedule-key ((cipher des) key) (multiple-value-bind (encryption-keys decryption-keys) (compute-round-keys-for-des-key key) (setf (encryption-keys cipher) encryption-keys (decryption-keys cipher) decryption-keys) cipher)) (defmethod schedule-key ((cipher 3des) key) (multiple-value-bind (ek1 dk1) (compute-round-keys-for-des-key (subseq key 0 8)) (multiple-value-bind (ek2 dk2) (compute-round-keys-for-des-key (subseq key 8 16)) (multiple-value-bind (ek3 dk3) (let ((length (length key))) (cond ((= length 16) (compute-round-keys-for-des-key (subseq key 0 8))) ((= length 24) (compute-round-keys-for-des-key (subseq key 16 24))))) (setf (encryption-keys-1 cipher) ek1 (decryption-keys-1 cipher) dk1 (encryption-keys-2 cipher) ek2 (decryption-keys-2 cipher) dk2 (encryption-keys-3 cipher) ek3 (decryption-keys-3 cipher) dk3) cipher)))) (defcipher des (:encrypt-function des-encrypt-block) (:decrypt-function des-decrypt-block) (:block-length 8) (:key-length (:fixed 8))) (defcipher 3des (:encrypt-function 3des-encrypt-block) (:decrypt-function 3des-decrypt-block) (:block-length 8) (:key-length (:fixed 16 24))) ironclad_0.33.0/src/ciphers/blowfish.lisp0000664000175000017500000004513012221542225015366 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; blowfish.lisp -- implementation of Bruce Schneier's Blowfish block cipher (in-package :crypto) (defconst +blowfish-n-rounds+ 16) (declaim (type (simple-array (unsigned-byte 32) (18)) +p-array+)) (defconst +p-array+ #32@(#x243f6a88 #x85a308d3 #x13198a2e #x03707344 #xa4093822 #x299f31d0 #x082efa98 #xec4e6c89 #x452821e6 #x38d01377 #xbe5466cf #x34e90c6c #xc0ac29b7 #xc97c50dd #x3f84d5b5 #xb5470917 #x9216d5d9 #x8979fb1b)) (declaim (type (simple-array (unsigned-byte 32) (256)) +s-box-0+ +s-box-1+ +s-box-2+ +s-box-3+)) (defconst +s-box-0+ #32@(#xd1310ba6 #x98dfb5ac #x2ffd72db #xd01adfb7 #xb8e1afed #x6a267e96 #xba7c9045 #xf12c7f99 #x24a19947 #xb3916cf7 #x0801f2e2 #x858efc16 #x636920d8 #x71574e69 #xa458fea3 #xf4933d7e #x0d95748f #x728eb658 #x718bcd58 #x82154aee #x7b54a41d #xc25a59b5 #x9c30d539 #x2af26013 #xc5d1b023 #x286085f0 #xca417918 #xb8db38ef #x8e79dcb0 #x603a180e #x6c9e0e8b #xb01e8a3e #xd71577c1 #xbd314b27 #x78af2fda #x55605c60 #xe65525f3 #xaa55ab94 #x57489862 #x63e81440 #x55ca396a #x2aab10b6 #xb4cc5c34 #x1141e8ce #xa15486af #x7c72e993 #xb3ee1411 #x636fbc2a #x2ba9c55d #x741831f6 #xce5c3e16 #x9b87931e #xafd6ba33 #x6c24cf5c #x7a325381 #x28958677 #x3b8f4898 #x6b4bb9af #xc4bfe81b #x66282193 #x61d809cc #xfb21a991 #x487cac60 #x5dec8032 #xef845d5d #xe98575b1 #xdc262302 #xeb651b88 #x23893e81 #xd396acc5 #x0f6d6ff3 #x83f44239 #x2e0b4482 #xa4842004 #x69c8f04a #x9e1f9b5e #x21c66842 #xf6e96c9a #x670c9c61 #xabd388f0 #x6a51a0d2 #xd8542f68 #x960fa728 #xab5133a3 #x6eef0b6c #x137a3be4 #xba3bf050 #x7efb2a98 #xa1f1651d #x39af0176 #x66ca593e #x82430e88 #x8cee8619 #x456f9fb4 #x7d84a5c3 #x3b8b5ebe #xe06f75d8 #x85c12073 #x401a449f #x56c16aa6 #x4ed3aa62 #x363f7706 #x1bfedf72 #x429b023d #x37d0d724 #xd00a1248 #xdb0fead3 #x49f1c09b #x075372c9 #x80991b7b #x25d479d8 #xf6e8def7 #xe3fe501a #xb6794c3b #x976ce0bd #x04c006ba #xc1a94fb6 #x409f60c4 #x5e5c9ec2 #x196a2463 #x68fb6faf #x3e6c53b5 #x1339b2eb #x3b52ec6f #x6dfc511f #x9b30952c #xcc814544 #xaf5ebd09 #xbee3d004 #xde334afd #x660f2807 #x192e4bb3 #xc0cba857 #x45c8740f #xd20b5f39 #xb9d3fbdb #x5579c0bd #x1a60320a #xd6a100c6 #x402c7279 #x679f25fe #xfb1fa3cc #x8ea5e9f8 #xdb3222f8 #x3c7516df #xfd616b15 #x2f501ec8 #xad0552ab #x323db5fa #xfd238760 #x53317b48 #x3e00df82 #x9e5c57bb #xca6f8ca0 #x1a87562e #xdf1769db #xd542a8f6 #x287effc3 #xac6732c6 #x8c4f5573 #x695b27b0 #xbbca58c8 #xe1ffa35d #xb8f011a0 #x10fa3d98 #xfd2183b8 #x4afcb56c #x2dd1d35b #x9a53e479 #xb6f84565 #xd28e49bc #x4bfb9790 #xe1ddf2da #xa4cb7e33 #x62fb1341 #xcee4c6e8 #xef20cada #x36774c01 #xd07e9efe #x2bf11fb4 #x95dbda4d #xae909198 #xeaad8e71 #x6b93d5a0 #xd08ed1d0 #xafc725e0 #x8e3c5b2f #x8e7594b7 #x8ff6e2fb #xf2122b64 #x8888b812 #x900df01c #x4fad5ea0 #x688fc31c #xd1cff191 #xb3a8c1ad #x2f2f2218 #xbe0e1777 #xea752dfe #x8b021fa1 #xe5a0cc0f #xb56f74e8 #x18acf3d6 #xce89e299 #xb4a84fe0 #xfd13e0b7 #x7cc43b81 #xd2ada8d9 #x165fa266 #x80957705 #x93cc7314 #x211a1477 #xe6ad2065 #x77b5fa86 #xc75442f5 #xfb9d35cf #xebcdaf0c #x7b3e89a0 #xd6411bd3 #xae1e7e49 #x00250e2d #x2071b35e #x226800bb #x57b8e0af #x2464369b #xf009b91e #x5563911d #x59dfa6aa #x78c14389 #xd95a537f #x207d5ba2 #x02e5b9c5 #x83260376 #x6295cfa9 #x11c81968 #x4e734a41 #xb3472dca #x7b14a94a #x1b510052 #x9a532915 #xd60f573f #xbc9bc6e4 #x2b60a476 #x81e67400 #x08ba6fb5 #x571be91f #xf296ec6b #x2a0dd915 #xb6636521 #xe7b9f9b6 #xff34052e #xc5855664 #x53b02d5d #xa99f8fa1 #x08ba4799 #x6e85076a)) (defconst +s-box-1+ #32@(#x4b7a70e9 #xb5b32944 #xdb75092e #xc4192623 #xad6ea6b0 #x49a7df7d #x9cee60b8 #x8fedb266 #xecaa8c71 #x699a17ff #x5664526c #xc2b19ee1 #x193602a5 #x75094c29 #xa0591340 #xe4183a3e #x3f54989a #x5b429d65 #x6b8fe4d6 #x99f73fd6 #xa1d29c07 #xefe830f5 #x4d2d38e6 #xf0255dc1 #x4cdd2086 #x8470eb26 #x6382e9c6 #x021ecc5e #x09686b3f #x3ebaefc9 #x3c971814 #x6b6a70a1 #x687f3584 #x52a0e286 #xb79c5305 #xaa500737 #x3e07841c #x7fdeae5c #x8e7d44ec #x5716f2b8 #xb03ada37 #xf0500c0d #xf01c1f04 #x0200b3ff #xae0cf51a #x3cb574b2 #x25837a58 #xdc0921bd #xd19113f9 #x7ca92ff6 #x94324773 #x22f54701 #x3ae5e581 #x37c2dadc #xc8b57634 #x9af3dda7 #xa9446146 #x0fd0030e #xecc8c73e #xa4751e41 #xe238cd99 #x3bea0e2f #x3280bba1 #x183eb331 #x4e548b38 #x4f6db908 #x6f420d03 #xf60a04bf #x2cb81290 #x24977c79 #x5679b072 #xbcaf89af #xde9a771f #xd9930810 #xb38bae12 #xdccf3f2e #x5512721f #x2e6b7124 #x501adde6 #x9f84cd87 #x7a584718 #x7408da17 #xbc9f9abc #xe94b7d8c #xec7aec3a #xdb851dfa #x63094366 #xc464c3d2 #xef1c1847 #x3215d908 #xdd433b37 #x24c2ba16 #x12a14d43 #x2a65c451 #x50940002 #x133ae4dd #x71dff89e #x10314e55 #x81ac77d6 #x5f11199b #x043556f1 #xd7a3c76b #x3c11183b #x5924a509 #xf28fe6ed #x97f1fbfa #x9ebabf2c #x1e153c6e #x86e34570 #xeae96fb1 #x860e5e0a #x5a3e2ab3 #x771fe71c #x4e3d06fa #x2965dcb9 #x99e71d0f #x803e89d6 #x5266c825 #x2e4cc978 #x9c10b36a #xc6150eba #x94e2ea78 #xa5fc3c53 #x1e0a2df4 #xf2f74ea7 #x361d2b3d #x1939260f #x19c27960 #x5223a708 #xf71312b6 #xebadfe6e #xeac31f66 #xe3bc4595 #xa67bc883 #xb17f37d1 #x018cff28 #xc332ddef #xbe6c5aa5 #x65582185 #x68ab9802 #xeecea50f #xdb2f953b #x2aef7dad #x5b6e2f84 #x1521b628 #x29076170 #xecdd4775 #x619f1510 #x13cca830 #xeb61bd96 #x0334fe1e #xaa0363cf #xb5735c90 #x4c70a239 #xd59e9e0b #xcbaade14 #xeecc86bc #x60622ca7 #x9cab5cab #xb2f3846e #x648b1eaf #x19bdf0ca #xa02369b9 #x655abb50 #x40685a32 #x3c2ab4b3 #x319ee9d5 #xc021b8f7 #x9b540b19 #x875fa099 #x95f7997e #x623d7da8 #xf837889a #x97e32d77 #x11ed935f #x16681281 #x0e358829 #xc7e61fd6 #x96dedfa1 #x7858ba99 #x57f584a5 #x1b227263 #x9b83c3ff #x1ac24696 #xcdb30aeb #x532e3054 #x8fd948e4 #x6dbc3128 #x58ebf2ef #x34c6ffea #xfe28ed61 #xee7c3c73 #x5d4a14d9 #xe864b7e3 #x42105d14 #x203e13e0 #x45eee2b6 #xa3aaabea #xdb6c4f15 #xfacb4fd0 #xc742f442 #xef6abbb5 #x654f3b1d #x41cd2105 #xd81e799e #x86854dc7 #xe44b476a #x3d816250 #xcf62a1f2 #x5b8d2646 #xfc8883a0 #xc1c7b6a3 #x7f1524c3 #x69cb7492 #x47848a0b #x5692b285 #x095bbf00 #xad19489d #x1462b174 #x23820e00 #x58428d2a #x0c55f5ea #x1dadf43e #x233f7061 #x3372f092 #x8d937e41 #xd65fecf1 #x6c223bdb #x7cde3759 #xcbee7460 #x4085f2a7 #xce77326e #xa6078084 #x19f8509e #xe8efd855 #x61d99735 #xa969a7aa #xc50c06c2 #x5a04abfc #x800bcadc #x9e447a2e #xc3453484 #xfdd56705 #x0e1e9ec9 #xdb73dbd3 #x105588cd #x675fda79 #xe3674340 #xc5c43465 #x713e38d8 #x3d28f89e #xf16dff20 #x153e21e7 #x8fb03d4a #xe6e39f2b #xdb83adf7)) (defconst +s-box-2+ #32@(#xe93d5a68 #x948140f7 #xf64c261c #x94692934 #x411520f7 #x7602d4f7 #xbcf46b2e #xd4a20068 #xd4082471 #x3320f46a #x43b7d4b7 #x500061af #x1e39f62e #x97244546 #x14214f74 #xbf8b8840 #x4d95fc1d #x96b591af #x70f4ddd3 #x66a02f45 #xbfbc09ec #x03bd9785 #x7fac6dd0 #x31cb8504 #x96eb27b3 #x55fd3941 #xda2547e6 #xabca0a9a #x28507825 #x530429f4 #x0a2c86da #xe9b66dfb #x68dc1462 #xd7486900 #x680ec0a4 #x27a18dee #x4f3ffea2 #xe887ad8c #xb58ce006 #x7af4d6b6 #xaace1e7c #xd3375fec #xce78a399 #x406b2a42 #x20fe9e35 #xd9f385b9 #xee39d7ab #x3b124e8b #x1dc9faf7 #x4b6d1856 #x26a36631 #xeae397b2 #x3a6efa74 #xdd5b4332 #x6841e7f7 #xca7820fb #xfb0af54e #xd8feb397 #x454056ac #xba489527 #x55533a3a #x20838d87 #xfe6ba9b7 #xd096954b #x55a867bc #xa1159a58 #xcca92963 #x99e1db33 #xa62a4a56 #x3f3125f9 #x5ef47e1c #x9029317c #xfdf8e802 #x04272f70 #x80bb155c #x05282ce3 #x95c11548 #xe4c66d22 #x48c1133f #xc70f86dc #x07f9c9ee #x41041f0f #x404779a4 #x5d886e17 #x325f51eb #xd59bc0d1 #xf2bcc18f #x41113564 #x257b7834 #x602a9c60 #xdff8e8a3 #x1f636c1b #x0e12b4c2 #x02e1329e #xaf664fd1 #xcad18115 #x6b2395e0 #x333e92e1 #x3b240b62 #xeebeb922 #x85b2a20e #xe6ba0d99 #xde720c8c #x2da2f728 #xd0127845 #x95b794fd #x647d0862 #xe7ccf5f0 #x5449a36f #x877d48fa #xc39dfd27 #xf33e8d1e #x0a476341 #x992eff74 #x3a6f6eab #xf4f8fd37 #xa812dc60 #xa1ebddf8 #x991be14c #xdb6e6b0d #xc67b5510 #x6d672c37 #x2765d43b #xdcd0e804 #xf1290dc7 #xcc00ffa3 #xb5390f92 #x690fed0b #x667b9ffb #xcedb7d9c #xa091cf0b #xd9155ea3 #xbb132f88 #x515bad24 #x7b9479bf #x763bd6eb #x37392eb3 #xcc115979 #x8026e297 #xf42e312d #x6842ada7 #xc66a2b3b #x12754ccc #x782ef11c #x6a124237 #xb79251e7 #x06a1bbe6 #x4bfb6350 #x1a6b1018 #x11caedfa #x3d25bdd8 #xe2e1c3c9 #x44421659 #x0a121386 #xd90cec6e #xd5abea2a #x64af674e #xda86a85f #xbebfe988 #x64e4c3fe #x9dbc8057 #xf0f7c086 #x60787bf8 #x6003604d #xd1fd8346 #xf6381fb0 #x7745ae04 #xd736fccc #x83426b33 #xf01eab71 #xb0804187 #x3c005e5f #x77a057be #xbde8ae24 #x55464299 #xbf582e61 #x4e58f48f #xf2ddfda2 #xf474ef38 #x8789bdc2 #x5366f9c3 #xc8b38e74 #xb475f255 #x46fcd9b9 #x7aeb2661 #x8b1ddf84 #x846a0e79 #x915f95e2 #x466e598e #x20b45770 #x8cd55591 #xc902de4c #xb90bace1 #xbb8205d0 #x11a86248 #x7574a99e #xb77f19b6 #xe0a9dc09 #x662d09a1 #xc4324633 #xe85a1f02 #x09f0be8c #x4a99a025 #x1d6efe10 #x1ab93d1d #x0ba5a4df #xa186f20f #x2868f169 #xdcb7da83 #x573906fe #xa1e2ce9b #x4fcd7f52 #x50115e01 #xa70683fa #xa002b5c4 #x0de6d027 #x9af88c27 #x773f8641 #xc3604c06 #x61a806b5 #xf0177a28 #xc0f586e0 #x006058aa #x30dc7d62 #x11e69ed7 #x2338ea63 #x53c2dd94 #xc2c21634 #xbbcbee56 #x90bcb6de #xebfc7da1 #xce591d76 #x6f05e409 #x4b7c0188 #x39720a3d #x7c927c24 #x86e3725f #x724d9db9 #x1ac15bb4 #xd39eb8fc #xed545578 #x08fca5b5 #xd83d7cd3 #x4dad0fc4 #x1e50ef5e #xb161e6f8 #xa28514d9 #x6c51133c #x6fd5c7e7 #x56e14ec4 #x362abfce #xddc6c837 #xd79a3234 #x92638212 #x670efa8e #x406000e0)) (defconst +s-box-3+ #32@(#x3a39ce37 #xd3faf5cf #xabc27737 #x5ac52d1b #x5cb0679e #x4fa33742 #xd3822740 #x99bc9bbe #xd5118e9d #xbf0f7315 #xd62d1c7e #xc700c47b #xb78c1b6b #x21a19045 #xb26eb1be #x6a366eb4 #x5748ab2f #xbc946e79 #xc6a376d2 #x6549c2c8 #x530ff8ee #x468dde7d #xd5730a1d #x4cd04dc6 #x2939bbdb #xa9ba4650 #xac9526e8 #xbe5ee304 #xa1fad5f0 #x6a2d519a #x63ef8ce2 #x9a86ee22 #xc089c2b8 #x43242ef6 #xa51e03aa #x9cf2d0a4 #x83c061ba #x9be96a4d #x8fe51550 #xba645bd6 #x2826a2f9 #xa73a3ae1 #x4ba99586 #xef5562e9 #xc72fefd3 #xf752f7da #x3f046f69 #x77fa0a59 #x80e4a915 #x87b08601 #x9b09e6ad #x3b3ee593 #xe990fd5a #x9e34d797 #x2cf0b7d9 #x022b8b51 #x96d5ac3a #x017da67d #xd1cf3ed6 #x7c7d2d28 #x1f9f25cf #xadf2b89b #x5ad6b472 #x5a88f54c #xe029ac71 #xe019a5e6 #x47b0acfd #xed93fa9b #xe8d3c48d #x283b57cc #xf8d56629 #x79132e28 #x785f0191 #xed756055 #xf7960e44 #xe3d35e8c #x15056dd4 #x88f46dba #x03a16125 #x0564f0bd #xc3eb9e15 #x3c9057a2 #x97271aec #xa93a072a #x1b3f6d9b #x1e6321f5 #xf59c66fb #x26dcf319 #x7533d928 #xb155fdf5 #x03563482 #x8aba3cbb #x28517711 #xc20ad9f8 #xabcc5167 #xccad925f #x4de81751 #x3830dc8e #x379d5862 #x9320f991 #xea7a90c2 #xfb3e7bce #x5121ce64 #x774fbe32 #xa8b6e37e #xc3293d46 #x48de5369 #x6413e680 #xa2ae0810 #xdd6db224 #x69852dfd #x09072166 #xb39a460a #x6445c0dd #x586cdecf #x1c20c8ae #x5bbef7dd #x1b588d40 #xccd2017f #x6bb4e3bb #xdda26a7e #x3a59ff45 #x3e350a44 #xbcb4cdd5 #x72eacea8 #xfa6484bb #x8d6612ae #xbf3c6f47 #xd29be463 #x542f5d9e #xaec2771b #xf64e6370 #x740e0d8d #xe75b1357 #xf8721671 #xaf537d5d #x4040cb08 #x4eb4e2cc #x34d2466a #x0115af84 #xe1b00428 #x95983a1d #x06b89fb4 #xce6ea048 #x6f3f3b82 #x3520ab82 #x011a1d4b #x277227f8 #x611560b1 #xe7933fdc #xbb3a792b #x344525bd #xa08839e1 #x51ce794b #x2f32c9b7 #xa01fbac9 #xe01cc87e #xbcc7d1f6 #xcf0111c3 #xa1e8aac7 #x1a908749 #xd44fbd9a #xd0dadecb #xd50ada38 #x0339c32a #xc6913667 #x8df9317c #xe0b12b4f #xf79e59b7 #x43f5bb3a #xf2d519ff #x27d9459c #xbf97222c #x15e6fc2a #x0f91fc71 #x9b941525 #xfae59361 #xceb69ceb #xc2a86459 #x12baa8d1 #xb6c1075e #xe3056a0c #x10d25065 #xcb03a442 #xe0ec6e0e #x1698db3b #x4c98a0be #x3278e964 #x9f1f9532 #xe0d392df #xd3a0342b #x8971f21e #x1b0a7441 #x4ba3348c #xc5be7120 #xc37632d8 #xdf359f8d #x9b992f2e #xe60b6f47 #x0fe3f11d #xe54cda54 #x1edad891 #xce6279cf #xcd3e7e6f #x1618b166 #xfd2c1d05 #x848fd2c5 #xf6fb2299 #xf523f357 #xa6327623 #x93a83531 #x56cccd02 #xacf08162 #x5a75ebb5 #x6e163697 #x88d273cc #xde966292 #x81b949d0 #x4c50901b #x71c65614 #xe6c6c7bd #x327a140a #x45e1d006 #xc3f27b9a #xc9aa53fd #x62a80f00 #xbb25bfe2 #x35bdd2f6 #x71126905 #xb2040222 #xb6cbcf7c #xcd769c2b #x53113ec0 #x1640e3d3 #x38abbd60 #x2547adf0 #xba38209c #xf746ce76 #x77afa1c5 #x20756060 #x85cbfe4e #x8ae88dd8 #x7aaaf9b0 #x4cf9aa7e #x1948c25c #x02fb8a8c #x01c36ae4 #xd6ebe1f9 #x90d4f869 #xa65cdea0 #x3f09252d #xc208e69f #xb74e6132 #xce77e25b #x578fdfe3 #x3ac372e6)) ;;; the actual Blowfish implementation (eval-when (:compile-toplevel :load-toplevel) (deftype blowfish-p-array () '(simple-array (unsigned-byte 32) (18))) (deftype blowfish-s-boxes () '(simple-array (unsigned-byte 32) (1024))) ) (defclass blowfish (cipher 8-byte-block-mixin) ((p-array :accessor p-array :type blowfish-p-array) (s-boxes :accessor s-boxes :type blowfish-s-boxes))) (macrolet ((s-box (s-boxes which index) `(aref ,s-boxes (+ (* 256 ,which) ,index))) (s-box-0 (s-boxes index) `(s-box ,s-boxes 0 ,index)) (s-box-1 (s-boxes index) `(s-box ,s-boxes 1 ,index)) (s-box-2 (s-boxes index) `(s-box ,s-boxes 2 ,index)) (s-box-3 (s-boxes index) `(s-box ,s-boxes 3 ,index))) (declaim (inline blowfish-f)) (defun blowfish-f (block s-boxes) (declare (type (unsigned-byte 32) block)) (declare (type blowfish-s-boxes s-boxes)) (mod32+ (s-box-3 s-boxes (first-byte block)) (logxor (s-box-2 s-boxes (second-byte block)) (mod32+ (s-box-1 s-boxes (third-byte block)) (s-box-0 s-boxes (fourth-byte block)))))) (defun initialize-blowfish-vectors (key p-array s-boxes) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (declare (type blowfish-p-array p-array)) (declare (type blowfish-s-boxes s-boxes)) (mix-p-array key p-array) (let ((data (make-array 8 :element-type '(unsigned-byte 8) :initial-element 0))) (declare (type (simple-array (unsigned-byte 8) (8)) data)) (do ((i 0 (+ i 2))) ((= i (+ +blowfish-n-rounds+ 2))) (blowfish-encrypt-block* p-array s-boxes data 0 data 0) (setf (aref p-array i) (nibbles:ub32ref/be data 0) (aref p-array (1+ i)) (nibbles:ub32ref/be data 4))) (dotimes (i 4) (do ((j 0 (+ j 2))) ((= j 256)) (blowfish-encrypt-block* p-array s-boxes data 0 data 0) (setf (s-box s-boxes i j) (nibbles:ub32ref/be data 0) (s-box s-boxes i (1+ j)) (nibbles:ub32ref/be data 4)))))) (declaim (inline blowfish-encrypt-block*)) (defun blowfish-encrypt-block* (p-array s-boxes plaintext plaintext-start ciphertext ciphertext-start) (declare (type (simple-array (unsigned-byte 8) (*)) plaintext ciphertext)) (declare (type (integer 0 #.(- array-dimension-limit 8)) plaintext-start ciphertext-start)) (declare (type blowfish-p-array p-array)) (declare (type blowfish-s-boxes s-boxes)) (with-words ((left right) plaintext plaintext-start) #.(loop for i from 0 below 16 if (evenp i) collect `(setf left (logxor left (aref p-array ,i)) right (logxor right (blowfish-f left s-boxes))) into forms else collect `(setf right (logxor right (aref p-array ,i)) left (logxor left (blowfish-f right s-boxes))) into forms finally (return `(progn ,@forms))) (setf left (logxor left (aref p-array 16)) right (logxor right (aref p-array 17))) (store-words ciphertext ciphertext-start right left))) (declaim (notinline blowfish-encrypt-block*)) (define-block-encryptor blowfish 8 (declare (inline blowfish-encrypt-block*)) (blowfish-encrypt-block* (p-array context) (s-boxes context) plaintext plaintext-start ciphertext ciphertext-start)) (declaim (inline blowfish-decrypt-block*)) (defun blowfish-decrypt-block* (p-array s-boxes ciphertext ciphertext-start plaintext plaintext-start) (declare (type (simple-array (unsigned-byte 8) (*)) plaintext ciphertext)) (declare (type (integer 0 #.(- array-dimension-limit 8)) ciphertext-start plaintext-start)) (declare (type blowfish-p-array p-array)) (declare (type blowfish-s-boxes s-boxes)) (with-words ((left right) ciphertext ciphertext-start) #.(loop for i from 17 above 1 if (oddp i) collect `(setf left (logxor left (aref p-array ,i)) right (logxor right (blowfish-f left s-boxes))) into forms else collect `(setf right (logxor right (aref p-array ,i)) left (logxor left (blowfish-f right s-boxes))) into forms finally (return `(progn ,@forms))) (setf left (logxor left (aref p-array 1)) right (logxor right (aref p-array 0))) (store-words plaintext plaintext-start right left))) (declaim (notinline blowfish-decrypt-block*)) (define-block-decryptor blowfish 8 (declare (inline blowfish-decrypt-block*)) (blowfish-decrypt-block* (p-array context) (s-boxes context) ciphertext ciphertext-start plaintext plaintext-start)) (defun mix-p-array (key p-array) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (declare (type blowfish-p-array p-array)) (let ((n-key-bytes (length key)) (j 0)) (dotimes (i (+ +blowfish-n-rounds+ 2)) (let ((data 0)) (declare (type (unsigned-byte 32) data)) (dotimes (k 4) (setf data (logior (mod32ash data 8) (aref key j))) (incf j) (when (>= j n-key-bytes) (setf j 0))) (setf (aref p-array i) (logxor (aref p-array i) data)))))) (defmethod schedule-key ((cipher blowfish) key) (let ((p-array (copy-seq +p-array+)) (s-boxes (make-array 1024 :element-type '(unsigned-byte 32)))) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (declare (type blowfish-p-array p-array)) (declare (type blowfish-s-boxes s-boxes)) (dotimes (i 256) (setf (aref s-boxes i) (aref +s-box-0+ i) (aref s-boxes (+ 256 i)) (aref +s-box-1+ i) (aref s-boxes (+ 512 i)) (aref +s-box-2+ i) (aref s-boxes (+ 768 i)) (aref +s-box-3+ i))) (initialize-blowfish-vectors key p-array s-boxes) (setf (p-array cipher) p-array (s-boxes cipher) s-boxes) cipher)) ) ; MACROLET (defcipher blowfish (:encrypt-function blowfish-encrypt-block) (:decrypt-function blowfish-decrypt-block) (:block-length 8) (:key-length (:variable 1 56 1))) ironclad_0.33.0/src/ciphers/twofish.lisp0000664000175000017500000007754612222266655015267 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; twofish.lisp -- implementation of Counterpane's Twofish AES candidate (in-package :crypto) ;;; various constant data arrays used by Twofish (declaim (type (simple-octet-vector 256) +twofish-q0+ +twofish-q1+)) (declaim (type (simple-octet-vector 255) +twofish-exp-to-poly+ +twofish-poly-to-exp+)) (defconst +twofish-q0+ #8@(#xA9 #x67 #xB3 #xE8 #x04 #xFD #xA3 #x76 #x9A #x92 #x80 #x78 #xE4 #xDD #xD1 #x38 #x0D #xC6 #x35 #x98 #x18 #xF7 #xEC #x6C #x43 #x75 #x37 #x26 #xFA #x13 #x94 #x48 #xF2 #xD0 #x8B #x30 #x84 #x54 #xDF #x23 #x19 #x5B #x3D #x59 #xF3 #xAE #xA2 #x82 #x63 #x01 #x83 #x2E #xD9 #x51 #x9B #x7C #xA6 #xEB #xA5 #xBE #x16 #x0C #xE3 #x61 #xC0 #x8C #x3A #xF5 #x73 #x2C #x25 #x0B #xBB #x4E #x89 #x6B #x53 #x6A #xB4 #xF1 #xE1 #xE6 #xBD #x45 #xE2 #xF4 #xB6 #x66 #xCC #x95 #x03 #x56 #xD4 #x1C #x1E #xD7 #xFB #xC3 #x8E #xB5 #xE9 #xCF #xBF #xBA #xEA #x77 #x39 #xAF #x33 #xC9 #x62 #x71 #x81 #x79 #x09 #xAD #x24 #xCD #xF9 #xD8 #xE5 #xC5 #xB9 #x4D #x44 #x08 #x86 #xE7 #xA1 #x1D #xAA #xED #x06 #x70 #xB2 #xD2 #x41 #x7B #xA0 #x11 #x31 #xC2 #x27 #x90 #x20 #xF6 #x60 #xFF #x96 #x5C #xB1 #xAB #x9E #x9C #x52 #x1B #x5F #x93 #x0A #xEF #x91 #x85 #x49 #xEE #x2D #x4F #x8F #x3B #x47 #x87 #x6D #x46 #xD6 #x3E #x69 #x64 #x2A #xCE #xCB #x2F #xFC #x97 #x05 #x7A #xAC #x7F #xD5 #x1A #x4B #x0E #xA7 #x5A #x28 #x14 #x3F #x29 #x88 #x3C #x4C #x02 #xB8 #xDA #xB0 #x17 #x55 #x1F #x8A #x7D #x57 #xC7 #x8D #x74 #xB7 #xC4 #x9F #x72 #x7E #x15 #x22 #x12 #x58 #x07 #x99 #x34 #x6E #x50 #xDE #x68 #x65 #xBC #xDB #xF8 #xC8 #xA8 #x2B #x40 #xDC #xFE #x32 #xA4 #xCA #x10 #x21 #xF0 #xD3 #x5D #x0F #x00 #x6F #x9D #x36 #x42 #x4A #x5E #xC1 #xE0)) (defconst +twofish-q1+ #8@(#x75 #xF3 #xC6 #xF4 #xDB #x7B #xFB #xC8 #x4A #xD3 #xE6 #x6B #x45 #x7D #xE8 #x4B #xD6 #x32 #xD8 #xFD #x37 #x71 #xF1 #xE1 #x30 #x0F #xF8 #x1B #x87 #xFA #x06 #x3F #x5E #xBA #xAE #x5B #x8A #x00 #xBC #x9D #x6D #xC1 #xB1 #x0E #x80 #x5D #xD2 #xD5 #xA0 #x84 #x07 #x14 #xB5 #x90 #x2C #xA3 #xB2 #x73 #x4C #x54 #x92 #x74 #x36 #x51 #x38 #xB0 #xBD #x5A #xFC #x60 #x62 #x96 #x6C #x42 #xF7 #x10 #x7C #x28 #x27 #x8C #x13 #x95 #x9C #xC7 #x24 #x46 #x3B #x70 #xCA #xE3 #x85 #xCB #x11 #xD0 #x93 #xB8 #xA6 #x83 #x20 #xFF #x9F #x77 #xC3 #xCC #x03 #x6F #x08 #xBF #x40 #xE7 #x2B #xE2 #x79 #x0C #xAA #x82 #x41 #x3A #xEA #xB9 #xE4 #x9A #xA4 #x97 #x7E #xDA #x7A #x17 #x66 #x94 #xA1 #x1D #x3D #xF0 #xDE #xB3 #x0B #x72 #xA7 #x1C #xEF #xD1 #x53 #x3E #x8F #x33 #x26 #x5F #xEC #x76 #x2A #x49 #x81 #x88 #xEE #x21 #xC4 #x1A #xEB #xD9 #xC5 #x39 #x99 #xCD #xAD #x31 #x8B #x01 #x18 #x23 #xDD #x1F #x4E #x2D #xF9 #x48 #x4F #xF2 #x65 #x8E #x78 #x5C #x58 #x19 #x8D #xE5 #x98 #x57 #x67 #x7F #x05 #x64 #xAF #x63 #xB6 #xFE #xF5 #xB7 #x3C #xA5 #xCE #xE9 #x68 #x44 #xE0 #x4D #x43 #x69 #x29 #x2E #xAC #x15 #x59 #xA8 #x0A #x9E #x6E #x47 #xDF #x34 #x35 #x6A #xCF #xDC #x22 #xC9 #xC0 #x9B #x89 #xD4 #xED #xAB #x12 #xA2 #x0D #x52 #xBB #x02 #x2F #xA9 #xD7 #x61 #x1E #xB4 #x50 #x04 #xF6 #xC2 #x16 #x25 #x86 #x56 #x55 #x09 #xBE #x91)) (defconst +twofish-rs+ #8@(#x01 #xA4 #x02 #xA4 #xA4 #x56 #xA1 #x55 #x55 #x82 #xFC #x87 #x87 #xF3 #xC1 #x5A #x5A #x1E #x47 #x58 #x58 #xC6 #xAE #xDB #xDB #x68 #x3D #x9E #x9E #xE5 #x19 #x03)) (defconst +twofish-exp-to-poly+ #8@(#x01 #x02 #x04 #x08 #x10 #x20 #x40 #x80 #x4D #x9A #x79 #xF2 #xA9 #x1F #x3E #x7C #xF8 #xBD #x37 #x6E #xDC #xF5 #xA7 #x03 #x06 #x0C #x18 #x30 #x60 #xC0 #xCD #xD7 #xE3 #x8B #x5B #xB6 #x21 #x42 #x84 #x45 #x8A #x59 #xB2 #x29 #x52 #xA4 #x05 #x0A #x14 #x28 #x50 #xA0 #x0D #x1A #x34 #x68 #xD0 #xED #x97 #x63 #xC6 #xC1 #xCF #xD3 #xEB #x9B #x7B #xF6 #xA1 #x0F #x1E #x3C #x78 #xF0 #xAD #x17 #x2E #x5C #xB8 #x3D #x7A #xF4 #xA5 #x07 #x0E #x1C #x38 #x70 #xE0 #x8D #x57 #xAE #x11 #x22 #x44 #x88 #x5D #xBA #x39 #x72 #xE4 #x85 #x47 #x8E #x51 #xA2 #x09 #x12 #x24 #x48 #x90 #x6D #xDA #xF9 #xBF #x33 #x66 #xCC #xD5 #xE7 #x83 #x4B #x96 #x61 #xC2 #xC9 #xDF #xF3 #xAB #x1B #x36 #x6C #xD8 #xFD #xB7 #x23 #x46 #x8C #x55 #xAA #x19 #x32 #x64 #xC8 #xDD #xF7 #xA3 #x0B #x16 #x2C #x58 #xB0 #x2D #x5A #xB4 #x25 #x4A #x94 #x65 #xCA #xD9 #xFF #xB3 #x2B #x56 #xAC #x15 #x2A #x54 #xA8 #x1D #x3A #x74 #xE8 #x9D #x77 #xEE #x91 #x6F #xDE #xF1 #xAF #x13 #x26 #x4C #x98 #x7D #xFA #xB9 #x3F #x7E #xFC #xB5 #x27 #x4E #x9C #x75 #xEA #x99 #x7F #xFE #xB1 #x2F #x5E #xBC #x35 #x6A #xD4 #xE5 #x87 #x43 #x86 #x41 #x82 #x49 #x92 #x69 #xD2 #xE9 #x9F #x73 #xE6 #x81 #x4F #x9E #x71 #xE2 #x89 #x5F #xBE #x31 #x62 #xC4 #xC5 #xC7 #xC3 #xCB #xDB #xFB #xBB #x3B #x76 #xEC #x95 #x67 #xCE #xD1 #xEF #x93 #x6B #xD6 #xE1 #x8F #x53 #xA6)) (defconst +twofish-poly-to-exp+ #8@(#x00 #x01 #x17 #x02 #x2E #x18 #x53 #x03 #x6A #x2F #x93 #x19 #x34 #x54 #x45 #x04 #x5C #x6B #xB6 #x30 #xA6 #x94 #x4B #x1A #x8C #x35 #x81 #x55 #xAA #x46 #x0D #x05 #x24 #x5D #x87 #x6C #x9B #xB7 #xC1 #x31 #x2B #xA7 #xA3 #x95 #x98 #x4C #xCA #x1B #xE6 #x8D #x73 #x36 #xCD #x82 #x12 #x56 #x62 #xAB #xF0 #x47 #x4F #x0E #xBD #x06 #xD4 #x25 #xD2 #x5E #x27 #x88 #x66 #x6D #xD6 #x9C #x79 #xB8 #x08 #xC2 #xDF #x32 #x68 #x2C #xFD #xA8 #x8A #xA4 #x5A #x96 #x29 #x99 #x22 #x4D #x60 #xCB #xE4 #x1C #x7B #xE7 #x3B #x8E #x9E #x74 #xF4 #x37 #xD8 #xCE #xF9 #x83 #x6F #x13 #xB2 #x57 #xE1 #x63 #xDC #xAC #xC4 #xF1 #xAF #x48 #x0A #x50 #x42 #x0F #xBA #xBE #xC7 #x07 #xDE #xD5 #x78 #x26 #x65 #xD3 #xD1 #x5F #xE3 #x28 #x21 #x89 #x59 #x67 #xFC #x6E #xB1 #xD7 #xF8 #x9D #xF3 #x7A #x3A #xB9 #xC6 #x09 #x41 #xC3 #xAE #xE0 #xDB #x33 #x44 #x69 #x92 #x2D #x52 #xFE #x16 #xA9 #x0C #x8B #x80 #xA5 #x4A #x5B #xB5 #x97 #xC9 #x2A #xA2 #x9A #xC0 #x23 #x86 #x4E #xBC #x61 #xEF #xCC #x11 #xE5 #x72 #x1D #x3D #x7C #xEB #xE8 #xE9 #x3C #xEA #x8F #x7D #x9F #xEC #x75 #x1E #xF5 #x3E #x38 #xF6 #xD9 #x3F #xCF #x76 #xFA #x1F #x84 #xA0 #x70 #xED #x14 #x90 #xB3 #x7E #x58 #xFB #xE2 #x20 #x64 #xD0 #xDD #x77 #xAD #xDA #xC5 #x40 #xF2 #x39 #xB0 #xF7 #x49 #xB4 #x0B #x7F #x51 #x15 #x43 #x91 #x10 #x71 #xBB #xEE #xBF #x85 #xC8 #xA1)) (declaim (type (simple-array (unsigned-byte 32) (256)) +twofish-mds0+ +twofish-mds1+ +twofish-mds2+ +twofish-mds3+)) (defconst +twofish-mds0+ #32@(#xBCBC3275 #xECEC21F3 #x202043C6 #xB3B3C9F4 #xDADA03DB #x02028B7B #xE2E22BFB #x9E9EFAC8 #xC9C9EC4A #xD4D409D3 #x18186BE6 #x1E1E9F6B #x98980E45 #xB2B2387D #xA6A6D2E8 #x2626B74B #x3C3C57D6 #x93938A32 #x8282EED8 #x525298FD #x7B7BD437 #xBBBB3771 #x5B5B97F1 #x474783E1 #x24243C30 #x5151E20F #xBABAC6F8 #x4A4AF31B #xBFBF4887 #x0D0D70FA #xB0B0B306 #x7575DE3F #xD2D2FD5E #x7D7D20BA #x666631AE #x3A3AA35B #x59591C8A #x00000000 #xCDCD93BC #x1A1AE09D #xAEAE2C6D #x7F7FABC1 #x2B2BC7B1 #xBEBEB90E #xE0E0A080 #x8A8A105D #x3B3B52D2 #x6464BAD5 #xD8D888A0 #xE7E7A584 #x5F5FE807 #x1B1B1114 #x2C2CC2B5 #xFCFCB490 #x3131272C #x808065A3 #x73732AB2 #x0C0C8173 #x79795F4C #x6B6B4154 #x4B4B0292 #x53536974 #x94948F36 #x83831F51 #x2A2A3638 #xC4C49CB0 #x2222C8BD #xD5D5F85A #xBDBDC3FC #x48487860 #xFFFFCE62 #x4C4C0796 #x4141776C #xC7C7E642 #xEBEB24F7 #x1C1C1410 #x5D5D637C #x36362228 #x6767C027 #xE9E9AF8C #x4444F913 #x1414EA95 #xF5F5BB9C #xCFCF18C7 #x3F3F2D24 #xC0C0E346 #x7272DB3B #x54546C70 #x29294CCA #xF0F035E3 #x0808FE85 #xC6C617CB #xF3F34F11 #x8C8CE4D0 #xA4A45993 #xCACA96B8 #x68683BA6 #xB8B84D83 #x38382820 #xE5E52EFF #xADAD569F #x0B0B8477 #xC8C81DC3 #x9999FFCC #x5858ED03 #x19199A6F #x0E0E0A08 #x95957EBF #x70705040 #xF7F730E7 #x6E6ECF2B #x1F1F6EE2 #xB5B53D79 #x09090F0C #x616134AA #x57571682 #x9F9F0B41 #x9D9D803A #x111164EA #x2525CDB9 #xAFAFDDE4 #x4545089A #xDFDF8DA4 #xA3A35C97 #xEAEAD57E #x353558DA #xEDEDD07A #x4343FC17 #xF8F8CB66 #xFBFBB194 #x3737D3A1 #xFAFA401D #xC2C2683D #xB4B4CCF0 #x32325DDE #x9C9C71B3 #x5656E70B #xE3E3DA72 #x878760A7 #x15151B1C #xF9F93AEF #x6363BFD1 #x3434A953 #x9A9A853E #xB1B1428F #x7C7CD133 #x88889B26 #x3D3DA65F #xA1A1D7EC #xE4E4DF76 #x8181942A #x91910149 #x0F0FFB81 #xEEEEAA88 #x161661EE #xD7D77321 #x9797F5C4 #xA5A5A81A #xFEFE3FEB #x6D6DB5D9 #x7878AEC5 #xC5C56D39 #x1D1DE599 #x7676A4CD #x3E3EDCAD #xCBCB6731 #xB6B6478B #xEFEF5B01 #x12121E18 #x6060C523 #x6A6AB0DD #x4D4DF61F #xCECEE94E #xDEDE7C2D #x55559DF9 #x7E7E5A48 #x2121B24F #x03037AF2 #xA0A02665 #x5E5E198E #x5A5A6678 #x65654B5C #x62624E58 #xFDFD4519 #x0606F48D #x404086E5 #xF2F2BE98 #x3333AC57 #x17179067 #x05058E7F #xE8E85E05 #x4F4F7D64 #x89896AAF #x10109563 #x74742FB6 #x0A0A75FE #x5C5C92F5 #x9B9B74B7 #x2D2D333C #x3030D6A5 #x2E2E49CE #x494989E9 #x46467268 #x77775544 #xA8A8D8E0 #x9696044D #x2828BD43 #xA9A92969 #xD9D97929 #x8686912E #xD1D187AC #xF4F44A15 #x8D8D1559 #xD6D682A8 #xB9B9BC0A #x42420D9E #xF6F6C16E #x2F2FB847 #xDDDD06DF #x23233934 #xCCCC6235 #xF1F1C46A #xC1C112CF #x8585EBDC #x8F8F9E22 #x7171A1C9 #x9090F0C0 #xAAAA539B #x0101F189 #x8B8BE1D4 #x4E4E8CED #x8E8E6FAB #xABABA212 #x6F6F3EA2 #xE6E6540D #xDBDBF252 #x92927BBB #xB7B7B602 #x6969CA2F #x3939D9A9 #xD3D30CD7 #xA7A72361 #xA2A2AD1E #xC3C399B4 #x6C6C4450 #x07070504 #x04047FF6 #x272746C2 #xACACA716 #xD0D07625 #x50501386 #xDCDCF756 #x84841A55 #xE1E15109 #x7A7A25BE #x1313EF91)) (defconst +twofish-mds1+ #32@(#xA9D93939 #x67901717 #xB3719C9C #xE8D2A6A6 #x04050707 #xFD985252 #xA3658080 #x76DFE4E4 #x9A084545 #x92024B4B #x80A0E0E0 #x78665A5A #xE4DDAFAF #xDDB06A6A #xD1BF6363 #x38362A2A #x0D54E6E6 #xC6432020 #x3562CCCC #x98BEF2F2 #x181E1212 #xF724EBEB #xECD7A1A1 #x6C774141 #x43BD2828 #x7532BCBC #x37D47B7B #x269B8888 #xFA700D0D #x13F94444 #x94B1FBFB #x485A7E7E #xF27A0303 #xD0E48C8C #x8B47B6B6 #x303C2424 #x84A5E7E7 #x54416B6B #xDF06DDDD #x23C56060 #x1945FDFD #x5BA33A3A #x3D68C2C2 #x59158D8D #xF321ECEC #xAE316666 #xA23E6F6F #x82165757 #x63951010 #x015BEFEF #x834DB8B8 #x2E918686 #xD9B56D6D #x511F8383 #x9B53AAAA #x7C635D5D #xA63B6868 #xEB3FFEFE #xA5D63030 #xBE257A7A #x16A7ACAC #x0C0F0909 #xE335F0F0 #x6123A7A7 #xC0F09090 #x8CAFE9E9 #x3A809D9D #xF5925C5C #x73810C0C #x2C273131 #x2576D0D0 #x0BE75656 #xBB7B9292 #x4EE9CECE #x89F10101 #x6B9F1E1E #x53A93434 #x6AC4F1F1 #xB499C3C3 #xF1975B5B #xE1834747 #xE66B1818 #xBDC82222 #x450E9898 #xE26E1F1F #xF4C9B3B3 #xB62F7474 #x66CBF8F8 #xCCFF9999 #x95EA1414 #x03ED5858 #x56F7DCDC #xD4E18B8B #x1C1B1515 #x1EADA2A2 #xD70CD3D3 #xFB2BE2E2 #xC31DC8C8 #x8E195E5E #xB5C22C2C #xE9894949 #xCF12C1C1 #xBF7E9595 #xBA207D7D #xEA641111 #x77840B0B #x396DC5C5 #xAF6A8989 #x33D17C7C #xC9A17171 #x62CEFFFF #x7137BBBB #x81FB0F0F #x793DB5B5 #x0951E1E1 #xADDC3E3E #x242D3F3F #xCDA47676 #xF99D5555 #xD8EE8282 #xE5864040 #xC5AE7878 #xB9CD2525 #x4D049696 #x44557777 #x080A0E0E #x86135050 #xE730F7F7 #xA1D33737 #x1D40FAFA #xAA346161 #xED8C4E4E #x06B3B0B0 #x706C5454 #xB22A7373 #xD2523B3B #x410B9F9F #x7B8B0202 #xA088D8D8 #x114FF3F3 #x3167CBCB #xC2462727 #x27C06767 #x90B4FCFC #x20283838 #xF67F0404 #x60784848 #xFF2EE5E5 #x96074C4C #x5C4B6565 #xB1C72B2B #xAB6F8E8E #x9E0D4242 #x9CBBF5F5 #x52F2DBDB #x1BF34A4A #x5FA63D3D #x9359A4A4 #x0ABCB9B9 #xEF3AF9F9 #x91EF1313 #x85FE0808 #x49019191 #xEE611616 #x2D7CDEDE #x4FB22121 #x8F42B1B1 #x3BDB7272 #x47B82F2F #x8748BFBF #x6D2CAEAE #x46E3C0C0 #xD6573C3C #x3E859A9A #x6929A9A9 #x647D4F4F #x2A948181 #xCE492E2E #xCB17C6C6 #x2FCA6969 #xFCC3BDBD #x975CA3A3 #x055EE8E8 #x7AD0EDED #xAC87D1D1 #x7F8E0505 #xD5BA6464 #x1AA8A5A5 #x4BB72626 #x0EB9BEBE #xA7608787 #x5AF8D5D5 #x28223636 #x14111B1B #x3FDE7575 #x2979D9D9 #x88AAEEEE #x3C332D2D #x4C5F7979 #x02B6B7B7 #xB896CACA #xDA583535 #xB09CC4C4 #x17FC4343 #x551A8484 #x1FF64D4D #x8A1C5959 #x7D38B2B2 #x57AC3333 #xC718CFCF #x8DF40606 #x74695353 #xB7749B9B #xC4F59797 #x9F56ADAD #x72DAE3E3 #x7ED5EAEA #x154AF4F4 #x229E8F8F #x12A2ABAB #x584E6262 #x07E85F5F #x99E51D1D #x34392323 #x6EC1F6F6 #x50446C6C #xDE5D3232 #x68724646 #x6526A0A0 #xBC93CDCD #xDB03DADA #xF8C6BABA #xC8FA9E9E #xA882D6D6 #x2BCF6E6E #x40507070 #xDCEB8585 #xFE750A0A #x328A9393 #xA48DDFDF #xCA4C2929 #x10141C1C #x2173D7D7 #xF0CCB4B4 #xD309D4D4 #x5D108A8A #x0FE25151 #x00000000 #x6F9A1919 #x9DE01A1A #x368F9494 #x42E6C7C7 #x4AECC9C9 #x5EFDD2D2 #xC1AB7F7F #xE0D8A8A8)) (defconst +twofish-mds2+ #32@(#xBC75BC32 #xECF3EC21 #x20C62043 #xB3F4B3C9 #xDADBDA03 #x027B028B #xE2FBE22B #x9EC89EFA #xC94AC9EC #xD4D3D409 #x18E6186B #x1E6B1E9F #x9845980E #xB27DB238 #xA6E8A6D2 #x264B26B7 #x3CD63C57 #x9332938A #x82D882EE #x52FD5298 #x7B377BD4 #xBB71BB37 #x5BF15B97 #x47E14783 #x2430243C #x510F51E2 #xBAF8BAC6 #x4A1B4AF3 #xBF87BF48 #x0DFA0D70 #xB006B0B3 #x753F75DE #xD25ED2FD #x7DBA7D20 #x66AE6631 #x3A5B3AA3 #x598A591C #x00000000 #xCDBCCD93 #x1A9D1AE0 #xAE6DAE2C #x7FC17FAB #x2BB12BC7 #xBE0EBEB9 #xE080E0A0 #x8A5D8A10 #x3BD23B52 #x64D564BA #xD8A0D888 #xE784E7A5 #x5F075FE8 #x1B141B11 #x2CB52CC2 #xFC90FCB4 #x312C3127 #x80A38065 #x73B2732A #x0C730C81 #x794C795F #x6B546B41 #x4B924B02 #x53745369 #x9436948F #x8351831F #x2A382A36 #xC4B0C49C #x22BD22C8 #xD55AD5F8 #xBDFCBDC3 #x48604878 #xFF62FFCE #x4C964C07 #x416C4177 #xC742C7E6 #xEBF7EB24 #x1C101C14 #x5D7C5D63 #x36283622 #x672767C0 #xE98CE9AF #x441344F9 #x149514EA #xF59CF5BB #xCFC7CF18 #x3F243F2D #xC046C0E3 #x723B72DB #x5470546C #x29CA294C #xF0E3F035 #x088508FE #xC6CBC617 #xF311F34F #x8CD08CE4 #xA493A459 #xCAB8CA96 #x68A6683B #xB883B84D #x38203828 #xE5FFE52E #xAD9FAD56 #x0B770B84 #xC8C3C81D #x99CC99FF #x580358ED #x196F199A #x0E080E0A #x95BF957E #x70407050 #xF7E7F730 #x6E2B6ECF #x1FE21F6E #xB579B53D #x090C090F #x61AA6134 #x57825716 #x9F419F0B #x9D3A9D80 #x11EA1164 #x25B925CD #xAFE4AFDD #x459A4508 #xDFA4DF8D #xA397A35C #xEA7EEAD5 #x35DA3558 #xED7AEDD0 #x431743FC #xF866F8CB #xFB94FBB1 #x37A137D3 #xFA1DFA40 #xC23DC268 #xB4F0B4CC #x32DE325D #x9CB39C71 #x560B56E7 #xE372E3DA #x87A78760 #x151C151B #xF9EFF93A #x63D163BF #x345334A9 #x9A3E9A85 #xB18FB142 #x7C337CD1 #x8826889B #x3D5F3DA6 #xA1ECA1D7 #xE476E4DF #x812A8194 #x91499101 #x0F810FFB #xEE88EEAA #x16EE1661 #xD721D773 #x97C497F5 #xA51AA5A8 #xFEEBFE3F #x6DD96DB5 #x78C578AE #xC539C56D #x1D991DE5 #x76CD76A4 #x3EAD3EDC #xCB31CB67 #xB68BB647 #xEF01EF5B #x1218121E #x602360C5 #x6ADD6AB0 #x4D1F4DF6 #xCE4ECEE9 #xDE2DDE7C #x55F9559D #x7E487E5A #x214F21B2 #x03F2037A #xA065A026 #x5E8E5E19 #x5A785A66 #x655C654B #x6258624E #xFD19FD45 #x068D06F4 #x40E54086 #xF298F2BE #x335733AC #x17671790 #x057F058E #xE805E85E #x4F644F7D #x89AF896A #x10631095 #x74B6742F #x0AFE0A75 #x5CF55C92 #x9BB79B74 #x2D3C2D33 #x30A530D6 #x2ECE2E49 #x49E94989 #x46684672 #x77447755 #xA8E0A8D8 #x964D9604 #x284328BD #xA969A929 #xD929D979 #x862E8691 #xD1ACD187 #xF415F44A #x8D598D15 #xD6A8D682 #xB90AB9BC #x429E420D #xF66EF6C1 #x2F472FB8 #xDDDFDD06 #x23342339 #xCC35CC62 #xF16AF1C4 #xC1CFC112 #x85DC85EB #x8F228F9E #x71C971A1 #x90C090F0 #xAA9BAA53 #x018901F1 #x8BD48BE1 #x4EED4E8C #x8EAB8E6F #xAB12ABA2 #x6FA26F3E #xE60DE654 #xDB52DBF2 #x92BB927B #xB702B7B6 #x692F69CA #x39A939D9 #xD3D7D30C #xA761A723 #xA21EA2AD #xC3B4C399 #x6C506C44 #x07040705 #x04F6047F #x27C22746 #xAC16ACA7 #xD025D076 #x50865013 #xDC56DCF7 #x8455841A #xE109E151 #x7ABE7A25 #x139113EF)) (defconst +twofish-mds3+ #32@(#xD939A9D9 #x90176790 #x719CB371 #xD2A6E8D2 #x05070405 #x9852FD98 #x6580A365 #xDFE476DF #x08459A08 #x024B9202 #xA0E080A0 #x665A7866 #xDDAFE4DD #xB06ADDB0 #xBF63D1BF #x362A3836 #x54E60D54 #x4320C643 #x62CC3562 #xBEF298BE #x1E12181E #x24EBF724 #xD7A1ECD7 #x77416C77 #xBD2843BD #x32BC7532 #xD47B37D4 #x9B88269B #x700DFA70 #xF94413F9 #xB1FB94B1 #x5A7E485A #x7A03F27A #xE48CD0E4 #x47B68B47 #x3C24303C #xA5E784A5 #x416B5441 #x06DDDF06 #xC56023C5 #x45FD1945 #xA33A5BA3 #x68C23D68 #x158D5915 #x21ECF321 #x3166AE31 #x3E6FA23E #x16578216 #x95106395 #x5BEF015B #x4DB8834D #x91862E91 #xB56DD9B5 #x1F83511F #x53AA9B53 #x635D7C63 #x3B68A63B #x3FFEEB3F #xD630A5D6 #x257ABE25 #xA7AC16A7 #x0F090C0F #x35F0E335 #x23A76123 #xF090C0F0 #xAFE98CAF #x809D3A80 #x925CF592 #x810C7381 #x27312C27 #x76D02576 #xE7560BE7 #x7B92BB7B #xE9CE4EE9 #xF10189F1 #x9F1E6B9F #xA93453A9 #xC4F16AC4 #x99C3B499 #x975BF197 #x8347E183 #x6B18E66B #xC822BDC8 #x0E98450E #x6E1FE26E #xC9B3F4C9 #x2F74B62F #xCBF866CB #xFF99CCFF #xEA1495EA #xED5803ED #xF7DC56F7 #xE18BD4E1 #x1B151C1B #xADA21EAD #x0CD3D70C #x2BE2FB2B #x1DC8C31D #x195E8E19 #xC22CB5C2 #x8949E989 #x12C1CF12 #x7E95BF7E #x207DBA20 #x6411EA64 #x840B7784 #x6DC5396D #x6A89AF6A #xD17C33D1 #xA171C9A1 #xCEFF62CE #x37BB7137 #xFB0F81FB #x3DB5793D #x51E10951 #xDC3EADDC #x2D3F242D #xA476CDA4 #x9D55F99D #xEE82D8EE #x8640E586 #xAE78C5AE #xCD25B9CD #x04964D04 #x55774455 #x0A0E080A #x13508613 #x30F7E730 #xD337A1D3 #x40FA1D40 #x3461AA34 #x8C4EED8C #xB3B006B3 #x6C54706C #x2A73B22A #x523BD252 #x0B9F410B #x8B027B8B #x88D8A088 #x4FF3114F #x67CB3167 #x4627C246 #xC06727C0 #xB4FC90B4 #x28382028 #x7F04F67F #x78486078 #x2EE5FF2E #x074C9607 #x4B655C4B #xC72BB1C7 #x6F8EAB6F #x0D429E0D #xBBF59CBB #xF2DB52F2 #xF34A1BF3 #xA63D5FA6 #x59A49359 #xBCB90ABC #x3AF9EF3A #xEF1391EF #xFE0885FE #x01914901 #x6116EE61 #x7CDE2D7C #xB2214FB2 #x42B18F42 #xDB723BDB #xB82F47B8 #x48BF8748 #x2CAE6D2C #xE3C046E3 #x573CD657 #x859A3E85 #x29A96929 #x7D4F647D #x94812A94 #x492ECE49 #x17C6CB17 #xCA692FCA #xC3BDFCC3 #x5CA3975C #x5EE8055E #xD0ED7AD0 #x87D1AC87 #x8E057F8E #xBA64D5BA #xA8A51AA8 #xB7264BB7 #xB9BE0EB9 #x6087A760 #xF8D55AF8 #x22362822 #x111B1411 #xDE753FDE #x79D92979 #xAAEE88AA #x332D3C33 #x5F794C5F #xB6B702B6 #x96CAB896 #x5835DA58 #x9CC4B09C #xFC4317FC #x1A84551A #xF64D1FF6 #x1C598A1C #x38B27D38 #xAC3357AC #x18CFC718 #xF4068DF4 #x69537469 #x749BB774 #xF597C4F5 #x56AD9F56 #xDAE372DA #xD5EA7ED5 #x4AF4154A #x9E8F229E #xA2AB12A2 #x4E62584E #xE85F07E8 #xE51D99E5 #x39233439 #xC1F66EC1 #x446C5044 #x5D32DE5D #x72466872 #x26A06526 #x93CDBC93 #x03DADB03 #xC6BAF8C6 #xFA9EC8FA #x82D6A882 #xCF6E2BCF #x50704050 #xEB85DCEB #x750AFE75 #x8A93328A #x8DDFA48D #x4C29CA4C #x141C1014 #x73D72173 #xCCB4F0CC #x09D4D309 #x108A5D10 #xE2510FE2 #x00000000 #x9A196F9A #xE01A9DE0 #x8F94368F #xE6C742E6 #xECC94AEC #xFDD25EFD #xAB7FC1AB #xD8A8E0D8)) ;;; the actual implementation of Twofish (deftype twofish-s-boxes () '(simple-array (unsigned-byte 32) (1024))) (deftype twofish-round-keys () '(simple-array (unsigned-byte 32) (40))) (defclass twofish (cipher 16-byte-block-mixin) ((round-keys :accessor round-keys :type twofish-round-keys) (s-boxes :accessor s-boxes :type twofish-s-boxes))) (defun reed-solomon-multiply (box box-offset key rs0 rs1 rs2 rs3) (declare (type (simple-octet-vector 16) box)) (declare (type (integer 0 12) box-offset)) (unless (zerop key) (let ((temp (aref +twofish-poly-to-exp+ (1- key)))) ;; Lispworks doesn't seem to like doing this with a straight ;; MACROLET and no #., so we go ahead and build everything at ;; read-time. #.(flet ((mod-box-element (index) (let ((rs-sym (intern (format nil "~A~D" '#:rs index)))) `(setf (aref box (+ box-offset ,index)) (logxor (aref box (+ box-offset ,index)) (aref +twofish-exp-to-poly+ (mod (+ temp (aref +twofish-poly-to-exp+ (1- ,rs-sym))) 255))))))) `(progn ,(mod-box-element 0) ,(mod-box-element 1) ,(mod-box-element 2) ,(mod-box-element 3))))) (values)) (defun twofish-key-schedule (key) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (let ((rs-box (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0)) (round-keys (make-array 40 :element-type '(unsigned-byte 32))) (s-boxes (make-array 1024 :element-type '(unsigned-byte 32)))) (declare (type (simple-octet-vector 16) rs-box)) (declare (dynamic-extent rs-box)) ;; fill the rs-box (dotimes (i (length key)) (reed-solomon-multiply rs-box (* 4 (truncate i 8)) (aref key i) (aref +twofish-rs+ (mod (* 4 i) 32)) (aref +twofish-rs+ (mod (+ (* 4 i) 1) 32)) (aref +twofish-rs+ (mod (+ (* 4 i) 2) 32)) (aref +twofish-rs+ (mod (+ (* 4 i) 3) 32)))) (case (length key) (16 (twofish-schedule-16-byte-key round-keys s-boxes key rs-box)) (24 (twofish-schedule-24-byte-key round-keys s-boxes key rs-box)) (32 (twofish-schedule-32-byte-key round-keys s-boxes key rs-box))))) (macrolet ((s-box (s-boxes which index) `(aref ,s-boxes (+ (* 256 ,which) ,index))) (s-box-0 (s-boxes index) `(s-box ,s-boxes 0 ,index)) (s-box-1 (s-boxes index) `(s-box ,s-boxes 1 ,index)) (s-box-2 (s-boxes index) `(s-box ,s-boxes 2 ,index)) (s-box-3 (s-boxes index) `(s-box ,s-boxes 3 ,index))) (defun twofish-schedule-16-byte-key (round-keys s-boxes key box) (declare (type twofish-round-keys round-keys) (type twofish-s-boxes s-boxes) (type (simple-octet-vector 16) key box)) (macrolet ((q-frob (i1 i2 d1 d2) (let ((q0 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 1) i1)))) (q1 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 0) i1))))) `(logxor (aref ,q0 (logxor (aref ,q1 ,i2) ,d1)) ,d2)))) (dotimes (i 256) (setf (s-box-0 s-boxes i) (aref +twofish-mds0+ (q-frob 0 i (aref box 0) (aref box 4))) (s-box-1 s-boxes i) (aref +twofish-mds1+ (q-frob 1 i (aref box 1) (aref box 5))) (s-box-2 s-boxes i) (aref +twofish-mds2+ (q-frob 2 i (aref box 2) (aref box 6))) (s-box-3 s-boxes i) (aref +twofish-mds3+ (q-frob 3 i (aref box 3) (aref box 7))))) (loop for i from 0 below 40 by 2 do (let ((x (logxor (aref +twofish-mds0+ (q-frob 0 i (aref key 8) (aref key 0))) (aref +twofish-mds1+ (q-frob 1 i (aref key 9) (aref key 1))) (aref +twofish-mds2+ (q-frob 2 i (aref key 10) (aref key 2))) (aref +twofish-mds3+ (q-frob 3 i (aref key 11) (aref key 3))))) (y (logxor (aref +twofish-mds0+ (q-frob 0 (1+ i) (aref key 12) (aref key 4))) (aref +twofish-mds1+ (q-frob 1 (1+ i) (aref key 13) (aref key 5))) (aref +twofish-mds2+ (q-frob 2 (1+ i) (aref key 14) (aref key 6))) (aref +twofish-mds3+ (q-frob 3 (1+ i) (aref key 15) (aref key 7)))))) (declare (type (unsigned-byte 32) x y)) (setf y (rol32 y 8)) (setf x (mod32+ x y)) (setf y (mod32+ y x)) (setf (aref round-keys i) x (aref round-keys (1+ i)) (rol32 y 9))) finally (return (values round-keys s-boxes))))) (defun twofish-schedule-24-byte-key (round-keys s-boxes key box) (declare (type twofish-round-keys round-keys) (type twofish-s-boxes s-boxes) (type (simple-octet-vector 24) key) (type (simple-octet-vector 16) box)) (macrolet ((q-frob (i1 i2 d1 d2 d3) (let ((q0 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 2) i1)))) (q1 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 1) i1)))) (q2 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 0) i1))))) `(logxor (aref ,q0 (logxor (aref ,q1 (logxor (aref ,q2 ,i2) ,d1)) ,d2)) ,d3)))) (dotimes (i 256) (setf (s-box-0 s-boxes i) (aref +twofish-mds0+ (q-frob 1 i (aref box 0) (aref box 4) (aref box 8))) (s-box-1 s-boxes i) (aref +twofish-mds1+ (q-frob 3 i (aref box 1) (aref box 5) (aref box 9))) (s-box-2 s-boxes i) (aref +twofish-mds2+ (q-frob 4 i (aref box 2) (aref box 6) (aref box 10))) (s-box-3 s-boxes i) (aref +twofish-mds3+ (q-frob 6 i (aref box 3) (aref box 7) (aref box 11))))) (loop for i from 0 below 40 by 2 do (let ((x (logxor (aref +twofish-mds0+ (q-frob 1 i (aref key 16) (aref key 8) (aref key 0))) (aref +twofish-mds1+ (q-frob 3 i (aref key 17) (aref key 9) (aref key 1))) (aref +twofish-mds2+ (q-frob 4 i (aref key 18) (aref key 10) (aref key 2))) (aref +twofish-mds3+ (q-frob 6 i (aref key 19) (aref key 11) (aref key 3))))) (y (logxor (aref +twofish-mds0+ (q-frob 1 (1+ i) (aref key 20) (aref key 12) (aref key 4))) (aref +twofish-mds1+ (q-frob 3 (1+ i) (aref key 21) (aref key 13) (aref key 5))) (aref +twofish-mds2+ (q-frob 4 (1+ i) (aref key 22) (aref key 14) (aref key 6))) (aref +twofish-mds3+ (q-frob 6 (1+ i) (aref key 23) (aref key 15) (aref key 7)))))) (declare (type (unsigned-byte 32) x y)) (setf y (rol32 y 8)) (setf x (mod32+ x y)) (setf y (mod32+ y x)) (setf (aref round-keys i) x (aref round-keys (1+ i)) (rol32 y 9))) finally (return (values round-keys s-boxes))))) (defun twofish-schedule-32-byte-key (round-keys s-boxes key box) (declare (type twofish-round-keys round-keys) (type twofish-s-boxes s-boxes) (type (simple-octet-vector 32) key) (type (simple-octet-vector 16) box)) (macrolet ((q-frob (i1 i2 d1 d2 d3 d4) (let ((q0 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 3) i1)))) (q1 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 2) i1)))) (q2 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 1) i1)))) (q3 (intern (format nil "+~A~A+" '#:twofish-q (ldb (byte 1 0) i1))))) `(logxor (aref ,q0 (logxor (aref ,q1 (logxor (aref ,q2 (logxor (aref ,q3 ,i2) ,d1)) ,d2)) ,d3)) ,d4)))) (dotimes (i 256) (setf (s-box-0 s-boxes i) (aref +twofish-mds0+ (q-frob #b0011 i (aref box 0) (aref box 4) (aref box 8) (aref box 12))) (s-box-1 s-boxes i) (aref +twofish-mds1+ (q-frob #b0110 i (aref box 1) (aref box 5) (aref box 9) (aref box 13))) (s-box-2 s-boxes i) (aref +twofish-mds2+ (q-frob #b1000 i (aref box 2) (aref box 6) (aref box 10) (aref box 14))) (s-box-3 s-boxes i) (aref +twofish-mds3+ (q-frob #b1101 i (aref box 3) (aref box 7) (aref box 11) (aref box 15))))) (loop for i from 0 below 40 by 2 do (let ((x (logxor (aref +twofish-mds0+ (q-frob #b0011 i (aref key 24) (aref key 16) (aref key 8) (aref key 0))) (aref +twofish-mds1+ (q-frob #b0110 i (aref key 25) (aref key 17) (aref key 9) (aref key 1))) (aref +twofish-mds2+ (q-frob #b1000 i (aref key 26) (aref key 18) (aref key 10) (aref key 2))) (aref +twofish-mds3+ (q-frob #b1101 i (aref key 27) (aref key 19) (aref key 11) (aref key 3))))) (y (logxor (aref +twofish-mds0+ (q-frob #b0011 (1+ i) (aref key 28) (aref key 20) (aref key 12) (aref key 4))) (aref +twofish-mds1+ (q-frob #b0110 (1+ i) (aref key 29) (aref key 21) (aref key 13) (aref key 5))) (aref +twofish-mds2+ (q-frob #b1000 (1+ i) (aref key 30) (aref key 22) (aref key 14) (aref key 6))) (aref +twofish-mds3+ (q-frob #b1101 (1+ i) (aref key 31) (aref key 23) (aref key 15) (aref key 7)))))) (declare (type (unsigned-byte 32) x y)) (setf y (rol32 y 8)) (setf x (mod32+ x y)) (setf y (mod32+ y x)) (setf (aref round-keys i) x (aref round-keys (1+ i)) (rol32 y 9))) finally (return (values round-keys s-boxes))))) (define-block-encryptor twofish 16 (let ((round-keys (round-keys context)) (s-boxes (s-boxes context))) (declare (type twofish-round-keys round-keys)) (declare (type twofish-s-boxes s-boxes)) (macrolet ((encrypt-round (a b c d round) `(let ((x (logxor (s-box-0 s-boxes (first-byte ,a)) (s-box-1 s-boxes (second-byte ,a)) (s-box-2 s-boxes (third-byte ,a)) (s-box-3 s-boxes (fourth-byte ,a)))) (y (logxor (s-box-0 s-boxes (fourth-byte ,b)) (s-box-1 s-boxes (first-byte ,b)) (s-box-2 s-boxes (second-byte ,b)) (s-box-3 s-boxes (third-byte ,b))))) (declare (type (unsigned-byte 32) x y)) (setf x (mod32+ x y)) (setf y (mod32+ y (mod32+ x (aref round-keys (+ (* ,round 2) 9))))) (setf x (mod32+ x (aref round-keys (+ (* ,round 2) 8)))) (setf ,c (rol32 (logxor ,c x) 31) ,d (logxor (rol32 ,d 1) y))))) (with-words ((a b c d) plaintext plaintext-start :big-endian nil) (setf a (logxor a (aref round-keys 0)) b (logxor b (aref round-keys 1)) c (logxor c (aref round-keys 2)) d (logxor d (aref round-keys 3))) #.(loop for i from 0 below 16 if (evenp i) collect `(encrypt-round a b c d ,i) into rounds else collect `(encrypt-round c d a b ,i) into rounds finally (return `(progn ,@rounds))) (setf c (logxor c (aref round-keys 4)) d (logxor d (aref round-keys 5)) a (logxor a (aref round-keys 6)) b (logxor b (aref round-keys 7))) (store-words ciphertext ciphertext-start c d a b) (values))))) (define-block-decryptor twofish 16 (let ((round-keys (round-keys context)) (s-boxes (s-boxes context))) (declare (type twofish-round-keys round-keys)) (declare (type twofish-s-boxes s-boxes)) (macrolet ((decrypt-round (a b c d round) `(let ((x (logxor (s-box-0 s-boxes (first-byte ,a)) (s-box-1 s-boxes (second-byte ,a)) (s-box-2 s-boxes (third-byte ,a)) (s-box-3 s-boxes (fourth-byte ,a)))) (y (logxor (s-box-0 s-boxes (fourth-byte ,b)) (s-box-1 s-boxes (first-byte ,b)) (s-box-2 s-boxes (second-byte ,b)) (s-box-3 s-boxes (third-byte ,b))))) (declare (type (unsigned-byte 32) x y)) (setf x (mod32+ x y)) (setf y (mod32+ y (mod32+ x (aref round-keys (+ (* ,round 2) 9))))) (setf x (mod32+ x (aref round-keys (+ (* ,round 2) 8)))) (setf ,c (logxor (rol32 ,c 1) x) ,d (rol32 (logxor ,d y) 31))))) (with-words ((c d a b) ciphertext ciphertext-start :big-endian nil) (setf c (logxor c (aref round-keys 4)) d (logxor d (aref round-keys 5)) a (logxor a (aref round-keys 6)) b (logxor b (aref round-keys 7))) #.(loop for i from 15 downto 0 if (evenp i) collect `(decrypt-round a b c d ,i) into rounds else collect `(decrypt-round c d a b ,i) into rounds finally (return `(progn ,@rounds))) (setf a (logxor a (aref round-keys 0)) b (logxor b (aref round-keys 1)) c (logxor c (aref round-keys 2)) d (logxor d (aref round-keys 3))) (store-words plaintext plaintext-start a b c d) (values))))) ) ; MACROLET (defmethod schedule-key ((cipher twofish) key) (multiple-value-bind (round-keys s-boxes) (twofish-key-schedule key) (setf (round-keys cipher) round-keys (s-boxes cipher) s-boxes) cipher)) (defcipher twofish (:encrypt-function twofish-encrypt-block) (:decrypt-function twofish-decrypt-block) (:block-length 16) (:key-length (:fixed 16 24 32))) ironclad_0.33.0/src/ciphers/idea.lisp0000644000175000017500000001373411761302200014451 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; idea.lisp -- implementation of the IDEA block cipher ;;; converted mostly from the C code appearing in _Applied Cryptography_ ;;; by Bruce Schneier to Common Lisp. Beware the C-isms. (in-package :crypto) (defun idea-mul (a b) (declare (type (unsigned-byte 16) a b)) (cond ((zerop a) (ldb (byte 16 0) (- 1 b))) ((zerop b) (ldb (byte 16 0) (- 1 a))) (t (let* ((product (ldb (byte 32 0) (* a b))) (x (ldb (byte 16 16) product)) (y (ldb (byte 16 0) product))) (ldb (byte 16 0) (+ (- y x) (if (< y x) 1 0))))))) (defun idea-mul-inv (x) (declare (type (unsigned-byte 16) x)) (let ((t1 1)) (declare (type (unsigned-byte 16) t1)) (when (<= x 1) (return-from idea-mul-inv x)) (multiple-value-bind (t0 y) (truncate 65537 x) (declare (type (unsigned-byte 16) t0 y)) (loop until (= y 1) do (let ((q (truncate x y))) (declare (type (unsigned-byte 16) q)) (setf x (mod x y)) (incf t1 (ldb (byte 16 0) (* q t0))) (when (= x 1) (return-from idea-mul-inv t1)) (setf q (truncate y x)) (setf y (mod y x)) (incf t0 (ldb (byte 16 0) (* q t1)))) finally (return (ldb (byte 16 0) (- 1 t0))))))) (deftype idea-round-keys () '(simple-array (unsigned-byte 16) (52))) (defun idea-munge-block (input input-start output output-start keys) (declare (type (simple-array (unsigned-byte 8) (*)) input output)) (declare (type (integer 0 #.(- array-dimension-limit 8)) input-start output-start)) (declare (type idea-round-keys keys)) (with-words ((x1 x2 x3 x4) input input-start :size 2) (do ((i 0 (+ i 6))) ((>= i 48) ;; final round (setf x1 (idea-mul x1 (aref keys 48)) x2 (ldb (byte 16 0) (+ x2 (aref keys 50))) x3 (ldb (byte 16 0) (+ x3 (aref keys 49))) x4 (idea-mul x4 (aref keys 51))) (store-words output output-start x1 x3 x2 x4)) (setf x1 (idea-mul x1 (aref keys i)) x2 (ldb (byte 16 0) (+ x2 (aref keys (+ i 1)))) x3 (ldb (byte 16 0) (+ x3 (aref keys (+ i 2)))) x4 (idea-mul x4 (aref keys (+ i 3)))) (let ((t1 x3) (t0 x2)) (setf x3 (idea-mul (logxor x3 x1) (aref keys (+ i 4))) x2 (idea-mul (ldb (byte 16 0) (+ (logxor x2 x4) x3)) (aref keys (+ i 5)))) (setf x3 (ldb (byte 16 0) (+ x3 x2)) x1 (logxor x1 x2) x4 (logxor x4 x3) x2 (logxor x2 t1) x3 (logxor x3 t0)))))) (defclass idea (cipher 8-byte-block-mixin) ((encryption-keys :accessor encryption-keys) (decryption-keys :accessor decryption-keys))) (define-block-encryptor idea 8 (idea-munge-block plaintext plaintext-start ciphertext ciphertext-start (encryption-keys context))) (define-block-decryptor idea 8 (idea-munge-block ciphertext ciphertext-start plaintext plaintext-start (decryption-keys context))) (defun idea-invert-key (encryption-keys decryption-keys) (declare (type idea-round-keys encryption-keys decryption-keys)) (setf (aref decryption-keys 51) (idea-mul-inv (aref encryption-keys 3)) (aref decryption-keys 50) (ldb (byte 16 0) (- (aref encryption-keys 2))) (aref decryption-keys 49) (ldb (byte 16 0) (- (aref encryption-keys 1))) (aref decryption-keys 48) (idea-mul-inv (aref encryption-keys 0))) (do ((i 1 (1+ i)) (k 4 (+ k 6)) (counter 47)) ((>= i 8) (setf (aref decryption-keys 5) (aref encryption-keys 47) (aref decryption-keys 4) (aref encryption-keys 46) (aref decryption-keys 3) (idea-mul-inv (aref encryption-keys 51)) (aref decryption-keys 2) (ldb (byte 16 0) (- (aref encryption-keys 50))) (aref decryption-keys 1) (ldb (byte 16 0) (- (aref encryption-keys 49))) (aref decryption-keys 0) (idea-mul-inv (aref encryption-keys 48))) decryption-keys) (flet ((set-decryption-key (x) (setf (aref decryption-keys counter) x) (decf counter))) (declare (inline set-decryption-key)) (set-decryption-key (aref encryption-keys (+ k 1))) (set-decryption-key (aref encryption-keys k)) (set-decryption-key (idea-mul-inv (aref encryption-keys (+ k 5)))) (set-decryption-key (ldb (byte 16 0) (- (aref encryption-keys (+ k 3))))) (set-decryption-key (ldb (byte 16 0) (- (aref encryption-keys (+ k 4))))) (set-decryption-key (idea-mul-inv (aref encryption-keys (+ k 2))))))) (defun idea-key-schedule (key) (declare (type (simple-array (unsigned-byte 8) (16)) key)) (let ((encryption-keys (make-array 52 :element-type '(unsigned-byte 16))) (decryption-keys (make-array 52 :element-type '(unsigned-byte 16)))) (declare (type idea-round-keys encryption-keys decryption-keys)) (dotimes (i 8) (setf (aref encryption-keys i) (nibbles:ub16ref/be key (* i 2)))) (do ((j 1 (1+ (mod j 8))) (k 8 (1+ k)) (offset 0)) ((>= k 52) (values encryption-keys (idea-invert-key encryption-keys decryption-keys))) (setf (aref encryption-keys (+ j 7 offset)) (ldb (byte 16 0) (logior (ash (aref encryption-keys (+ (mod j 8) offset)) 9) (ash (aref encryption-keys (+ (mod (1+ j) 8) offset)) -7)))) (incf offset (if (= j 8) 8 0))))) (defmethod schedule-key ((cipher idea) key) (declare (type (simple-array (unsigned-byte 8) (16)) key)) (multiple-value-bind (encryption-keys decryption-keys) (idea-key-schedule key) (setf (encryption-keys cipher) encryption-keys (decryption-keys cipher) decryption-keys) cipher)) (defcipher idea (:encrypt-function idea-encrypt-block) (:decrypt-function idea-decrypt-block) (:block-length 8) (:key-length (:fixed 16))) ironclad_0.33.0/src/ciphers/misty1.lisp0000644000175000017500000002517111761302200014773 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; misty1.lisp -- implementation of the MISTY1 block cipher from RFC 2994 (in-package :crypto) ;;; required tables (defconst +misty1-s7table+ #8@(#x1B #x32 #x33 #x5A #x3B #x10 #x17 #x54 #x5B #x1A #x72 #x73 #x6B #x2C #x66 #x49 #x1F #x24 #x13 #x6C #x37 #x2E #x3F #x4A #x5D #x0F #x40 #x56 #x25 #x51 #x1C #x04 #x0B #x46 #x20 #x0D #x7B #x35 #x44 #x42 #x2B #x1E #x41 #x14 #x4B #x79 #x15 #x6F #x0E #x55 #x09 #x36 #x74 #x0C #x67 #x53 #x28 #x0A #x7E #x38 #x02 #x07 #x60 #x29 #x19 #x12 #x65 #x2F #x30 #x39 #x08 #x68 #x5F #x78 #x2A #x4C #x64 #x45 #x75 #x3D #x59 #x48 #x03 #x57 #x7C #x4F #x62 #x3C #x1D #x21 #x5E #x27 #x6A #x70 #x4D #x3A #x01 #x6D #x6E #x63 #x18 #x77 #x23 #x05 #x26 #x76 #x00 #x31 #x2D #x7A #x7F #x61 #x50 #x22 #x11 #x06 #x47 #x16 #x52 #x4E #x71 #x3E #x69 #x43 #x34 #x5C #x58 #x7D)) (defconst +misty1-s9table+ #16@(#x01C3 #x00CB #x0153 #x019F #x01E3 #x00E9 #x00FB #x0035 #x0181 #x00B9 #x0117 #x01EB #x0133 #x0009 #x002D #x00D3 #x00C7 #x014A #x0037 #x007E #x00EB #x0164 #x0193 #x01D8 #x00A3 #x011E #x0055 #x002C #x001D #x01A2 #x0163 #x0118 #x014B #x0152 #x01D2 #x000F #x002B #x0030 #x013A #x00E5 #x0111 #x0138 #x018E #x0063 #x00E3 #x00C8 #x01F4 #x001B #x0001 #x009D #x00F8 #x01A0 #x016D #x01F3 #x001C #x0146 #x007D #x00D1 #x0082 #x01EA #x0183 #x012D #x00F4 #x019E #x01D3 #x00DD #x01E2 #x0128 #x01E0 #x00EC #x0059 #x0091 #x0011 #x012F #x0026 #x00DC #x00B0 #x018C #x010F #x01F7 #x00E7 #x016C #x00B6 #x00F9 #x00D8 #x0151 #x0101 #x014C #x0103 #x00B8 #x0154 #x012B #x01AE #x0017 #x0071 #x000C #x0047 #x0058 #x007F #x01A4 #x0134 #x0129 #x0084 #x015D #x019D #x01B2 #x01A3 #x0048 #x007C #x0051 #x01CA #x0023 #x013D #x01A7 #x0165 #x003B #x0042 #x00DA #x0192 #x00CE #x00C1 #x006B #x009F #x01F1 #x012C #x0184 #x00FA #x0196 #x01E1 #x0169 #x017D #x0031 #x0180 #x010A #x0094 #x01DA #x0186 #x013E #x011C #x0060 #x0175 #x01CF #x0067 #x0119 #x0065 #x0068 #x0099 #x0150 #x0008 #x0007 #x017C #x00B7 #x0024 #x0019 #x00DE #x0127 #x00DB #x00E4 #x01A9 #x0052 #x0109 #x0090 #x019C #x01C1 #x0028 #x01B3 #x0135 #x016A #x0176 #x00DF #x01E5 #x0188 #x00C5 #x016E #x01DE #x01B1 #x00C3 #x01DF #x0036 #x00EE #x01EE #x00F0 #x0093 #x0049 #x009A #x01B6 #x0069 #x0081 #x0125 #x000B #x005E #x00B4 #x0149 #x01C7 #x0174 #x003E #x013B #x01B7 #x008E #x01C6 #x00AE #x0010 #x0095 #x01EF #x004E #x00F2 #x01FD #x0085 #x00FD #x00F6 #x00A0 #x016F #x0083 #x008A #x0156 #x009B #x013C #x0107 #x0167 #x0098 #x01D0 #x01E9 #x0003 #x01FE #x00BD #x0122 #x0089 #x00D2 #x018F #x0012 #x0033 #x006A #x0142 #x00ED #x0170 #x011B #x00E2 #x014F #x0158 #x0131 #x0147 #x005D #x0113 #x01CD #x0079 #x0161 #x01A5 #x0179 #x009E #x01B4 #x00CC #x0022 #x0132 #x001A #x00E8 #x0004 #x0187 #x01ED #x0197 #x0039 #x01BF #x01D7 #x0027 #x018B #x00C6 #x009C #x00D0 #x014E #x006C #x0034 #x01F2 #x006E #x00CA #x0025 #x00BA #x0191 #x00FE #x0013 #x0106 #x002F #x01AD #x0172 #x01DB #x00C0 #x010B #x01D6 #x00F5 #x01EC #x010D #x0076 #x0114 #x01AB #x0075 #x010C #x01E4 #x0159 #x0054 #x011F #x004B #x00C4 #x01BE #x00F7 #x0029 #x00A4 #x000E #x01F0 #x0077 #x004D #x017A #x0086 #x008B #x00B3 #x0171 #x00BF #x010E #x0104 #x0097 #x015B #x0160 #x0168 #x00D7 #x00BB #x0066 #x01CE #x00FC #x0092 #x01C5 #x006F #x0016 #x004A #x00A1 #x0139 #x00AF #x00F1 #x0190 #x000A #x01AA #x0143 #x017B #x0056 #x018D #x0166 #x00D4 #x01FB #x014D #x0194 #x019A #x0087 #x01F8 #x0123 #x00A7 #x01B8 #x0141 #x003C #x01F9 #x0140 #x002A #x0155 #x011A #x01A1 #x0198 #x00D5 #x0126 #x01AF #x0061 #x012E #x0157 #x01DC #x0072 #x018A #x00AA #x0096 #x0115 #x00EF #x0045 #x007B #x008D #x0145 #x0053 #x005F #x0178 #x00B2 #x002E #x0020 #x01D5 #x003F #x01C9 #x01E7 #x01AC #x0044 #x0038 #x0014 #x00B1 #x016B #x00AB #x00B5 #x005A #x0182 #x01C8 #x01D4 #x0018 #x0177 #x0064 #x00CF #x006D #x0100 #x0199 #x0130 #x015A #x0005 #x0120 #x01BB #x01BD #x00E0 #x004F #x00D6 #x013F #x01C4 #x012A #x0015 #x0006 #x00FF #x019B #x00A6 #x0043 #x0088 #x0050 #x015F #x01E8 #x0121 #x0073 #x017E #x00BC #x00C2 #x00C9 #x0173 #x0189 #x01F5 #x0074 #x01CC #x01E6 #x01A8 #x0195 #x001F #x0041 #x000D #x01BA #x0032 #x003D #x01D1 #x0080 #x00A8 #x0057 #x01B9 #x0162 #x0148 #x00D9 #x0105 #x0062 #x007A #x0021 #x01FF #x0112 #x0108 #x01C0 #x00A9 #x011D #x01B0 #x01A6 #x00CD #x00F3 #x005C #x0102 #x005B #x01D9 #x0144 #x01F6 #x00AD #x00A5 #x003A #x01CB #x0136 #x017F #x0046 #x00E1 #x001E #x01DD #x00E6 #x0137 #x01FA #x0185 #x008C #x008F #x0040 #x01B5 #x00BE #x0078 #x0000 #x00AC #x0110 #x015E #x0124 #x0002 #x01BC #x00A2 #x00EA #x0070 #x01FC #x0116 #x015C #x004C #x01C2)) ;;; types and context definition (deftype misty1-round-keys () '(simple-array (unsigned-byte 16) (32))) (defclass misty1 (cipher 8-byte-block-mixin) ((round-keys :accessor round-keys :type misty1-round-keys))) ;;; block functions and key expansion ;;; Declaring these inline produces screwy results in SBCL (bug?). (declaim (notinline fi fl fl-inv fo)) (defun fi (fi-in fi-key) (declare (type (unsigned-byte 16) fi-in fi-key)) (let ((d9 (ash fi-in -7)) (d7 (logand fi-in #x7f))) (declare (type (unsigned-byte 16) d9 d7)) (setf d9 (logxor d7 (aref +misty1-s9table+ d9)) d7 (logxor d9 (aref +misty1-s7table+ d7))) (setf d7 (logand d7 #x7f)) (setf d7 (logxor d7 (ash fi-key -9)) d9 (logxor d9 (logand fi-key #x1ff))) (setf d9 (logxor d7 (aref +misty1-s9table+ d9))) (ldb (byte 16 0) (logior (ash d7 9) d9)))) (defun fl (d0 d1 keys round) (declare (type misty1-round-keys keys)) (declare (type (unsigned-byte 16) d0 d1)) (cond ((evenp round) (let* ((d1 (logxor d1 (logand d0 (aref keys (truncate round 2))))) (d0 (logxor d0 (logior d1 (aref keys (+ (mod (+ (truncate round 2) 6) 8) 8)))))) (values d0 d1))) (t (let* ((d1 (logxor d1 (logand d0 (aref keys (+ (mod (+ (truncate (1- round) 2) 2) 8) 8))))) (d0 (logxor d0 (logior d1 (aref keys (mod (+ (truncate (1- round) 2) 4) 8)))))) (values d0 d1))))) (defun fl-inv (d0 d1 keys round) (declare (type misty1-round-keys keys)) (declare (type (unsigned-byte 16) d0 d1)) (cond ((evenp round) (let* ((d0 (logxor d0 (logior d1 (aref keys (+ (mod (+ (truncate round 2) 6) 8) 8))))) (d1 (logxor d1 (logand d0 (aref keys (truncate round 2)))))) (values d0 d1))) (t (let* ((d0 (logxor d0 (logior d1 (aref keys (mod (+ (truncate (1- round) 2) 4) 8))))) (d1 (logxor d1 (logand d0 (aref keys (+ (mod (+ (truncate (1- round) 2) 2) 8) 8)))))) (values d0 d1))))) (defun fo (t0 t1 keys round) (declare (type misty1-round-keys keys)) (declare (type (unsigned-byte 16) t0 t1)) (setf t0 (logxor t0 (aref keys round)) t0 (fi t0 (aref keys (+ (mod (+ round 5) 8) 8))) t0 (logxor t0 t1) t1 (logxor t1 (aref keys (mod (+ round 2) 8))) t1 (fi t1 (aref keys (+ (mod (+ round 1) 8) 8))) t1 (logxor t1 t0) t0 (logxor t0 (aref keys (mod (+ round 7) 8))) t0 (fi t0 (aref keys (+ (mod (+ round 3) 8) 8))) t0 (logxor t0 t1) t1 (logxor t1 (aref keys (mod (+ round 4) 8)))) (values t1 t0)) (define-block-encryptor misty1 8 (let ((round-keys (round-keys context))) (with-words ((d00 d01 d10 d11) plaintext plaintext-start :size 2) #.(loop for i from 0 below 8 if (evenp i) collect `(progn (multiple-value-setq (d00 d01) (fl d00 d01 round-keys ,i)) (multiple-value-setq (d10 d11) (fl d10 d11 round-keys (1+ ,i))) (multiple-value-bind (t0 t1) (fo d00 d01 round-keys ,i) (declare (type (unsigned-byte 16) t0 t1)) (multiple-value-setq (d10 d11) (values (logxor d10 t0) (logxor d11 t1))))) into forms else collect `(multiple-value-bind (t0 t1) (fo d10 d11 round-keys ,i) (declare (type (unsigned-byte 16) t0 t1)) (multiple-value-setq (d00 d01) (values (logxor d00 t0) (logxor d01 t1)))) into forms finally (return `(progn ,@forms (multiple-value-setq (d00 d01) (fl d00 d01 round-keys 8)) (multiple-value-setq (d10 d11) (fl d10 d11 round-keys 9))))) (store-words ciphertext ciphertext-start d10 d11 d00 d01)))) (define-block-decryptor misty1 8 (let ((round-keys (round-keys context))) (with-words ((d10 d11 d00 d01) ciphertext ciphertext-start :size 2) #.(loop for i from 7 downto 0 if (evenp i) collect `(progn (multiple-value-bind (t0 t1) (fo d00 d01 round-keys ,i) (declare (type (unsigned-byte 16) t0 t1)) (multiple-value-setq (d10 d11) (values (logxor d10 t0) (logxor d11 t1)))) (multiple-value-setq (d00 d01) (fl-inv d00 d01 round-keys ,i)) (multiple-value-setq (d10 d11) (fl-inv d10 d11 round-keys (1+ ,i)))) into forms else collect `(multiple-value-bind (t0 t1) (fo d10 d11 round-keys ,i) (declare (type (unsigned-byte 16) t0 t1)) (multiple-value-setq (d00 d01) (values (logxor d00 t0) (logxor d01 t1)))) into forms finally (return `(progn (multiple-value-setq (d00 d01) (fl-inv d00 d01 round-keys 8)) (multiple-value-setq (d10 d11) (fl-inv d10 d11 round-keys 9)) ,@forms))) (store-words plaintext plaintext-start d00 d01 d10 d11)))) (defun misty1-expand-key (key) (declare (type (simple-array (unsigned-byte 8) (16)) key)) (let ((key-schedule (make-array 32 :element-type '(unsigned-byte 16)))) (declare (type (simple-array (unsigned-byte 16) (32)) key-schedule)) ;; fill in the expanded key schedule (loop for i from 0 below 16 by 2 for j from 0 below 8 do (setf (aref key-schedule j) (nibbles:ub16ref/be key i))) ;; scramble (dotimes (i 8 key-schedule) (setf (aref key-schedule (+ i 8)) (fi (aref key-schedule i) (aref key-schedule (mod (1+ i) 8))) (aref key-schedule (+ i 16)) (logand (aref key-schedule (+ i 8)) #x01ff) (aref key-schedule (+ i 24)) (ash (aref key-schedule (+ i 8)) -9))))) (defmethod schedule-key ((cipher misty1) key) (let ((round-keys (misty1-expand-key key))) (setf (round-keys cipher) round-keys) cipher)) (defcipher misty1 (:encrypt-function misty1-encrypt-block) (:decrypt-function misty1-decrypt-block) (:block-length 8) (:key-length (:fixed 16))) ironclad_0.33.0/src/ciphers/square.lisp0000644000175000017500000004363411761302200015051 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; square.lisp -- implementation of the Square block cipher ;;; based on a public domain implementation by Paulo Baretto (FIXME!) (in-package :crypto) (declaim (type (simple-array (unsigned-byte 8) (256)) alogtable logtable)) (eval-when (:compile-toplevel :load-toplevel :execute) (defconst alogtable #.(let ((table (make-array 256 :element-type '(unsigned-byte 8) :initial-element 1))) (do ((i 1 (1+ i))) ((>= i 256) table) (let ((j (ash (aref table (1- i)) 1))) (when (logbitp 8 j) (setf j (logxor j #x1f5))) (setf (aref table i) (logand j #xff)))))) ) (defconst logtable #.(let ((table (make-array 256 :element-type '(unsigned-byte 8) :initial-element 0))) (do ((i 1 (1+ i))) ((>= i 256) (setf (aref table 1) 0) table) (setf (aref table (aref alogtable i)) i)))) (declaim (type (simple-array (unsigned-byte 8) (4 4)) g-matrix inverse-g-matrix)) (defconst g-matrix (make-array (list 4 4) :element-type '(unsigned-byte 8) :initial-contents (list (list 2 1 1 3) (list 3 2 1 1) (list 1 3 2 1) (list 1 1 3 2)))) (defconst inverse-g-matrix (make-array (list 4 4) :element-type '(unsigned-byte 8) :initial-contents (list (list #xe #x9 #xd #xb) (list #xb #xe #x9 #xd) (list #xd #xb #xe #x9) (list #x9 #xd #xb #xe)))) (declaim (type (simple-array (unsigned-byte 8) (256)) s-encryption-table s-decryption-table)) (defconst s-encryption-table #8@(177 206 195 149 90 173 231 2 77 68 251 145 12 135 161 80 203 103 84 221 70 143 225 78 240 253 252 235 249 196 26 110 94 245 204 141 28 86 67 254 7 97 248 117 89 255 3 34 138 209 19 238 136 0 14 52 21 128 148 227 237 181 83 35 75 71 23 167 144 53 171 216 184 223 79 87 154 146 219 27 60 200 153 4 142 224 215 125 133 187 64 44 58 69 241 66 101 32 65 24 114 37 147 112 54 5 242 11 163 121 236 8 39 49 50 182 124 176 10 115 91 123 183 129 210 13 106 38 158 88 156 131 116 179 172 48 122 105 119 15 174 33 222 208 46 151 16 164 152 168 212 104 45 98 41 109 22 73 118 199 232 193 150 55 229 202 244 233 99 18 194 166 20 188 211 40 175 47 230 36 82 198 160 9 189 140 207 93 17 95 1 197 159 61 162 155 201 59 190 81 25 31 63 92 178 239 74 205 191 186 111 100 217 243 62 180 170 220 213 6 192 126 246 102 108 132 113 56 185 29 127 157 72 139 42 218 165 51 130 57 214 120 134 250 228 43 169 30 137 96 107 234 85 76 247 226)) (defconst s-decryption-table #8@(53 190 7 46 83 105 219 40 111 183 118 107 12 125 54 139 146 188 169 50 172 56 156 66 99 200 30 79 36 229 247 201 97 141 47 63 179 101 127 112 175 154 234 245 91 152 144 177 135 113 114 237 55 69 104 163 227 239 92 197 80 193 214 202 90 98 95 38 9 93 20 65 232 157 206 64 253 8 23 74 15 199 180 62 18 252 37 75 129 44 4 120 203 187 32 189 249 41 153 168 211 96 223 17 151 137 126 250 224 155 31 210 103 226 100 119 132 43 158 138 241 109 136 121 116 87 221 230 57 123 238 131 225 88 242 13 52 248 48 233 185 35 84 21 68 11 77 102 58 3 162 145 148 82 76 195 130 231 128 192 182 14 194 108 147 236 171 67 149 246 216 70 134 5 140 176 117 0 204 133 215 61 115 122 72 228 209 89 173 184 198 208 220 161 170 2 29 191 181 159 81 196 165 16 34 207 1 186 143 49 124 174 150 218 240 86 71 212 235 78 217 19 142 73 85 22 255 59 244 164 178 6 160 167 251 27 110 60 51 205 24 94 106 213 166 33 222 254 42 28 243 10 26 25 39 45)) (declaim (type (simple-array (unsigned-byte 32) (256)) t-encryption-table t-decryption-table)) (defconst t-encryption-table #32@(#x97b1b126 #x69cecea7 #x73c3c3b0 #xdf95954a #xb45a5aee #xafadad02 #x3be7e7dc #x04020206 #x9a4d4dd7 #x884444cc #x03fbfbf8 #xd7919146 #x180c0c14 #xfb87877c #xb7a1a116 #xa05050f0 #x63cbcba8 #xce6767a9 #xa85454fc #x4fdddd92 #x8c4646ca #xeb8f8f64 #x37e1e1d6 #x9c4e4ed2 #x15f0f0e5 #x0ffdfdf2 #x0dfcfcf1 #x23ebebc8 #x07f9f9fe #x7dc4c4b9 #x341a1a2e #xdc6e6eb2 #xbc5e5ee2 #x1ff5f5ea #x6dcccca1 #xef8d8d62 #x381c1c24 #xac5656fa #x864343c5 #x09fefef7 #x0e070709 #xc26161a3 #x05f8f8fd #xea75759f #xb25959eb #x0bfffff4 #x06030305 #x44222266 #xe18a8a6b #x57d1d186 #x26131335 #x29eeeec7 #xe588886d #x00000000 #x1c0e0e12 #x6834345c #x2a15153f #xf5808075 #xdd949449 #x33e3e3d0 #x2fededc2 #x9fb5b52a #xa65353f5 #x46232365 #x964b4bdd #x8e4747c9 #x2e171739 #xbba7a71c #xd5909045 #x6a35355f #xa3abab08 #x45d8d89d #x85b8b83d #x4bdfdf94 #x9e4f4fd1 #xae5757f9 #xc19a9a5b #xd1929243 #x43dbdb98 #x361b1b2d #x783c3c44 #x65c8c8ad #xc799995e #x0804040c #xe98e8e67 #x35e0e0d5 #x5bd7d78c #xfa7d7d87 #xff85857a #x83bbbb38 #x804040c0 #x582c2c74 #x743a3a4e #x8a4545cf #x17f1f1e6 #x844242c6 #xca6565af #x40202060 #x824141c3 #x30181828 #xe4727296 #x4a25256f #xd3939340 #xe0707090 #x6c36365a #x0a05050f #x11f2f2e3 #x160b0b1d #xb3a3a310 #xf279798b #x2dececc1 #x10080818 #x4e272769 #x62313153 #x64323256 #x99b6b62f #xf87c7c84 #x95b0b025 #x140a0a1e #xe6737395 #xb65b5bed #xf67b7b8d #x9bb7b72c #xf7818176 #x51d2d283 #x1a0d0d17 #xd46a6abe #x4c26266a #xc99e9e57 #xb05858e8 #xcd9c9c51 #xf3838370 #xe874749c #x93b3b320 #xadacac01 #x60303050 #xf47a7a8e #xd26969bb #xee777799 #x1e0f0f11 #xa9aeae07 #x42212163 #x49dede97 #x55d0d085 #x5c2e2e72 #xdb97974c #x20101030 #xbda4a419 #xc598985d #xa5a8a80d #x5dd4d489 #xd06868b8 #x5a2d2d77 #xc46262a6 #x5229297b #xda6d6db7 #x2c16163a #x924949db #xec76769a #x7bc7c7bc #x25e8e8cd #x77c1c1b6 #xd996964f #x6e373759 #x3fe5e5da #x61cacaab #x1df4f4e9 #x27e9e9ce #xc66363a5 #x24121236 #x71c2c2b3 #xb9a6a61f #x2814143c #x8dbcbc31 #x53d3d380 #x50282878 #xabafaf04 #x5e2f2f71 #x39e6e6df #x4824246c #xa45252f6 #x79c6c6bf #xb5a0a015 #x1209091b #x8fbdbd32 #xed8c8c61 #x6bcfcfa4 #xba5d5de7 #x22111133 #xbe5f5fe1 #x02010103 #x7fc5c5ba #xcb9f9f54 #x7a3d3d47 #xb1a2a213 #xc39b9b58 #x67c9c9ae #x763b3b4d #x89bebe37 #xa25151f3 #x3219192b #x3e1f1f21 #x7e3f3f41 #xb85c5ce4 #x91b2b223 #x2befefc4 #x944a4ade #x6fcdcda2 #x8bbfbf34 #x81baba3b #xde6f6fb1 #xc86464ac #x47d9d99e #x13f3f3e0 #x7c3e3e42 #x9db4b429 #xa1aaaa0b #x4ddcdc91 #x5fd5d58a #x0c06060a #x75c0c0b5 #xfc7e7e82 #x19f6f6ef #xcc6666aa #xd86c6cb4 #xfd848479 #xe2717193 #x70383848 #x87b9b93e #x3a1d1d27 #xfe7f7f81 #xcf9d9d52 #x904848d8 #xe38b8b68 #x542a2a7e #x41dada9b #xbfa5a51a #x66333355 #xf1828273 #x7239394b #x59d6d68f #xf0787888 #xf986867f #x01fafafb #x3de4e4d9 #x562b2b7d #xa7a9a90e #x3c1e1e22 #xe789896e #xc06060a0 #xd66b6bbd #x21eaeacb #xaa5555ff #x984c4cd4 #x1bf7f7ec #x31e2e2d3)) (defconst t-decryption-table #32@(#xe368bc02 #x5585620c #x2a3f2331 #x61ab13f7 #x98d46d72 #x21cb9a19 #x3c22a461 #x459d3dcd #x05fdb423 #x2bc4075f #x9b2c01c0 #x3dd9800f #x486c5c74 #xf97f7e85 #xf173ab1f #xb6edde0e #x283c6bed #x4997781a #x9f2a918d #xc9579f33 #xa907a8aa #xa50ded7d #x7c422d8f #x764db0c9 #x4d91e857 #xcea963cc #xb4ee96d2 #x3028e1b6 #x0df161b9 #xbd196726 #x419bad80 #xc0a06ec7 #x5183f241 #x92dbf034 #x6fa21efc #x8f32ce4c #x13e03373 #x69a7c66d #xe56d6493 #xbf1a2ffa #xbb1cbfb7 #x587403b5 #xe76e2c4f #x5d89b796 #xe89c052a #x446619a3 #x342e71fb #x0ff22965 #xfe81827a #xb11322f1 #xa30835ec #xcd510f7e #xff7aa614 #x5c7293f8 #x2fc29712 #xf370e3c3 #x992f491c #xd1431568 #xc2a3261b #x88cc32b3 #x8acf7a6f #xb0e8069f #x7a47f51e #xd2bb79da #xe6950821 #x4398e55c #xd0b83106 #x11e37baf #x7e416553 #xccaa2b10 #xd8b4e49c #x6456a7d4 #xfb7c3659 #x724b2084 #xea9f4df6 #x6a5faadf #x2dc1dfce #x70486858 #xcaaff381 #x0605d891 #x5a774b69 #x94de28a5 #x39df1042 #x813bc347 #xfc82caa6 #x23c8d2c5 #x03f86cb2 #x080cd59a #xdab7ac40 #x7db909e1 #x3824342c #xcf5247a2 #xdcb274d1 #x63a85b2b #x35d55595 #x479e7511 #x15e5ebe2 #x4b9430c6 #x4a6f14a8 #x91239c86 #x4c6acc39 #x5f8aff4a #x0406904d #xee99ddbb #x1e1152ca #xaaffc418 #xeb646998 #x07fefcff #x8b345e01 #x567d0ebe #xbae79bd9 #x4263c132 #x75b5dc7b #x97264417 #x67aecb66 #x95250ccb #xec9a9567 #x57862ad0 #x60503799 #xb8e4d305 #x65ad83ba #x19efae35 #xa4f6c913 #xc15b4aa9 #x873e1bd6 #xa0f0595e #x18148a5b #xaf02703b #xab04e076 #xdd4950bf #xdf4a1863 #xc6a5b656 #x853d530a #xfa871237 #x77b694a7 #x4665517f #xed61b109 #x1bece6e9 #xd5458525 #xf5753b52 #x7fba413d #x27ce4288 #xb2eb4e43 #xd6bde997 #x527b9ef3 #x62537f45 #x2c3afba0 #x7bbcd170 #xb91ff76b #x121b171d #xfd79eec8 #x3a277cf0 #x0c0a45d7 #x96dd6079 #x2233f6ab #xacfa1c89 #xc8acbb5d #xa10b7d30 #xd4bea14b #xbee10b94 #x25cd0a54 #x547e4662 #xa2f31182 #x17e6a33e #x263566e6 #xc3580275 #x83388b9b #x7844bdc2 #x020348dc #x4f92a08b #x2e39b37c #x4e6984e5 #xf0888f71 #x362d3927 #x9cd2fd3f #x01fb246e #x893716dd #x00000000 #xf68d57e0 #xe293986c #x744ef815 #x9320d45a #xad0138e7 #xd3405db4 #x1a17c287 #xb3106a2d #x5078d62f #xf48e1f3c #xa70ea5a1 #x71b34c36 #x9ad725ae #x5e71db24 #x161d8750 #xef62f9d5 #x8d318690 #x1c121a16 #xa6f581cf #x5b8c6f07 #x37d61d49 #x6e593a92 #x84c67764 #x86c53fb8 #xd746cdf9 #xe090d0b0 #x29c74f83 #xe49640fd #x0e090d0b #x6da15620 #x8ec9ea22 #xdb4c882e #xf776738e #xb515b2bc #x10185fc1 #x322ba96a #x6ba48eb1 #xaef95455 #x406089ee #x6655ef08 #xe9672144 #x3e21ecbd #x2030be77 #xf28bc7ad #x80c0e729 #x141ecf8c #xbce24348 #xc4a6fe8a #x31d3c5d8 #xb716fa60 #x5380ba9d #xd94fc0f2 #x1de93e78 #x24362e3a #xe16bf4de #xcb54d7ef #x09f7f1f4 #x82c3aff5 #x0bf4b928 #x9d29d951 #xc75e9238 #xf8845aeb #x90d8b8e8 #xdeb13c0d #x33d08d04 #x685ce203 #xc55ddae4 #x3bdc589e #x0a0f9d46 #x3fdac8d3 #x598f27db #xa8fc8cc4 #x79bf99ac #x6c5a724e #x8ccaa2fe #x9ed1b5e3 #x1fea76a4 #x73b004ea)) (declaim (inline mul8)) (defun mul8 (a b) (declare (type (unsigned-byte 8) a b)) (if (or (zerop a) (zerop b)) 0 (aref alogtable (mod (+ (aref logtable a) (aref logtable b)) 255)))) ;;; this function only runs during the key generation process, so consing ;;; is acceptable. (defun transform (in in-offset out out-offset) (declare (type (simple-array (unsigned-byte 32) (*)) in out)) (let ((a-matrix (make-array (list 4 4) :element-type '(unsigned-byte 8))) (b-matrix (make-array (list 4 4) :element-type '(unsigned-byte 8) :initial-element 0))) (macrolet ((inref (index) `(aref in (+ ,index in-offset))) (outref (index) `(aref out (+ ,index out-offset)))) (dotimes (i 4) (dotimes (j 4) (setf (aref a-matrix i j) (logand (ash (inref i) (- (- 24 (* j 8)))) #xff)))) (dotimes (i 4) (dotimes (j 4) (dotimes (k 4) (setf (aref b-matrix i j) (logand (logxor (mul8 (aref a-matrix i k) (aref g-matrix k j)) (aref b-matrix i j)) #xff))))) (dotimes (i 4) (setf (outref i) 0) (dotimes (j 4) (setf (outref i) (logxor (outref i) (ash (aref b-matrix i j) (- 24 (* j 8)))))))))) (defun generate-round-keys (key n-rounds encrypt-roundkeys decrypt-roundkeys) (declare (type (simple-array (unsigned-byte 32) (*)) encrypt-roundkeys decrypt-roundkeys) (type (simple-array (unsigned-byte 8) (16)) key)) (let ((offset (make-array n-rounds :element-type '(unsigned-byte 8) :initial-element 1)) (tempkeys (make-array (* (1+ n-rounds) 4) :element-type '(unsigned-byte 32)))) (declare (type (simple-array (unsigned-byte 8) (*)) offset) (type (simple-array (unsigned-byte 32) (*)) tempkeys)) ;; hack for stupid C array punning (macrolet ((mdref (array i j) `(aref ,array (+ (* ,i 4) ,j)))) (do ((i 1 (1+ i))) ((>= i n-rounds)) (setf (aref offset i) (mul8 2 (aref offset (1- i))))) (dotimes (i 4) (setf (mdref tempkeys 0 i) (nibbles:ub32ref/be key (* 4 i)))) (do ((i 1 (1+ i))) ((>= i (1+ n-rounds))) (setf (mdref tempkeys i 0) (logxor (mdref tempkeys (1- i) 0) (rol32 (mdref tempkeys (1- i) 3) 8) (ash (aref offset (1- i)) 24)) (mdref tempkeys i 1) (logxor (mdref tempkeys (1- i) 1) (mdref tempkeys i 0)) (mdref tempkeys i 2) (logxor (mdref tempkeys (1- i) 2) (mdref tempkeys i 1)) (mdref tempkeys i 3) (logxor (mdref tempkeys (1- i) 3) (mdref tempkeys i 2)))) (dotimes (i n-rounds) (transform tempkeys (* i 4) encrypt-roundkeys (* i 4))) (dotimes (i 4) (setf (mdref encrypt-roundkeys n-rounds i) (mdref tempkeys n-rounds i))) (dotimes (i n-rounds) (dotimes (j 4) (setf (mdref decrypt-roundkeys i j) (mdref tempkeys (- n-rounds i) j)))) (dotimes (i 4) (setf (mdref decrypt-roundkeys n-rounds i) (mdref encrypt-roundkeys 0 i)))))) (declaim (inline square-munge-block)) (defun square-munge-block (round-keys n-rounds t-array s-array plaintext plaintext-start ciphertext ciphertext-start) (declare (type (simple-array (unsigned-byte 8) (*)) plaintext ciphertext) (type (simple-array (unsigned-byte 8) (256)) s-array) (type (simple-array (unsigned-byte 32) (*)) round-keys) (type (simple-array (unsigned-byte 32) (256)) t-array)) (declare (type (integer 0 #.(- array-dimension-limit 16)) plaintext-start ciphertext-start)) (with-words ((b0 b1 b2 b3) plaintext plaintext-start) (let ((a0 0) (a1 0) (a2 0) (a3 0)) (declare (type (unsigned-byte 32) a0 a1 a2 a3)) ;; initial key addition (setf b0 (logxor b0 (aref round-keys 0)) b1 (logxor b1 (aref round-keys 1)) b2 (logxor b2 (aref round-keys 2)) b3 (logxor b3 (aref round-keys 3))) ;; full rounds (do ((i 0 (1+ i)) (rk-offset 4 (+ rk-offset 4))) ((>= i (1- n-rounds))) (macrolet ((mix (tmpvar bytefun) `(setf ,tmpvar (logxor (aref t-array (,bytefun b0)) (mod32+ (mod32ash (aref t-array (,bytefun b1)) -8) (mod32ash (aref t-array (,bytefun b1)) 24)) (mod32+ (mod32ash (aref t-array (,bytefun b2)) -16) (mod32ash (aref t-array (,bytefun b2)) 16)) (mod32+ (mod32ash (aref t-array (,bytefun b3)) -24) (mod32ash (aref t-array (,bytefun b3)) 8)))))) (mix a0 fourth-byte) (mix a1 third-byte) (mix a2 second-byte) (mix a3 first-byte) (setf b0 (logxor a0 (aref round-keys (+ rk-offset 0))) b1 (logxor a1 (aref round-keys (+ rk-offset 1))) b2 (logxor a2 (aref round-keys (+ rk-offset 2))) b3 (logxor a3 (aref round-keys (+ rk-offset 3))))))) ;; last round (macrolet ((last-round (bytefun) `(mod32+ (mod32ash (aref s-array (,bytefun b0)) 24) (mod32+ (mod32ash (aref s-array (,bytefun b1)) 16) (mod32+ (mod32ash (aref s-array (,bytefun b2)) 8) (mod32ash (aref s-array (,bytefun b3)) 0))))) (rkref (index) `(aref round-keys (+ ,index (* n-rounds 4))))) (let ((t0 (last-round fourth-byte)) (t1 (last-round third-byte)) (t2 (last-round second-byte)) (t3 (last-round first-byte))) (declare (type (unsigned-byte 32) t0 t1 t2 t3)) (flet ((apply-rk (temp round-key) (declare (type (unsigned-byte 32) temp round-key)) (logxor temp round-key))) (declare (inline apply-rk)) (store-words ciphertext ciphertext-start (apply-rk t0 (rkref 0)) (apply-rk t1 (rkref 1)) (apply-rk t2 (rkref 2)) (apply-rk t3 (rkref 3)))))))) (defclass square (cipher 16-byte-block-mixin) ((encryption-round-keys :accessor encryption-round-keys :type (simple-array (unsigned-byte 32) (*))) (decryption-round-keys :accessor decryption-round-keys :type (simple-array (unsigned-byte 32) (*))) (n-rounds :initarg :n-rounds :reader n-rounds)) (:default-initargs :n-rounds 8)) (define-block-encryptor square 16 (let ((n-rounds (n-rounds context)) (round-keys (encryption-round-keys context))) (square-munge-block round-keys n-rounds t-encryption-table s-encryption-table plaintext plaintext-start ciphertext ciphertext-start))) (define-block-decryptor square 16 (let ((n-rounds (n-rounds context)) (round-keys (decryption-round-keys context))) (square-munge-block round-keys n-rounds t-decryption-table s-decryption-table ciphertext ciphertext-start plaintext plaintext-start))) (defmethod schedule-key ((cipher square) key) (let ((encryption-schedule (make-array (* 4 (1+ (n-rounds cipher))) :element-type '(unsigned-byte 32))) (decryption-schedule (make-array (* 4 (1+ (n-rounds cipher))) :element-type '(unsigned-byte 32)))) (generate-round-keys key (n-rounds cipher) encryption-schedule decryption-schedule) (setf (encryption-round-keys cipher) encryption-schedule (decryption-round-keys cipher) decryption-schedule) cipher)) (defcipher square (:encrypt-function square-encrypt-block) (:decrypt-function square-decrypt-block) (:block-length 16) (:key-length (:fixed 16))) ironclad_0.33.0/src/ciphers/rc2.lisp0000644000175000017500000002245311761302200014233 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; rc2.lisp -- implementation of the RC2 cipher algorithm from RFC 2268 (in-package :crypto) ;;; RC2 accepts a 1-byte to 128-byte key. But it also lets you specify ;;; an "effective key length" in bits, which effectively lets you have a ;;; 1-bit to 1024-bit key. The test vectors supplied in the RFC specify ;;; the effective key length as well as the bytes present in the key. ;;; ;;; This implementation does not support such generality: only effective ;;; key lengths from 8 bits to 1024 bits in multiples of eight are ;;; supported. It would be nice to support the more general ;;; functionality from the RFC; an interface for such functionality ;;; (maybe an :EFFECTIVE-KEY-LENGTH argument to `MAKE-CIPHER', ;;; applicable only to RC2) would also support specifying the number of ;;; rounds for many ciphers. ;;; PITABLE from section 2. (defconst +rc2-pitable+ #8@(#xd9 #x78 #xf9 #xc4 #x19 #xdd #xb5 #xed #x28 #xe9 #xfd #x79 #x4a #xa0 #xd8 #x9d #xc6 #x7e #x37 #x83 #x2b #x76 #x53 #x8e #x62 #x4c #x64 #x88 #x44 #x8b #xfb #xa2 #x17 #x9a #x59 #xf5 #x87 #xb3 #x4f #x13 #x61 #x45 #x6d #x8d #x09 #x81 #x7d #x32 #xbd #x8f #x40 #xeb #x86 #xb7 #x7b #x0b #xf0 #x95 #x21 #x22 #x5c #x6b #x4e #x82 #x54 #xd6 #x65 #x93 #xce #x60 #xb2 #x1c #x73 #x56 #xc0 #x14 #xa7 #x8c #xf1 #xdc #x12 #x75 #xca #x1f #x3b #xbe #xe4 #xd1 #x42 #x3d #xd4 #x30 #xa3 #x3c #xb6 #x26 #x6f #xbf #x0e #xda #x46 #x69 #x07 #x57 #x27 #xf2 #x1d #x9b #xbc #x94 #x43 #x03 #xf8 #x11 #xc7 #xf6 #x90 #xef #x3e #xe7 #x06 #xc3 #xd5 #x2f #xc8 #x66 #x1e #xd7 #x08 #xe8 #xea #xde #x80 #x52 #xee #xf7 #x84 #xaa #x72 #xac #x35 #x4d #x6a #x2a #x96 #x1a #xd2 #x71 #x5a #x15 #x49 #x74 #x4b #x9f #xd0 #x5e #x04 #x18 #xa4 #xec #xc2 #xe0 #x41 #x6e #x0f #x51 #xcb #xcc #x24 #x91 #xaf #x50 #xa1 #xf4 #x70 #x39 #x99 #x7c #x3a #x85 #x23 #xb8 #xb4 #x7a #xfc #x02 #x36 #x5b #x25 #x55 #x97 #x31 #x2d #x5d #xfa #x98 #xe3 #x8a #x92 #xae #x05 #xdf #x29 #x10 #x67 #x6c #xba #xc9 #xd3 #x00 #xe6 #xcf #xe1 #x9e #xa8 #x2c #x63 #x16 #x01 #x3f #x58 #xe2 #x89 #xa9 #x0d #x38 #x34 #x1b #xab #x33 #xff #xb0 #xbb #x48 #x0c #x5f #xb9 #xb1 #xcd #x2e #xc5 #xf3 #xdb #x47 #xe5 #xa5 #x9c #x77 #x0a #xa6 #x20 #x68 #xfe #x7f #xc1 #xad)) (deftype rc2-round-keys () '(simple-array (unsigned-byte 16) (64))) (defclass rc2 (cipher 8-byte-block-mixin) ((round-keys :accessor round-keys :type rc2-round-keys))) (declaim (inline rol16) (ftype (function ((unsigned-byte 16) (integer 0 15)) (unsigned-byte 16)))) (defun rol16 (x shift) (declare (type (unsigned-byte 16) x)) (declare (type (integer 0 15) shift)) (logior (ldb (byte 16 0) (ash x shift)) (ash x (- shift 16)))) (defun rc2-schedule-key (key effective-key-length) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (let* ((length (length key)) (lbuf (make-array 128 :element-type '(unsigned-byte 8) :initial-element 0)) (scheduled-key (make-array 64 :element-type '(unsigned-byte 16) :initial-element 0)) (t8 (truncate (+ effective-key-length 7) 8)) (tm (mod 255 (expt 2 (+ 8 effective-key-length (- (* t8 8))))))) (declare (type (integer 1 128) length)) (declare (type (simple-array (unsigned-byte 8) (128)) lbuf)) (declare (type rc2-round-keys scheduled-key)) (declare (dynamic-extent lbuf)) (replace lbuf key) (loop for j from length below 128 do (setf (aref lbuf j) (aref +rc2-pitable+ (mod (+ (aref lbuf (1- j)) (aref lbuf (- j length))) 256)))) (setf (aref lbuf (- 128 t8)) (aref +rc2-pitable+ (logand (aref lbuf (- 128 t8)) tm))) (loop for j from (- 127 t8) downto 0 do (setf (aref lbuf j) (aref +rc2-pitable+ (logxor (aref lbuf (1+ j)) (aref lbuf (+ j t8)))))) ;; If we wanted to really be a speed demon, we'd specialize this. (dotimes (i 64 scheduled-key) (setf (aref scheduled-key i) (nibbles:ub16ref/le lbuf (* i 2)))))) (macrolet ((mix (index) (loop for i from 0 below 4 collect (let ((x0 (intern (format nil "~A~D" '#:r i))) (x1 (intern (format nil "~A~D" '#:r (mod (- i 1) 4)))) (x2 (intern (format nil "~A~D" '#:r (mod (- i 2) 4)))) (x3 (intern (format nil "~A~D" '#:r (mod (- i 3) 4))))) `(progn (setf ,x0 (ldb (byte 16 0) (+ ,x0 (aref round-keys (+ (* 4 ,index) ,i)) (logand ,x1 ,x2) (logandc1 ,x1 ,x3)))) (setf ,x0 (rol16 ,x0 ,(case i (0 1) (1 2) (2 3) (3 5)))))) into forms finally (return `(progn ,@forms)))) (mash () (loop for i from 0 below 4 collect (let ((x0 (intern (format nil "~A~D" '#:r i))) (x1 (intern (format nil "~A~D" '#:r (mod (- i 1) 4))))) `(setf ,x0 (ldb (byte 16 0) (+ ,x0 (aref round-keys (ldb (byte 6 0) ,x1)))))) into forms finally (return `(progn ,@forms)))) (rmix (index) (loop for i from 0 below 4 collect (let ((x0 (intern (format nil "~A~D" '#:r i))) (x1 (intern (format nil "~A~D" '#:r (mod (- i 1) 4)))) (x2 (intern (format nil "~A~D" '#:r (mod (- i 2) 4)))) (x3 (intern (format nil "~A~D" '#:r (mod (- i 3) 4))))) `(progn (setf ,x0 (rol16 ,x0 ,(case i (0 15) (1 14) (2 13) (3 11)))) (setf ,x0 (ldb (byte 16 0) (- ,x0 (aref round-keys (+ (* 4 ,index) ,i)) (logand ,x1 ,x2) (logandc1 ,x1 ,x3)))))) into forms finally (return `(progn ,@(nreverse forms))))) (rmash () (loop for i from 0 below 4 collect (let ((x0 (intern (format nil "~A~D" '#:r (mod i 4)))) (x1 (intern (format nil "~A~D" '#:r (mod (- i 1) 4))))) `(setf ,x0 (ldb (byte 16 0) (- ,x0 (aref round-keys (ldb (byte 6 0) ,x1)))))) into forms finally (return `(progn ,@(nreverse forms)))))) (define-block-encryptor rc2 8 (let ((round-keys (round-keys context))) (declare (type rc2-round-keys round-keys)) (with-words ((r0 r1 r2 r3) plaintext plaintext-start :size 2 :big-endian nil) #.(loop for i from 0 below 18 collect (ecase i ((0 1 2 3 4 6 7 8 9 10 11 13 14 15 16 17) ;; mixing round `(mix ,(cond ((<= i 4) i) ((<= 6 i 11) (- i 1)) ((<= 13 i 17) (- i 2))))) ((5 12) ;; mashing round `(mash))) into forms finally (return `(progn ,@forms))) (store-words ciphertext ciphertext-start r0 r1 r2 r3)))) (define-block-decryptor rc2 8 (let ((round-keys (round-keys context))) (declare (type rc2-round-keys round-keys)) (with-words ((r0 r1 r2 r3) ciphertext ciphertext-start :size 2 :big-endian nil) #.(loop for i from 0 below 18 collect (ecase i ((0 1 2 3 4 6 7 8 9 10 11 13 14 15 16 17) ;; mixing round `(rmix ,(cond ((<= i 4) i) ((<= 6 i 11) (- i 1)) ((<= 13 i 17) (- i 2))))) ((5 12) ;; mashing round `(rmash))) into forms finally (return `(progn ,@(nreverse forms)))) (store-words plaintext plaintext-start r0 r1 r2 r3)))) ) ; MACROLET (defmethod schedule-key ((cipher rc2) key) (let* ((effective-key-length (* (length key) 8)) (round-keys (rc2-schedule-key key effective-key-length))) (setf (round-keys cipher) round-keys) cipher)) (defcipher rc2 (:encrypt-function rc2-encrypt-block) (:decrypt-function rc2-decrypt-block) (:block-length 8) (:key-length (:variable 1 128 1))) ironclad_0.33.0/src/ciphers/rc5.lisp0000644000175000017500000001156711761302200014242 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; rc5.lisp -- implementation of the RC5 encryption algorithm from RFC 2040 (in-package :ironclad) ;;; RC5 is technically a parameterized cipher admitting a variable ;;; number of rounds. This implementation expose a method of selecting ;;; the number of rounds to be used (`n-rounds' &key parameter in ;;; CREATE-RC5-CONTEXT), but none of the upper-level machinery actually ;;; uses this parameter. In a small overhaul of the MAKE-CIPHER ;;; functionality in Ironclad, it would be nice to change this state of ;;; affairs. 12 was the number of rounds suggested initially, but RC5 ;;; with 12 rounds is susceptible to a differential plaintext attack. ;;; OpenSSL supports 12 or 16 as the number of rounds (with no error ;;; checking, natch). ;;; ;;; See also the TODO file. (defconstant +rc5/32-p+ #xb7e15163) (defconstant +rc5/32-q+ #x9e3779b9) (defconstant +rc5-w+ 32) (defconstant +rc5-ww+ 4) (defconstant +rc5-b+ 64) (defconstant +rc5-bb+ 8) (deftype rc5-n-rounds () '(mod 256)) (deftype rc5-round-keys () '(simple-array (unsigned-byte 32) (*))) (defclass rc5 (cipher 8-byte-block-mixin) ((n-rounds :reader n-rounds :initarg :n-rounds :type rc5-n-rounds) (round-keys :accessor round-keys :type (simple-array (unsigned-byte 32) (*)))) (:default-initargs :n-rounds 12)) (define-block-encryptor rc5 8 (let ((n-rounds (n-rounds context)) (round-keys (round-keys context))) (declare (type rc5-n-rounds n-rounds)) (declare (type rc5-round-keys round-keys)) (with-words ((a b) plaintext plaintext-start :big-endian nil) (setf a (mod32+ a (aref round-keys 0)) b (mod32+ b (aref round-keys 1))) (do ((i 1 (1+ i))) ((> i n-rounds) (store-words ciphertext ciphertext-start a b)) (setf a (logxor a b)) (setf a (mod32+ (rol32 a (mod b 32)) (aref round-keys (* i 2)))) (setf b (logxor b a)) (setf b (mod32+ (rol32 b (mod a 32)) (aref round-keys (1+ (* i 2))))))))) (define-block-decryptor rc5 8 (let ((n-rounds (n-rounds context)) (round-keys (round-keys context))) (declare (type rc5-n-rounds n-rounds)) (declare (type rc5-round-keys round-keys)) (with-words ((a b) ciphertext ciphertext-start :big-endian nil) (do ((i n-rounds (1- i))) ((<= i 0) (setf b (mod32- b (aref round-keys 1)) a (mod32- a (aref round-keys 0))) (store-words plaintext plaintext-start a b)) (setf b (rol32 (mod32- b (aref round-keys (1+ (* i 2)))) (mod (- 32 (mod a 32)) 32))) (setf b (logxor b a)) (setf a (rol32 (mod32- a (aref round-keys (* i 2))) (mod (- 32 (mod b 32)) 32))) (setf a (logxor a b)))))) (defun rc5-expand-key (key n-rounds) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (declare (type rc5-n-rounds n-rounds)) (let* ((n-round-keys (* 2 (1+ n-rounds))) (round-keys (make-array n-round-keys :element-type '(unsigned-byte 32))) (expanded-key (make-array 256 :element-type '(unsigned-byte 8) :initial-element 0)) (n-expanded-key-words (ceiling (length key) 4)) (l (make-array 64 :element-type '(unsigned-byte 32)))) (declare (dynamic-extent expanded-key l)) (declare (type (simple-array (unsigned-byte 8) (256)) expanded-key)) (declare (type (simple-array (unsigned-byte 32) (64)) l)) (declare (type (simple-array (unsigned-byte 32) (*)) round-keys)) ;; convert the key into a sequence of (unsigned-byte 32). this way ;; is somewhat slow and consy, but it's easily shown to be correct. (replace expanded-key key) (loop for i from 0 below 64 do (setf (aref l i) (nibbles:ub32ref/le expanded-key (* i 4)))) ;; initialize the round keys (loop initially (setf (aref round-keys 0) +rc5/32-p+) for i from 1 below n-round-keys do (setf (aref round-keys i) (mod32+ (aref round-keys (1- i)) +rc5/32-q+))) ;; mix in the user's key (do ((k (* 3 (max n-expanded-key-words n-round-keys)) (1- k)) (a 0) (b 0) (i 0 (mod (1+ i) n-round-keys)) (j 0 (mod (1+ j) n-expanded-key-words))) ((<= k 0) round-keys) (declare (type (unsigned-byte 32) a b)) (setf a (rol32 (mod32+ (aref round-keys i) (mod32+ a b)) 3)) (setf (aref round-keys i) a) (setf b (let ((x (mod32+ a b))) (declare (type (unsigned-byte 32) x)) (rol32 (mod32+ (aref l j) x) (mod x 32)))) (setf (aref l j) b)))) (defmethod schedule-key ((cipher rc5) key) (let* ((n-rounds (n-rounds cipher)) (round-keys (rc5-expand-key key n-rounds))) (setf (round-keys cipher) round-keys) cipher)) (defcipher rc5 (:encrypt-function rc5-encrypt-block) (:decrypt-function rc5-decrypt-block) (:block-length 8) (:key-length (:variable 1 255 1))) ironclad_0.33.0/src/ciphers/rc6.lisp0000644000175000017500000001543111761302200014235 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; rc6.lisp -- implementation of the RC6 block cipher (in-package :ironclad) (defconstant +rc6/32-p+ #xb7e15163) (defconstant +rc6/32-q+ #x9e3779b9) (deftype rc6-n-rounds () '(mod 256)) (defclass rc6 (cipher 16-byte-block-mixin) ((n-rounds :reader n-rounds :initarg :n-rounds :type rc6-n-rounds) (round-keys :accessor round-keys :type (simple-array (unsigned-byte 32) (*)))) (:default-initargs :n-rounds 20)) ;;; The code generated by these functions produces lots of compiler ;;; notes under SBCL, but the resulting disassembly looks pretty good. ;;; I don't know where the notes originate from... (eval-when (:compile-toplevel :load-toplevel :execute) (defun generate-unrolled-rc6-encryption (n-rounds) (let* ((orig-vars (list 'a 'b 'c 'd)) (vars (setf (cdr (last orig-vars)) orig-vars))) (loop for i from 2 upto (* n-rounds 2) by 2 for (a b c d) on vars by #'cdr collect `(let ((v (rol32 (mod32* ,b #+(and sbcl x86) (ldb (byte 32 0) (sb-vm::%lea ,b ,b 1 1)) #-(and sbcl x86) (mod32+ (mod32ash ,b 1) 1)) 5)) (u (rol32 (mod32* ,d #+(and sbcl x86) (ldb (byte 32 0) (sb-vm::%lea ,d ,d 1 1)) #-(and sbcl x86) (mod32+ (mod32ash ,d 1) 1)) 5))) (declare (type (unsigned-byte 32) u v)) (setf ,a (mod32+ (rol32 (logxor ,a v) (mod u 32)) (aref round-keys ,i)) ,c (mod32+ (rol32 (logxor ,c u) (mod v 32)) (aref round-keys ,(1+ i))))) into forms finally (return `(let ((round-keys (round-keys context))) (declare (type (simple-array (unsigned-byte 32) (,(+ (* n-rounds 2) 4))) round-keys)) (with-words ((a b c d) plaintext plaintext-start :big-endian nil) (setf b (mod32+ b (aref round-keys 0)) d (mod32+ d (aref round-keys 1))) ,@forms (setf a (mod32+ a (aref round-keys (+ (* 2 ,n-rounds) 2))) c (mod32+ c (aref round-keys (+ (* 2 ,n-rounds) 3)))) (store-words ciphertext ciphertext-start a b c d))))))) (defun generate-unrolled-rc6-decryption (n-rounds) (let* ((orig-vars (list 'd 'a 'b 'c)) (vars (setf (cdr (last orig-vars)) orig-vars))) (loop for i from (* n-rounds 2) downto 2 by 2 for (a b c d) on vars by #'cdddr collect `(let ((u (rol32 (mod32* ,d #+(and sbcl x86) (ldb (byte 32 0) (sb-vm::%lea ,d ,d 1 1)) #-(and sbcl x86) (mod32+ (mod32ash ,d 1) 1)) 5)) (v (rol32 (mod32* ,b #+(and sbcl x86) (ldb (byte 32 0) (sb-vm::%lea ,b ,b 1 1)) #-(and sbcl x86) (mod32+ (mod32ash ,b 1) 1)) 5))) (declare (type (unsigned-byte 32) u v)) (setf ,c (logxor (ror32 (mod32- ,c (aref round-keys ,(1+ i))) (mod v 32)) u) ,a (logxor (ror32 (mod32- ,a (aref round-keys ,i)) (mod u 32)) v))) into forms finally (return `(let ((round-keys (round-keys context))) (declare (type (simple-array (unsigned-byte 32) (,(+ (* n-rounds 2) 4))) round-keys)) (with-words ((a b c d) ciphertext ciphertext-start :big-endian nil) (setf c (mod32- c (aref round-keys (+ (* 2 ,n-rounds) 3))) a (mod32- a (aref round-keys (+ (* 2 ,n-rounds) 2)))) ,@forms (setf d (mod32- d (aref round-keys 1)) b (mod32- b (aref round-keys 0))) (store-words plaintext plaintext-start a b c d))))))) ) ; EVAL-WHEN (define-block-encryptor rc6 16 #.(generate-unrolled-rc6-encryption 20)) (define-block-decryptor rc6 16 #.(generate-unrolled-rc6-decryption 20)) (defun rc6-expand-key (key n-rounds) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (declare (type rc6-n-rounds n-rounds)) (let* ((n-round-keys (* 2 (+ n-rounds 2))) (round-keys (make-array n-round-keys :element-type '(unsigned-byte 32))) (expanded-key (make-array 256 :element-type '(unsigned-byte 8) :initial-element 0)) (n-expanded-key-words (ceiling (length key) 4)) (l (make-array 64 :element-type '(unsigned-byte 32)))) (declare (dynamic-extent expanded-key l)) (declare (type (simple-array (unsigned-byte 8) (256)) expanded-key)) (declare (type (simple-array (unsigned-byte 32) (64)) l)) (declare (type (simple-array (unsigned-byte 32) (*)) round-keys)) ;; convert the key into a sequence of (unsigned-byte 32). this way ;; is somewhat slow and consy, but it's easily shown to be correct. (replace expanded-key key) (loop for i from 0 below 64 do (setf (aref l i) (nibbles:ub32ref/le expanded-key (* i 4)))) ;; initialize the round keys (loop initially (setf (aref round-keys 0) +rc6/32-p+) for i from 1 below n-round-keys do (setf (aref round-keys i) (mod32+ (aref round-keys (1- i)) +rc6/32-q+))) ;; mix in the user's key (do ((k (* 3 (max n-expanded-key-words n-round-keys)) (1- k)) (a 0) (b 0) (i 0 (mod (1+ i) n-round-keys)) (j 0 (mod (1+ j) n-expanded-key-words))) ((<= k 0) round-keys) (declare (type (unsigned-byte 32) a b)) (setf a (rol32 (mod32+ (aref round-keys i) (mod32+ a b)) 3)) (setf (aref round-keys i) a) (setf b (let ((x (mod32+ a b))) (declare (type (unsigned-byte 32) x)) (rol32 (mod32+ (aref l j) x) (mod x 32)))) (setf (aref l j) b)))) (defmethod schedule-key ((cipher rc6) key) (let* ((n-rounds (n-rounds cipher)) (round-keys (rc6-expand-key key n-rounds))) (setf (round-keys cipher) round-keys) cipher)) (defcipher rc6 (:encrypt-function rc6-encrypt-block) (:decrypt-function rc6-decrypt-block) (:block-length 16) (:key-length (:variable 1 255 1))) ironclad_0.33.0/src/ciphers/tea.lisp0000644000175000017500000000436611761302200014321 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) (defconstant +tea-n-rounds+ 32) (defconstant +tea-delta+ #x9e3779b9) (defclass tea (cipher 8-byte-block-mixin) ((key :accessor key))) (define-block-encryptor tea 8 (with-words ((y z) plaintext plaintext-start) (let ((key (key context)) (sum 0)) (declare (type (simple-array (unsigned-byte 32) (4)) key)) (declare (type (unsigned-byte 32) sum)) ;; could probably unroll this loop for reasonable performance gain (dotimes (i +tea-n-rounds+) (setf sum (mod32+ sum +tea-delta+)) (setf y (mod32+ y (logxor (mod32+ (mod32ash z 4) (aref key 0)) (mod32+ z sum) (mod32+ (mod32ash z -5) (aref key 1))))) (setf z (mod32+ z (logxor (mod32+ (mod32ash y 4) (aref key 2)) (mod32+ y sum) (mod32+ (mod32ash y -5) (aref key 3)))))) (store-words ciphertext ciphertext-start y z)))) (define-block-decryptor tea 8 (with-words ((y z) ciphertext ciphertext-start) (let ((key (key context)) (sum (mod32ash +tea-delta+ 5))) (declare (type (simple-array (unsigned-byte 32) (4)) key)) (declare (type (unsigned-byte 32) sum)) (dotimes (i +tea-n-rounds+) (setf z (mod32- z (logxor (mod32+ (mod32ash y 4) (aref key 2)) (mod32+ y sum) (mod32+ (mod32ash y -5) (aref key 3))))) (setf y (mod32- y (logxor (mod32+ (mod32ash z 4) (aref key 0)) (mod32+ z sum) (mod32+ (mod32ash z -5) (aref key 1))))) (setf sum (mod32- sum +tea-delta+))) (store-words plaintext plaintext-start y z)))) (defmethod schedule-key ((cipher tea) key) (let ((ub32key (make-array 4 :element-type '(unsigned-byte 32)))) (with-words ((a b c d) key 0) (setf (aref ub32key 0) a (aref ub32key 1) b (aref ub32key 2) c (aref ub32key 3) d) (setf (key cipher) ub32key) cipher))) (defcipher tea (:encrypt-function tea-encrypt-block) (:decrypt-function tea-decrypt-block) (:block-length 8) (:key-length (:fixed 16))) ironclad_0.33.0/src/ciphers/xtea.lisp0000644000175000017500000000534411761302200014506 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) (defconstant +xtea-n-rounds+ 32) (defconstant +xtea-delta+ #x9e3779b9) (defclass xtea (cipher 8-byte-block-mixin) ((key :accessor key))) (define-block-encryptor xtea 8 (with-words ((y z) plaintext plaintext-start) (let ((key (key context)) (sum 0)) (declare (type (simple-array (unsigned-byte 32) (4)) key)) (declare (type (unsigned-byte 32) sum)) ;; could probably unroll this loop for reasonable performance gain (dotimes (i +xtea-n-rounds+) (setf y (mod32+ y (logxor (mod32+ z (logxor (mod32ash z 4) (mod32ash z -5))) (mod32+ sum (aref key (logand sum #x3)))))) (setf sum (mod32+ sum +xtea-delta+)) (setf z (mod32+ z (logxor (mod32+ y (logxor (mod32ash y 4) (mod32ash y -5))) (mod32+ sum (aref key (logand (mod32ash sum -11) #x3)))))) ) (store-words ciphertext ciphertext-start y z)))) (define-block-decryptor xtea 8 (with-words ((y z) ciphertext ciphertext-start) (let ((key (key context)) (sum (mod32ash +xtea-delta+ 5))) (declare (type (simple-array (unsigned-byte 32) (4)) key)) (declare (type (unsigned-byte 32) sum)) ;; could probably unroll this loop for reasonable performance gain (dotimes (i +xtea-n-rounds+) (setf z (mod32- z (logxor (mod32+ y (logxor (mod32ash y 4) (mod32ash y -5))) (mod32+ sum (aref key (logand (mod32ash sum -11) #x3)))))) (setf sum (mod32- sum +xtea-delta+)) (setf y (mod32- y (logxor (mod32+ z (logxor (mod32ash z 4) (mod32ash z -5))) (mod32+ sum (aref key (logand sum #x3))))))) (store-words plaintext plaintext-start y z)))) (defmethod schedule-key ((cipher xtea) key) (let ((ub32key (make-array 4 :element-type '(unsigned-byte 32)))) (with-words ((a b c d) key 0) (setf (aref ub32key 0) a (aref ub32key 1) b (aref ub32key 2) c (aref ub32key 3) d) (setf (key cipher) ub32key) cipher))) (defcipher xtea (:encrypt-function xtea-encrypt-block) (:decrypt-function xtea-decrypt-block) (:block-length 8) (:key-length (:fixed 16))) ironclad_0.33.0/src/ciphers/cast5.lisp0000644000175000017500000012564712025632173014606 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; cast5.lisp -- implementation of rfc2144 CAST5 algorithm (in-package :crypto) ;;; s-boxes (declaim (type (simple-array (unsigned-byte 32) (256)) +cast5-sbox0+ +cast5-sbox1+ +cast5-sbox2+ +cast5-sbox3+ +cast5-sbox4+ +cast5-sbox5+ +cast5-sbox6+ +cast5-sbox7+)) (defconst +cast5-sbox0+ #32@(#x30fb40d4 #x9fa0ff0b #x6beccd2f #x3f258c7a #x1e213f2f #x9c004dd3 #x6003e540 #xcf9fc949 #xbfd4af27 #x88bbbdb5 #xe2034090 #x98d09675 #x6e63a0e0 #x15c361d2 #xc2e7661d #x22d4ff8e #x28683b6f #xc07fd059 #xff2379c8 #x775f50e2 #x43c340d3 #xdf2f8656 #x887ca41a #xa2d2bd2d #xa1c9e0d6 #x346c4819 #x61b76d87 #x22540f2f #x2abe32e1 #xaa54166b #x22568e3a #xa2d341d0 #x66db40c8 #xa784392f #x004dff2f #x2db9d2de #x97943fac #x4a97c1d8 #x527644b7 #xb5f437a7 #xb82cbaef #xd751d159 #x6ff7f0ed #x5a097a1f #x827b68d0 #x90ecf52e #x22b0c054 #xbc8e5935 #x4b6d2f7f #x50bb64a2 #xd2664910 #xbee5812d #xb7332290 #xe93b159f #xb48ee411 #x4bff345d #xfd45c240 #xad31973f #xc4f6d02e #x55fc8165 #xd5b1caad #xa1ac2dae #xa2d4b76d #xc19b0c50 #x882240f2 #x0c6e4f38 #xa4e4bfd7 #x4f5ba272 #x564c1d2f #xc59c5319 #xb949e354 #xb04669fe #xb1b6ab8a #xc71358dd #x6385c545 #x110f935d #x57538ad5 #x6a390493 #xe63d37e0 #x2a54f6b3 #x3a787d5f #x6276a0b5 #x19a6fcdf #x7a42206a #x29f9d4d5 #xf61b1891 #xbb72275e #xaa508167 #x38901091 #xc6b505eb #x84c7cb8c #x2ad75a0f #x874a1427 #xa2d1936b #x2ad286af #xaa56d291 #xd7894360 #x425c750d #x93b39e26 #x187184c9 #x6c00b32d #x73e2bb14 #xa0bebc3c #x54623779 #x64459eab #x3f328b82 #x7718cf82 #x59a2cea6 #x04ee002e #x89fe78e6 #x3fab0950 #x325ff6c2 #x81383f05 #x6963c5c8 #x76cb5ad6 #xd49974c9 #xca180dcf #x380782d5 #xc7fa5cf6 #x8ac31511 #x35e79e13 #x47da91d0 #xf40f9086 #xa7e2419e #x31366241 #x051ef495 #xaa573b04 #x4a805d8d #x548300d0 #x00322a3c #xbf64cddf #xba57a68e #x75c6372b #x50afd341 #xa7c13275 #x915a0bf5 #x6b54bfab #x2b0b1426 #xab4cc9d7 #x449ccd82 #xf7fbf265 #xab85c5f3 #x1b55db94 #xaad4e324 #xcfa4bd3f #x2deaa3e2 #x9e204d02 #xc8bd25ac #xeadf55b3 #xd5bd9e98 #xe31231b2 #x2ad5ad6c #x954329de #xadbe4528 #xd8710f69 #xaa51c90f #xaa786bf6 #x22513f1e #xaa51a79b #x2ad344cc #x7b5a41f0 #xd37cfbad #x1b069505 #x41ece491 #xb4c332e6 #x032268d4 #xc9600acc #xce387e6d #xbf6bb16c #x6a70fb78 #x0d03d9c9 #xd4df39de #xe01063da #x4736f464 #x5ad328d8 #xb347cc96 #x75bb0fc3 #x98511bfb #x4ffbcc35 #xb58bcf6a #xe11f0abc #xbfc5fe4a #xa70aec10 #xac39570a #x3f04442f #x6188b153 #xe0397a2e #x5727cb79 #x9ceb418f #x1cacd68d #x2ad37c96 #x0175cb9d #xc69dff09 #xc75b65f0 #xd9db40d8 #xec0e7779 #x4744ead4 #xb11c3274 #xdd24cb9e #x7e1c54bd #xf01144f9 #xd2240eb1 #x9675b3fd #xa3ac3755 #xd47c27af #x51c85f4d #x56907596 #xa5bb15e6 #x580304f0 #xca042cf1 #x011a37ea #x8dbfaadb #x35ba3e4a #x3526ffa0 #xc37b4d09 #xbc306ed9 #x98a52666 #x5648f725 #xff5e569d #x0ced63d0 #x7c63b2cf #x700b45e1 #xd5ea50f1 #x85a92872 #xaf1fbda7 #xd4234870 #xa7870bf3 #x2d3b4d79 #x42e04198 #x0cd0ede7 #x26470db8 #xf881814c #x474d6ad7 #x7c0c5e5c #xd1231959 #x381b7298 #xf5d2f4db #xab838653 #x6e2f1e23 #x83719c9e #xbd91e046 #x9a56456e #xdc39200c #x20c8c571 #x962bda1c #xe1e696ff #xb141ab08 #x7cca89b9 #x1a69e783 #x02cc4843 #xa2f7c579 #x429ef47d #x427b169c #x5ac9f049 #xdd8f0f00 #x5c8165bf)) (defconst +cast5-sbox1+ #32@(#x1f201094 #xef0ba75b #x69e3cf7e #x393f4380 #xfe61cf7a #xeec5207a #x55889c94 #x72fc0651 #xada7ef79 #x4e1d7235 #xd55a63ce #xde0436ba #x99c430ef #x5f0c0794 #x18dcdb7d #xa1d6eff3 #xa0b52f7b #x59e83605 #xee15b094 #xe9ffd909 #xdc440086 #xef944459 #xba83ccb3 #xe0c3cdfb #xd1da4181 #x3b092ab1 #xf997f1c1 #xa5e6cf7b #x01420ddb #xe4e7ef5b #x25a1ff41 #xe180f806 #x1fc41080 #x179bee7a #xd37ac6a9 #xfe5830a4 #x98de8b7f #x77e83f4e #x79929269 #x24fa9f7b #xe113c85b #xacc40083 #xd7503525 #xf7ea615f #x62143154 #x0d554b63 #x5d681121 #xc866c359 #x3d63cf73 #xcee234c0 #xd4d87e87 #x5c672b21 #x071f6181 #x39f7627f #x361e3084 #xe4eb573b #x602f64a4 #xd63acd9c #x1bbc4635 #x9e81032d #x2701f50c #x99847ab4 #xa0e3df79 #xba6cf38c #x10843094 #x2537a95e #xf46f6ffe #xa1ff3b1f #x208cfb6a #x8f458c74 #xd9e0a227 #x4ec73a34 #xfc884f69 #x3e4de8df #xef0e0088 #x3559648d #x8a45388c #x1d804366 #x721d9bfd #xa58684bb #xe8256333 #x844e8212 #x128d8098 #xfed33fb4 #xce280ae1 #x27e19ba5 #xd5a6c252 #xe49754bd #xc5d655dd #xeb667064 #x77840b4d #xa1b6a801 #x84db26a9 #xe0b56714 #x21f043b7 #xe5d05860 #x54f03084 #x066ff472 #xa31aa153 #xdadc4755 #xb5625dbf #x68561be6 #x83ca6b94 #x2d6ed23b #xeccf01db #xa6d3d0ba #xb6803d5c #xaf77a709 #x33b4a34c #x397bc8d6 #x5ee22b95 #x5f0e5304 #x81ed6f61 #x20e74364 #xb45e1378 #xde18639b #x881ca122 #xb96726d1 #x8049a7e8 #x22b7da7b #x5e552d25 #x5272d237 #x79d2951c #xc60d894c #x488cb402 #x1ba4fe5b #xa4b09f6b #x1ca815cf #xa20c3005 #x8871df63 #xb9de2fcb #x0cc6c9e9 #x0beeff53 #xe3214517 #xb4542835 #x9f63293c #xee41e729 #x6e1d2d7c #x50045286 #x1e6685f3 #xf33401c6 #x30a22c95 #x31a70850 #x60930f13 #x73f98417 #xa1269859 #xec645c44 #x52c877a9 #xcdff33a6 #xa02b1741 #x7cbad9a2 #x2180036f #x50d99c08 #xcb3f4861 #xc26bd765 #x64a3f6ab #x80342676 #x25a75e7b #xe4e6d1fc #x20c710e6 #xcdf0b680 #x17844d3b #x31eef84d #x7e0824e4 #x2ccb49eb #x846a3bae #x8ff77888 #xee5d60f6 #x7af75673 #x2fdd5cdb #xa11631c1 #x30f66f43 #xb3faec54 #x157fd7fa #xef8579cc #xd152de58 #xdb2ffd5e #x8f32ce19 #x306af97a #x02f03ef8 #x99319ad5 #xc242fa0f #xa7e3ebb0 #xc68e4906 #xb8da230c #x80823028 #xdcdef3c8 #xd35fb171 #x088a1bc8 #xbec0c560 #x61a3c9e8 #xbca8f54d #xc72feffa #x22822e99 #x82c570b4 #xd8d94e89 #x8b1c34bc #x301e16e6 #x273be979 #xb0ffeaa6 #x61d9b8c6 #x00b24869 #xb7ffce3f #x08dc283b #x43daf65a #xf7e19798 #x7619b72f #x8f1c9ba4 #xdc8637a0 #x16a7d3b1 #x9fc393b7 #xa7136eeb #xc6bcc63e #x1a513742 #xef6828bc #x520365d6 #x2d6a77ab #x3527ed4b #x821fd216 #x095c6e2e #xdb92f2fb #x5eea29cb #x145892f5 #x91584f7f #x5483697b #x2667a8cc #x85196048 #x8c4bacea #x833860d4 #x0d23e0f9 #x6c387e8a #x0ae6d249 #xb284600c #xd835731d #xdcb1c647 #xac4c56ea #x3ebd81b3 #x230eabb0 #x6438bc87 #xf0b5b1fa #x8f5ea2b3 #xfc184642 #x0a036b7a #x4fb089bd #x649da589 #xa345415e #x5c038323 #x3e5d3bb9 #x43d79572 #x7e6dd07c #x06dfdf1e #x6c6cc4ef #x7160a539 #x73bfbe70 #x83877605 #x4523ecf1)) (defconst +cast5-sbox2+ #32@(#x8defc240 #x25fa5d9f #xeb903dbf #xe810c907 #x47607fff #x369fe44b #x8c1fc644 #xaececa90 #xbeb1f9bf #xeefbcaea #xe8cf1950 #x51df07ae #x920e8806 #xf0ad0548 #xe13c8d83 #x927010d5 #x11107d9f #x07647db9 #xb2e3e4d4 #x3d4f285e #xb9afa820 #xfade82e0 #xa067268b #x8272792e #x553fb2c0 #x489ae22b #xd4ef9794 #x125e3fbc #x21fffcee #x825b1bfd #x9255c5ed #x1257a240 #x4e1a8302 #xbae07fff #x528246e7 #x8e57140e #x3373f7bf #x8c9f8188 #xa6fc4ee8 #xc982b5a5 #xa8c01db7 #x579fc264 #x67094f31 #xf2bd3f5f #x40fff7c1 #x1fb78dfc #x8e6bd2c1 #x437be59b #x99b03dbf #xb5dbc64b #x638dc0e6 #x55819d99 #xa197c81c #x4a012d6e #xc5884a28 #xccc36f71 #xb843c213 #x6c0743f1 #x8309893c #x0feddd5f #x2f7fe850 #xd7c07f7e #x02507fbf #x5afb9a04 #xa747d2d0 #x1651192e #xaf70bf3e #x58c31380 #x5f98302e #x727cc3c4 #x0a0fb402 #x0f7fef82 #x8c96fdad #x5d2c2aae #x8ee99a49 #x50da88b8 #x8427f4a0 #x1eac5790 #x796fb449 #x8252dc15 #xefbd7d9b #xa672597d #xada840d8 #x45f54504 #xfa5d7403 #xe83ec305 #x4f91751a #x925669c2 #x23efe941 #xa903f12e #x60270df2 #x0276e4b6 #x94fd6574 #x927985b2 #x8276dbcb #x02778176 #xf8af918d #x4e48f79e #x8f616ddf #xe29d840e #x842f7d83 #x340ce5c8 #x96bbb682 #x93b4b148 #xef303cab #x984faf28 #x779faf9b #x92dc560d #x224d1e20 #x8437aa88 #x7d29dc96 #x2756d3dc #x8b907cee #xb51fd240 #xe7c07ce3 #xe566b4a1 #xc3e9615e #x3cf8209d #x6094d1e3 #xcd9ca341 #x5c76460e #x00ea983b #xd4d67881 #xfd47572c #xf76cedd9 #xbda8229c #x127dadaa #x438a074e #x1f97c090 #x081bdb8a #x93a07ebe #xb938ca15 #x97b03cff #x3dc2c0f8 #x8d1ab2ec #x64380e51 #x68cc7bfb #xd90f2788 #x12490181 #x5de5ffd4 #xdd7ef86a #x76a2e214 #xb9a40368 #x925d958f #x4b39fffa #xba39aee9 #xa4ffd30b #xfaf7933b #x6d498623 #x193cbcfa #x27627545 #x825cf47a #x61bd8ba0 #xd11e42d1 #xcead04f4 #x127ea392 #x10428db7 #x8272a972 #x9270c4a8 #x127de50b #x285ba1c8 #x3c62f44f #x35c0eaa5 #xe805d231 #x428929fb #xb4fcdf82 #x4fb66a53 #x0e7dc15b #x1f081fab #x108618ae #xfcfd086d #xf9ff2889 #x694bcc11 #x236a5cae #x12deca4d #x2c3f8cc5 #xd2d02dfe #xf8ef5896 #xe4cf52da #x95155b67 #x494a488c #xb9b6a80c #x5c8f82bc #x89d36b45 #x3a609437 #xec00c9a9 #x44715253 #x0a874b49 #xd773bc40 #x7c34671c #x02717ef6 #x4feb5536 #xa2d02fff #xd2bf60c4 #xd43f03c0 #x50b4ef6d #x07478cd1 #x006e1888 #xa2e53f55 #xb9e6d4bc #xa2048016 #x97573833 #xd7207d67 #xde0f8f3d #x72f87b33 #xabcc4f33 #x7688c55d #x7b00a6b0 #x947b0001 #x570075d2 #xf9bb88f8 #x8942019e #x4264a5ff #x856302e0 #x72dbd92b #xee971b69 #x6ea22fde #x5f08ae2b #xaf7a616d #xe5c98767 #xcf1febd2 #x61efc8c2 #xf1ac2571 #xcc8239c2 #x67214cb8 #xb1e583d1 #xb7dc3e62 #x7f10bdce #xf90a5c38 #x0ff0443d #x606e6dc6 #x60543a49 #x5727c148 #x2be98a1d #x8ab41738 #x20e1be24 #xaf96da0f #x68458425 #x99833be5 #x600d457d #x282f9350 #x8334b362 #xd91d1120 #x2b6d8da0 #x642b1e31 #x9c305a00 #x52bce688 #x1b03588a #xf7baefd5 #x4142ed9c #xa4315c11 #x83323ec5 #xdfef4636 #xa133c501 #xe9d3531c #xee353783)) (defconst +cast5-sbox3+ #32@(#x9db30420 #x1fb6e9de #xa7be7bef #xd273a298 #x4a4f7bdb #x64ad8c57 #x85510443 #xfa020ed1 #x7e287aff #xe60fb663 #x095f35a1 #x79ebf120 #xfd059d43 #x6497b7b1 #xf3641f63 #x241e4adf #x28147f5f #x4fa2b8cd #xc9430040 #x0cc32220 #xfdd30b30 #xc0a5374f #x1d2d00d9 #x24147b15 #xee4d111a #x0fca5167 #x71ff904c #x2d195ffe #x1a05645f #x0c13fefe #x081b08ca #x05170121 #x80530100 #xe83e5efe #xac9af4f8 #x7fe72701 #xd2b8ee5f #x06df4261 #xbb9e9b8a #x7293ea25 #xce84ffdf #xf5718801 #x3dd64b04 #xa26f263b #x7ed48400 #x547eebe6 #x446d4ca0 #x6cf3d6f5 #x2649abdf #xaea0c7f5 #x36338cc1 #x503f7e93 #xd3772061 #x11b638e1 #x72500e03 #xf80eb2bb #xabe0502e #xec8d77de #x57971e81 #xe14f6746 #xc9335400 #x6920318f #x081dbb99 #xffc304a5 #x4d351805 #x7f3d5ce3 #xa6c866c6 #x5d5bcca9 #xdaec6fea #x9f926f91 #x9f46222f #x3991467d #xa5bf6d8e #x1143c44f #x43958302 #xd0214eeb #x022083b8 #x3fb6180c #x18f8931e #x281658e6 #x26486e3e #x8bd78a70 #x7477e4c1 #xb506e07c #xf32d0a25 #x79098b02 #xe4eabb81 #x28123b23 #x69dead38 #x1574ca16 #xdf871b62 #x211c40b7 #xa51a9ef9 #x0014377b #x041e8ac8 #x09114003 #xbd59e4d2 #xe3d156d5 #x4fe876d5 #x2f91a340 #x557be8de #x00eae4a7 #x0ce5c2ec #x4db4bba6 #xe756bdff #xdd3369ac #xec17b035 #x06572327 #x99afc8b0 #x56c8c391 #x6b65811c #x5e146119 #x6e85cb75 #xbe07c002 #xc2325577 #x893ff4ec #x5bbfc92d #xd0ec3b25 #xb7801ab7 #x8d6d3b24 #x20c763ef #xc366a5fc #x9c382880 #x0ace3205 #xaac9548a #xeca1d7c7 #x041afa32 #x1d16625a #x6701902c #x9b757a54 #x31d477f7 #x9126b031 #x36cc6fdb #xc70b8b46 #xd9e66a48 #x56e55a79 #x026a4ceb #x52437eff #x2f8f76b4 #x0df980a5 #x8674cde3 #xedda04eb #x17a9be04 #x2c18f4df #xb7747f9d #xab2af7b4 #xefc34d20 #x2e096b7c #x1741a254 #xe5b6a035 #x213d42f6 #x2c1c7c26 #x61c2f50f #x6552daf9 #xd2c231f8 #x25130f69 #xd8167fa2 #x0418f2c8 #x001a96a6 #x0d1526ab #x63315c21 #x5e0a72ec #x49bafefd #x187908d9 #x8d0dbd86 #x311170a7 #x3e9b640c #xcc3e10d7 #xd5cad3b6 #x0caec388 #xf73001e1 #x6c728aff #x71eae2a1 #x1f9af36e #xcfcbd12f #xc1de8417 #xac07be6b #xcb44a1d8 #x8b9b0f56 #x013988c3 #xb1c52fca #xb4be31cd #xd8782806 #x12a3a4e2 #x6f7de532 #x58fd7eb6 #xd01ee900 #x24adffc2 #xf4990fc5 #x9711aac5 #x001d7b95 #x82e5e7d2 #x109873f6 #x00613096 #xc32d9521 #xada121ff #x29908415 #x7fbb977f #xaf9eb3db #x29c9ed2a #x5ce2a465 #xa730f32c #xd0aa3fe8 #x8a5cc091 #xd49e2ce7 #x0ce454a9 #xd60acd86 #x015f1919 #x77079103 #xdea03af6 #x78a8565e #xdee356df #x21f05cbe #x8b75e387 #xb3c50651 #xb8a5c3ef #xd8eeb6d2 #xe523be77 #xc2154529 #x2f69efdf #xafe67afb #xf470c4b2 #xf3e0eb5b #xd6cc9876 #x39e4460c #x1fda8538 #x1987832f #xca007367 #xa99144f8 #x296b299e #x492fc295 #x9266beab #xb5676e69 #x9bd3ddda #xdf7e052f #xdb25701c #x1b5e51ee #xf65324e6 #x6afce36c #x0316cc04 #x8644213e #xb7dc59d0 #x7965291f #xccd6fd43 #x41823979 #x932bcdf6 #xb657c34d #x4edfd282 #x7ae5290c #x3cb9536b #x851e20fe #x9833557e #x13ecf0b0 #xd3ffb372 #x3f85c5c1 #x0aef7ed2)) (defconst +cast5-sbox4+ #32@(#x7ec90c04 #x2c6e74b9 #x9b0e66df #xa6337911 #xb86a7fff #x1dd358f5 #x44dd9d44 #x1731167f #x08fbf1fa #xe7f511cc #xd2051b00 #x735aba00 #x2ab722d8 #x386381cb #xacf6243a #x69befd7a #xe6a2e77f #xf0c720cd #xc4494816 #xccf5c180 #x38851640 #x15b0a848 #xe68b18cb #x4caadeff #x5f480a01 #x0412b2aa #x259814fc #x41d0efe2 #x4e40b48d #x248eb6fb #x8dba1cfe #x41a99b02 #x1a550a04 #xba8f65cb #x7251f4e7 #x95a51725 #xc106ecd7 #x97a5980a #xc539b9aa #x4d79fe6a #xf2f3f763 #x68af8040 #xed0c9e56 #x11b4958b #xe1eb5a88 #x8709e6b0 #xd7e07156 #x4e29fea7 #x6366e52d #x02d1c000 #xc4ac8e05 #x9377f571 #x0c05372a #x578535f2 #x2261be02 #xd642a0c9 #xdf13a280 #x74b55bd2 #x682199c0 #xd421e5ec #x53fb3ce8 #xc8adedb3 #x28a87fc9 #x3d959981 #x5c1ff900 #xfe38d399 #x0c4eff0b #x062407ea #xaa2f4fb1 #x4fb96976 #x90c79505 #xb0a8a774 #xef55a1ff #xe59ca2c2 #xa6b62d27 #xe66a4263 #xdf65001f #x0ec50966 #xdfdd55bc #x29de0655 #x911e739a #x17af8975 #x32c7911c #x89f89468 #x0d01e980 #x524755f4 #x03b63cc9 #x0cc844b2 #xbcf3f0aa #x87ac36e9 #xe53a7426 #x01b3d82b #x1a9e7449 #x64ee2d7e #xcddbb1da #x01c94910 #xb868bf80 #x0d26f3fd #x9342ede7 #x04a5c284 #x636737b6 #x50f5b616 #xf24766e3 #x8eca36c1 #x136e05db #xfef18391 #xfb887a37 #xd6e7f7d4 #xc7fb7dc9 #x3063fcdf #xb6f589de #xec2941da #x26e46695 #xb7566419 #xf654efc5 #xd08d58b7 #x48925401 #xc1bacb7f #xe5ff550f #xb6083049 #x5bb5d0e8 #x87d72e5a #xab6a6ee1 #x223a66ce #xc62bf3cd #x9e0885f9 #x68cb3e47 #x086c010f #xa21de820 #xd18b69de #xf3f65777 #xfa02c3f6 #x407edac3 #xcbb3d550 #x1793084d #xb0d70eba #x0ab378d5 #xd951fb0c #xded7da56 #x4124bbe4 #x94ca0b56 #x0f5755d1 #xe0e1e56e #x6184b5be #x580a249f #x94f74bc0 #xe327888e #x9f7b5561 #xc3dc0280 #x05687715 #x646c6bd7 #x44904db3 #x66b4f0a3 #xc0f1648a #x697ed5af #x49e92ff6 #x309e374f #x2cb6356a #x85808573 #x4991f840 #x76f0ae02 #x083be84d #x28421c9a #x44489406 #x736e4cb8 #xc1092910 #x8bc95fc6 #x7d869cf4 #x134f616f #x2e77118d #xb31b2be1 #xaa90b472 #x3ca5d717 #x7d161bba #x9cad9010 #xaf462ba2 #x9fe459d2 #x45d34559 #xd9f2da13 #xdbc65487 #xf3e4f94e #x176d486f #x097c13ea #x631da5c7 #x445f7382 #x175683f4 #xcdc66a97 #x70be0288 #xb3cdcf72 #x6e5dd2f3 #x20936079 #x459b80a5 #xbe60e2db #xa9c23101 #xeba5315c #x224e42f2 #x1c5c1572 #xf6721b2c #x1ad2fff3 #x8c25404e #x324ed72f #x4067b7fd #x0523138e #x5ca3bc78 #xdc0fd66e #x75922283 #x784d6b17 #x58ebb16e #x44094f85 #x3f481d87 #xfcfeae7b #x77b5ff76 #x8c2302bf #xaaf47556 #x5f46b02a #x2b092801 #x3d38f5f7 #x0ca81f36 #x52af4a8a #x66d5e7c0 #xdf3b0874 #x95055110 #x1b5ad7a8 #xf61ed5ad #x6cf6e479 #x20758184 #xd0cefa65 #x88f7be58 #x4a046826 #x0ff6f8f3 #xa09c7f70 #x5346aba0 #x5ce96c28 #xe176eda3 #x6bac307f #x376829d2 #x85360fa9 #x17e3fe2a #x24b79767 #xf5a96b20 #xd6cd2595 #x68ff1ebf #x7555442c #xf19f06be #xf9e0659a #xeeb9491d #x34010718 #xbb30cab8 #xe822fe15 #x88570983 #x750e6249 #xda627e55 #x5e76ffa8 #xb1534546 #x6d47de08 #xefe9e7d4)) (defconst +cast5-sbox5+ #32@(#xf6fa8f9d #x2cac6ce1 #x4ca34867 #xe2337f7c #x95db08e7 #x016843b4 #xeced5cbc #x325553ac #xbf9f0960 #xdfa1e2ed #x83f0579d #x63ed86b9 #x1ab6a6b8 #xde5ebe39 #xf38ff732 #x8989b138 #x33f14961 #xc01937bd #xf506c6da #xe4625e7e #xa308ea99 #x4e23e33c #x79cbd7cc #x48a14367 #xa3149619 #xfec94bd5 #xa114174a #xeaa01866 #xa084db2d #x09a8486f #xa888614a #x2900af98 #x01665991 #xe1992863 #xc8f30c60 #x2e78ef3c #xd0d51932 #xcf0fec14 #xf7ca07d2 #xd0a82072 #xfd41197e #x9305a6b0 #xe86be3da #x74bed3cd #x372da53c #x4c7f4448 #xdab5d440 #x6dba0ec3 #x083919a7 #x9fbaeed9 #x49dbcfb0 #x4e670c53 #x5c3d9c01 #x64bdb941 #x2c0e636a #xba7dd9cd #xea6f7388 #xe70bc762 #x35f29adb #x5c4cdd8d #xf0d48d8c #xb88153e2 #x08a19866 #x1ae2eac8 #x284caf89 #xaa928223 #x9334be53 #x3b3a21bf #x16434be3 #x9aea3906 #xefe8c36e #xf890cdd9 #x80226dae #xc340a4a3 #xdf7e9c09 #xa694a807 #x5b7c5ecc #x221db3a6 #x9a69a02f #x68818a54 #xceb2296f #x53c0843a #xfe893655 #x25bfe68a #xb4628abc #xcf222ebf #x25ac6f48 #xa9a99387 #x53bddb65 #xe76ffbe7 #xe967fd78 #x0ba93563 #x8e342bc1 #xe8a11be9 #x4980740d #xc8087dfc #x8de4bf99 #xa11101a0 #x7fd37975 #xda5a26c0 #xe81f994f #x9528cd89 #xfd339fed #xb87834bf #x5f04456d #x22258698 #xc9c4c83b #x2dc156be #x4f628daa #x57f55ec5 #xe2220abe #xd2916ebf #x4ec75b95 #x24f2c3c0 #x42d15d99 #xcd0d7fa0 #x7b6e27ff #xa8dc8af0 #x7345c106 #xf41e232f #x35162386 #xe6ea8926 #x3333b094 #x157ec6f2 #x372b74af #x692573e4 #xe9a9d848 #xf3160289 #x3a62ef1d #xa787e238 #xf3a5f676 #x74364853 #x20951063 #x4576698d #xb6fad407 #x592af950 #x36f73523 #x4cfb6e87 #x7da4cec0 #x6c152daa #xcb0396a8 #xc50dfe5d #xfcd707ab #x0921c42f #x89dff0bb #x5fe2be78 #x448f4f33 #x754613c9 #x2b05d08d #x48b9d585 #xdc049441 #xc8098f9b #x7dede786 #xc39a3373 #x42410005 #x6a091751 #x0ef3c8a6 #x890072d6 #x28207682 #xa9a9f7be #xbf32679d #xd45b5b75 #xb353fd00 #xcbb0e358 #x830f220a #x1f8fb214 #xd372cf08 #xcc3c4a13 #x8cf63166 #x061c87be #x88c98f88 #x6062e397 #x47cf8e7a #xb6c85283 #x3cc2acfb #x3fc06976 #x4e8f0252 #x64d8314d #xda3870e3 #x1e665459 #xc10908f0 #x513021a5 #x6c5b68b7 #x822f8aa0 #x3007cd3e #x74719eef #xdc872681 #x073340d4 #x7e432fd9 #x0c5ec241 #x8809286c #xf592d891 #x08a930f6 #x957ef305 #xb7fbffbd #xc266e96f #x6fe4ac98 #xb173ecc0 #xbc60b42a #x953498da #xfba1ae12 #x2d4bd736 #x0f25faab #xa4f3fceb #xe2969123 #x257f0c3d #x9348af49 #x361400bc #xe8816f4a #x3814f200 #xa3f94043 #x9c7a54c2 #xbc704f57 #xda41e7f9 #xc25ad33a #x54f4a084 #xb17f5505 #x59357cbe #xedbd15c8 #x7f97c5ab #xba5ac7b5 #xb6f6deaf #x3a479c3a #x5302da25 #x653d7e6a #x54268d49 #x51a477ea #x5017d55b #xd7d25d88 #x44136c76 #x0404a8c8 #xb8e5a121 #xb81a928a #x60ed5869 #x97c55b96 #xeaec991b #x29935913 #x01fdb7f1 #x088e8dfa #x9ab6f6f5 #x3b4cbf9f #x4a5de3ab #xe6051d35 #xa0e1d855 #xd36b4cf1 #xf544edeb #xb0e93524 #xbebb8fbd #xa2d762cf #x49c92f54 #x38b5f331 #x7128a454 #x48392905 #xa65b1db8 #x851c97bd #xd675cf2f)) (defconst +cast5-sbox6+ #32@(#x85e04019 #x332bf567 #x662dbfff #xcfc65693 #x2a8d7f6f #xab9bc912 #xde6008a1 #x2028da1f #x0227bce7 #x4d642916 #x18fac300 #x50f18b82 #x2cb2cb11 #xb232e75c #x4b3695f2 #xb28707de #xa05fbcf6 #xcd4181e9 #xe150210c #xe24ef1bd #xb168c381 #xfde4e789 #x5c79b0d8 #x1e8bfd43 #x4d495001 #x38be4341 #x913cee1d #x92a79c3f #x089766be #xbaeeadf4 #x1286becf #xb6eacb19 #x2660c200 #x7565bde4 #x64241f7a #x8248dca9 #xc3b3ad66 #x28136086 #x0bd8dfa8 #x356d1cf2 #x107789be #xb3b2e9ce #x0502aa8f #x0bc0351e #x166bf52a #xeb12ff82 #xe3486911 #xd34d7516 #x4e7b3aff #x5f43671b #x9cf6e037 #x4981ac83 #x334266ce #x8c9341b7 #xd0d854c0 #xcb3a6c88 #x47bc2829 #x4725ba37 #xa66ad22b #x7ad61f1e #x0c5cbafa #x4437f107 #xb6e79962 #x42d2d816 #x0a961288 #xe1a5c06e #x13749e67 #x72fc081a #xb1d139f7 #xf9583745 #xcf19df58 #xbec3f756 #xc06eba30 #x07211b24 #x45c28829 #xc95e317f #xbc8ec511 #x38bc46e9 #xc6e6fa14 #xbae8584a #xad4ebc46 #x468f508b #x7829435f #xf124183b #x821dba9f #xaff60ff4 #xea2c4e6d #x16e39264 #x92544a8b #x009b4fc3 #xaba68ced #x9ac96f78 #x06a5b79a #xb2856e6e #x1aec3ca9 #xbe838688 #x0e0804e9 #x55f1be56 #xe7e5363b #xb3a1f25d #xf7debb85 #x61fe033c #x16746233 #x3c034c28 #xda6d0c74 #x79aac56c #x3ce4e1ad #x51f0c802 #x98f8f35a #x1626a49f #xeed82b29 #x1d382fe3 #x0c4fb99a #xbb325778 #x3ec6d97b #x6e77a6a9 #xcb658b5c #xd45230c7 #x2bd1408b #x60c03eb7 #xb9068d78 #xa33754f4 #xf430c87d #xc8a71302 #xb96d8c32 #xebd4e7be #xbe8b9d2d #x7979fb06 #xe7225308 #x8b75cf77 #x11ef8da4 #xe083c858 #x8d6b786f #x5a6317a6 #xfa5cf7a0 #x5dda0033 #xf28ebfb0 #xf5b9c310 #xa0eac280 #x08b9767a #xa3d9d2b0 #x79d34217 #x021a718d #x9ac6336a #x2711fd60 #x438050e3 #x069908a8 #x3d7fedc4 #x826d2bef #x4eeb8476 #x488dcf25 #x36c9d566 #x28e74e41 #xc2610aca #x3d49a9cf #xbae3b9df #xb65f8de6 #x92aeaf64 #x3ac7d5e6 #x9ea80509 #xf22b017d #xa4173f70 #xdd1e16c3 #x15e0d7f9 #x50b1b887 #x2b9f4fd5 #x625aba82 #x6a017962 #x2ec01b9c #x15488aa9 #xd716e740 #x40055a2c #x93d29a22 #xe32dbf9a #x058745b9 #x3453dc1e #xd699296e #x496cff6f #x1c9f4986 #xdfe2ed07 #xb87242d1 #x19de7eae #x053e561a #x15ad6f8c #x66626c1c #x7154c24c #xea082b2a #x93eb2939 #x17dcb0f0 #x58d4f2ae #x9ea294fb #x52cf564c #x9883fe66 #x2ec40581 #x763953c3 #x01d6692e #xd3a0c108 #xa1e7160e #xe4f2dfa6 #x693ed285 #x74904698 #x4c2b0edd #x4f757656 #x5d393378 #xa132234f #x3d321c5d #xc3f5e194 #x4b269301 #xc79f022f #x3c997e7e #x5e4f9504 #x3ffafbbd #x76f7ad0e #x296693f4 #x3d1fce6f #xc61e45be #xd3b5ab34 #xf72bf9b7 #x1b0434c0 #x4e72b567 #x5592a33d #xb5229301 #xcfd2a87f #x60aeb767 #x1814386b #x30bcc33d #x38a0c07d #xfd1606f2 #xc363519b #x589dd390 #x5479f8e6 #x1cb8d647 #x97fd61a9 #xea7759f4 #x2d57539d #x569a58cf #xe84e63ad #x462e1b78 #x6580f87e #xf3817914 #x91da55f4 #x40a230f3 #xd1988f35 #xb6e318d2 #x3ffa50bc #x3d40f021 #xc3c0bdae #x4958c24c #x518f36b2 #x84b1d370 #x0fedce83 #x878ddada #xf2a279c7 #x94e01be8 #x90716f4b #x954b8aa3)) (defconst +cast5-sbox7+ #32@(#xe216300d #xbbddfffc #xa7ebdabd #x35648095 #x7789f8b7 #xe6c1121b #x0e241600 #x052ce8b5 #x11a9cfb0 #xe5952f11 #xece7990a #x9386d174 #x2a42931c #x76e38111 #xb12def3a #x37ddddfc #xde9adeb1 #x0a0cc32c #xbe197029 #x84a00940 #xbb243a0f #xb4d137cf #xb44e79f0 #x049eedfd #x0b15a15d #x480d3168 #x8bbbde5a #x669ded42 #xc7ece831 #x3f8f95e7 #x72df191b #x7580330d #x94074251 #x5c7dcdfa #xabbe6d63 #xaa402164 #xb301d40a #x02e7d1ca #x53571dae #x7a3182a2 #x12a8ddec #xfdaa335d #x176f43e8 #x71fb46d4 #x38129022 #xce949ad4 #xb84769ad #x965bd862 #x82f3d055 #x66fb9767 #x15b80b4e #x1d5b47a0 #x4cfde06f #xc28ec4b8 #x57e8726e #x647a78fc #x99865d44 #x608bd593 #x6c200e03 #x39dc5ff6 #x5d0b00a3 #xae63aff2 #x7e8bd632 #x70108c0c #xbbd35049 #x2998df04 #x980cf42a #x9b6df491 #x9e7edd53 #x06918548 #x58cb7e07 #x3b74ef2e #x522fffb1 #xd24708cc #x1c7e27cd #xa4eb215b #x3cf1d2e2 #x19b47a38 #x424f7618 #x35856039 #x9d17dee7 #x27eb35e6 #xc9aff67b #x36baf5b8 #x09c467cd #xc18910b1 #xe11dbf7b #x06cd1af8 #x7170c608 #x2d5e3354 #xd4de495a #x64c6d006 #xbcc0c62c #x3dd00db3 #x708f8f34 #x77d51b42 #x264f620f #x24b8d2bf #x15c1b79e #x46a52564 #xf8d7e54e #x3e378160 #x7895cda5 #x859c15a5 #xe6459788 #xc37bc75f #xdb07ba0c #x0676a3ab #x7f229b1e #x31842e7b #x24259fd7 #xf8bef472 #x835ffcb8 #x6df4c1f2 #x96f5b195 #xfd0af0fc #xb0fe134c #xe2506d3d #x4f9b12ea #xf215f225 #xa223736f #x9fb4c428 #x25d04979 #x34c713f8 #xc4618187 #xea7a6e98 #x7cd16efc #x1436876c #xf1544107 #xbedeee14 #x56e9af27 #xa04aa441 #x3cf7c899 #x92ecbae6 #xdd67016d #x151682eb #xa842eedf #xfdba60b4 #xf1907b75 #x20e3030f #x24d8c29e #xe139673b #xefa63fb8 #x71873054 #xb6f2cf3b #x9f326442 #xcb15a4cc #xb01a4504 #xf1e47d8d #x844a1be5 #xbae7dfdc #x42cbda70 #xcd7dae0a #x57e85b7a #xd53f5af6 #x20cf4d8c #xcea4d428 #x79d130a4 #x3486ebfb #x33d3cddc #x77853b53 #x37effcb5 #xc5068778 #xe580b3e6 #x4e68b8f4 #xc5c8b37e #x0d809ea2 #x398feb7c #x132a4f94 #x43b7950e #x2fee7d1c #x223613bd #xdd06caa2 #x37df932b #xc4248289 #xacf3ebc3 #x5715f6b7 #xef3478dd #xf267616f #xc148cbe4 #x9052815e #x5e410fab #xb48a2465 #x2eda7fa4 #xe87b40e4 #xe98ea084 #x5889e9e1 #xefd390fc #xdd07d35b #xdb485694 #x38d7e5b2 #x57720101 #x730edebc #x5b643113 #x94917e4f #x503c2fba #x646f1282 #x7523d24a #xe0779695 #xf9c17a8f #x7a5b2121 #xd187b896 #x29263a4d #xba510cdf #x81f47c9f #xad1163ed #xea7b5965 #x1a00726e #x11403092 #x00da6d77 #x4a0cdd61 #xad1f4603 #x605bdfb0 #x9eedc364 #x22ebe6a8 #xcee7d28a #xa0e736a0 #x5564a6b9 #x10853209 #xc7eb8f37 #x2de705ca #x8951570f #xdf09822b #xbd691a6c #xaa12e4f2 #x87451c0f #xe0f6a27a #x3ada4819 #x4cf1764f #x0d771c2b #x67cdb156 #x350d8384 #x5938fa0f #x42399ef3 #x36997b07 #x0e84093d #x4aa93e61 #x8360d87b #x1fa98b0c #x1149382c #xe97625a5 #x0614d1b7 #x0e25244b #x0c768347 #x589e8d82 #x0d2059d1 #xa466bb1e #xf8da0a82 #x04f19130 #xba6e4ec0 #x99265164 #x1ee7230d #x50b2ad80 #xeaee6801 #x8db2a283 #xea8bf59e)) ;;; the actual CAST5 implementation (deftype cast5-mask-vector () '(simple-array (unsigned-byte 32) (16))) (deftype cast5-rotate-vector () '(simple-array (unsigned-byte 8) (16))) (defclass cast5 (cipher 8-byte-block-mixin) ((mask-vector :accessor mask-vector :type cast5-mask-vector) (rotate-vector :accessor rotate-vector :type cast5-rotate-vector) (n-rounds :accessor n-rounds))) (declaim (inline cast5-f1 cast5-f2 cast5-f3)) (macrolet ((cast5-s-box (s-box-index index) `(aref ,(intern (format nil "+~A~A+" '#:cast5-sbox s-box-index)) ,index))) (defun cast5-f1 (input mask rotate) (declare (type (unsigned-byte 32) input mask)) (declare (type (unsigned-byte 5) rotate)) (let ((value (rol32 (mod32+ input mask) rotate))) (declare (type (unsigned-byte 32) value)) (mod32+ (cast5-s-box 3 (first-byte value)) (mod32- (logxor (cast5-s-box 1 (third-byte value)) (cast5-s-box 0 (fourth-byte value))) (cast5-s-box 2 (second-byte value)))))) (defun cast5-f2 (input mask rotate) (declare (type (unsigned-byte 32) input mask)) (declare (type (unsigned-byte 5) rotate)) (let ((value (rol32 (logxor input mask) rotate))) (declare (type (unsigned-byte 32) value)) (logxor (cast5-s-box 3 (first-byte value)) (mod32+ (cast5-s-box 2 (second-byte value)) (mod32- (cast5-s-box 0 (fourth-byte value)) (cast5-s-box 1 (third-byte value))))))) (defun cast5-f3 (input mask rotate) (declare (type (unsigned-byte 32) input mask)) (declare (type (unsigned-byte 5) rotate)) (let ((value (rol32 (mod32- mask input) rotate))) (declare (type (unsigned-byte 32) value)) (mod32- (logxor (cast5-s-box 2 (second-byte value)) (mod32+ (cast5-s-box 1 (third-byte value)) (cast5-s-box 0 (fourth-byte value)))) (cast5-s-box 3 (first-byte value))))) (define-block-encryptor cast5 8 (let ((mask-vector (mask-vector context)) (rotate-vector (rotate-vector context)) (n-rounds (n-rounds context))) (declare (type cast5-mask-vector mask-vector)) (declare (type cast5-rotate-vector rotate-vector)) (declare (type (or (integer 12 12) (integer 16 16)) n-rounds)) (with-words ((l0 r0) plaintext plaintext-start) #.(loop for i from 0 below 16 for round-function = (ecase i ((0 3 6 9 12 15) 'cast5-f1) ((1 4 7 10 13) 'cast5-f2) ((2 5 8 11 14) 'cast5-f3)) collect `(let ((x (logxor l0 (,round-function r0 (aref mask-vector ,i) (aref rotate-vector ,i))))) (declare (type (unsigned-byte 32) x)) (setf l0 r0 r0 x)) into forms finally (return `(progn ,@(subseq forms 0 12) (when (= n-rounds 16) ,@(subseq forms 12))))) (store-words ciphertext ciphertext-start r0 l0)))) (define-block-decryptor cast5 8 (let ((mask-vector (mask-vector context)) (rotate-vector (rotate-vector context)) (n-rounds (n-rounds context))) (declare (type cast5-mask-vector mask-vector)) (declare (type cast5-rotate-vector rotate-vector)) (declare (type (or (integer 12 12) (integer 16 16)) n-rounds)) (with-words ((l0 r0) ciphertext ciphertext-start) #.(loop for i from 15 downto 0 for round-function = (ecase i ((0 3 6 9 12 15) 'cast5-f1) ((1 4 7 10 13) 'cast5-f2) ((2 5 8 11 14) 'cast5-f3)) collect `(let ((x (logxor l0 (,round-function r0 (aref mask-vector ,i) (aref rotate-vector ,i))))) (declare (type (unsigned-byte 32) x)) (setf l0 r0 r0 x)) into forms finally (return `(progn (when (= n-rounds 16) ,@(subseq forms 0 4)) ,@(subseq forms 4)))) (store-words plaintext plaintext-start r0 l0)))) ) ; MACROLET (defun generate-cast5-key-schedule (key) (declare (type (simple-array (unsigned-byte 8) (16)) key)) (with-words ((x0 x4 x8 xc) key 0) (let* ((mask-vector (make-array 16 :element-type '(unsigned-byte 32))) (rotate-vector (make-array 16 :element-type '(unsigned-byte 8))) (z0 0) (z4 0) (z8 0) (zc 0)) (declare (type (unsigned-byte 32) z0 z4 z8 zc)) ;;; generate mask material (setf z0 (logxor x0 (aref +cast5-sbox4+ (third-byte xc)) (aref +cast5-sbox5+ (first-byte xc)) (aref +cast5-sbox6+ (fourth-byte xc)) (aref +cast5-sbox7+ (second-byte xc)) (aref +cast5-sbox6+ (fourth-byte x8)))) (setf z4 (logxor x8 (aref +cast5-sbox4+ (fourth-byte z0)) (aref +cast5-sbox5+ (second-byte z0)) (aref +cast5-sbox6+ (third-byte z0)) (aref +cast5-sbox7+ (first-byte z0)) (aref +cast5-sbox7+ (second-byte x8)))) (setf z8 (logxor xc (aref +cast5-sbox4+ (first-byte z4)) (aref +cast5-sbox5+ (second-byte z4)) (aref +cast5-sbox6+ (third-byte z4)) (aref +cast5-sbox7+ (fourth-byte z4)) (aref +cast5-sbox4+ (third-byte x8)))) (setf zc (logxor x4 (aref +cast5-sbox4+ (second-byte z8)) (aref +cast5-sbox5+ (third-byte z8)) (aref +cast5-sbox6+ (first-byte z8)) (aref +cast5-sbox7+ (fourth-byte z8)) (aref +cast5-sbox5+ (first-byte x8)))) (setf (aref mask-vector (- 1 1)) (logxor (aref +cast5-sbox4+ (fourth-byte z8)) (aref +cast5-sbox5+ (third-byte z8)) (aref +cast5-sbox6+ (first-byte z4)) (aref +cast5-sbox7+ (second-byte z4)) (aref +cast5-sbox4+ (second-byte z0)))) (setf (aref mask-vector (- 2 1)) (logxor (aref +cast5-sbox4+ (second-byte z8)) (aref +cast5-sbox5+ (first-byte z8)) (aref +cast5-sbox6+ (third-byte z4)) (aref +cast5-sbox7+ (fourth-byte z4)) (aref +cast5-sbox5+ (second-byte z4)))) (setf (aref mask-vector (- 3 1)) (logxor (aref +cast5-sbox4+ (fourth-byte zc)) (aref +cast5-sbox5+ (third-byte zc)) (aref +cast5-sbox6+ (first-byte z0)) (aref +cast5-sbox7+ (second-byte z0)) (aref +cast5-sbox6+ (third-byte z8)))) (setf (aref mask-vector (- 4 1)) (logxor (aref +cast5-sbox4+ (second-byte zc)) (aref +cast5-sbox5+ (first-byte zc)) (aref +cast5-sbox6+ (third-byte z0)) (aref +cast5-sbox7+ (fourth-byte z0)) (aref +cast5-sbox7+ (fourth-byte zc)))) (setf x0 (logxor z8 (aref +cast5-sbox4+ (third-byte z4)) (aref +cast5-sbox5+ (first-byte z4)) (aref +cast5-sbox6+ (fourth-byte z4)) (aref +cast5-sbox7+ (second-byte z4)) (aref +cast5-sbox6+ (fourth-byte z0)))) (setf x4 (logxor z0 (aref +cast5-sbox4+ (fourth-byte x0)) (aref +cast5-sbox5+ (second-byte x0)) (aref +cast5-sbox6+ (third-byte x0)) (aref +cast5-sbox7+ (first-byte x0)) (aref +cast5-sbox7+ (second-byte z0)))) (setf x8 (logxor z4 (aref +cast5-sbox4+ (first-byte x4)) (aref +cast5-sbox5+ (second-byte x4)) (aref +cast5-sbox6+ (third-byte x4)) (aref +cast5-sbox7+ (fourth-byte x4)) (aref +cast5-sbox4+ (third-byte z0)))) (setf xc (logxor zc (aref +cast5-sbox4+ (second-byte x8)) (aref +cast5-sbox5+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x8)) (aref +cast5-sbox7+ (fourth-byte x8)) (aref +cast5-sbox5+ (first-byte z0)))) (setf (aref mask-vector (- 5 1)) (logxor (aref +cast5-sbox4+ (first-byte x0)) (aref +cast5-sbox5+ (second-byte x0)) (aref +cast5-sbox6+ (fourth-byte xc)) (aref +cast5-sbox7+ (third-byte xc)) (aref +cast5-sbox4+ (fourth-byte x8)))) (setf (aref mask-vector (- 6 1)) (logxor (aref +cast5-sbox4+ (third-byte x0)) (aref +cast5-sbox5+ (fourth-byte x0)) (aref +cast5-sbox6+ (second-byte xc)) (aref +cast5-sbox7+ (first-byte xc)) (aref +cast5-sbox5+ (third-byte xc)))) (setf (aref mask-vector (- 7 1)) (logxor (aref +cast5-sbox4+ (first-byte x4)) (aref +cast5-sbox5+ (second-byte x4)) (aref +cast5-sbox6+ (fourth-byte x8)) (aref +cast5-sbox7+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x0)))) (setf (aref mask-vector (- 8 1)) (logxor (aref +cast5-sbox4+ (third-byte x4)) (aref +cast5-sbox5+ (fourth-byte x4)) (aref +cast5-sbox6+ (second-byte x8)) (aref +cast5-sbox7+ (first-byte x8)) (aref +cast5-sbox7+ (first-byte x4)))) (setf z0 (logxor x0 (aref +cast5-sbox4+ (third-byte xc)) (aref +cast5-sbox5+ (first-byte xc)) (aref +cast5-sbox6+ (fourth-byte xc)) (aref +cast5-sbox7+ (second-byte xc)) (aref +cast5-sbox6+ (fourth-byte x8)))) (setf z4 (logxor x8 (aref +cast5-sbox4+ (fourth-byte z0)) (aref +cast5-sbox5+ (second-byte z0)) (aref +cast5-sbox6+ (third-byte z0)) (aref +cast5-sbox7+ (first-byte z0)) (aref +cast5-sbox7+ (second-byte x8)))) (setf z8 (logxor xc (aref +cast5-sbox4+ (first-byte z4)) (aref +cast5-sbox5+ (second-byte z4)) (aref +cast5-sbox6+ (third-byte z4)) (aref +cast5-sbox7+ (fourth-byte z4)) (aref +cast5-sbox4+ (third-byte x8)))) (setf zc (logxor x4 (aref +cast5-sbox4+ (second-byte z8)) (aref +cast5-sbox5+ (third-byte z8)) (aref +cast5-sbox6+ (first-byte z8)) (aref +cast5-sbox7+ (fourth-byte z8)) (aref +cast5-sbox5+ (first-byte x8)))) (setf (aref mask-vector (- 9 1)) (logxor (aref +cast5-sbox4+ (first-byte z0)) (aref +cast5-sbox5+ (second-byte z0)) (aref +cast5-sbox6+ (fourth-byte zc)) (aref +cast5-sbox7+ (third-byte zc)) (aref +cast5-sbox4+ (third-byte z8)))) (setf (aref mask-vector (- 10 1)) (logxor (aref +cast5-sbox4+ (third-byte z0)) (aref +cast5-sbox5+ (fourth-byte z0)) (aref +cast5-sbox6+ (second-byte zc)) (aref +cast5-sbox7+ (first-byte zc)) (aref +cast5-sbox5+ (fourth-byte zc)))) (setf (aref mask-vector (- 11 1)) (logxor (aref +cast5-sbox4+ (first-byte z4)) (aref +cast5-sbox5+ (second-byte z4)) (aref +cast5-sbox6+ (fourth-byte z8)) (aref +cast5-sbox7+ (third-byte z8)) (aref +cast5-sbox6+ (second-byte z0)))) (setf (aref mask-vector (- 12 1)) (logxor (aref +cast5-sbox4+ (third-byte z4)) (aref +cast5-sbox5+ (fourth-byte z4)) (aref +cast5-sbox6+ (second-byte z8)) (aref +cast5-sbox7+ (first-byte z8)) (aref +cast5-sbox7+ (second-byte z4)))) (setf x0 (logxor z8 (aref +cast5-sbox4+ (third-byte z4)) (aref +cast5-sbox5+ (first-byte z4)) (aref +cast5-sbox6+ (fourth-byte z4)) (aref +cast5-sbox7+ (second-byte z4)) (aref +cast5-sbox6+ (fourth-byte z0)))) (setf x4 (logxor z0 (aref +cast5-sbox4+ (fourth-byte x0)) (aref +cast5-sbox5+ (second-byte x0)) (aref +cast5-sbox6+ (third-byte x0)) (aref +cast5-sbox7+ (first-byte x0)) (aref +cast5-sbox7+ (second-byte z0)))) (setf x8 (logxor z4 (aref +cast5-sbox4+ (first-byte x4)) (aref +cast5-sbox5+ (second-byte x4)) (aref +cast5-sbox6+ (third-byte x4)) (aref +cast5-sbox7+ (fourth-byte x4)) (aref +cast5-sbox4+ (third-byte z0)))) (setf xc (logxor zc (aref +cast5-sbox4+ (second-byte x8)) (aref +cast5-sbox5+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x8)) (aref +cast5-sbox7+ (fourth-byte x8)) (aref +cast5-sbox5+ (first-byte z0)))) (setf (aref mask-vector (- 13 1)) (logxor (aref +cast5-sbox4+ (fourth-byte x8)) (aref +cast5-sbox5+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x4)) (aref +cast5-sbox7+ (second-byte x4)) (aref +cast5-sbox4+ (first-byte x0)))) (setf (aref mask-vector (- 14 1)) (logxor (aref +cast5-sbox4+ (second-byte x8)) (aref +cast5-sbox5+ (first-byte x8)) (aref +cast5-sbox6+ (third-byte x4)) (aref +cast5-sbox7+ (fourth-byte x4)) (aref +cast5-sbox5+ (first-byte x4)))) (setf (aref mask-vector (- 15 1)) (logxor (aref +cast5-sbox4+ (fourth-byte xc)) (aref +cast5-sbox5+ (third-byte xc)) (aref +cast5-sbox6+ (first-byte x0)) (aref +cast5-sbox7+ (second-byte x0)) (aref +cast5-sbox6+ (fourth-byte x8)))) (setf (aref mask-vector (- 16 1)) (logxor (aref +cast5-sbox4+ (second-byte xc)) (aref +cast5-sbox5+ (first-byte xc)) (aref +cast5-sbox6+ (third-byte x0)) (aref +cast5-sbox7+ (fourth-byte x0)) (aref +cast5-sbox7+ (third-byte xc)))) ;;; generate shift amounts (setf z0 (logxor x0 (aref +cast5-sbox4+ (third-byte xc)) (aref +cast5-sbox5+ (first-byte xc)) (aref +cast5-sbox6+ (fourth-byte xc)) (aref +cast5-sbox7+ (second-byte xc)) (aref +cast5-sbox6+ (fourth-byte x8)))) (setf z4 (logxor x8 (aref +cast5-sbox4+ (fourth-byte z0)) (aref +cast5-sbox5+ (second-byte z0)) (aref +cast5-sbox6+ (third-byte z0)) (aref +cast5-sbox7+ (first-byte z0)) (aref +cast5-sbox7+ (second-byte x8)))) (setf z8 (logxor xc (aref +cast5-sbox4+ (first-byte z4)) (aref +cast5-sbox5+ (second-byte z4)) (aref +cast5-sbox6+ (third-byte z4)) (aref +cast5-sbox7+ (fourth-byte z4)) (aref +cast5-sbox4+ (third-byte x8)))) (setf zc (logxor x4 (aref +cast5-sbox4+ (second-byte z8)) (aref +cast5-sbox5+ (third-byte z8)) (aref +cast5-sbox6+ (first-byte z8)) (aref +cast5-sbox7+ (fourth-byte z8)) (aref +cast5-sbox5+ (first-byte x8)))) (setf (aref rotate-vector (- 17 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (fourth-byte z8)) (aref +cast5-sbox5+ (third-byte z8)) (aref +cast5-sbox6+ (first-byte z4)) (aref +cast5-sbox7+ (second-byte z4)) (aref +cast5-sbox4+ (second-byte z0))))) (setf (aref rotate-vector (- 18 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (second-byte z8)) (aref +cast5-sbox5+ (first-byte z8)) (aref +cast5-sbox6+ (third-byte z4)) (aref +cast5-sbox7+ (fourth-byte z4)) (aref +cast5-sbox5+ (second-byte z4))))) (setf (aref rotate-vector (- 19 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (fourth-byte zc)) (aref +cast5-sbox5+ (third-byte zc)) (aref +cast5-sbox6+ (first-byte z0)) (aref +cast5-sbox7+ (second-byte z0)) (aref +cast5-sbox6+ (third-byte z8))))) (setf (aref rotate-vector (- 20 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (second-byte zc)) (aref +cast5-sbox5+ (first-byte zc)) (aref +cast5-sbox6+ (third-byte z0)) (aref +cast5-sbox7+ (fourth-byte z0)) (aref +cast5-sbox7+ (fourth-byte zc))))) (setf x0 (logxor z8 (aref +cast5-sbox4+ (third-byte z4)) (aref +cast5-sbox5+ (first-byte z4)) (aref +cast5-sbox6+ (fourth-byte z4)) (aref +cast5-sbox7+ (second-byte z4)) (aref +cast5-sbox6+ (fourth-byte z0)))) (setf x4 (logxor z0 (aref +cast5-sbox4+ (fourth-byte x0)) (aref +cast5-sbox5+ (second-byte x0)) (aref +cast5-sbox6+ (third-byte x0)) (aref +cast5-sbox7+ (first-byte x0)) (aref +cast5-sbox7+ (second-byte z0)))) (setf x8 (logxor z4 (aref +cast5-sbox4+ (first-byte x4)) (aref +cast5-sbox5+ (second-byte x4)) (aref +cast5-sbox6+ (third-byte x4)) (aref +cast5-sbox7+ (fourth-byte x4)) (aref +cast5-sbox4+ (third-byte z0)))) (setf xc (logxor zc (aref +cast5-sbox4+ (second-byte x8)) (aref +cast5-sbox5+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x8)) (aref +cast5-sbox7+ (fourth-byte x8)) (aref +cast5-sbox5+ (first-byte z0)))) (setf (aref rotate-vector (- 21 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (first-byte x0)) (aref +cast5-sbox5+ (second-byte x0)) (aref +cast5-sbox6+ (fourth-byte xc)) (aref +cast5-sbox7+ (third-byte xc)) (aref +cast5-sbox4+ (fourth-byte x8))))) (setf (aref rotate-vector (- 22 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (third-byte x0)) (aref +cast5-sbox5+ (fourth-byte x0)) (aref +cast5-sbox6+ (second-byte xc)) (aref +cast5-sbox7+ (first-byte xc)) (aref +cast5-sbox5+ (third-byte xc))))) (setf (aref rotate-vector (- 23 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (first-byte x4)) (aref +cast5-sbox5+ (second-byte x4)) (aref +cast5-sbox6+ (fourth-byte x8)) (aref +cast5-sbox7+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x0))))) (setf (aref rotate-vector (- 24 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (third-byte x4)) (aref +cast5-sbox5+ (fourth-byte x4)) (aref +cast5-sbox6+ (second-byte x8)) (aref +cast5-sbox7+ (first-byte x8)) (aref +cast5-sbox7+ (first-byte x4))))) (setf z0 (logxor x0 (aref +cast5-sbox4+ (third-byte xc)) (aref +cast5-sbox5+ (first-byte xc)) (aref +cast5-sbox6+ (fourth-byte xc)) (aref +cast5-sbox7+ (second-byte xc)) (aref +cast5-sbox6+ (fourth-byte x8)))) (setf z4 (logxor x8 (aref +cast5-sbox4+ (fourth-byte z0)) (aref +cast5-sbox5+ (second-byte z0)) (aref +cast5-sbox6+ (third-byte z0)) (aref +cast5-sbox7+ (first-byte z0)) (aref +cast5-sbox7+ (second-byte x8)))) (setf z8 (logxor xc (aref +cast5-sbox4+ (first-byte z4)) (aref +cast5-sbox5+ (second-byte z4)) (aref +cast5-sbox6+ (third-byte z4)) (aref +cast5-sbox7+ (fourth-byte z4)) (aref +cast5-sbox4+ (third-byte x8)))) (setf zc (logxor x4 (aref +cast5-sbox4+ (second-byte z8)) (aref +cast5-sbox5+ (third-byte z8)) (aref +cast5-sbox6+ (first-byte z8)) (aref +cast5-sbox7+ (fourth-byte z8)) (aref +cast5-sbox5+ (first-byte x8)))) (setf (aref rotate-vector (- 25 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (first-byte z0)) (aref +cast5-sbox5+ (second-byte z0)) (aref +cast5-sbox6+ (fourth-byte zc)) (aref +cast5-sbox7+ (third-byte zc)) (aref +cast5-sbox4+ (third-byte z8))))) (setf (aref rotate-vector (- 26 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (third-byte z0)) (aref +cast5-sbox5+ (fourth-byte z0)) (aref +cast5-sbox6+ (second-byte zc)) (aref +cast5-sbox7+ (first-byte zc)) (aref +cast5-sbox5+ (fourth-byte zc))))) (setf (aref rotate-vector (- 27 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (first-byte z4)) (aref +cast5-sbox5+ (second-byte z4)) (aref +cast5-sbox6+ (fourth-byte z8)) (aref +cast5-sbox7+ (third-byte z8)) (aref +cast5-sbox6+ (second-byte z0))))) (setf (aref rotate-vector (- 28 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (third-byte z4)) (aref +cast5-sbox5+ (fourth-byte z4)) (aref +cast5-sbox6+ (second-byte z8)) (aref +cast5-sbox7+ (first-byte z8)) (aref +cast5-sbox7+ (second-byte z4))))) (setf x0 (logxor z8 (aref +cast5-sbox4+ (third-byte z4)) (aref +cast5-sbox5+ (first-byte z4)) (aref +cast5-sbox6+ (fourth-byte z4)) (aref +cast5-sbox7+ (second-byte z4)) (aref +cast5-sbox6+ (fourth-byte z0)))) (setf x4 (logxor z0 (aref +cast5-sbox4+ (fourth-byte x0)) (aref +cast5-sbox5+ (second-byte x0)) (aref +cast5-sbox6+ (third-byte x0)) (aref +cast5-sbox7+ (first-byte x0)) (aref +cast5-sbox7+ (second-byte z0)))) (setf x8 (logxor z4 (aref +cast5-sbox4+ (first-byte x4)) (aref +cast5-sbox5+ (second-byte x4)) (aref +cast5-sbox6+ (third-byte x4)) (aref +cast5-sbox7+ (fourth-byte x4)) (aref +cast5-sbox4+ (third-byte z0)))) (setf xc (logxor zc (aref +cast5-sbox4+ (second-byte x8)) (aref +cast5-sbox5+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x8)) (aref +cast5-sbox7+ (fourth-byte x8)) (aref +cast5-sbox5+ (first-byte z0)))) (setf (aref rotate-vector (- 29 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (fourth-byte x8)) (aref +cast5-sbox5+ (third-byte x8)) (aref +cast5-sbox6+ (first-byte x4)) (aref +cast5-sbox7+ (second-byte x4)) (aref +cast5-sbox4+ (first-byte x0))))) (setf (aref rotate-vector (- 30 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (second-byte x8)) (aref +cast5-sbox5+ (first-byte x8)) (aref +cast5-sbox6+ (third-byte x4)) (aref +cast5-sbox7+ (fourth-byte x4)) (aref +cast5-sbox5+ (first-byte x4))))) (setf (aref rotate-vector (- 31 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (fourth-byte xc)) (aref +cast5-sbox5+ (third-byte xc)) (aref +cast5-sbox6+ (first-byte x0)) (aref +cast5-sbox7+ (second-byte x0)) (aref +cast5-sbox6+ (fourth-byte x8))))) (setf (aref rotate-vector (- 32 17)) (ldb (byte 5 0) (logxor (aref +cast5-sbox4+ (second-byte xc)) (aref +cast5-sbox5+ (first-byte xc)) (aref +cast5-sbox6+ (third-byte x0)) (aref +cast5-sbox7+ (fourth-byte x0)) (aref +cast5-sbox7+ (third-byte xc))))) (values mask-vector rotate-vector)))) (defmethod schedule-key ((cipher cast5) key) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (let ((length (length key)) (key (if (= (length key) 16) ;; no padding necessary key (let ((tmp (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0))) (replace tmp key))))) (declare (type (simple-array (unsigned-byte 8) (16)) key)) (multiple-value-bind (mask-vector rotate-vector) (generate-cast5-key-schedule key) (let ((n-rounds (if (<= length 10) 12 16))) (setf (mask-vector cipher) mask-vector (rotate-vector cipher) rotate-vector (n-rounds cipher) n-rounds) cipher)))) (defcipher cast5 (:encrypt-function cast5-encrypt-block) (:decrypt-function cast5-decrypt-block) (:block-length 8) (:key-length (:variable 5 16 1))) ironclad_0.33.0/src/ciphers/arcfour.lisp0000644000175000017500000000410511761302200015200 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; arcfour.lisp -- implementation of the alleged RC4 stream cipher (in-package :crypto) ;;; This is a rewrite of a C program by Christophe Devine. Thanks, ;;; Mr. Devine. This version is Copyright (C) 2005 Tim Daly Jr. ;;; ;;; Code modified for Ironclad by Nathan Froyd. (deftype arcfour-sbox () '(simple-array (unsigned-byte 8) (256))) (defclass arcfour (stream-cipher) ((x :accessor arcfour-x :initform 0 :type fixnum) (y :accessor arcfour-y :initform 0 :type fixnum) (m :accessor arcfour-sbox :initform (make-array 256 :element-type '(unsigned-byte 8)) :type arcfour-sbox))) (defun arcfour-keyify (context key) (declare (type arcfour context)) (let ((m (arcfour-sbox context))) (declare (type arcfour-sbox m)) (dotimes (i 256) (setf (aref m i) i)) (let ((a 0) (j 0) (k 0) (key-length (length key))) (dotimes (i 256) (setf a (aref m i) j (ldb (byte 8 0) (+ j a (aref key k))) (aref m i) (aref m j) (aref m j) a) (when (>= (incf k) key-length) (setf k 0)))))) (define-stream-cryptor arcfour (let* ((m (arcfour-sbox context)) (x (arcfour-x context)) (y (arcfour-y context)) (a 0) (b 0)) (declare (type arcfour-sbox m) (type fixnum x y a b)) (dotimes (i length (progn (setf (arcfour-x context) x (arcfour-y context) y) (values))) (setf x (ldb (byte 8 0) (1+ x)) a (aref m x) y (ldb (byte 8 0) (+ y a)) b (aref m y) (aref m x) b (aref m y) a) (setf (aref ciphertext (+ ciphertext-start i)) (logxor (aref plaintext (+ plaintext-start i)) (aref m (ldb (byte 8 0) (+ a b)))))))) (defmethod schedule-key ((cipher arcfour) key) (arcfour-keyify cipher key) cipher) (defcipher arcfour (:mode :stream) (:crypt-function arcfour-crypt) (:key-length (:variable 1 256 1)))ironclad_0.33.0/src/ciphers/salsa20.lisp0000664000175000017500000001372512247656722015043 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;; salsa20.lisp --implementation of the Salsa20 stream cipher (in-package :crypto) (declaim (type (simple-octet-vector 16) salsa20-sigma salsa20-tau)) (defconst salsa20-sigma #.(coerce (map 'vector #'char-code "expand 32-byte k") 'simple-octet-vector)) (defconst salsa20-tau #.(coerce (map 'vector #'char-code "expand 16-byte k") 'simple-octet-vector)) (deftype salsa20-state () '(simple-array (unsigned-byte 32) (16))) (deftype salsa20-keystream-buffer () '(simple-octet-vector 64)) (declaim (inline salsa-core)) (defun salsa-core (n-rounds buffer state) (declare (type salsa20-keystream-buffer buffer)) (declare (type salsa20-state state)) (declare (optimize speed)) #+(and sbcl x86-64) (x-salsa-core n-rounds buffer state) #-(and sbcl x86-64) (let ((x (make-array 16 :element-type '(unsigned-byte 32)))) (declare (dynamic-extent x)) (replace x state) (macrolet ((combine (x y z shift) `(logxor ,x (rol32 (mod32+ ,y ,z) ,shift))) (ref (i) `(aref x ,i)) (quarter-round (y0 y1 y2 y3) `(setf (ref ,y0) (combine (ref ,y0) (ref ,y3) (ref ,y2) 7) (ref ,y1) (combine (ref ,y1) (ref ,y0) (ref ,y3) 9) (ref ,y2) (combine (ref ,y2) (ref ,y1) (ref ,y0) 13) (ref ,y3) (combine (ref ,y3) (ref ,y2) (ref ,y1) 18)))) (dotimes (i n-rounds) (quarter-round 4 8 12 0) (quarter-round 9 13 1 5) (quarter-round 14 2 6 10) (quarter-round 3 7 11 15) (quarter-round 1 2 3 0) (quarter-round 6 7 4 5) (quarter-round 11 8 9 10) (quarter-round 12 13 14 15)) (dotimes (i 16) (setf (ub32ref/le buffer (* i 4)) (mod32+ (aref x i) (aref state i)))))) (values)) (defun salsa20/8-core (buffer state) (declare (type salsa20-keystream-buffer buffer)) (declare (type salsa20-state state)) (salsa-core 4 buffer state)) (defun salsa20/12-core (buffer state) (declare (type salsa20-keystream-buffer buffer)) (declare (type salsa20-state state)) (salsa-core 6 buffer state)) (defun salsa20/20-core (buffer state) (declare (type salsa20-keystream-buffer buffer)) (declare (type salsa20-state state)) (salsa-core 10 buffer state)) (defclass salsa20 (stream-cipher) ((state :reader salsa20-state :initform (make-array 16 :element-type '(unsigned-byte 32) :initial-element 0) :type salsa20-state) (keystream-buffer :reader salsa20-keystream-buffer :initform (make-array 64 :element-type '(unsigned-byte 8)) :type salsa20-keystream-buffer) (core-function :reader salsa20-core-function :initarg :core-function :type function)) (:default-initargs :core-function #'salsa20/20-core)) (defclass salsa20/12 (salsa20) () (:default-initargs :core-function #'salsa20/12-core)) (defclass salsa20/8 (salsa20) () (:default-initargs :core-function #'salsa20/8-core)) (defun salsa20-keyify (cipher key) (declare (type salsa20 cipher)) (let ((state (salsa20-state cipher))) (declare (type salsa20-state state)) (multiple-value-bind (constants offset) (if (= (length key) 16) (values salsa20-tau 0) (values salsa20-sigma 16)) (setf (aref state 1) (ub32ref/le key 0) (aref state 2) (ub32ref/le key 4) (aref state 3) (ub32ref/le key 8) (aref state 4) (ub32ref/le key 12)) (setf (aref state 11) (ub32ref/le key (+ offset 0)) (aref state 12) (ub32ref/le key (+ offset 4)) (aref state 13) (ub32ref/le key (+ offset 8)) (aref state 14) (ub32ref/le key (+ offset 12))) (setf (aref state 0) (ub32ref/le constants 0) (aref state 5) (ub32ref/le constants 4) (aref state 10) (ub32ref/le constants 8) (aref state 15) (ub32ref/le constants 12)) (values)))) (defmethod shared-initialize :after ((cipher salsa20) slot-names &rest initargs &key (key nil key-p) (initialization-vector nil iv-p) &allow-other-keys) (when initialization-vector (let ((state (salsa20-state cipher))) (declare (type salsa20-state state)) (setf (aref state 6) (ub32ref/le initialization-vector 0) (aref state 7) (ub32ref/le initialization-vector 4) (aref state 8) 0 (aref state 9) 0))) cipher) (defmethod schedule-key ((cipher salsa20) key) (salsa20-keyify cipher key) cipher) (define-stream-cryptor salsa20 (let ((state (salsa20-state context)) (keystream-buffer (salsa20-keystream-buffer context)) (core-function (salsa20-core-function context))) (declare (type salsa20-state state)) (declare (type salsa20-keystream-buffer keystream-buffer)) (declare (type function core-function)) (unless (zerop length) (loop (funcall core-function keystream-buffer state) (when (zerop (setf (aref state 8) (mod32+ (aref state 8) 1))) (setf (aref state 9) (mod32+ (aref state 9) 1))) (when (<= length 64) (xor-block length keystream-buffer plaintext plaintext-start ciphertext ciphertext-start) (return-from salsa20-crypt (values))) (xor-block 64 keystream-buffer plaintext plaintext-start ciphertext ciphertext-start) (decf length 64) (incf ciphertext-start 64) (incf plaintext-start 64))) (values))) (defcipher salsa20 (:mode :stream) (:crypt-function salsa20-crypt) (:key-length (:fixed 16 32))) (defcipher salsa20/12 (:mode :stream) (:crypt-function salsa20-crypt) (:key-length (:fixed 16 32))) (defcipher salsa20/8 (:mode :stream) (:crypt-function salsa20-crypt) (:key-length (:fixed 16 32))) ironclad_0.33.0/src/ciphers/chacha.lisp0000664000175000017500000001415512247657124015000 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;; chacha.lisp --implementation of the ChaCha stream cipher (in-package :crypto) (declaim (type (simple-octet-vector 16) chacha-sigma chacha-tau)) (defconst chacha-sigma #.(coerce (map 'vector #'char-code "expand 32-byte k") 'simple-octet-vector)) (defconst chacha-tau #.(coerce (map 'vector #'char-code "expand 16-byte k") 'simple-octet-vector)) (deftype chacha-state () '(simple-array (unsigned-byte 32) (16))) (deftype chacha-keystream-buffer () '(simple-octet-vector 64)) (declaim (inline chacha-core)) (defun chacha-core (n-rounds buffer state) (declare (type chacha-keystream-buffer buffer)) (declare (type chacha-state state)) (declare (optimize speed)) #+(and sbcl x86-64) (x-chacha-core n-rounds buffer state) #-(and sbcl x86-64) (let ((x (make-array 16 :element-type '(unsigned-byte 32)))) (declare (dynamic-extent x)) (replace x state) (macrolet ((combine (x y shift) `(rol32 (logxor ,x ,y) ,shift)) (ref (i) `(aref x ,i)) (quarter-round (y0 y1 y2 y3) `(setf (ref ,y0) (mod32+ (ref ,y0) (ref ,y1)) (ref ,y3) (combine (ref ,y3) (ref ,y0) 16) (ref ,y2) (mod32+ (ref ,y2) (ref ,y3)) (ref ,y1) (combine (ref ,y1) (ref ,y2) 12) (ref ,y0) (mod32+ (ref ,y0) (ref ,y1)) (ref ,y3) (combine (ref ,y3) (ref ,y0) 8) (ref ,y2) (mod32+ (ref ,y2) (ref ,y3)) (ref ,y1) (combine (ref ,y1) (ref ,y2) 7)))) (dotimes (i n-rounds) (quarter-round 0 4 8 12) (quarter-round 1 5 9 13) (quarter-round 2 6 10 14) (quarter-round 3 7 11 15) (quarter-round 0 5 10 15) (quarter-round 1 6 11 12) (quarter-round 2 7 8 13) (quarter-round 3 4 9 14)) (dotimes (i 16) (setf (ub32ref/le buffer (* i 4)) (mod32+ (aref x i) (aref state i)))))) (values)) (defun chacha/8-core (buffer state) (declare (type chacha-keystream-buffer buffer)) (declare (type chacha-state state)) (chacha-core 4 buffer state)) (defun chacha/12-core (buffer state) (declare (type chacha-keystream-buffer buffer)) (declare (type chacha-state state)) (chacha-core 6 buffer state)) (defun chacha/20-core (buffer state) (declare (type chacha-keystream-buffer buffer)) (declare (type chacha-state state)) (chacha-core 10 buffer state)) (defclass chacha (stream-cipher) ((state :reader chacha-state :initform (make-array 16 :element-type '(unsigned-byte 32) :initial-element 0) :type chacha-state) (keystream-buffer :reader chacha-keystream-buffer :initform (make-array 64 :element-type '(unsigned-byte 8)) :type chacha-keystream-buffer) (core-function :reader chacha-core-function :initarg :core-function :type function)) (:default-initargs :core-function #'chacha/20-core)) (defclass chacha/12 (chacha) () (:default-initargs :core-function #'chacha/12-core)) (defclass chacha/8 (chacha) () (:default-initargs :core-function #'chacha/8-core)) (defun chacha-keyify (cipher key) (declare (type chacha cipher)) (let ((state (chacha-state cipher))) (declare (type chacha-state state)) (multiple-value-bind (constants offset) (if (= (length key) 16) (values chacha-tau 0) (values chacha-sigma 16)) (setf (aref state 4) (ub32ref/le key 0) (aref state 5) (ub32ref/le key 4) (aref state 6) (ub32ref/le key 8) (aref state 7) (ub32ref/le key 12)) (setf (aref state 8) (ub32ref/le key (+ offset 0)) (aref state 9) (ub32ref/le key (+ offset 4)) (aref state 10) (ub32ref/le key (+ offset 8)) (aref state 11) (ub32ref/le key (+ offset 12))) (setf (aref state 0) (ub32ref/le constants 0) (aref state 1) (ub32ref/le constants 4) (aref state 2) (ub32ref/le constants 8) (aref state 3) (ub32ref/le constants 12)) (values)))) (defmethod shared-initialize :after ((cipher chacha) slot-names &rest initargs &key (key nil key-p) (initialization-vector nil iv-p) &allow-other-keys) (when initialization-vector (let ((state (chacha-state cipher))) (declare (type chacha-state state)) (setf (aref state 12) 0 (aref state 13) 0 (aref state 14) (ub32ref/le initialization-vector 0) (aref state 15) (ub32ref/le initialization-vector 4)))) cipher) (defmethod schedule-key ((cipher chacha) key) (chacha-keyify cipher key) cipher) (define-stream-cryptor chacha (let ((state (chacha-state context)) (keystream-buffer (chacha-keystream-buffer context)) (core-function (chacha-core-function context))) (declare (type chacha-state state)) (declare (type chacha-keystream-buffer keystream-buffer)) (declare (type function core-function)) (unless (zerop length) (loop (funcall core-function keystream-buffer state) (when (zerop (setf (aref state 12) (mod32+ (aref state 12) 1))) (setf (aref state 13) (mod32+ (aref state 13) 1))) (when (<= length 64) (xor-block length keystream-buffer plaintext plaintext-start ciphertext ciphertext-start) (return-from chacha-crypt (values))) (xor-block 64 keystream-buffer plaintext plaintext-start ciphertext ciphertext-start) (decf length 64) (incf ciphertext-start 64) (incf plaintext-start 64))) (values))) (defcipher chacha (:mode :stream) (:crypt-function chacha-crypt) (:key-length (:fixed 16 32))) (defcipher chacha/12 (:mode :stream) (:crypt-function chacha-crypt) (:key-length (:fixed 16 32))) (defcipher chacha/8 (:mode :stream) (:crypt-function chacha-crypt) (:key-length (:fixed 16 32))) ironclad_0.33.0/src/digests/digest.lisp0000664000175000017500000005155312222266400015042 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; digest.lisp -- common functions for hashing (in-package :crypto) ;;; defining digest (hash) functions (eval-when (:compile-toplevel :load-toplevel) (defconstant +buffer-size+ (* 128 1024)) ) ; EVAL-WHEN (deftype buffer-index () `(integer 0 (,+buffer-size+))) (defun update-digest-from-stream (digest stream &key buffer (start 0) end) (cond ((let ((element-type (stream-element-type stream))) (or (equal element-type '(unsigned-byte 8)) (equal element-type '(integer 0 255)))) (flet ((frob (read-buffer start end) (loop for last-updated = (read-sequence read-buffer stream :start start :end end) do (update-digest digest read-buffer :start start :end last-updated) until (< last-updated end) finally (return digest)))) (if buffer (frob buffer start (or end (length buffer))) (let ((buffer (make-array +buffer-size+ :element-type '(unsigned-byte 8)))) (declare (dynamic-extent buffer)) (frob buffer 0 +buffer-size+))))) (t (error "Unsupported stream element-type ~S for stream ~S." (stream-element-type stream) stream)))) ;;; Storing a length at the end of the hashed data is very common and ;;; can be a small bottleneck when generating lots of hashes over small ;;; quantities of data. We assume that the appropriate locations have ;;; already been zeroed if necessary. LENGTH is also assumed to be an ;;; (effectively) 64-bit quantity. (declaim (inline store-data-length)) (defun store-data-length (block length offset &optional big-endian-p) (let ((lo (if big-endian-p (1+ offset) offset)) (hi (if big-endian-p offset (1+ offset)))) #+(and sbcl 32-bit) (cond ((sb-int:fixnump length) (setf (aref block lo) length)) ;; Otherwise, we have a bignum. (t (locally (declare (optimize (safety 0)) (type sb-bignum:bignum-type length)) (cond ((= (sb-bignum:%bignum-length length) 1) (setf (aref block lo) (sb-bignum:%bignum-ref length 0))) (t (setf (aref block lo) (sb-bignum:%bignum-ref length 0) (aref block hi) (sb-bignum:%bignum-ref length 1))))))) #+(and cmu 32-bit) (cond ((ext:fixnump length) (setf (aref block lo) length)) ;; Otherwise, we have a bignum. (t (locally (declare (optimize (safety 0)) (type bignum:bignum-type length)) (cond ((= (bignum:%bignum-length length) 1) (setf (aref block lo) (bignum:%bignum-ref length 0))) (t (setf (aref block lo) (bignum:%bignum-ref length 0) (aref block hi) (bignum:%bignum-ref length 1))))))) #-(or (and sbcl 32-bit) (and cmu 32-bit)) (setf (aref block lo) (ldb (byte 32 0) length) (aref block hi) (ldb (byte 32 32) length)))) ;;; macros for "mid-level" functions (defmacro define-digest-registers ((digest-name &key (endian :big) (size 4) (digest-registers nil)) &rest registers) (let* ((struct-name (intern (format nil "~A-~A" digest-name '#:regs))) (constructor (intern (format nil "~A-~A" '#:initial struct-name))) (copier (intern (format nil "%~A-~A" '#:copy struct-name))) (digest-fun (intern (format nil "~A~A" digest-name '#:regs-digest))) (register-bit-size (* size 8)) (digest-size (* size (or digest-registers (length registers)))) (ref-fun (ubref-fun-name register-bit-size (eq endian :big)))) `(progn (eval-when (:compile-toplevel :load-toplevel :execute) (defstruct (,struct-name (:type (vector (unsigned-byte ,register-bit-size))) (:constructor ,constructor ()) (:copier ,copier)) ,@registers) ;; Some versions of LispWorks incorrectly define STRUCT-NAME as ;; a type with DEFSTRUCT, so avoid gratuitous warnings. #-(and lispworks lispworks5.0) (deftype ,struct-name () '(simple-array (unsigned-byte ,register-bit-size) (,(length registers))))) (defun ,digest-fun (regs buffer start) (declare (type ,struct-name regs) (type simple-octet-vector buffer) (type (integer 0 ,(- array-dimension-limit digest-size)) start) ,(burn-baby-burn)) ,(let ((inlined-unpacking `(setf ,@(loop for (reg value) in registers for index from 0 below digest-size by size nconc `((,ref-fun buffer (+ start ,index)) (,(intern (format nil "~A-~A-~A" digest-name '#:regs reg)) regs)))))) (cond #+(and sbcl :little-endian) ((eq endian :little) `(if (and (= start 0) (<= ,register-bit-size sb-vm:n-word-bits)) (sb-kernel:ub8-bash-copy regs 0 buffer 0 ,digest-size) ,inlined-unpacking)) #+(and sbcl :big-endian) ((eq endian :big) `(if (and (= start 0) (<= ,register-bit-size sb-vm:n-word-bits)) (sb-kernel:ub8-bash-copy regs 0 buffer 0 ,digest-size) ,inlined-unpacking)) (t inlined-unpacking))) buffer)))) (defmacro define-digest-updater (digest-name &body body) (destructuring-bind (maybe-doc-string &rest rest) body `(defmethod update-digest ((state ,digest-name) (sequence vector) &key (start 0) (end (length sequence))) ,@(when (stringp maybe-doc-string) `(,maybe-doc-string)) ,(hold-me-back) (check-type sequence simple-octet-vector) (check-type start index) (check-type end index) ,@(if (stringp maybe-doc-string) rest body)))) ;;; SPECS is either (DIGEST-NAME DIGEST-BYTES) or a list of the same. ;;; The latter spelling is for digests that are related, but have ;;; different output sizes (e.g. SHA2-512 and SHA2-384). In that case, ;;; the first list is expected to be for the "major" variant of the ;;; pair; its digest type is expected to be the supertype of the ;;; variants. (defmacro define-digest-finalizer (specs &body body) (let* ((single-digest-p (not (consp (car specs)))) (specs (if single-digest-p (list specs) specs)) (inner-fun-name (intern (format nil "%~A-~A-~A" '#:finalize (caar specs) '#:state)))) (destructuring-bind (maybe-doc-string &rest rest) body (let ((primary-digest (caar specs))) `(defmethod produce-digest ((state ,primary-digest) &key digest (digest-start 0)) ,@(when (stringp maybe-doc-string) `(,maybe-doc-string)) (flet ((,inner-fun-name (state digest digest-start) ;; CCL requires special treatment to not introduce ;; array indexing errors. ,(cond ((member :ccl *features*) '(declare (optimize (speed 0)))) (t (hold-me-back))) (macrolet ((finalize-registers (state regs) (declare (ignorable state)) (let ((clauses (loop for (digest-name digest-length) in ',specs collect `(,digest-name (,(intern (format nil "~A~A" digest-name '#:regs-digest)) ,regs digest digest-start))))) (if ,single-digest-p (second (first clauses)) (list* 'etypecase state (reverse clauses)))))) ,@(if (stringp maybe-doc-string) rest body)))) (let ((digest-size ,(if single-digest-p (second (first specs)) `(etypecase state ,@(reverse specs))))) (etypecase digest (simple-octet-vector ;; verify that the buffer is large enough (if (<= digest-size (- (length digest) digest-start)) (,inner-fun-name state digest digest-start) (error 'insufficient-buffer-space :buffer digest :start digest-start :length digest-size))) (cl:null (,inner-fun-name state (make-array digest-size :element-type '(unsigned-byte 8)) 0)))))))))) ;;; common superclass (superstructure?) for MD5-style digest functions (defstruct (mdx (:constructor nil) (:copier nil)) ;; This is technically an (UNSIGNED-BYTE 61). But the type-checking ;; penalties that imposes on a good 32-bit implementation are ;; significant. We've opted to omit the type declaration here. If ;; you really need to digest exabytes of data, I'm sure we can work ;; something out. (amount 0) ;; Most "64-bit" digest functions (e.g. SHA512) will need to override ;; this initial value in an &AUX. (buffer (make-array 64 :element-type '(unsigned-byte 8)) :read-only t :type simple-octet-vector) ;; This fixed type should be big enough for "64-bit" digest functions. (buffer-index 0 :type (integer 0 128))) (declaim (inline mdx-updater)) (defun mdx-updater (state compressor seq start end) (declare (type mdx state)) (declare (type function compressor)) (declare (type index start end)) (let* ((buffer (mdx-buffer state)) (buffer-index (mdx-buffer-index state)) (buffer-length (length buffer)) (length (- end start))) (declare (type fixnum length)) (unless (zerop buffer-index) (let ((amount (min (- buffer-length buffer-index) length))) (copy-to-buffer seq start amount buffer buffer-index) (setq start (+ start amount)) (let ((new-index (logand (+ buffer-index amount) (1- buffer-length)))) (when (zerop new-index) (funcall compressor state buffer 0)) (when (>= start end) (setf (mdx-buffer-index state) new-index) (incf (mdx-amount state) length) (return-from mdx-updater state))))) (loop until (< (- end start) buffer-length) do (funcall compressor state seq start) (setq start (the fixnum (+ start buffer-length))) finally (return (let ((amount (- end start))) (unless (zerop amount) (copy-to-buffer seq start amount buffer 0)) (setf (mdx-buffer-index state) amount) (incf (mdx-amount state) length) state))))) (declaim (notinline mdx-updater)) ;;; high-level generic function drivers ;;; These three functions are intended to be one-shot ways to digest ;;; an object of some kind. You could write these in terms of the more ;;; familiar digest interface below, but these are likely to be slightly ;;; more efficient, as well as more obvious about what you're trying to ;;; do. (defgeneric digest-file (digest-spec pathname &rest args &key buffer start end digest digest-start) (:documentation "Return the digest of the contents of the file named by PATHNAME using the algorithm DIGEST-NAME. If DIGEST is provided, the digest will be placed into DIGEST starting at DIGEST-START. DIGEST must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). An error will be signaled if there is insufficient room in DIGEST. If BUFFER is provided, the portion of BUFFER between START and END will be used to hold data read from the stream.")) (defmethod digest-file ((digest-name cons) pathname &rest kwargs) (apply #'digest-file (apply #'make-digest digest-name) pathname kwargs)) (defmethod digest-file ((digest-name symbol) pathname &rest kwargs) (apply #'digest-file (make-digest digest-name) pathname kwargs)) (defmethod digest-file (state pathname &key buffer (start 0) end digest (digest-start 0)) (with-open-file (stream pathname :element-type '(unsigned-byte 8) :direction :input :if-does-not-exist :error) (update-digest-from-stream state stream :buffer buffer :start start :end end) (produce-digest state :digest digest :digest-start digest-start))) (defgeneric digest-stream (digest-spec stream &rest args &key buffer start end digest digest-start) (:documentation "Return the digest of the contents of STREAM using the algorithm DIGEST-NAME. STREAM-ELEMENT-TYPE of STREAM should be (UNSIGNED-BYTE 8). If DIGEST is provided, the digest will be placed into DIGEST starting at DIGEST-START. DIGEST must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). An error will be signaled if there is insufficient room in DIGEST. If BUFFER is provided, the portion of BUFFER between START and END will be used to hold data read from the stream.")) (defmethod digest-stream ((digest-name cons) stream &rest kwargs) (apply #'digest-stream (apply #'make-digest digest-name) stream kwargs)) (defmethod digest-stream ((digest-name symbol) stream &rest kwargs) (apply #'digest-stream (make-digest digest-name) stream kwargs)) (defmethod digest-stream (state stream &key buffer (start 0) end digest (digest-start 0)) (update-digest-from-stream state stream :buffer buffer :start start :end end) (produce-digest state :digest digest :digest-start digest-start)) (defgeneric digest-sequence (digest-spec sequence &rest args &key start end digest digest-start) (:documentation "Return the digest of the subsequence of SEQUENCE specified by START and END using the algorithm DIGEST-NAME. For CMUCL and SBCL, SEQUENCE can be any vector with an element-type of (UNSIGNED-BYTE 8); for other implementations, SEQUENCE must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). If DIGEST is provided, the digest will be placed into DIGEST starting at DIGEST-START. DIGEST must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). An error will be signaled if there is insufficient room in DIGEST.")) (defmethod digest-sequence ((digest-name symbol) sequence &rest kwargs) (apply #'digest-sequence (make-digest digest-name) sequence kwargs)) (defmethod digest-sequence (state sequence &key (start 0) end digest (digest-start 0)) #+(or cmu sbcl) (locally (declare (type (vector (unsigned-byte 8)) sequence) (type index start)) ;; respect the fill-pointer (let ((end (or end (length sequence)))) (declare (type index end)) (#+cmu lisp::with-array-data #+sbcl sb-kernel:with-array-data ((data sequence) (real-start start) (real-end end)) (declare (ignore real-end)) (update-digest state data :start real-start :end (+ real-start (- end start)))))) #-(or cmu sbcl) (let ((real-end (or end (length sequence)))) (update-digest state sequence :start start :end (or real-end (length sequence)))) (produce-digest state :digest digest :digest-start digest-start)) ;;; These four functions represent the common interface for digests in ;;; other crypto toolkits (OpenSSL, Botan, Python, etc.). You obtain ;;; some state object for a particular digest, you update it with some ;;; data, and then you get the actual digest. Flexibility is the name ;;; of the game with these functions. (defun make-digest (digest-name &rest keys &key &allow-other-keys) "Return a digest object which uses the algorithm DIGEST-NAME." (typecase digest-name (symbol (let ((name (massage-symbol digest-name))) (if (digestp name) (apply (the function (get name '%make-digest)) keys) (error 'unsupported-digest :name digest-name)))) (t (error 'type-error :datum digest-name :expected-type 'symbol)))) (defgeneric copy-digest (digester &optional copy) (:documentation "Return a copy of DIGESTER. If COPY is not NIL, it should be of the same type as DIGESTER and will receive the copied data, rather than creating a new object. The copy is a deep copy, not a shallow copy as might be returned by COPY-STRUCTURE.")) (defgeneric update-digest (digester thing &key &allow-other-keys) (:documentation "Update the internal state of DIGESTER with THING. The exact method is determined by the type of THING.")) (defgeneric produce-digest (digester &key digest digest-start) (:documentation "Return the hash of the data processed by DIGESTER so far. This function modifies the internal state of DIGESTER. If DIGEST is provided, the hash will be placed into DIGEST starting at DIGEST-START. DIGEST must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). An error will be signaled if there is insufficient room in DIGEST.")) ;;; the digest-defining macro (defun digestp (sym) (get sym '%digest-length)) (defun list-all-digests () (loop for symbol being each external-symbol of (find-package :ironclad) if (digestp symbol) collect symbol)) (defun digest-supported-p (name) "Return T if the digest NAME is a valid digest name." (and (symbolp name) (not (cl:null (digestp name))))) (defgeneric digest-length (digest) (:documentation "Return the number of bytes in a digest generated by DIGEST.")) (defmethod digest-length ((digest-name symbol)) (or (digestp (massage-symbol digest-name)) (error 'unsupported-digest :name digest-name))) (defmethod digest-length (digest-name) (error 'unsupported-digest :name digest-name)) (defmethod update-digest (digester (stream stream) &key buffer (start 0) end &allow-other-keys) (update-digest-from-stream digester stream :buffer buffer :start start :end end)) (defun optimized-maker-name (name) (let ((*package* (find-package :ironclad))) ;; Ironclad gets compiled with *PRINT-CASE* set to :UPCASE; ensure ;; that names we return match what got compiled.n (intern (format nil "%~A-~A-~A" (symbol-name '#:make) (symbol-name name) (symbol-name '#:digest))))) (defmacro defdigest (name &key digest-length block-length) (let ((optimized-maker-name (optimized-maker-name name))) `(progn (setf (get ',name '%digest-length) ,digest-length) (setf (get ',name '%make-digest) (symbol-function ',optimized-maker-name)) (defmethod digest-length ((digest ,name)) ,digest-length) (defmethod block-length ((digest ,name)) ,block-length)))) ;;; If we pass a constant argument to MAKE-DIGEST, convert the ;;; MAKE-DIGEST call to a direct call to the state creation function. (define-compiler-macro make-digest (&whole form &environment env name &rest keys &key &allow-other-keys) (declare (ignore env)) (cond ((or (keywordp name) (and (quotationp name) (symbolp name))) (let ((name (massage-symbol (unquote name)))) (if (digestp name) `(,(optimized-maker-name name) ,@keys) form))) (t form))) ;;; And do the same for various one-shot digest functions. (defun maybe-expand-one-shot-call (form funname name 2nd-arg keys) (cond ((or (keywordp name) (and (quotationp name) (symbolp name))) (let ((name (massage-symbol (unquote name)))) (if (digestp name) `(,funname (,(optimized-maker-name name)) ,2nd-arg ,@keys) form))) (t form))) (define-compiler-macro digest-sequence (&whole form &environment env name sequence &rest keys) (declare (ignore env)) (maybe-expand-one-shot-call form 'digest-sequence name sequence keys)) (define-compiler-macro digest-stream (&whole form &environment env name stream &rest keys) (declare (ignore env)) (maybe-expand-one-shot-call form 'digest-stream name stream keys)) (define-compiler-macro digest-file (&whole form &environment env name file &rest keys) (declare (ignore env)) (maybe-expand-one-shot-call form 'digest-file name file keys)) ironclad_0.33.0/src/digests/crc24.lisp0000644000175000017500000001137211772066025014503 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; crc24.lisp (in-package :crypto) (declaim (type (simple-array (unsigned-byte 32) (256)) +crc24-table+)) (defconst +crc24-table+ #32@(#x00000000 #x00864CFB #x008AD50D #x000C99F6 #x0093E6E1 #x0015AA1A #x001933EC #x009F7F17 #x00A18139 #x0027CDC2 #x002B5434 #x00AD18CF #x003267D8 #x00B42B23 #x00B8B2D5 #x003EFE2E #x00C54E89 #x00430272 #x004F9B84 #x00C9D77F #x0056A868 #x00D0E493 #x00DC7D65 #x005A319E #x0064CFB0 #x00E2834B #x00EE1ABD #x00685646 #x00F72951 #x007165AA #x007DFC5C #x00FBB0A7 #x000CD1E9 #x008A9D12 #x008604E4 #x0000481F #x009F3708 #x00197BF3 #x0015E205 #x0093AEFE #x00AD50D0 #x002B1C2B #x002785DD #x00A1C926 #x003EB631 #x00B8FACA #x00B4633C #x00322FC7 #x00C99F60 #x004FD39B #x00434A6D #x00C50696 #x005A7981 #x00DC357A #x00D0AC8C #x0056E077 #x00681E59 #x00EE52A2 #x00E2CB54 #x006487AF #x00FBF8B8 #x007DB443 #x00712DB5 #x00F7614E #x0019A3D2 #x009FEF29 #x009376DF #x00153A24 #x008A4533 #x000C09C8 #x0000903E #x0086DCC5 #x00B822EB #x003E6E10 #x0032F7E6 #x00B4BB1D #x002BC40A #x00AD88F1 #x00A11107 #x00275DFC #x00DCED5B #x005AA1A0 #x00563856 #x00D074AD #x004F0BBA #x00C94741 #x00C5DEB7 #x0043924C #x007D6C62 #x00FB2099 #x00F7B96F #x0071F594 #x00EE8A83 #x0068C678 #x00645F8E #x00E21375 #x0015723B #x00933EC0 #x009FA736 #x0019EBCD #x008694DA #x0000D821 #x000C41D7 #x008A0D2C #x00B4F302 #x0032BFF9 #x003E260F #x00B86AF4 #x002715E3 #x00A15918 #x00ADC0EE #x002B8C15 #x00D03CB2 #x00567049 #x005AE9BF #x00DCA544 #x0043DA53 #x00C596A8 #x00C90F5E #x004F43A5 #x0071BD8B #x00F7F170 #x00FB6886 #x007D247D #x00E25B6A #x00641791 #x00688E67 #x00EEC29C #x003347A4 #x00B50B5F #x00B992A9 #x003FDE52 #x00A0A145 #x0026EDBE #x002A7448 #x00AC38B3 #x0092C69D #x00148A66 #x00181390 #x009E5F6B #x0001207C #x00876C87 #x008BF571 #x000DB98A #x00F6092D #x007045D6 #x007CDC20 #x00FA90DB #x0065EFCC #x00E3A337 #x00EF3AC1 #x0069763A #x00578814 #x00D1C4EF #x00DD5D19 #x005B11E2 #x00C46EF5 #x0042220E #x004EBBF8 #x00C8F703 #x003F964D #x00B9DAB6 #x00B54340 #x00330FBB #x00AC70AC #x002A3C57 #x0026A5A1 #x00A0E95A #x009E1774 #x00185B8F #x0014C279 #x00928E82 #x000DF195 #x008BBD6E #x00872498 #x00016863 #x00FAD8C4 #x007C943F #x00700DC9 #x00F64132 #x00693E25 #x00EF72DE #x00E3EB28 #x0065A7D3 #x005B59FD #x00DD1506 #x00D18CF0 #x0057C00B #x00C8BF1C #x004EF3E7 #x00426A11 #x00C426EA #x002AE476 #x00ACA88D #x00A0317B #x00267D80 #x00B90297 #x003F4E6C #x0033D79A #x00B59B61 #x008B654F #x000D29B4 #x0001B042 #x0087FCB9 #x001883AE #x009ECF55 #x009256A3 #x00141A58 #x00EFAAFF #x0069E604 #x00657FF2 #x00E33309 #x007C4C1E #x00FA00E5 #x00F69913 #x0070D5E8 #x004E2BC6 #x00C8673D #x00C4FECB #x0042B230 #x00DDCD27 #x005B81DC #x0057182A #x00D154D1 #x0026359F #x00A07964 #x00ACE092 #x002AAC69 #x00B5D37E #x00339F85 #x003F0673 #x00B94A88 #x0087B4A6 #x0001F85D #x000D61AB #x008B2D50 #x00145247 #x00921EBC #x009E874A #x0018CBB1 #x00E37B16 #x006537ED #x0069AE1B #x00EFE2E0 #x00709DF7 #x00F6D10C #x00FA48FA #x007C0401 #x0042FA2F #x00C4B6D4 #x00C82F22 #x004E63D9 #x00D11CCE #x00575035 #x005BC9C3 #x00DD8538)) (defstruct (crc24 (:constructor %make-crc24-digest nil) (:constructor %make-crc24-state (crc)) (:copier nil)) (crc #xb704ce :type (unsigned-byte 32))) (defmethod reinitialize-instance ((state crc24) &rest initargs) (declare (ignore initargs)) (setf (crc24-crc state) #xb704ce) state) (defmethod copy-digest ((state crc24) &optional copy) (declare (type (or cl:null crc24) copy)) (cond (copy (setf (crc24-crc copy) (crc24-crc state)) copy) (t (%make-crc24-state (crc24-crc state))))) (define-digest-updater crc24 (let ((crc (crc24-crc state))) (declare (type (unsigned-byte 32) crc)) (do ((i start (1+ i)) (table +crc24-table+)) ((>= i end) (setf (crc24-crc state) (ldb (byte 24 0) crc)) state) (setf crc (logxor (aref table (logand (logxor (mod32ash crc -16) (aref sequence i)) #xff)) (mod32ash crc 8)))))) (define-digest-finalizer (crc24 3) (flet ((stuff-state (crc digest start) (declare (type (simple-array (unsigned-byte 8) (*)) digest)) (declare (type (integer 0 #.(- array-dimension-limit 3)) start)) (setf (aref digest (+ start 0)) (ldb (byte 8 16) crc) (aref digest (+ start 1)) (ldb (byte 8 8) crc) (aref digest (+ start 2)) (ldb (byte 8 0) crc)) digest)) (declare (inline stuff-state)) (etypecase digest ((simple-array (unsigned-byte 8) (*)) (stuff-state (crc24-crc state) digest digest-start)) (cl:null (stuff-state (crc24-crc state) (make-array 3 :element-type '(unsigned-byte 8)) 0))))) (defdigest crc24 :digest-length 3 :block-length 1) ironclad_0.33.0/src/digests/crc32.lisp0000644000175000017500000001106111772066062014476 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; crc32.lisp (in-package :crypto) (declaim (type (simple-array (unsigned-byte 32) (256)) +crc32-table+)) (defconst +crc32-table+ #32@(#x00000000 #x77073096 #xEE0E612C #x990951BA #x076DC419 #x706AF48F #xE963A535 #x9E6495A3 #x0EDB8832 #x79DCB8A4 #xE0D5E91E #x97D2D988 #x09B64C2B #x7EB17CBD #xE7B82D07 #x90BF1D91 #x1DB71064 #x6AB020F2 #xF3B97148 #x84BE41DE #x1ADAD47D #x6DDDE4EB #xF4D4B551 #x83D385C7 #x136C9856 #x646BA8C0 #xFD62F97A #x8A65C9EC #x14015C4F #x63066CD9 #xFA0F3D63 #x8D080DF5 #x3B6E20C8 #x4C69105E #xD56041E4 #xA2677172 #x3C03E4D1 #x4B04D447 #xD20D85FD #xA50AB56B #x35B5A8FA #x42B2986C #xDBBBC9D6 #xACBCF940 #x32D86CE3 #x45DF5C75 #xDCD60DCF #xABD13D59 #x26D930AC #x51DE003A #xC8D75180 #xBFD06116 #x21B4F4B5 #x56B3C423 #xCFBA9599 #xB8BDA50F #x2802B89E #x5F058808 #xC60CD9B2 #xB10BE924 #x2F6F7C87 #x58684C11 #xC1611DAB #xB6662D3D #x76DC4190 #x01DB7106 #x98D220BC #xEFD5102A #x71B18589 #x06B6B51F #x9FBFE4A5 #xE8B8D433 #x7807C9A2 #x0F00F934 #x9609A88E #xE10E9818 #x7F6A0DBB #x086D3D2D #x91646C97 #xE6635C01 #x6B6B51F4 #x1C6C6162 #x856530D8 #xF262004E #x6C0695ED #x1B01A57B #x8208F4C1 #xF50FC457 #x65B0D9C6 #x12B7E950 #x8BBEB8EA #xFCB9887C #x62DD1DDF #x15DA2D49 #x8CD37CF3 #xFBD44C65 #x4DB26158 #x3AB551CE #xA3BC0074 #xD4BB30E2 #x4ADFA541 #x3DD895D7 #xA4D1C46D #xD3D6F4FB #x4369E96A #x346ED9FC #xAD678846 #xDA60B8D0 #x44042D73 #x33031DE5 #xAA0A4C5F #xDD0D7CC9 #x5005713C #x270241AA #xBE0B1010 #xC90C2086 #x5768B525 #x206F85B3 #xB966D409 #xCE61E49F #x5EDEF90E #x29D9C998 #xB0D09822 #xC7D7A8B4 #x59B33D17 #x2EB40D81 #xB7BD5C3B #xC0BA6CAD #xEDB88320 #x9ABFB3B6 #x03B6E20C #x74B1D29A #xEAD54739 #x9DD277AF #x04DB2615 #x73DC1683 #xE3630B12 #x94643B84 #x0D6D6A3E #x7A6A5AA8 #xE40ECF0B #x9309FF9D #x0A00AE27 #x7D079EB1 #xF00F9344 #x8708A3D2 #x1E01F268 #x6906C2FE #xF762575D #x806567CB #x196C3671 #x6E6B06E7 #xFED41B76 #x89D32BE0 #x10DA7A5A #x67DD4ACC #xF9B9DF6F #x8EBEEFF9 #x17B7BE43 #x60B08ED5 #xD6D6A3E8 #xA1D1937E #x38D8C2C4 #x4FDFF252 #xD1BB67F1 #xA6BC5767 #x3FB506DD #x48B2364B #xD80D2BDA #xAF0A1B4C #x36034AF6 #x41047A60 #xDF60EFC3 #xA867DF55 #x316E8EEF #x4669BE79 #xCB61B38C #xBC66831A #x256FD2A0 #x5268E236 #xCC0C7795 #xBB0B4703 #x220216B9 #x5505262F #xC5BA3BBE #xB2BD0B28 #x2BB45A92 #x5CB36A04 #xC2D7FFA7 #xB5D0CF31 #x2CD99E8B #x5BDEAE1D #x9B64C2B0 #xEC63F226 #x756AA39C #x026D930A #x9C0906A9 #xEB0E363F #x72076785 #x05005713 #x95BF4A82 #xE2B87A14 #x7BB12BAE #x0CB61B38 #x92D28E9B #xE5D5BE0D #x7CDCEFB7 #x0BDBDF21 #x86D3D2D4 #xF1D4E242 #x68DDB3F8 #x1FDA836E #x81BE16CD #xF6B9265B #x6FB077E1 #x18B74777 #x88085AE6 #xFF0F6A70 #x66063BCA #x11010B5C #x8F659EFF #xF862AE69 #x616BFFD3 #x166CCF45 #xA00AE278 #xD70DD2EE #x4E048354 #x3903B3C2 #xA7672661 #xD06016F7 #x4969474D #x3E6E77DB #xAED16A4A #xD9D65ADC #x40DF0B66 #x37D83BF0 #xA9BCAE53 #xDEBB9EC5 #x47B2CF7F #x30B5FFE9 #xBDBDF21C #xCABAC28A #x53B39330 #x24B4A3A6 #xBAD03605 #xCDD70693 #x54DE5729 #x23D967BF #xB3667A2E #xC4614AB8 #x5D681B02 #x2A6F2B94 #xB40BBE37 #xC30C8EA1 #x5A05DF1B #x2D02EF8D)) (defstruct (crc32 (:constructor %make-crc32-digest nil) (:constructor %make-crc32-state (crc)) (:copier nil)) (crc 4294967295 :type (unsigned-byte 32))) (defmethod reinitialize-instance ((state crc32) &rest initargs) (declare (ignore initargs)) (setf (crc32-crc state) #xffffffff) state) (defmethod copy-digest ((state crc32) &optional copy) (declare (type (or cl:null crc32) copy)) (cond (copy (setf (crc32-crc copy) (crc32-crc state)) copy) (t (%make-crc32-state (crc32-crc state))))) (define-digest-updater crc32 (let ((crc (crc32-crc state))) (declare (type (unsigned-byte 32) crc)) (do ((i start (1+ i)) (table +crc32-table+)) ((>= i end) (setf (crc32-crc state) crc) state) (setf crc (logxor (aref table (logand (logxor crc (aref sequence i)) #xff)) (mod32ash crc -8)))))) (define-digest-finalizer (crc32 4) (flet ((stuff-state (crc digest start) (declare (type (simple-array (unsigned-byte 8) (*)) digest)) (declare (type (integer 0 #.(- array-dimension-limit 4)) start)) (setf (nibbles:ub32ref/be digest start) crc) digest)) (declare (inline stuff-state)) (let ((result (logxor #xffffffff (crc32-crc state)))) (etypecase digest ((simple-array (unsigned-byte 8) (*)) (stuff-state result digest digest-start)) (cl:null (stuff-state result (make-array 4 :element-type '(unsigned-byte 8)) 0)))))) (defdigest crc32 :digest-length 4 :block-length 1) ironclad_0.33.0/src/digests/adler32.lisp0000644000175000017500000000452711772066114015025 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; adler32.lisp - computing adler32 checksums (rfc1950) of a byte array (in-package :crypto) ;;; smallest prime < 65536 (defconstant adler32-modulo 65521) (defstruct (adler32 (:constructor %make-adler32-digest nil) (:constructor %make-adler32-state (s1 s2)) (:copier nil)) (s1 1 :type fixnum) (s2 0 :type fixnum)) (defmethod reinitialize-instance ((state adler32) &rest initargs) (declare (ignore initargs)) (setf (adler32-s1 state) 1 (adler32-s2 state) 0) state) (defmethod copy-digest ((state adler32) &optional copy) (declare (type (or cl:null adler32) copy)) (cond (copy (setf (adler32-s1 copy) (adler32-s1 state) (adler32-s2 copy) (adler32-s2 copy)) copy) (t (%make-adler32-state (adler32-s1 state) (adler32-s2 state))))) (define-digest-updater adler32 ;; many thanks to Xach for his code from Salza. (let ((length (- end start)) (i 0) (k 0) (s1 (adler32-s1 state)) (s2 (adler32-s2 state))) (declare (type index i k length) (type fixnum s1 s2)) (unless (zerop length) (tagbody loop (setf k (min 16 length)) (decf length k) sum (setf s1 (+ (aref sequence (+ start i)) s1)) (setf s2 (+ s1 s2)) (decf k) (incf i) (unless (zerop k) (go sum)) (setf s1 (mod s1 adler32-modulo)) (setf s2 (mod s2 adler32-modulo)) (unless (zerop length) (go loop)) (setf (adler32-s1 state) s1 (adler32-s2 state) s2))) state)) (define-digest-finalizer (adler32 4) (flet ((stuff-state (state digest start) (declare (type (simple-array (unsigned-byte 8) (*)) digest)) (declare (type (integer 0 #.(- array-dimension-limit 4)) start)) (setf (nibbles:ub32ref/be digest start) (logior (ash (adler32-s2 state) 16) (adler32-s1 state))) digest)) (declare (inline stuff-state)) (etypecase digest ((simple-array (unsigned-byte 8) (*)) (stuff-state state digest digest-start)) (cl:null (stuff-state state (make-array 4 :element-type '(unsigned-byte 8)) 0))))) (defdigest adler32 :digest-length 4 :block-length 1) ironclad_0.33.0/src/digests/md2.lisp0000644000175000017500000001234011761302200014226 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; md2.lisp -- the MD2 message digest algorithm from RFC 1319 (in-package :crypto) (defconst +md2-permutation+ #8@(41 46 67 201 162 216 124 1 61 54 84 161 236 240 6 19 98 167 5 243 192 199 115 140 152 147 43 217 188 76 130 202 30 155 87 60 253 212 224 22 103 66 111 24 138 23 229 18 190 78 196 214 218 158 222 73 160 251 245 142 187 47 238 122 169 104 121 145 21 178 7 63 148 194 16 137 11 34 95 33 128 127 93 154 90 144 50 39 53 62 204 231 191 247 151 3 255 25 48 179 72 165 181 209 215 94 146 42 172 86 170 198 79 184 56 210 150 164 125 182 118 252 107 226 156 116 4 241 69 157 112 89 100 113 135 32 134 91 207 101 230 45 168 2 27 96 37 173 174 176 185 246 28 70 97 105 52 64 126 15 85 71 163 35 221 81 175 58 195 92 249 206 186 197 234 38 44 83 13 110 133 40 132 9 211 223 205 244 65 129 77 82 106 220 55 200 108 193 171 250 36 225 123 8 12 189 177 74 120 136 149 139 227 99 232 109 233 203 213 254 59 0 29 57 242 239 183 14 102 88 208 228 166 119 114 248 235 117 75 10 49 68 80 180 143 237 31 26 219 153 141 51 159 17 131 20)) (eval-when (:compile-toplevel) (defmacro stateref (regs i) `(aref ,regs (+ ,i 0))) (defmacro blockref (regs i) `(aref ,regs (+ ,i 16))) (defmacro workref (regs i) `(aref ,regs (+ ,i 32))) ) ; EVAL-WHEN (defun update-md2-regs (regs buffer offset checksum) (declare (type (simple-array (unsigned-byte 8) (48)) regs) (type (simple-array (unsigned-byte 8) (16)) checksum) (type simple-octet-vector buffer) #.(burn-baby-burn)) (let ((x 0)) (declare (type (unsigned-byte 8) x)) ;; save original input and prepare encryption block (dotimes (i 16) (setf (workref regs i) (logxor (stateref regs i) (aref buffer (+ i offset))) (blockref regs i) (aref buffer (+ i offset)))) ;; encrypt block (dotimes (i 18) (dotimes (j 48) (setf x (logxor (aref +md2-permutation+ x) (aref regs j)) (aref regs j) x)) (setf x (mod (+ x i) 256))) ;; update checksum (setf x (aref checksum 15)) (dotimes (i 16) (setf x (logxor (aref checksum i) (aref +md2-permutation+ (logxor (aref buffer (+ i offset)) x))) (aref checksum i) x)))) (declaim (inline md2regs-digest)) (defun md2regs-digest (regs buffer start) (declare (type (simple-array (unsigned-byte 8) (48)) regs) #.(burn-baby-burn)) (flet ((stuff-registers (buffer start) (declare (type (simple-array (unsigned-byte 8) (*)) buffer)) (dotimes (i 16 buffer) (setf (aref buffer (+ start i)) (stateref regs i))))) (declare (inline stuff-registers)) (cond (buffer (stuff-registers buffer start)) (t (stuff-registers (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0) 0))))) (defstruct (md2 (:constructor %make-md2-digest (&aux (buffer (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0)))) (:constructor %make-md2-state (regs checksum buffer buffer-index)) (:copier nil) (:include mdx)) (regs (make-array 48 :element-type '(unsigned-byte 8) :initial-element 0) :type (simple-array (unsigned-byte 8) (48)) :read-only t) (checksum (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0) :type (simple-array (unsigned-byte 8) (16)) :read-only t)) (defmethod reinitialize-instance ((state md2) &rest initargs) (declare (ignore initargs)) (fill (md2-regs state) 0) (fill (md2-checksum state) 0) (setf (md2-buffer-index state) 0) state) (defmethod copy-digest ((state md2) &optional copy) (declare (type (or cl:null md2) copy)) (cond (copy (replace (md2-regs copy) (md2-regs state)) (replace (md2-checksum copy) (md2-checksum state)) (replace (md2-buffer copy) (md2-buffer state)) (setf (md2-buffer-index copy) (md2-buffer-index state)) copy) (t (%make-md2-state (copy-seq (md2-regs state)) (copy-seq (md2-checksum state)) (copy-seq (md2-buffer state)) (md2-buffer-index state))))) (define-digest-updater md2 (flet ((compress (state sequence offset) (update-md2-regs (md2-regs state) sequence offset (md2-checksum state)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (md2 16) (let* ((regs (md2-regs state)) (checksum (md2-checksum state)) (buffer (md2-buffer state)) (buffer-index (md2-buffer-index state)) (pad-amount (- 16 buffer-index))) ;; pad with appropriate padding (dotimes (i pad-amount) (setf (aref buffer (+ buffer-index i)) pad-amount)) (update-md2-regs regs buffer 0 checksum) ;; extend the message with the checksum (dotimes (i 16) (setf (aref buffer i) (aref checksum i))) (update-md2-regs regs buffer 0 checksum) (finalize-registers state regs))) (defdigest md2 :digest-length 16 :block-length 16) ironclad_0.33.0/src/digests/md4.lisp0000644000175000017500000001417211761302200014235 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; md4.lisp -- the MD4 digest algorithm as given in RFC1320 (in-package :crypto) (define-digest-registers (md4 :endian :little) (a #x67452301) (b #xefcdab89) (c #x98badcfe) (d #x10325476)) (defconst +pristine-md4-registers+ (initial-md4-regs)) (defun update-md4-block (regs block) (declare (type md4-regs regs)) (declare (type (simple-array (unsigned-byte 32) (16)) block) #.(burn-baby-burn)) (let ((a (md4-regs-a regs)) (b (md4-regs-b regs)) (c (md4-regs-c regs)) (d (md4-regs-d regs))) (declare (type (unsigned-byte 32) a b c d)) (flet ((f (x y z) (declare (type (unsigned-byte 32) x y z)) (logior (logand x y) (logandc1 x z))) (g (x y z) (declare (type (unsigned-byte 32) x y z)) (logior (logand x y) (logand x z) (logand y z))) (h (x y z) (declare (type (unsigned-byte 32) x y z)) (logxor x y z))) #+ironclad-fast-mod32-arithmetic (declare (inline f g h)) (macrolet ((with-md4-round ((op block constant) &rest clauses) (loop for (a b c d k s) in clauses collect `(setq ,a (rol32 (mod32+ (mod32+ ,a (mod32+ (,op ,b ,c ,d) (aref ,block ,k))) ,constant) ,s)) into result finally (return `(progn ,@result))))) (with-md4-round (f block 0) (a b c d 0 3) (d a b c 1 7) (c d a b 2 11) (b c d a 3 19) (a b c d 4 3) (d a b c 5 7) (c d a b 6 11) (b c d a 7 19) (a b c d 8 3) (d a b c 9 7) (c d a b 10 11) (b c d a 11 19) (a b c d 12 3) (d a b c 13 7) (c d a b 14 11) (b c d a 15 19)) (with-md4-round (g block #x5a827999) (a b c d 0 3) (d a b c 4 5) (c d a b 8 9) (b c d a 12 13) (a b c d 1 3) (d a b c 5 5) (c d a b 9 9) (b c d a 13 13) (a b c d 2 3) (d a b c 6 5) (c d a b 10 9) (b c d a 14 13) (a b c d 3 3) (d a b c 7 5) (c d a b 11 9) (b c d a 15 13)) (with-md4-round (h block #x6ed9eba1) (a b c d 0 3) (d a b c 8 9) (c d a b 4 11) (b c d a 12 15) (a b c d 2 3) (d a b c 10 9) (c d a b 6 11) (b c d a 14 15) (a b c d 1 3) (d a b c 9 9) (c d a b 5 11) (b c d a 13 15) (a b c d 3 3) (d a b c 11 9) (c d a b 7 11) (b c d a 15 15)) (setf (md4-regs-a regs) (mod32+ (md4-regs-a regs) a) (md4-regs-b regs) (mod32+ (md4-regs-b regs) b) (md4-regs-c regs) (mod32+ (md4-regs-c regs) c) (md4-regs-d regs) (mod32+ (md4-regs-d regs) d)) regs)))) (defstruct (md4 (:constructor %make-md4-digest nil) (:constructor %make-md4-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-md4-regs) :type md4-regs :read-only t) (block (make-array 16 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (16)) :read-only t)) (defmethod reinitialize-instance ((state md4) &rest initargs) (declare (ignore initargs)) (replace (md4-regs state) +pristine-md4-registers+) (setf (md4-amount state) 0 (md4-buffer-index state) 0) state) (defmethod copy-digest ((state md4) &optional copy) (declare (type (or cl:null md4) copy)) (cond (copy (replace (md4-regs copy) (md4-regs state)) (replace (md4-buffer copy) (md4-buffer state)) (setf (md4-amount copy) (md4-amount state) (md4-buffer-index copy) (md4-buffer-index state)) copy) (t (%make-md4-state (copy-seq (md4-regs state)) (md4-amount state) (copy-seq (md4-block state)) (copy-seq (md4-buffer state)) (md4-buffer-index state))))) (define-digest-updater md4 "Update the given md4-state from sequence, which is either a simple-string or a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (flet ((compress (state sequence offset) (let ((block (md4-block state))) (fill-block-ub8-le block sequence offset) (update-md4-block (md4-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (md4 16) "If the given md4-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the MD4 standard. The resulting MD4 message-digest is returned as an array of sixteen (unsigned-byte 8) values. Calling UPDATE-MD4-STATE after a call to FINALIZE-MD4-STATE results in unspecified behaviour." (let ((regs (md4-regs state)) (block (md4-block state)) (buffer (md4-buffer state)) (buffer-index (md4-buffer-index state)) (total-length (* 8 (md4-amount state)))) (declare (type md4-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (16)) block) (type (simple-array (unsigned-byte 8) (*)) buffer)) ;; Add mandatory bit 1 padding (setf (aref buffer buffer-index) #x80) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-le block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 56) (update-md4-block regs block) ;; Create new fully 0 padded block (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) ;; Add 64bit message bit length (store-data-length block total-length 14) ;; Flush last block (update-md4-block regs block) ;; Done, remember digest for later calls (finalize-registers state regs))) (defdigest md4 :digest-length 16 :block-length 64) ironclad_0.33.0/src/digests/md5.lisp0000644000175000017500000002453111772064300014246 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; This file implements The MD5 Message-Digest Algorithm, as defined in ;;;; RFC 1321 by R. Rivest, published April 1992. ;;;; ;;;; It was written by Pierre R. Mai, with copious input from the ;;;; cmucl-help mailing-list hosted at cons.org, in November 2001 and ;;;; has been placed into the public domain. ;;;; ;;;; $Id: md5.lisp,v 1.3 2003/09/16 12:07:39 crhodes Exp $ ;;;; ;;;; While the implementation should work on all conforming Common ;;;; Lisp implementations, it has only been optimized for CMU CL, ;;;; where it achieved comparable performance to the standard md5sum ;;;; utility (within a factor of 1.5 or less on iA32 and UltraSparc ;;;; hardware). ;;;; ;;;; Since the implementation makes heavy use of arithmetic on ;;;; (unsigned-byte 32) numbers, acceptable performance is likely only ;;;; on CL implementations that support unboxed arithmetic on such ;;;; numbers in some form. For other CL implementations a 16bit ;;;; implementation of MD5 is probably more suitable. ;;;; ;;;; The code implements correct operation for files of unbounded size ;;;; as is, at the cost of having to do a single generic integer ;;;; addition for each call to update-md5-state. If you call ;;;; update-md5-state frequently with little data, this can pose a ;;;; performance problem. If you can live with a size restriction of ;;;; 512 MB, then you can enable fast fixnum arithmetic by putting ;;;; :md5-small-length onto *features* prior to compiling this file. ;;;; ;;;; This software is "as is", and has no warranty of any kind. The ;;;; authors assume no responsibility for the consequences of any use ;;;; of this software. (in-package :crypto) #-ironclad-md5-lispworks-int32 (eval-when (:compile-toplevel :load-toplevel :execute) ;;; Section 3.4: Table T (defparameter *t* (make-array 64 :element-type '(unsigned-byte 32) :initial-contents (loop for i from 1 to 64 collect (truncate (* 4294967296 (abs (sin (float i 0.0d0))))))))) #-ironclad-md5-lispworks-int32 (progn ;;; This PROGN covers the rest of the file. ;;; Lispworks implementation of MD5 in md5-lispworks-int32.lisp. ;;; Section 3.3: (Initial) MD5 Working Set (define-digest-registers (md5 :endian :little) (a #x67452301) (b #xefcdab89) (c #x98badcfe) (d #x10325476)) (defconst +pristine-md5-registers+ (initial-md5-regs)) ;;; Section 3.4: Operation on 16-Word Blocks (defun update-md5-block (regs block) "This is the core part of the MD5 algorithm. It takes a complete 16 word block of input, and updates the working state in A, B, C, and D accordingly." (declare (type md5-regs regs) (type (simple-array (unsigned-byte 32) (16)) block) #.(burn-baby-burn)) (let ((a (md5-regs-a regs)) (b (md5-regs-b regs)) (c (md5-regs-c regs)) (d (md5-regs-d regs))) (declare (type (unsigned-byte 32) a b c d)) (flet ((f (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-xor z (kernel:32bit-logical-and x (kernel:32bit-logical-xor y z))) #-cmu (logxor z (logand x (logxor y z)))) (g (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-xor y (kernel:32bit-logical-and z (kernel:32bit-logical-xor x y))) #-cmu (logxor y (logand z (logxor x y)))) (h (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-xor x (kernel:32bit-logical-xor y z)) #-cmu (logxor x y z)) (i (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-xor y (kernel:32bit-logical-orc2 x z)) #-cmu (ldb (byte 32 0) (logxor y (logorc2 x z))))) #+ironclad-fast-mod32-arithmetic (declare (inline f g h i)) (macrolet ((with-md5-round ((op block) &rest clauses) (loop for (a b c d k s i) in clauses collect `(setq ,a (mod32+ ,b (rol32 (mod32+ (mod32+ ,a (,op ,b ,c ,d)) (mod32+ (aref ,block ,k) ,(aref *t* (1- i)))) ,s))) into result finally (return `(progn ,@result))))) ;; Round 1 (with-md5-round (f block) (a b c d 0 7 1)(d a b c 1 12 2)(c d a b 2 17 3)(b c d a 3 22 4) (a b c d 4 7 5)(d a b c 5 12 6)(c d a b 6 17 7)(b c d a 7 22 8) (a b c d 8 7 9)(d a b c 9 12 10)(c d a b 10 17 11)(b c d a 11 22 12) (a b c d 12 7 13)(d a b c 13 12 14)(c d a b 14 17 15)(b c d a 15 22 16)) ;; round 2 (with-md5-round (g block) (a b c d 1 5 17)(d a b c 6 9 18)(c d a b 11 14 19)(b c d a 0 20 20) (a b c d 5 5 21)(d a b c 10 9 22)(c d a b 15 14 23)(b c d a 4 20 24) (a b c d 9 5 25)(d a b c 14 9 26)(c d a b 3 14 27)(b c d a 8 20 28) (a b c d 13 5 29)(d a b c 2 9 30)(c d a b 7 14 31)(b c d a 12 20 32)) ;; round 3 (with-md5-round (h block) (a b c d 5 4 33)(d a b c 8 11 34)(c d a b 11 16 35)(b c d a 14 23 36) (a b c d 1 4 37)(d a b c 4 11 38)(c d a b 7 16 39)(b c d a 10 23 40) (a b c d 13 4 41)(d a b c 0 11 42)(c d a b 3 16 43)(b c d a 6 23 44) (a b c d 9 4 45)(d a b c 12 11 46)(c d a b 15 16 47)(b c d a 2 23 48)) ;; round 4 (with-md5-round (i block) (a b c d 0 6 49)(d a b c 7 10 50)(c d a b 14 15 51)(b c d a 5 21 52) (a b c d 12 6 53)(d a b c 3 10 54)(c d a b 10 15 55)(b c d a 1 21 56) (a b c d 8 6 57)(d a b c 15 10 58)(c d a b 6 15 59)(b c d a 13 21 60) (a b c d 4 6 61)(d a b c 11 10 62)(c d a b 2 15 63)(b c d a 9 21 64)) ;; Update and return (setf (md5-regs-a regs) (mod32+ (md5-regs-a regs) a) (md5-regs-b regs) (mod32+ (md5-regs-b regs) b) (md5-regs-c regs) (mod32+ (md5-regs-c regs) c) (md5-regs-d regs) (mod32+ (md5-regs-d regs) d)) regs)))) ;;; Mid-Level Drivers (defstruct (md5 (:constructor %make-md5-digest nil) (:constructor %make-md5-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-md5-regs) :type md5-regs :read-only t) (block (make-array 16 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (16)) :read-only t)) (defmethod reinitialize-instance ((state md5) &rest initargs) (declare (ignore initargs)) (replace (md5-regs state) +pristine-md5-registers+) (setf (md5-amount state) 0 (md5-buffer-index state) 0) state) (defmethod copy-digest ((state md5) &optional copy) (declare (type (or cl:null md5) copy)) (cond (copy (replace (md5-regs copy) (md5-regs state)) (replace (md5-buffer copy) (md5-buffer state)) (setf (md5-amount copy) (md5-amount state) (md5-buffer-index copy) (md5-buffer-index state)) copy) (t (%make-md5-state (copy-seq (md5-regs state)) (md5-amount state) (copy-seq (md5-block state)) (copy-seq (md5-buffer state)) (md5-buffer-index state))))) (define-digest-updater md5 "Update the given md5-state from sequence, which is either a simple-string or a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (flet ((compress (state sequence offset) (let ((block (md5-block state))) (fill-block-ub8-le block sequence offset) (update-md5-block (md5-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (md5 16) "If the given md5-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the MD5 standard. The resulting MD5 message-digest is returned as an array of sixteen (unsigned-byte 8) values. Calling UPDATE-MD5-STATE after a call to FINALIZE-MD5-STATE results in unspecified behaviour." (let ((regs (md5-regs state)) (block (md5-block state)) (buffer (md5-buffer state)) (buffer-index (md5-buffer-index state)) (total-length (* 8 (md5-amount state)))) (declare (type md5-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (16)) block) (type (simple-array (unsigned-byte 8) (64)) buffer)) ;; Add mandatory bit 1 padding (setf (aref buffer buffer-index) #x80) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-le block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 56) (update-md5-block regs block) ;; Create new fully 0 padded block (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) ;; Add 64bit message bit length (store-data-length block total-length 14) ;; Flush last block (update-md5-block regs block) ;; Done, remember digest for later calls (finalize-registers state regs))) (defdigest md5 :digest-length 16 :block-length 64) ) ; all-encompassing progn ironclad_0.33.0/src/digests/md5-lispworks-int32.lisp0000644000175000017500000005137611767133337017260 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; ;;;; MD5-LISPWORKS-INT32 - MD5 implementation using SYS:INT32 in Lispworks ;;;; ;;;; This file implements The MD5 Message-Digest Algorithm, as defined in ;;;; RFC 1321 by R. Rivest, published April 1992. ;;;; ;;;; It was written by Pierre R. Mai, with copious input from the ;;;; cmucl-help mailing-list hosted at cons.org, in November 2001 and ;;;; has been placed into the public domain. ;;;; ;;;; This software is "as is", and has no warranty of any kind. The ;;;; authors assume no responsibility for the consequences of any use ;;;; of this software. ;;;; ;;;; Subsequent modifications: ;;;; - LispWorks 4.4 sys:int32 port by Dmitriy Ivanov. ;;;; - Ironclad integration by Klaus Harbo ;;;; #+ironclad-md5-lispworks-int32 (cl:defpackage :md5-lispworks-int32 (:use :cl)) #+ironclad-md5-lispworks-int32 (in-package :md5-lispworks-int32) #-ironclad-md5-lispworks-int32 (in-package :cl-user) #+ironclad-md5-lispworks-int32 (eval-when (:compile-toplevel :load-toplevel :execute) (unless (fboundp (find-symbol "INT32+" '#:SYSTEM)) (error "It does not look like this version of Lispworks supports the SYS:INT32 API."))) #+ironclad-md5-lispworks-int32 (eval-when (:compile-toplevel :load-toplevel :execute) (defun %optimization-settings () '(optimize (speed 3) (safety 0) (space 0) (debug 0) (float 0))) (defun %optimization-settings/no-fixnum-safety () '(optimize (speed 3) (safety 0) (space 0) (debug 0) (float 0) (hcl:fixnum-safety 0))) (defmacro assemble-ub32 (a b c d) "Assemble an ub32 value from the given (unsigned-byte 8) values, where a is the intended low-order byte and d the high-order byte." `(sys:int32-logior (sys:int32<< ,d 24) (sys:int32-logior (sys:int32<< ,c 16) (sys:int32-logior (sys:int32<< ,b 8) ,a)))) (defmacro make-ub32-vector (length &rest args) `(sys:make-simple-int32-vector ,length ,@args)) (defparameter *t* (make-ub32-vector 64 :initial-contents (flet ((int32-unsigned-to-signed (unsigned) (dpb (ldb (byte 32 0) unsigned) (byte 32 0) (if (logbitp 31 unsigned) -1 0)))) (loop for i from 1 to 64 collect (int32-unsigned-to-signed (truncate (* 4294967296 (abs (sin (float i 0.0d0))))))))))) #+ironclad-md5-lispworks-int32 (progn ;;; This PROGN covers the rest of the file. ;;; Non-Lispworks implementation of MD5 in md5.lisp ;;; -------------------------------------------------------------------------------- ;;; Section 2: Basic Datatypes ;;; -------------------------------------------------------------------------------- (defmacro int32-vector-store-int32u (int32-vec index unsigned-int) "Stores the lowest 32 bit of the non-negative integer `INT' in the the sys:simple-int32-vector `INT32-VEC' at index `INDEX'. Since the sys:int32 API uses signed integers, the most significant bit of `UNSIGNED-INT' must be handled explicitly. If `UNSIGNED-INT' is >= 2^31, the sys:int32 value stored will appear to be a negative value. Use `INT32-VECTOR-READ-INT32U' to read the value as an unsigned integer. For maximum efficiency the entire function must be compiled with `(OPTIMIZE (FLOAT 0))'." (let ((_tmp (gensym "TMP")) (_int (gensym "INT"))) `(let* ((,_int ,unsigned-int) (,_tmp (sys:integer-to-int32 (ldb (byte 31 0) ,_int)))) (setf (sys:int32-aref ,int32-vec ,index) (if (>= (ldb (byte 32 0) ,_int) #x80000000) (sys:int32-logior ,_tmp #.(sys:int32<< sys:+int32-1+ 31)) ,_tmp))))) (deftype ub32 () "Corresponds to the 32bit quantity word of the MD5 Spec" 'sys:int32) ;;; -------------------------------------------------------------------------------- ;;; Section 3.4: Auxilliary functions ;;; -------------------------------------------------------------------------------- (declaim (inline f g h i) (ftype (function (ub32 ub32 ub32) ub32) f g h i)) (defun f (x y z) (declare (type ub32 x y z) #.(%optimization-settings)) (sys:int32-logior (sys:int32-logand x y) (sys:int32-logandc1 x z))) (defun g (x y z) (declare (type ub32 x y z) #.(%optimization-settings)) (sys:int32-logior (sys:int32-logand x z) (sys:int32-logandc2 y z))) (defun h (x y z) (declare (type ub32 x y z) #.(%optimization-settings)) (sys:int32-logxor x (sys:int32-logxor y z))) (defun i (x y z) (declare (type ub32 x y z) #.(%optimization-settings)) (sys:int32-logxor y (sys:int32-logorc2 x z))) (declaim (inline mod32+) (ftype (function (ub32 ub32) ub32) mod32+)) (defun mod32+ (a b) (declare (type ub32 a b) #.(%optimization-settings)) (sys:int32+ a b)) (define-compiler-macro mod32+ (a b) `(sys:int32+ ,a ,b)) (declaim (inline int32>>logical) (ftype (function (sys:int32 (unsigned-byte 5)) sys:int32) int32>>logical)) (defun int32>>logical (a s) ;; Logical right shift, suppressing sign bits. ;; Args: 0 < s < 32 as sys:int32<< does not work with zero or negative shift offsets. (if (sys:int32-minusp a) (sys:int32-logandc2 (sys:int32>> a s) (sys:int32<< -1 (- 32 s))) (sys:int32>> a s))) (declaim (inline rol32) (ftype (function (ub32 (unsigned-byte 5)) ub32) rol32)) (defun rol32 (a s) (declare (type ub32 a) (type (unsigned-byte 5) s) #.(%optimization-settings)) (sys:int32-logior (sys:int32<< a s) (int32>>logical a (- 32 s)))) ;;; -------------------------------------------------------------------------------- ;;; Section 3.4: Table T ;;; -------------------------------------------------------------------------------- (deftype ub32-vector (length) `(sys:simple-int32-vector ,length)) (defmacro ub32-aref (vector index) `(sys:int32-aref ,vector ,index)) (defmacro with-md5-round ((op block) &rest clauses) (loop for (a b c d k s i) in clauses collect `(setq ,a (mod32+ ,b (rol32 (mod32+ (mod32+ ,a (,op ,b ,c ,d)) (mod32+ (ub32-aref ,block ,k) ,(sys:int32-to-integer ; due to LW bug (ub32-aref *t* (1- i))))) ,s))) into result finally (return `(progn ,@result)))) ;;; -------------------------------------------------------------------------------- ;;; Section 3.3: (Initial) MD5 Working Set ;;; -------------------------------------------------------------------------------- (deftype md5-regs () "The working state of the MD5 algorithm, which contains the 4 32-bit registers A, B, C and D." `(ub32-vector 4)) (defmacro md5-regs-a (regs) `(ub32-aref ,regs 0)) (defmacro md5-regs-b (regs) `(ub32-aref ,regs 1)) (defmacro md5-regs-c (regs) `(ub32-aref ,regs 2)) (defmacro md5-regs-d (regs) `(ub32-aref ,regs 3)) (defconstant +md5-magic-a+ (assemble-ub32 #x01 #x23 #x45 #x67) "Initial value of Register A of the MD5 working state.") (defconstant +md5-magic-b+ (assemble-ub32 #x89 #xab #xcd #xef) "Initial value of Register B of the MD5 working state.") (defconstant +md5-magic-c+ (assemble-ub32 #xfe #xdc #xba #x98) "Initial value of Register C of the MD5 working state.") (defconstant +md5-magic-d+ (assemble-ub32 #x76 #x54 #x32 #x10) "Initial value of Register D of the MD5 working state.") (declaim (inline initial-md5-regs)) (defun initial-md5-regs () "Create the initial working state of an MD5 run." (declare #.(%optimization-settings)) (let ((regs (make-ub32-vector 4))) (declare (type md5-regs regs)) (setf (md5-regs-a regs) +md5-magic-a+ (md5-regs-b regs) +md5-magic-b+ (md5-regs-c regs) +md5-magic-c+ (md5-regs-d regs) +md5-magic-d+) regs)) ;;; -------------------------------------------------------------------------------- ;;; Section 3.4: Operation on 16-Word Blocks ;;; -------------------------------------------------------------------------------- (defun update-md5-block (regs block) "This is the core part of the MD5 algorithm. It takes a complete 16 word block of input, and updates the working state in A, B, C, and D accordingly." (declare (type md5-regs regs) (type (ub32-vector 16) block) #.(%optimization-settings)) (let ((a (md5-regs-a regs)) (b (md5-regs-b regs)) (c (md5-regs-c regs)) (d (md5-regs-d regs))) (declare (type ub32 a b c d)) ;; Round 1 (with-md5-round (f block) (A B C D 0 7 1)(D A B C 1 12 2)(C D A B 2 17 3)(B C D A 3 22 4) (A B C D 4 7 5)(D A B C 5 12 6)(C D A B 6 17 7)(B C D A 7 22 8) (A B C D 8 7 9)(D A B C 9 12 10)(C D A B 10 17 11)(B C D A 11 22 12) (A B C D 12 7 13)(D A B C 13 12 14)(C D A B 14 17 15)(B C D A 15 22 16)) ;; Round 2 (with-md5-round (g block) (A B C D 1 5 17)(D A B C 6 9 18)(C D A B 11 14 19)(B C D A 0 20 20) (A B C D 5 5 21)(D A B C 10 9 22)(C D A B 15 14 23)(B C D A 4 20 24) (A B C D 9 5 25)(D A B C 14 9 26)(C D A B 3 14 27)(B C D A 8 20 28) (A B C D 13 5 29)(D A B C 2 9 30)(C D A B 7 14 31)(B C D A 12 20 32)) ;; Round 3 (with-md5-round (h block) (A B C D 5 4 33)(D A B C 8 11 34)(C D A B 11 16 35)(B C D A 14 23 36) (A B C D 1 4 37)(D A B C 4 11 38)(C D A B 7 16 39)(B C D A 10 23 40) (A B C D 13 4 41)(D A B C 0 11 42)(C D A B 3 16 43)(B C D A 6 23 44) (A B C D 9 4 45)(D A B C 12 11 46)(C D A B 15 16 47)(B C D A 2 23 48)) ;; Round 4 (with-md5-round (i block) (A B C D 0 6 49)(D A B C 7 10 50)(C D A B 14 15 51)(B C D A 5 21 52) (A B C D 12 6 53)(D A B C 3 10 54)(C D A B 10 15 55)(B C D A 1 21 56) (A B C D 8 6 57)(D A B C 15 10 58)(C D A B 6 15 59)(B C D A 13 21 60) (A B C D 4 6 61)(D A B C 11 10 62)(C D A B 2 15 63)(B C D A 9 21 64)) ;; Update and return (setf (md5-regs-a regs) (mod32+ (md5-regs-a regs) a) (md5-regs-b regs) (mod32+ (md5-regs-b regs) b) (md5-regs-c regs) (mod32+ (md5-regs-c regs) c) (md5-regs-d regs) (mod32+ (md5-regs-d regs) d)) regs)) ;;; -------------------------------------------------------------------------------- ;;; Section 3.4: Converting 8bit-vectors into 16-Word Blocks ;;; -------------------------------------------------------------------------------- (declaim (inline fill-block-ub8)) (defun fill-block-ub8 (block buffer offset) "Convert a complete 64 (unsigned-byte 8) input vector segment starting from offset into the given 16 word MD5 block." (declare (type (integer 0 #.(- most-positive-fixnum 64)) offset) (type (ub32-vector 16) block) (type (simple-array (unsigned-byte 8) (*)) buffer) #.(%optimization-settings/no-fixnum-safety)) (loop for i of-type (integer 0 16) from 0 for j of-type (integer 0 #.most-positive-fixnum) from offset to (+ offset 63) by 4 do (setf (ub32-aref block i) (assemble-ub32 (aref buffer j) (aref buffer (+ j 1)) (aref buffer (+ j 2)) (aref buffer (+ j 3)))))) ;;; -------------------------------------------------------------------------------- ;;; Section 3.5: Message Digest Output ;;; -------------------------------------------------------------------------------- (declaim (inline md5regs-digest)) (defun md5regs-digest (regs buffer buffer-start) "Create the final 16 byte message-digest from the MD5 working state in regs. Returns a (simple-array (unsigned-byte 8) (16))." (declare #.(%optimization-settings/no-fixnum-safety) (type md5-regs regs)) (macrolet ((frob (reg offset) (let ((var (gensym))) `(let ((,var (sys:int32-to-integer ,reg))) (declare (type (unsigned-byte 32) ,var)) (setf (aref buffer (+ buffer-start ,offset)) (ldb (byte 8 0) ,var) (aref buffer (+ buffer-start ,(+ offset 1))) (ldb (byte 8 8) ,var) (aref buffer (+ buffer-start ,(+ offset 2))) (ldb (byte 8 16) ,var) (aref buffer (+ buffer-start ,(+ offset 3))) (ldb (byte 8 24) ,var)))))) (frob (md5-regs-a regs) 0) (frob (md5-regs-b regs) 4) (frob (md5-regs-c regs) 8) (frob (md5-regs-d regs) 12)) buffer) (defstruct (ironclad::md5 (:constructor make-md5-int32 ()) (:copier)) (regs (initial-md5-regs) :type md5-regs :read-only t) (amount 0 :type (integer 0 *)) (block (make-ub32-vector 16) :read-only t :type (ub32-vector 16)) (buffer (make-array 64 :element-type '(unsigned-byte 8)) :read-only t :type (simple-array (unsigned-byte 8) (64))) (buffer-index 0 :type (integer 0 63)) (finalized-p nil)) (defmacro %md5-regs (x) `(md5-regs ,x)) (defmacro %md5-amount (x) `(md5-amount ,x)) (defmacro %md5-block (x) `(md5-block ,x)) (defmacro %md5-buffer (x) `(md5-buffer ,x)) (defmacro %md5-buffer-index (x) `(md5-buffer-index ,x)) (defmacro %md5-finalized-p (x) `(md5-finalized-p ,x)) (declaim (inline copy-to-buffer)) (defun copy-to-buffer (from from-offset count buffer buffer-offset) "Copy a partial segment from input vector from starting at from-offset and copying count elements into the 64 byte buffer starting at buffer-offset." (declare #.(%optimization-settings/no-fixnum-safety) (type fixnum from-offset) (type (integer 0 63) count buffer-offset) (type (simple-array * (*)) from) (type (simple-array (unsigned-byte 8) (64)) buffer)) (etypecase from ((simple-array (unsigned-byte 8) (*)) (loop for buffer-index of-type (integer 0 64) from buffer-offset for from-index of-type fixnum from from-offset below (+ from-offset count) do (setf (aref buffer buffer-index) (aref (the (simple-array (unsigned-byte 8) (*)) from) from-index)))))) (defun %md5-lispworks-int32-update-state (state sequence &key (start 0) (end (length sequence))) "Update the given md5-state from sequence, which must be simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (declare (type ironclad::md5 state) (type (simple-array * (*)) sequence) (type fixnum start end) #.(%optimization-settings/no-fixnum-safety)) (let ((regs (%md5-regs state)) (block (%md5-block state)) (buffer (%md5-buffer state)) (buffer-index (%md5-buffer-index state)) (length (- end start))) (declare (type md5-regs regs) (type fixnum length) (type (integer 0 63) buffer-index) (type (ub32-vector 16) block) (type (simple-array (unsigned-byte 8) (64)) buffer)) ;; Handle old rest (unless (zerop buffer-index) (let ((amount (min (- 64 buffer-index) length))) (declare (type (integer 0 63) amount)) (copy-to-buffer sequence start amount buffer buffer-index) (setq start (the fixnum (+ start amount))) (let ((new-index (mod (+ buffer-index amount) 64))) (when (zerop new-index) (fill-block-ub8 block buffer 0) (update-md5-block regs block)) (when (>= start end) (setf (%md5-buffer-index state) new-index) (incf (%md5-amount state) length) (return-from %md5-lispworks-int32-update-state state))))) ;; Handle main-part and new-rest (etypecase sequence ((simple-array (unsigned-byte 8) (*)) (locally (declare (type (simple-array (unsigned-byte 8) (*)) sequence)) (loop for offset of-type fixnum from start below end by 64 until (< (- end offset) 64) do (fill-block-ub8 block sequence offset) (update-md5-block regs block) finally (let ((amount (- end offset))) (unless (zerop amount) (copy-to-buffer sequence offset amount buffer 0)) (setf (%md5-buffer-index state) amount)))))) (locally (declare (optimize (hcl:fixnum-safety 3))) (setf (%md5-amount state) (+ (%md5-amount state) length))) state)) (defun %md5-lispworks-int32-finalize-state (state digest-buffer digest-buffer-start) "If the given md5-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the MD5 standard. The resulting MD5 message-digest is returned as an array of sixteen \(unsigned-byte 8) values. Calling `update-md5-state' after a call to `finalize-md5-state' results in unspecified behaviour." (declare (type ironclad::md5 state) (optimize (speed 0) (space 0) (debug 2) (float 0)) (optimize (hcl:fixnum-safety 0))) (or (%md5-finalized-p state) (let ((regs (%md5-regs state)) (block (%md5-block state)) (buffer (%md5-buffer state)) (buffer-index (%md5-buffer-index state)) (total-length (* 8 (%md5-amount state)))) ; potentially bignum (declare (type md5-regs regs) (type (integer 0 63) buffer-index) (type (ub32-vector 16) block) (type (simple-array (unsigned-byte 8) (*)) buffer)) ;; Add mandatory bit 1 padding (setf (aref buffer buffer-index) #x80) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8 block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 56) (update-md5-block regs block) ;; Create new fully 0 padded block (loop for index of-type (integer 0 16) from 0 below 16 do (setf (ub32-aref block index) #x00000000))) ;; Add 64bit message bit length (int32-vector-store-int32u block 14 total-length) (int32-vector-store-int32u block 15 (ldb (byte 32 32) total-length)) ;; Flush last block (update-md5-block regs block) ;; Done, remember digest for later calls (setf (%md5-finalized-p state) (md5regs-digest regs digest-buffer digest-buffer-start))))) ;;; -------------------------------------------------------------------------------- ;;; IRONCLAD INTERFACING SUPPORT FUNCTIONS ;;; -------------------------------------------------------------------------------- (defun %md5-lispworks-int32-reinitialize (state) (let ((regs (%md5-regs state))) (setf (md5-regs-a regs) +md5-magic-a+ (md5-regs-b regs) +md5-magic-b+ (md5-regs-c regs) +md5-magic-c+ (md5-regs-d regs) +md5-magic-d+)) (setf (%md5-amount state) 0) (setf (%md5-buffer-index state) 0) (setf (%md5-finalized-p state) nil) state) (defmethod %md5-lispworks-int32-copy ((old ironclad::md5) copy) (let* ((new (or copy (make-md5-int32))) (old-regs (%md5-regs old)) (new-regs (%md5-regs new))) (setf (md5-regs-a new-regs) (md5-regs-a old-regs) (md5-regs-b new-regs) (md5-regs-b old-regs) (md5-regs-c new-regs) (md5-regs-c old-regs) (md5-regs-d new-regs) (md5-regs-d old-regs)) (replace (%md5-buffer new) (%md5-buffer old)) (setf (%md5-amount new) (%md5-amount old) (%md5-buffer-index new) (%md5-buffer-index old) (%md5-finalized-p new) (%md5-finalized-p old)) new)) ;;; -------------------------------------------------------------------------------- ;;; IRONCLAD INTERFACE ;;; -------------------------------------------------------------------------------- (defmethod reinitialize-instance ((state ironclad::md5) &rest initargs) (%md5-lispworks-int32-reinitialize state)) (defmethod ironclad:copy-digest ((state ironclad::md5) &optional copy) (%md5-lispworks-int32-copy state (or copy (ironclad::%make-md5-digest)))) (ironclad::define-digest-updater ironclad::md5 (%md5-lispworks-int32-update-state ironclad::state ironclad::sequence :start ironclad::start :end ironclad::end )) (ironclad::define-digest-finalizer (ironclad::md5 16) (%md5-lispworks-int32-finalize-state ironclad::state ironclad::%buffer ironclad::buffer-start)) (defun ironclad::%make-md5-digest () (make-md5-int32)) (ironclad::defdigest ironclad::md5 :digest-length 16 :block-length 64) ) ; all-encompassing progn ;eof ironclad_0.33.0/src/digests/sha1.lisp0000664000175000017500000002163412114776365014434 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; This is an implementation of the US Secure Hash Algorithm 1 (SHA1), ;;;; defined in RFC 3174, written by D. Eastlake and P. Jones, September ;;;; 2001. The RFC was based on the document "Secure Hash Standard", ;;;; United States of America, National Institute of Science and Technology, ;;;; Federal Information Processing Standard (FIPS) 180-1, April 1993. ;;;; ;;;; It was written by Nathan J. Froyd, with many of the main ideas and ;;;; functions grabbed from Pierre R. Mai's CL implementation of MD5, ;;;; available at http://www.pmsf.de/pmai/MD5.html. ;;;; ;;;; This implementation should work on any conforming Common Lisp ;;;; implementation, but it has been optimized for CMU CL and SBCL. ;;;; ;;;; The implementation makes heavy use of (UNSIGNED-BYTE 32) arithmetic; ;;;; if your CL implementation does not implement unboxed arithmetic on ;;;; such numbers, performance will likely be greater in a 16-bit ;;;; implementation. ;;;; ;;;; This software is "as is", and has no warranty of any kind. The ;;;; authors assume no responsibility for the consequences of any use ;;;; of this software. (in-package :crypto) ;;; nonlinear functions (defconstant +k1+ #x5a827999) (defconstant +k2+ #x6ed9eba1) (defconstant +k3+ #x8f1bbcdc) (defconstant +k4+ #xca62c1d6) ;;; working set (define-digest-registers (sha1 :endian :big) (a #x67452301) (b #xefcdab89) (c #x98badcfe) (d #x10325476) (e #xc3d2e1f0)) (defconst +pristine-sha1-registers+ (initial-sha1-regs)) (defun update-sha1-block (regs block) (declare (type sha1-regs regs) (type (simple-array (unsigned-byte 32) (80)) block) #.(burn-baby-burn)) ;; FIXME: There must be a better way to do this ;; per-implementation/architecture specialization. #+(and sbcl x86-64) (%update-sha1-block regs block) #-(and sbcl x86-64) (let ((a (sha1-regs-a regs)) (b (sha1-regs-b regs)) (c (sha1-regs-c regs)) (d (sha1-regs-d regs)) (e (sha1-regs-e regs))) (macrolet ((sha1-rounds (block func constant low high &rest initial-order) ;; Yay for "implementation-dependent" behavior (6.1.1.4). (let ((xvars (apply #'make-circular-list initial-order))) (loop for i from low upto high for vars on xvars by #'cddddr collect (let ((a-var (first vars)) (b-var (second vars)) (c-var (third vars)) (d-var (fourth vars)) (e-var (fifth vars))) `(setf ,e-var (mod32+ (rol32 ,a-var 5) (mod32+ (mod32+ (,func ,b-var ,c-var ,d-var) ,e-var) (mod32+ (aref ,block ,i) ,constant))) ,b-var (rol32 ,b-var 30))) into forms finally (return `(progn ,@forms)))))) (flet ((f1 (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-xor z (kernel:32bit-logical-and x (kernel:32bit-logical-xor y z))) #-cmu (logxor z (logand x (logxor y z)))) (f2 (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-xor x (kernel:32bit-logical-xor y z)) #-cmu (ldb (byte 32 0) (logxor x y z))) (f3 (x y z) (declare (type (unsigned-byte 32) x y z)) #+cmu (kernel:32bit-logical-or (kernel:32bit-logical-or (kernel:32bit-logical-and x y) (kernel:32bit-logical-and x z)) (kernel:32bit-logical-and y z)) #-cmu (ldb (byte 32 0) (logior (logand x y) (logand x z) (logand y z))))) #+ironclad-fast-mod32-arithmetic (declare (inline f1 f2 f3)) ;; core of the algorithm (sha1-rounds block f1 +k1+ 0 19 a b c d e) (sha1-rounds block f2 +k2+ 20 39 a b c d e) (sha1-rounds block f3 +k3+ 40 59 a b c d e) (sha1-rounds block f2 +k4+ 60 79 a b c d e) ;; update and return (setf (sha1-regs-a regs) (mod32+ (sha1-regs-a regs) a) (sha1-regs-b regs) (mod32+ (sha1-regs-b regs) b) (sha1-regs-c regs) (mod32+ (sha1-regs-c regs) c) (sha1-regs-d regs) (mod32+ (sha1-regs-d regs) d) (sha1-regs-e regs) (mod32+ (sha1-regs-e regs) e)) regs)))) ;; ugh. #+(and ironclad-fast-mod32-arithmetic (not (and sbcl (or x86 x86-64)))) (declaim (inline expand-block)) (defun expand-block (block) "Expand the first 16 words in BLOCK to fill the entire 80 word space available." (declare (type (simple-array (unsigned-byte 32) (80)) block) #.(burn-baby-burn)) (loop for i of-type (integer 16 80) from 16 below 80 do (setf (aref block i) (rol32 #+cmu (kernel:32bit-logical-xor (kernel:32bit-logical-xor (aref block (- i 3)) (aref block (- i 8))) (kernel:32bit-logical-xor (aref block (- i 14)) (aref block (- i 16)))) #-cmu (ldb (byte 32 0) (logxor (aref block (- i 3)) (aref block (- i 8)) (aref block (- i 14)) (aref block (- i 16)))) 1))) (values)) ;;; mid-level (defstruct (sha1 (:constructor %make-sha1-digest nil) (:constructor %make-sha1-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-sha1-regs) :type sha1-regs :read-only t) (block (make-array 80 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (80)) :read-only t)) (defmethod reinitialize-instance ((state sha1) &rest initargs) (declare (ignore initargs)) (replace (sha1-regs state) +pristine-sha1-registers+) (setf (sha1-amount state) 0 (sha1-buffer-index state) 0) state) (defmethod copy-digest ((state sha1) &optional copy) (declare (type (or cl:null sha1) copy)) (cond (copy (replace (sha1-regs copy) (sha1-regs state)) (replace (sha1-buffer copy) (sha1-buffer state)) (setf (sha1-amount copy) (sha1-amount state) (sha1-buffer-index copy) (sha1-buffer-index state)) copy) (t (%make-sha1-state (copy-seq (sha1-regs state)) (sha1-amount state) (copy-seq (sha1-block state)) (copy-seq (sha1-buffer state)) (sha1-buffer-index state))))) (define-digest-updater sha1 (flet ((compress (state sequence offset) (let ((block (sha1-block state))) (fill-block-ub8-be block sequence offset) (expand-block block) (update-sha1-block (sha1-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (sha1 20) (let ((regs (sha1-regs state)) (block (sha1-block state)) (buffer (sha1-buffer state)) (buffer-index (sha1-buffer-index state)) (total-length (* 8 (sha1-amount state)))) (declare (type sha1-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (80)) block) (type (simple-array (unsigned-byte 8) (64)) buffer)) (declare (notinline update-sha1-block)) (setf (aref buffer buffer-index) #x80) (when (> buffer-index 55) (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-be block buffer 0) (expand-block block) (update-sha1-block regs block) (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) (when (<= buffer-index 55) (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) ;; copy the data to BLOCK prematurely (fill-block-ub8-be block buffer 0)) ;; fill in the remaining block data (store-data-length block total-length 14 t) (expand-block block) (update-sha1-block regs block) (finalize-registers state regs))) (defdigest sha1 :digest-length 20 :block-length 64) ironclad_0.33.0/src/digests/sha256.lisp0000644000175000017500000001763411772062570014606 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; sha256.lisp -- implementation of SHA-2/256 from NIST (in-package :crypto) (define-digest-registers (sha224 :endian :big :digest-registers 7) (a #xc1059ed8) (b #x367cd507) (c #x3070dd17) (d #xf70e5939) (e #xffc00b31) (f #x68581511) (g #x64f98fa7) (h #xbefa4fa4)) (defconst +pristine-sha224-registers+ (initial-sha224-regs)) (define-digest-registers (sha256 :endian :big) (a #x6a09e667) (b #xbb67ae85) (c #x3c6ef372) (d #xa54ff53a) (e #x510e527f) (f #x9b05688c) (g #x1f83d9ab) (h #x5be0cd19)) (defconst +pristine-sha256-registers+ (initial-sha256-regs)) (defconst +sha256-round-constants+ #32@(#x428A2F98 #x71374491 #xB5C0FBCF #xE9B5DBA5 #x3956C25B #x59F111F1 #x923F82A4 #xAB1C5ED5 #xD807AA98 #x12835B01 #x243185BE #x550C7DC3 #x72BE5D74 #x80DEB1FE #x9BDC06A7 #xC19BF174 #xE49B69C1 #xEFBE4786 #x0FC19DC6 #x240CA1CC #x2DE92C6F #x4A7484AA #x5CB0A9DC #x76F988DA #x983E5152 #xA831C66D #xB00327C8 #xBF597FC7 #xC6E00BF3 #xD5A79147 #x06CA6351 #x14292967 #x27B70A85 #x2E1B2138 #x4D2C6DFC #x53380D13 #x650A7354 #x766A0ABB #x81C2C92E #x92722C85 #xA2BFE8A1 #xA81A664B #xC24B8B70 #xC76C51A3 #xD192E819 #xD6990624 #xF40E3585 #x106AA070 #x19A4C116 #x1E376C08 #x2748774C #x34B0BCB5 #x391C0CB3 #x4ED8AA4A #x5B9CCA4F #x682E6FF3 #x748F82EE #x78A5636F #x84C87814 #x8CC70208 #x90BEFFFA #xA4506CEB #xBEF9A3F7 #xC67178F2)) (defun update-sha256-block (regs block) (declare (type sha256-regs regs)) (declare (type (simple-array (unsigned-byte 32) (64)) block) #.(burn-baby-burn)) (let ((a (sha256-regs-a regs)) (b (sha256-regs-b regs)) (c (sha256-regs-c regs)) (d (sha256-regs-d regs)) (e (sha256-regs-e regs)) (f (sha256-regs-f regs)) (g (sha256-regs-g regs)) (h (sha256-regs-h regs))) (flet ((ch (x y z) #+cmu (kernel:32bit-logical-xor z (kernel:32bit-logical-and x (kernel:32bit-logical-xor y z))) #-cmu (logxor z (logand x (logxor y z)))) (maj (x y z) (ldb (byte 32 0) (logxor (logand x y) (logand x z) (logand y z)))) (sigma0 (x) (logxor (rol32 x 30) (rol32 x 19) (rol32 x 10))) (sigma1 (x) (logxor (rol32 x 26) (rol32 x 21) (rol32 x 7)))) #+ironclad-fast-mod32-arithmetic (declare (inline ch maj sigma0 sigma1)) (macrolet ((sha256-round (i a b c d e f g h) `(let ((x (mod32+ (sigma1 ,e) (mod32+ (ch ,e ,f ,g) (mod32+ ,h (mod32+ (aref block ,i) (aref +sha256-round-constants+ ,i))))))) (declare (type (unsigned-byte 32) x)) (setf ,d (mod32+ ,d x) ,h (mod32+ (sigma0 ,a) (mod32+ (maj ,a ,b ,c) x)))))) ;; Yay for "implementation-dependent" behavior (6.1.1.4). #.(let ((xvars (make-circular-list 'a 'b 'c 'd 'e 'f 'g 'h))) (loop for i from 0 below 64 for vars on xvars by #'(lambda (x) (nthcdr 7 x)) collect `(sha256-round ,i ,@(circular-list-subseq vars 0 8)) into forms finally (return `(progn ,@forms)))) #.(loop for slot in '(a b c d e f g h) collect (let ((regs-accessor (intern (format nil "~A-~A" '#:sha256-regs slot)))) `(setf (,regs-accessor regs) (mod32+ (,regs-accessor regs) ,slot))) into forms finally (return `(progn ,@forms))) regs)))) (defun sha256-expand-block (block) (declare (type (simple-array (unsigned-byte 32) (64)) block) #.(burn-baby-burn)) (flet ((sigma0 (x) (declare (type (unsigned-byte 32) x)) (logxor (rol32 x 25) (rol32 x 14) (mod32ash x -3))) (sigma1 (x) (declare (type (unsigned-byte 32) x)) (logxor (rol32 x 15) (rol32 x 13) (mod32ash x -10)))) #+ironclad-fast-mod32-arithmetic (declare (inline sigma0 sigma1)) (loop for i from 16 below 64 do (setf (aref block i) (mod32+ (sigma1 (aref block (- i 2))) (mod32+ (aref block (- i 7)) (mod32+ (sigma0 (aref block (- i 15))) (aref block (- i 16))))))) (values))) ;;; mid-level (defstruct (sha256 (:constructor %make-sha256-digest nil) (:copier nil) (:include mdx)) (regs (initial-sha256-regs) :type sha256-regs :read-only t) (block (make-array 64 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (64)) :read-only t)) (defstruct (sha224 (:include sha256) (:constructor %make-sha224-digest (&aux (regs (initial-sha224-regs)))) (:copier nil)) ;; No slots. ) (defmethod reinitialize-instance ((state sha256) &rest initargs) (declare (ignore initargs)) (replace (sha256-regs state) +pristine-sha256-registers+) (setf (sha256-amount state) 0 (sha256-buffer-index state) 0) state) (defmethod reinitialize-instance ((state sha224) &rest initargs) (declare (ignore initargs)) (replace (sha224-regs state) +pristine-sha224-registers+) (setf (sha224-amount state) 0 (sha224-buffer-index state) 0) state) (defmethod copy-digest ((state sha256) &optional copy) (declare (type (or cl:null sha256) copy)) (let ((copy (if copy copy (etypecase state (sha224 (%make-sha224-digest)) (sha256 (%make-sha256-digest)))))) (declare (type sha256 copy)) (replace (sha256-regs copy) (sha256-regs state)) (replace (sha256-buffer copy) (sha256-buffer state)) (setf (sha256-amount copy) (sha256-amount state) (sha256-buffer-index copy) (sha256-buffer-index state)) copy)) (define-digest-updater sha256 (flet ((compress (state sequence offset) (let ((block (sha256-block state))) (fill-block-ub8-be block sequence offset) (sha256-expand-block block) (update-sha256-block (sha256-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer ((sha256 32) (sha224 28)) (let ((regs (sha256-regs state)) (block (sha256-block state)) (buffer (sha256-buffer state)) (buffer-index (sha256-buffer-index state)) (total-length (* 8 (sha256-amount state)))) (declare (type sha256-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (64)) block) (type (simple-array (unsigned-byte 8) (64)) buffer)) (setf (aref buffer buffer-index) #x80) (when (> buffer-index 55) (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-be block buffer 0) (sha256-expand-block block) (update-sha256-block regs block) (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) (when (<= buffer-index 55) (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) ;; copy the data to BLOCK prematurely (fill-block-ub8-be block buffer 0)) ;; fill in the remaining block data (store-data-length block total-length 14 t) (sha256-expand-block block) (update-sha256-block regs block) (finalize-registers state regs))) (defdigest sha256 :digest-length 32 :block-length 64) (defdigest sha224 :digest-length 28 :block-length 64) ironclad_0.33.0/src/digests/sha512.lisp0000664000175000017500000002234312050563532014566 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;; sha512.lisp -- implementation of SHA-384/512 from NIST (in-package :crypto) (define-digest-registers (sha384 :endian :big :size 8 :digest-registers 6) (a #xCBBB9D5DC1059ED8) (b #x629A292A367CD507) (c #x9159015A3070DD17) (d #x152FECD8F70E5939) (e #x67332667FFC00B31) (f #x8EB44A8768581511) (g #xDB0C2E0D64F98FA7) (h #x47B5481DBEFA4FA4)) (defconst +pristine-sha384-registers+ (initial-sha384-regs)) (define-digest-registers (sha512 :endian :big :size 8) (a #x6A09E667F3BCC908) (b #xBB67AE8584CAA73B) (c #x3C6EF372FE94F82B) (d #xA54FF53A5F1D36F1) (e #x510E527FADE682D1) (f #x9B05688C2B3E6C1F) (g #x1F83D9ABFB41BD6B) (h #x5BE0CD19137E2179)) (defconst +pristine-sha512-registers+ (initial-sha512-regs)) (defconst +sha512-round-constants+ #64@(#x428A2F98D728AE22 #x7137449123EF65CD #xB5C0FBCFEC4D3B2F #xE9B5DBA58189DBBC #x3956C25BF348B538 #x59F111F1B605D019 #x923F82A4AF194F9B #xAB1C5ED5DA6D8118 #xD807AA98A3030242 #x12835B0145706FBE #x243185BE4EE4B28C #x550C7DC3D5FFB4E2 #x72BE5D74F27B896F #x80DEB1FE3B1696B1 #x9BDC06A725C71235 #xC19BF174CF692694 #xE49B69C19EF14AD2 #xEFBE4786384F25E3 #x0FC19DC68B8CD5B5 #x240CA1CC77AC9C65 #x2DE92C6F592B0275 #x4A7484AA6EA6E483 #x5CB0A9DCBD41FBD4 #x76F988DA831153B5 #x983E5152EE66DFAB #xA831C66D2DB43210 #xB00327C898FB213F #xBF597FC7BEEF0EE4 #xC6E00BF33DA88FC2 #xD5A79147930AA725 #x06CA6351E003826F #x142929670A0E6E70 #x27B70A8546D22FFC #x2E1B21385C26C926 #x4D2C6DFC5AC42AED #x53380D139D95B3DF #x650A73548BAF63DE #x766A0ABB3C77B2A8 #x81C2C92E47EDAEE6 #x92722C851482353B #xA2BFE8A14CF10364 #xA81A664BBC423001 #xC24B8B70D0F89791 #xC76C51A30654BE30 #xD192E819D6EF5218 #xD69906245565A910 #xF40E35855771202A #x106AA07032BBD1B8 #x19A4C116B8D2D0C8 #x1E376C085141AB53 #x2748774CDF8EEB99 #x34B0BCB5E19B48A8 #x391C0CB3C5C95A63 #x4ED8AA4AE3418ACB #x5B9CCA4F7763E373 #x682E6FF3D6B2B8A3 #x748F82EE5DEFB2FC #x78A5636F43172F60 #x84C87814A1F0AB72 #x8CC702081A6439EC #x90BEFFFA23631E28 #xA4506CEBDE82BDE9 #xBEF9A3F7B2C67915 #xC67178F2E372532B #xCA273ECEEA26619C #xD186B8C721C0C207 #xEADA7DD6CDE0EB1E #xF57D4F7FEE6ED178 #x06F067AA72176FBA #x0A637DC5A2C898A6 #x113F9804BEF90DAE #x1B710B35131C471B #x28DB77F523047D84 #x32CAAB7B40C72493 #x3C9EBE0A15C9BEBC #x431D67C49C100D4C #x4CC5D4BECB3E42B6 #x597F299CFC657E2A #x5FCB6FAB3AD6FAEC #x6C44198C4A475817)) (defun update-sha512-block (regs block) (declare (type sha512-regs regs)) (declare (type (simple-array (unsigned-byte 64) (80)) block) #.(burn-baby-burn)) (let ((a (sha512-regs-a regs)) (b (sha512-regs-b regs)) (c (sha512-regs-c regs)) (d (sha512-regs-d regs)) (e (sha512-regs-e regs)) (f (sha512-regs-f regs)) (g (sha512-regs-g regs)) (h (sha512-regs-h regs))) (flet ((rho (x r1 r2 r3) (logxor (ror64 x r1) (ror64 x r2) (ror64 x r3)))) ;; FIXME: Implement inline 64-bit rotates for x86-64 SBCL. ;; #+ironclad-fast-mod64-arithmetic ;; (declare (inline rho)) (macrolet ((sha512-round (i a b c d e f g h) `(let ((x (mod64+ (rho ,e 14 18 41) (mod64+ (logxor (logand ,e ,f) (logandc1 ,e ,g)) (mod64+ (aref block ,i) (aref +sha512-round-constants+ ,i)))))) (setf ,d (mod64+ ,d (mod64+ ,h x)) ,h (mod64+ ,h (mod64+ x (mod64+ (rho ,a 28 34 39) (logxor (logand ,a ,b) (logand ,a ,c) (logand ,b ,c))))))))) #.(let ((xvars (make-circular-list 'a 'b 'c 'd 'e 'f 'g 'h))) (loop for i from 0 below 80 for vars on xvars by #'(lambda (x) (nthcdr 7 x)) collect `(sha512-round ,i ,@(circular-list-subseq vars 0 8)) into forms finally (return `(progn ,@forms)))) #.(loop for slot in '(a b c d e f g h) collect (let ((regs-accessor (intern (format nil "~A-~A" '#:sha512-regs slot)))) `(setf (,regs-accessor regs) (mod64+ (,regs-accessor regs) ,slot))) into forms finally (return `(progn ,@forms))))))) (defun sha512-expand-block (block) (declare (type (simple-array (unsigned-byte 64) (80)) block) #.(burn-baby-burn)) (flet ((sigma (x r1 r2 r3) (logxor (ror64 x r1) (ror64 x r2) (ash x (- r3))))) #+ironclad-fast-mod64-arithmetic (declare (inline sigma)) (loop for i from 16 below 80 do (setf (aref block i) (mod64+ (sigma (aref block (- i 2)) 19 61 6) (mod64+ (aref block (- i 7)) (mod64+ (sigma (aref block (- i 15)) 1 8 7) (aref block (- i 16))))))) (values))) ;;; mid-level (defstruct (sha512 (:constructor %make-sha512-digest (&aux (buffer (make-array 128 :element-type '(unsigned-byte 8))))) (:copier nil) (:include mdx)) (regs (initial-sha512-regs) :type sha512-regs :read-only t) (block (make-array 80 :element-type '(unsigned-byte 64)) :read-only t :type (simple-array (unsigned-byte 64) (80)))) (defstruct (sha384 (:include sha512) (:constructor %make-sha384-digest (&aux (regs (initial-sha384-regs)) (buffer (make-array 128 :element-type '(unsigned-byte 8))))) (:copier nil)) ;; No slots. ) (defmethod reinitialize-instance ((state sha512) &rest initargs) (declare (ignore initargs)) ;; Some versions of Clozure CCL have a bug where the elements of ;; +PRISTINE-SHA512-REGISTERS+ are considered to be negative. Force ;; the compiler to see them as positive. #+ccl (let ((regs (sha512-regs state))) (dotimes (i (length +pristine-sha512-registers+)) (setf (aref regs i) (ldb (byte 64 0) (aref +pristine-sha512-registers+ i))))) #-ccl (replace (sha512-regs state) +pristine-sha512-registers+) (setf (sha512-amount state) 0 (sha512-buffer-index state) 0) state) (defmethod reinitialize-instance ((state sha384) &rest initargs) (declare (ignore initargs)) ;; Some versions of Clozure CCL have a bug where the elements of ;; +PRISTINE-SHA384-REGISTERS+ are considered to be negative. Force ;; the compiler to see them as positive. #+ccl (let ((regs (sha384-regs state))) (dotimes (i (length +pristine-sha384-registers+)) (setf (aref regs i) (ldb (byte 64 0) (aref +pristine-sha384-registers+ i))))) #-ccl (replace (sha384-regs state) +pristine-sha384-registers+) (setf (sha384-amount state) 0 (sha384-buffer-index state) 0) state) (defmethod copy-digest ((state sha512) &optional copy) (declare (type (or cl:null sha512) copy)) (let ((copy (if copy copy (etypecase state (sha384 (%make-sha384-digest)) (sha512 (%make-sha512-digest)))))) (declare (type sha512 copy)) (replace (sha512-regs copy) (sha512-regs state)) (replace (sha512-buffer copy) (sha512-buffer state)) (setf (sha512-amount copy) (sha512-amount state) (sha512-buffer-index copy) (sha512-buffer-index state)) copy)) (define-digest-updater sha512 (flet ((compress (state sequence offset) (let ((block (sha512-block state))) (fill-block-ub8-be/64 block sequence offset) (sha512-expand-block block) (update-sha512-block (sha512-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer ((sha512 64) (sha384 48)) (let ((regs (sha512-regs state)) (block (sha512-block state)) (buffer (sha512-buffer state)) (buffer-index (sha512-buffer-index state)) (total-length (* 8 (sha512-amount state)))) (declare (type sha512-regs regs) (type (integer 0 127) buffer-index) (type (simple-array (unsigned-byte 64) (80)) block) (type (simple-array (unsigned-byte 8) (128)) buffer)) (setf (aref buffer buffer-index) #x80) (when (> buffer-index 119) (loop for index of-type (integer 0 128) from (1+ buffer-index) below 128 do (setf (aref buffer index) #x00)) (fill-block-ub8-be/64 block buffer 0) (sha512-expand-block block) (update-sha512-block regs block) (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) (when (<= buffer-index 119) (loop for index of-type (integer 0 128) from (1+ buffer-index) below 128 do (setf (aref buffer index) #x00)) ;; copy the data to BLOCK prematurely (fill-block-ub8-be/64 block buffer 0)) ;; fill in the remaining block data (setf (aref block 15) total-length) (sha512-expand-block block) (update-sha512-block regs block) (finalize-registers state regs))) (defdigest sha512 :digest-length 64 :block-length 128) (defdigest sha384 :digest-length 48 :block-length 128) ironclad_0.33.0/src/digests/ripemd-128.lisp0000644000175000017500000002310211761302200015332 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; ripemd-128.lisp -- the RIPEMD-128 digest function (in-package :crypto) (define-digest-registers (ripemd-128 :endian :little) (a #x67452301) (b #xefcdab89) (c #x98badcfe) (d #x10325476)) (defconst +pristine-ripemd-128-registers+ (initial-ripemd-128-regs)) (defun update-ripemd-128-block (regs block) (declare (type ripemd-128-regs regs) (type (simple-array (unsigned-byte 32) (16)) block) #.(burn-baby-burn)) (let* ((a1 (ripemd-128-regs-a regs)) (a2 a1) (b1 (ripemd-128-regs-b regs)) (b2 b1) (c1 (ripemd-128-regs-c regs)) (c2 c1) (d1 (ripemd-128-regs-d regs)) (d2 d1)) (declare (type (unsigned-byte 32) a1 a2 b1 b2 c1 c2 d1 d2)) ;; define the necessary logical functions (flet ((f (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor x y z))) (g (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor z (logand x (logxor y z))))) (h (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor z (logior x (lognot y))))) (i (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor y (logand z (logxor x y)))))) #+ironclad-fast-mod32-arithmetic (declare (inline f g h i)) (macrolet ((subround (func a b c d x s k) `(progn (setf ,a (mod32+ ,a (mod32+ (funcall (function ,func) ,b ,c ,d) (mod32+ ,x ,k)))) (setf ,a (rol32 ,a ,s)))) (with-ripemd-round ((block func constant) &rest clauses) (loop for (a b c d i s) in clauses collect `(subround ,func ,a ,b ,c ,d (aref ,block ,i) ,s ,constant) into result finally (return `(progn ,@result))))) (with-ripemd-round (block f 0) (a1 b1 c1 d1 0 11) (d1 a1 b1 c1 1 14) (c1 d1 a1 b1 2 15) (b1 c1 d1 a1 3 12) (a1 b1 c1 d1 4 5) (d1 a1 b1 c1 5 8) (c1 d1 a1 b1 6 7) (b1 c1 d1 a1 7 9) (a1 b1 c1 d1 8 11) (d1 a1 b1 c1 9 13) (c1 d1 a1 b1 10 14) (b1 c1 d1 a1 11 15) (a1 b1 c1 d1 12 6) (d1 a1 b1 c1 13 7) (c1 d1 a1 b1 14 9) (b1 c1 d1 a1 15 8)) (with-ripemd-round (block g #x5a827999) (a1 b1 c1 d1 7 7) (d1 a1 b1 c1 4 6) (c1 d1 a1 b1 13 8) (b1 c1 d1 a1 1 13) (a1 b1 c1 d1 10 11) (d1 a1 b1 c1 6 9) (c1 d1 a1 b1 15 7) (b1 c1 d1 a1 3 15) (a1 b1 c1 d1 12 7) (d1 a1 b1 c1 0 12) (c1 d1 a1 b1 9 15) (b1 c1 d1 a1 5 9) (a1 b1 c1 d1 2 11) (d1 a1 b1 c1 14 7) (c1 d1 a1 b1 11 13) (b1 c1 d1 a1 8 12)) (with-ripemd-round (block h #x6ed9eba1) (a1 b1 c1 d1 3 11) (d1 a1 b1 c1 10 13) (c1 d1 a1 b1 14 6) (b1 c1 d1 a1 4 7) (a1 b1 c1 d1 9 14) (d1 a1 b1 c1 15 9) (c1 d1 a1 b1 8 13) (b1 c1 d1 a1 1 15) (a1 b1 c1 d1 2 14) (d1 a1 b1 c1 7 8) (c1 d1 a1 b1 0 13) (b1 c1 d1 a1 6 6) (a1 b1 c1 d1 13 5) (d1 a1 b1 c1 11 12) (c1 d1 a1 b1 5 7) (b1 c1 d1 a1 12 5)) (with-ripemd-round (block i #x8f1bbcdc) (a1 b1 c1 d1 1 11) (d1 a1 b1 c1 9 12) (c1 d1 a1 b1 11 14) (b1 c1 d1 a1 10 15) (a1 b1 c1 d1 0 14) (d1 a1 b1 c1 8 15) (c1 d1 a1 b1 12 9) (b1 c1 d1 a1 4 8) (a1 b1 c1 d1 13 9) (d1 a1 b1 c1 3 14) (c1 d1 a1 b1 7 5) (b1 c1 d1 a1 15 6) (a1 b1 c1 d1 14 8) (d1 a1 b1 c1 5 6) (c1 d1 a1 b1 6 5) (b1 c1 d1 a1 2 12)) (with-ripemd-round (block i #x50a28be6) (a2 b2 c2 d2 5 8) (d2 a2 b2 c2 14 9) (c2 d2 a2 b2 7 9) (b2 c2 d2 a2 0 11) (a2 b2 c2 d2 9 13) (d2 a2 b2 c2 2 15) (c2 d2 a2 b2 11 15) (b2 c2 d2 a2 4 5) (a2 b2 c2 d2 13 7) (d2 a2 b2 c2 6 7) (c2 d2 a2 b2 15 8) (b2 c2 d2 a2 8 11) (a2 b2 c2 d2 1 14) (d2 a2 b2 c2 10 14) (c2 d2 a2 b2 3 12) (b2 c2 d2 a2 12 6)) (with-ripemd-round (block h #x5c4dd124) (a2 b2 c2 d2 6 9) (d2 a2 b2 c2 11 13) (c2 d2 a2 b2 3 15) (b2 c2 d2 a2 7 7) (a2 b2 c2 d2 0 12) (d2 a2 b2 c2 13 8) (c2 d2 a2 b2 5 9) (b2 c2 d2 a2 10 11) (a2 b2 c2 d2 14 7) (d2 a2 b2 c2 15 7) (c2 d2 a2 b2 8 12) (b2 c2 d2 a2 12 7) (a2 b2 c2 d2 4 6) (d2 a2 b2 c2 9 15) (c2 d2 a2 b2 1 13) (b2 c2 d2 a2 2 11)) (with-ripemd-round (block g #x6d703ef3) (a2 b2 c2 d2 15 9) (d2 a2 b2 c2 5 7) (c2 d2 a2 b2 1 15) (b2 c2 d2 a2 3 11) (a2 b2 c2 d2 7 8) (d2 a2 b2 c2 14 6) (c2 d2 a2 b2 6 6) (b2 c2 d2 a2 9 14) (a2 b2 c2 d2 11 12) (d2 a2 b2 c2 8 13) (c2 d2 a2 b2 12 5) (b2 c2 d2 a2 2 14) (a2 b2 c2 d2 10 13) (d2 a2 b2 c2 0 13) (c2 d2 a2 b2 4 7) (b2 c2 d2 a2 13 5)) (with-ripemd-round (block f 0) (a2 b2 c2 d2 8 15) (d2 a2 b2 c2 6 5) (c2 d2 a2 b2 4 8) (b2 c2 d2 a2 1 11) (a2 b2 c2 d2 3 14) (d2 a2 b2 c2 11 14) (c2 d2 a2 b2 15 6) (b2 c2 d2 a2 0 14) (a2 b2 c2 d2 5 6) (d2 a2 b2 c2 12 9) (c2 d2 a2 b2 2 12) (b2 c2 d2 a2 13 9) (a2 b2 c2 d2 9 12) (d2 a2 b2 c2 7 5) (c2 d2 a2 b2 10 15) (b2 c2 d2 a2 14 8)) (setf d2 (mod32+ (ripemd-128-regs-b regs) (mod32+ c1 d2)) (ripemd-128-regs-b regs) (mod32+ (ripemd-128-regs-c regs) (mod32+ d1 a2)) (ripemd-128-regs-c regs) (mod32+ (ripemd-128-regs-d regs) (mod32+ a1 b2)) (ripemd-128-regs-d regs) (mod32+ (ripemd-128-regs-a regs) (mod32+ b1 c2)) (ripemd-128-regs-a regs) d2) regs)))) (defstruct (ripemd-128 (:constructor %make-ripemd-128-digest nil) (:constructor %make-ripemd-128-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-ripemd-128-regs) :type ripemd-128-regs :read-only t) (block (make-array 16 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (16)) :read-only t)) (defmethod reinitialize-instance ((state ripemd-128) &rest initargs) (declare (ignore initargs)) (replace (ripemd-128-regs state) +pristine-ripemd-128-registers+) (setf (ripemd-128-amount state) 0 (ripemd-128-buffer-index state) 0) state) (defmethod copy-digest ((state ripemd-128) &optional copy) (declare (type (or cl:null ripemd-128) copy)) (cond (copy (replace (ripemd-128-regs copy) (ripemd-128-regs state)) (replace (ripemd-128-buffer copy) (ripemd-128-buffer state)) (setf (ripemd-128-amount copy) (ripemd-128-amount state) (ripemd-128-buffer-index copy) (ripemd-128-buffer-index state)) copy) (t (%make-ripemd-128-state (copy-seq (ripemd-128-regs state)) (ripemd-128-amount state) (copy-seq (ripemd-128-block state)) (copy-seq (ripemd-128-buffer state)) (ripemd-128-buffer-index state))))) (define-digest-updater ripemd-128 "Update the given ripemd-128-state from sequence, which is either a simple-string or a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (flet ((compress (state sequence offset) (let ((block (ripemd-128-block state))) (fill-block-ub8-le block sequence offset) (update-ripemd-128-block (ripemd-128-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (ripemd-128 16) "If the given ripemd-128-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the RIPEMD-128 standard. The resulting RIPEMD-128 message-digest is returned as an array of twenty (unsigned-byte 8) values. Calling UPDATE-RIPEMD-128-STATE after a call to FINALIZE-RIPEMD-128-STATE results in unspecified behaviour." (let ((regs (ripemd-128-regs state)) (block (ripemd-128-block state)) (buffer (ripemd-128-buffer state)) (buffer-index (ripemd-128-buffer-index state)) (total-length (* 8 (ripemd-128-amount state)))) (declare (type ripemd-128-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (16)) block) (type (simple-array (unsigned-byte 8) (*)) buffer)) ;; Add mandatory bit 1 padding (setf (aref buffer buffer-index) #x80) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-le block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 56) (update-ripemd-128-block regs block) ;; Create new fully 0 padded block (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) ;; Add 64bit message bit length (store-data-length block total-length 14) ;; Flush last block (update-ripemd-128-block regs block) ;; Done, remember digest for later calls (finalize-registers state regs))) (defdigest ripemd-128 :digest-length 16 :block-length 64) ironclad_0.33.0/src/digests/ripemd-160.lisp0000644000175000017500000002635011761302200015336 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; ripemd-160.lisp -- the RIPEMD-160 digest function (in-package :crypto) (define-digest-registers (ripemd-160 :endian :little) (a #x67452301) (b #xefcdab89) (c #x98badcfe) (d #x10325476) (e #xc3d2e1f0)) (defconst +pristine-ripemd-160-registers+ (initial-ripemd-160-regs)) (defun update-ripemd-160-block (regs block) (declare (type ripemd-160-regs regs) (type (simple-array (unsigned-byte 32) (16)) block) #.(burn-baby-burn)) (let* ((a1 (ripemd-160-regs-a regs)) (a2 a1) (b1 (ripemd-160-regs-b regs)) (b2 b1) (c1 (ripemd-160-regs-c regs)) (c2 c1) (d1 (ripemd-160-regs-d regs)) (d2 d1) (e1 (ripemd-160-regs-e regs)) (e2 e1)) (declare (type (unsigned-byte 32) a1 a2 b1 b2 c1 c2 d1 d2 e1 e2)) (flet ((f (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor x y z))) (g (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor z (logand x (logxor y z))))) (h (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor z (logior x (lognot y))))) (i (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor y (logand z (logxor x y))))) (j (x y z) (declare (type (unsigned-byte 32) x y z)) (ldb (byte 32 0) (logxor x (logior y (lognot z)))))) #+ironclad-fast-mod32-arithmetic (declare (inline f g h i j)) (macrolet ((subround (func a b c d e x s k) `(progn (setf ,a (mod32+ ,a (mod32+ (funcall (function ,func) ,b ,c ,d) (mod32+ ,x ,k)))) (setf ,a (mod32+ (rol32 ,a ,s) ,e)) (setf ,c (rol32 ,c 10)))) (with-ripemd-round ((block func constant) &rest clauses) (loop for (a b c d e i s) in clauses collect `(subround ,func ,a ,b ,c ,d ,e (aref ,block ,i) ,s ,constant) into result finally (return `(progn ,@result))))) (with-ripemd-round (block f 0) (a1 b1 c1 d1 e1 0 11) (e1 a1 b1 c1 d1 1 14) (d1 e1 a1 b1 c1 2 15) (c1 d1 e1 a1 b1 3 12) (b1 c1 d1 e1 a1 4 5) (a1 b1 c1 d1 e1 5 8) (e1 a1 b1 c1 d1 6 7) (d1 e1 a1 b1 c1 7 9) (c1 d1 e1 a1 b1 8 11) (b1 c1 d1 e1 a1 9 13) (a1 b1 c1 d1 e1 10 14) (e1 a1 b1 c1 d1 11 15) (d1 e1 a1 b1 c1 12 6) (c1 d1 e1 a1 b1 13 7) (b1 c1 d1 e1 a1 14 9) (a1 b1 c1 d1 e1 15 8)) (with-ripemd-round (block g #x5a827999) (e1 a1 b1 c1 d1 7 7) (d1 e1 a1 b1 c1 4 6) (c1 d1 e1 a1 b1 13 8) (b1 c1 d1 e1 a1 1 13) (a1 b1 c1 d1 e1 10 11) (e1 a1 b1 c1 d1 6 9) (d1 e1 a1 b1 c1 15 7) (c1 d1 e1 a1 b1 3 15) (b1 c1 d1 e1 a1 12 7) (a1 b1 c1 d1 e1 0 12) (e1 a1 b1 c1 d1 9 15) (d1 e1 a1 b1 c1 5 9) (c1 d1 e1 a1 b1 2 11) (b1 c1 d1 e1 a1 14 7) (a1 b1 c1 d1 e1 11 13) (e1 a1 b1 c1 d1 8 12)) (with-ripemd-round (block h #x6ed9eba1) (d1 e1 a1 b1 c1 3 11) (c1 d1 e1 a1 b1 10 13) (b1 c1 d1 e1 a1 14 6) (a1 b1 c1 d1 e1 4 7) (e1 a1 b1 c1 d1 9 14) (d1 e1 a1 b1 c1 15 9) (c1 d1 e1 a1 b1 8 13) (b1 c1 d1 e1 a1 1 15) (a1 b1 c1 d1 e1 2 14) (e1 a1 b1 c1 d1 7 8) (d1 e1 a1 b1 c1 0 13) (c1 d1 e1 a1 b1 6 6) (b1 c1 d1 e1 a1 13 5) (a1 b1 c1 d1 e1 11 12) (e1 a1 b1 c1 d1 5 7) (d1 e1 a1 b1 c1 12 5)) (with-ripemd-round (block i #x8f1bbcdc) (c1 d1 e1 a1 b1 1 11) (b1 c1 d1 e1 a1 9 12) (a1 b1 c1 d1 e1 11 14) (e1 a1 b1 c1 d1 10 15) (d1 e1 a1 b1 c1 0 14) (c1 d1 e1 a1 b1 8 15) (b1 c1 d1 e1 a1 12 9) (a1 b1 c1 d1 e1 4 8) (e1 a1 b1 c1 d1 13 9) (d1 e1 a1 b1 c1 3 14) (c1 d1 e1 a1 b1 7 5) (b1 c1 d1 e1 a1 15 6) (a1 b1 c1 d1 e1 14 8) (e1 a1 b1 c1 d1 5 6) (d1 e1 a1 b1 c1 6 5) (c1 d1 e1 a1 b1 2 12)) (with-ripemd-round (block j #xa953fd4e) (b1 c1 d1 e1 a1 4 9) (a1 b1 c1 d1 e1 0 15) (e1 a1 b1 c1 d1 5 5) (d1 e1 a1 b1 c1 9 11) (c1 d1 e1 a1 b1 7 6) (b1 c1 d1 e1 a1 12 8) (a1 b1 c1 d1 e1 2 13) (e1 a1 b1 c1 d1 10 12) (d1 e1 a1 b1 c1 14 5) (c1 d1 e1 a1 b1 1 12) (b1 c1 d1 e1 a1 3 13) (a1 b1 c1 d1 e1 8 14) (e1 a1 b1 c1 d1 11 11) (d1 e1 a1 b1 c1 6 8) (c1 d1 e1 a1 b1 15 5) (b1 c1 d1 e1 a1 13 6)) (with-ripemd-round (block j #x50a28be6) (a2 b2 c2 d2 e2 5 8) (e2 a2 b2 c2 d2 14 9) (d2 e2 a2 b2 c2 7 9) (c2 d2 e2 a2 b2 0 11) (b2 c2 d2 e2 a2 9 13) (a2 b2 c2 d2 e2 2 15) (e2 a2 b2 c2 d2 11 15) (d2 e2 a2 b2 c2 4 5) (c2 d2 e2 a2 b2 13 7) (b2 c2 d2 e2 a2 6 7) (a2 b2 c2 d2 e2 15 8) (e2 a2 b2 c2 d2 8 11) (d2 e2 a2 b2 c2 1 14) (c2 d2 e2 a2 b2 10 14) (b2 c2 d2 e2 a2 3 12) (a2 b2 c2 d2 e2 12 6)) (with-ripemd-round (block i #x5c4dd124) (e2 a2 b2 c2 d2 6 9) (d2 e2 a2 b2 c2 11 13) (c2 d2 e2 a2 b2 3 15) (b2 c2 d2 e2 a2 7 7) (a2 b2 c2 d2 e2 0 12) (e2 a2 b2 c2 d2 13 8) (d2 e2 a2 b2 c2 5 9) (c2 d2 e2 a2 b2 10 11) (b2 c2 d2 e2 a2 14 7) (a2 b2 c2 d2 e2 15 7) (e2 a2 b2 c2 d2 8 12) (d2 e2 a2 b2 c2 12 7) (c2 d2 e2 a2 b2 4 6) (b2 c2 d2 e2 a2 9 15) (a2 b2 c2 d2 e2 1 13) (e2 a2 b2 c2 d2 2 11)) (with-ripemd-round (block h #x6d703ef3) (d2 e2 a2 b2 c2 15 9) (c2 d2 e2 a2 b2 5 7) (b2 c2 d2 e2 a2 1 15) (a2 b2 c2 d2 e2 3 11) (e2 a2 b2 c2 d2 7 8) (d2 e2 a2 b2 c2 14 6) (c2 d2 e2 a2 b2 6 6) (b2 c2 d2 e2 a2 9 14) (a2 b2 c2 d2 e2 11 12) (e2 a2 b2 c2 d2 8 13) (d2 e2 a2 b2 c2 12 5) (c2 d2 e2 a2 b2 2 14) (b2 c2 d2 e2 a2 10 13) (a2 b2 c2 d2 e2 0 13) (e2 a2 b2 c2 d2 4 7) (d2 e2 a2 b2 c2 13 5)) (with-ripemd-round (block g #x7a6d76e9) (c2 d2 e2 a2 b2 8 15) (b2 c2 d2 e2 a2 6 5) (a2 b2 c2 d2 e2 4 8) (e2 a2 b2 c2 d2 1 11) (d2 e2 a2 b2 c2 3 14) (c2 d2 e2 a2 b2 11 14) (b2 c2 d2 e2 a2 15 6) (a2 b2 c2 d2 e2 0 14) (e2 a2 b2 c2 d2 5 6) (d2 e2 a2 b2 c2 12 9) (c2 d2 e2 a2 b2 2 12) (b2 c2 d2 e2 a2 13 9) (a2 b2 c2 d2 e2 9 12) (e2 a2 b2 c2 d2 7 5) (d2 e2 a2 b2 c2 10 15) (c2 d2 e2 a2 b2 14 8)) (with-ripemd-round (block f 0) (b2 c2 d2 e2 a2 12 8) (a2 b2 c2 d2 e2 15 5) (e2 a2 b2 c2 d2 10 12) (d2 e2 a2 b2 c2 4 9) (c2 d2 e2 a2 b2 1 12) (b2 c2 d2 e2 a2 5 5) (a2 b2 c2 d2 e2 8 14) (e2 a2 b2 c2 d2 7 6) (d2 e2 a2 b2 c2 6 8) (c2 d2 e2 a2 b2 2 13) (b2 c2 d2 e2 a2 13 6) (a2 b2 c2 d2 e2 14 5) (e2 a2 b2 c2 d2 0 15) (d2 e2 a2 b2 c2 3 13) (c2 d2 e2 a2 b2 9 11) (b2 c2 d2 e2 a2 11 11)) (setf c1 (mod32+ (ripemd-160-regs-b regs) (mod32+ c1 d2)) (ripemd-160-regs-b regs) (mod32+ (ripemd-160-regs-c regs) (mod32+ d1 e2)) (ripemd-160-regs-c regs) (mod32+ (ripemd-160-regs-d regs) (mod32+ e1 a2)) (ripemd-160-regs-d regs) (mod32+ (ripemd-160-regs-e regs) (mod32+ a1 b2)) (ripemd-160-regs-e regs) (mod32+ (ripemd-160-regs-a regs) (mod32+ b1 c2)) (ripemd-160-regs-a regs) c1) regs)))) (defstruct (ripemd-160 (:constructor %make-ripemd-160-digest nil) (:constructor %make-ripemd-160-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-ripemd-160-regs) :type ripemd-160-regs :read-only t) (block (make-array 16 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (16)) :read-only t)) (defmethod reinitialize-instance ((state ripemd-160) &rest initargs) (declare (ignore initargs)) (replace (ripemd-160-regs state) +pristine-ripemd-160-registers+) (setf (ripemd-160-amount state) 0 (ripemd-160-buffer-index state) 0) state) (defmethod copy-digest ((state ripemd-160) &optional copy) (declare (type (or cl:null ripemd-160) copy)) (cond (copy (replace (ripemd-160-regs copy) (ripemd-160-regs state)) (replace (ripemd-160-buffer copy) (ripemd-160-buffer state)) (setf (ripemd-160-amount copy) (ripemd-160-amount state) (ripemd-160-buffer-index copy) (ripemd-160-buffer-index state)) copy) (t (%make-ripemd-160-state (copy-seq (ripemd-160-regs state)) (ripemd-160-amount state) (copy-seq (ripemd-160-block state)) (copy-seq (ripemd-160-buffer state)) (ripemd-160-buffer-index state))))) (define-digest-updater ripemd-160 "Update the given ripemd-160-state from sequence, which is either a simple-string or a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (flet ((compress (state sequence offset) (let ((block (ripemd-160-block state))) (fill-block-ub8-le block sequence offset) (update-ripemd-160-block (ripemd-160-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (ripemd-160 20) "If the given ripemd-160-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the RIPEMD-160 standard. The resulting RIPEMD-160 message-digest is returned as an array of twenty (unsigned-byte 8) values. Calling `update-ripemd-160-state' after a call to `finalize-ripemd-160-state' results in unspecified behaviour." (let ((regs (ripemd-160-regs state)) (block (ripemd-160-block state)) (buffer (ripemd-160-buffer state)) (buffer-index (ripemd-160-buffer-index state)) (total-length (* 8 (ripemd-160-amount state)))) (declare (type ripemd-160-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (16)) block) (type (simple-array (unsigned-byte 8) (*)) buffer)) ;; Add mandatory bit 1 padding (setf (aref buffer buffer-index) #x80) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-le block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 56) (update-ripemd-160-block regs block) ;; Create new fully 0 padded block (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) ;; Add 64bit message bit length (store-data-length block total-length 14) ;; Flush last block (update-ripemd-160-block regs block) ;; Done, remember digest for later calls (finalize-registers state regs))) (defdigest ripemd-160 :digest-length 20 :block-length 64) ironclad_0.33.0/src/digests/tiger.lisp0000644000175000017500000012442611761302200014667 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; tiger.lisp -- implementation of the Tiger digest function (in-package :crypto) (eval-when (:compile-toplevel :load-toplevel :execute) (defconstant +tiger-wordsize+ #-(and sbcl x86-64) 32 #+(and sbcl x86-64) 64) (defconstant +tiger-block-n-words+ (if (= +tiger-wordsize+ 32) 16 8)) (defconstant +tiger-block-copy-fn+ (if (= +tiger-wordsize+ 32) 'fill-block-ub8-le 'fill-block-ub8-le/64))) (deftype tiger-state-block () `(simple-array (unsigned-byte ,+tiger-wordsize+) (,+tiger-block-n-words+))) (deftype tiger-sbox () (let ((n-words (truncate 64 +tiger-wordsize+))) `(simple-array (unsigned-byte ,+tiger-wordsize+) (,(* n-words 256))))) #.(cl:if (cl:= +tiger-wordsize+ 32) '(define-digest-registers (tiger :endian :little) (a0 #x89abcdef) (a1 #x01234567) (b0 #x76543210) (b1 #xfedcba98) (c0 #xc3b2e187) (c1 #xf096a5b4)) '(define-digest-registers (tiger :endian :little :size 8) (a #x0123456789abcdef) (b #xfedcba9876543210) (c #xf096a5b4c3b2e187))) (defconst +pristine-tiger-registers+ (initial-tiger-regs)) (declaim (type tiger-sbox tiger-t1 tiger-t2 tiger-t3 tiger-t4)) (eval-when (:compile-toplevel :load-toplevel :execute) (defun make-tiger-sbox (elements) (let ((n-elements (length elements))) (if (= +tiger-wordsize+ 32) (make-array n-elements :element-type '(unsigned-byte 32) :initial-contents elements) (loop for (xlo xhi . rest) on elements by #'cddr collect (logior (ash xhi 32) xlo) into contents finally (return (make-array (truncate n-elements 2) :element-type '(unsigned-byte 64) :initial-contents contents))))))) (defconst tiger-t1 (make-tiger-sbox '(#xF7E90C5E #x02AAB17C #xE243A8EC #xAC424B03 #x0DD5FCD3 #x72CD5BE3 #xF6F97F3A #x6D019B93 #xD21F9193 #xCD9978FF #x708029E2 #x7573A1C9 #x922A83C3 #xB164326B #x04915870 #x46883EEE #x7103ECE6 #xEAACE305 #x08A3535C #xC54169B8 #x8DDEC47C #x4CE75491 #xDC0DF40C #x0AA2F4DF #xA74DBEFA #x10B76F18 #x5AD1AB6A #xC6CCB623 #x572FE2FF #x13726121 #x199D921E #x1A488C6F #xDA0007CA #x4BC9F9F4 #xE85241C7 #x26F5E6F6 #xEA5947B6 #x859079DB #xC99E8C92 #x4F1885C5 #xA96F864B #xD78E761E #x52B5C17D #x8E36428C #x373063C1 #x69CF6827 #x9BB4C56E #xB607C93D #x0E76B5EA #x7D820E76 #xF07FDC42 #x645C9CC6 #x243342E0 #xBF38A078 #x9D2E7D04 #x5F6B343C #x600B0EC6 #xF2C28AEB #x7254BCAC #x6C0ED85F #xA4DB4FE5 #x71592281 #xCE0FED9F #x1967FA69 #xB96545DB #xFD5293F8 #xF2A7600B #xC879E9D7 #x0193194E #x86024892 #x2D9CC0B3 #xA4F9533B #x15957613 #x9053836C #xFC357BF1 #xDB6DCF8A #x7A370F57 #x18BEEA7A #x50B99066 #x037117CA #x74424A35 #x6AB30A97 #xE325249B #xF4E92F02 #x061CCAE1 #x7739DB07 #xECA42A05 #xD8F3B49C #x51382F73 #xBD56BE3F #x43B0BB28 #x45FAED58 #x11BF1F83 #x1C813D5C #xD75FA169 #x8AF0E4B6 #x87AD9999 #x33EE18A4 #xB1C94410 #x3C26E8EA #xC0A822F9 #xB510102B #x0CE6123B #x141EEF31 #x59DDB154 #xFC65B900 #xC5E0E607 #xE0158640 #x26C3A3CF #x884E0798 #x23C535FD #x930D0D95 #x4E9A2B00 #x35638D75 #x40469DD5 #x4085FCCF #x8BE23A4C #xC4B17AD2 #x6A3E6A2E #xCAB2F0FC #x6B943FCD #x2860971A #x12E30446 #x3DDE6EE2 #xE01765AE #x6222F32A #x478308FE #x5D550BB5 #xA0EDA22A #xA9EFA98D #x86C40DA7 #xC351A716 #x9C867C84 #x1105586D #xFDA22853 #xDCFFEE85 #x2C5EEF76 #xCCFBD026 #x8990D201 #xBAF294CB #x2AFAD975 #xE69464F5 #xDF133E14 #x94B013AF #x2823C958 #x06A7D1A3 #x30F61119 #x6F95FE51 #x462C06C0 #xD92AB34E #x887C71D2 #xED7BDE33 #x6518393E #x79746D6E #x5D713329 #x5BA41938 #x48A97564 #x7C1BA6B9 #x7BFDAC67 #x31987C19 #x4B053D02 #xDE6C23C4 #xD002D64D #x581C49FE #x38261571 #xDD474D63 #xE473D062 #xAA4546C3 #x9455F860 #x928FCE34 #xCAAB94D9 #x48161BBA #x770E6F68 #x63912430 #x02C6641C #x6EC8A5E6 #x337DDD2B #x87282515 #x034B701B #x2CDA6B42 #x81CB096D #xB03D37C1 #x66C71C6F #xE1084382 #xEB51B255 #x2B3180C7 #x96C08BBC #xDF92B82F #xA632F3BA #x5C68C8C0 #x1C3D0556 #x5504CC86 #x5FB26B8F #xABBFA4E5 #xB3BACEB4 #x41848B0A #xAA445D32 #xB334A273 #xA85AD881 #xBCA696F0 #xB528D56C #x24F6EC65 #x90F4524A #x0CE1512E #x5506D35A #x4E9DD79D #xC6CE9779 #x258905FA #x3E109B33 #x2019295B #x73A054CC #xF8A9478B #x34417EB0 #x2924F2F9 #x536D1BC4 #x3993357D #x1DB6FF8B #x38A81AC2 #x7D6016BF #x47C4FBF1 #x7667E3F5 #x1E0FAADD #x938BEB96 #x7ABCFF62 #x8FC179C9 #xA78DAD94 #x2911E50D #x8F1F98B7 #x27121A91 #x61E48EAE #x31859808 #x4D62F7AD #xEF5CEAEB #xECEBA345 #xBC9684CE #xF5CEB25E #xB7F76221 #xF633E20C #xAB8293E4 #xA32CDF06 #xA5EE2CA4 #x985A202C #xCC8A8FB1 #xCF0B8447 #x979859A3 #x9F765244 #xA1240017 #xA8D516B1 #xBB5DC726 #x0BD7BA3E #xB86ADB39 #xE54BCA55 #x6C478063 #x1D7A3AFD #xE7669EDD #x519EC608 #xD149AA23 #x0E5715A2 #x848FF194 #x177D4571 #x41014C22 #xEEB55F32 #x3A6E2EC2 #x0F5E5CA1 #x75F5C361 #x8029927B #xC3D6E436 #xAD139FAB #x4CCF402F #x0D5DF1A9 #xBEA5DFC8 #x3E8BD948 #xBD3FF77E #xA5A0D357 #x1F74F645 #xA2D12E25 #x5E81A082 #x66FD9E52 #x7F687A49 #x2E0C90CE #xBA973BC5 #xC2E8BCBE #xE509745F #x000001BC #xE6DAB3D6 #x423777BB #xAEF06EB5 #xD1661C7E #x4DAACFD8 #xA1781F35 #x2B16AFFC #x2D11284A #xFA891D1F #xF1FC4F67 #xCB920ADA #x73ECC25D #xC2A12651 #xAE610C22 #xD356B78A #x96E0A810 #x2FE7870F #x5A9A381F #xE94E5530 #xD5AD62ED #x368D1427 #xD225E5E8 #xC7AF4631 #x65977B70 #xDE39D74F #x99F889B2 #x54E1D143 #x233F30BF #xD9A63C97 #x9A9675D3 #xF334F9A8 #x5470554F #x4A4F5688 #x166ACB74 #xB2E4AEAD #x70C74CAA #x6F294D12 #xF0D09164 #x684031D1 #x57B82A89 #x61BE0B6B #xEFD95A5A #x69F2F29A #x2FBD12E9 #xFEFF9FE8 #x9BD37013 #xD6085A06 #x3F9B0404 #x166CFE15 #x4940C1F3 #xCDF3DEFB #x09542C4D #x85CD5CE3 #xB4C52183 #x4462A641 #xC935B7DC #x8ED3B63F #x3417F8A6 #x5B215B40 #xB8095929 #x3B8C8572 #xF99CDAEF #xF8FCB95D #x018C0614 #x1A3ACDF3 #x1B14ACCD #x00BB732D #x84D471F2 #x95E8DA16 #xC1A3110E #xBF1A82B8 #x430A7220 #x39DF210E #xB77E090D #x3CD05E9D #x5EF4BD9F #x7E57A444 #x9D4FF6DA #x83D4A5F8 #xDA1D60E1 #x17998E47 #xB287C384 #x1BB31886 #xFE3EDC12 #x980CCBEF #xC7FE3CCC #x189BFD03 #xE46FB590 #x9A4C57DC #x3732FD46 #x7CF1AD65 #x7EF700A0 #xA31D8859 #x59C64468 #xD45B61F6 #x762FB0B4 #x99047718 #x155BAED0 #x3D50BAA6 #x68755E4C #x22D8B4DF #xE9214E7F #x2EAC95F4 #x2ADDBF53 #xB4BD0109 #x32AE3909 #xB08E3450 #x834DF537 #x4220728D #xFA209DA8 #x9EFE23F7 #x9E691D9B #xC4AE8D7F #x0446D288 #xE169785B #x7B4CC524 #x35CA1385 #x21D87F01 #x137B8AA5 #xCEBB400F #x580796BE #x272E2B66 #x25C2B0DE #x36122641 #xAD1EFBB2 #x057702BD #xACF84BE9 #xD4BABB8E #x641BC67B #x91583139 #x8036E024 #x8BDC2DE0 #xF49F68ED #x603C8156 #xDBEF5111 #xF7D236F7 #x8AD21E80 #x9727C459 #x670A5FD7 #xA08A0896 #x09EBA9CB #xCB4A8F43 #x0F7036A1 #x81AF564B #x78199ABD #xC0B99AA7 #x3FC8E952 #x959F1EC8 #x794A81B9 #x8C505077 #x056338F0 #x3ACAAF8F #x627A6778 #x07B43F50 #xF5ECCC77 #x4A44AB49 #xB679EE98 #x3BC3D6E4 #xCF14108C #x9CC0D4D1 #x206BC8A0 #x4406C00B #xC8D72D89 #x82A18854 #x5C3C432C #x67E366B3 #x102B37F2 #xB923DD61 #xD884271D #x56AB2779 #xFF1525AF #xBE83E1B0 #x217E49A9 #xFB7C65D4 #x6D48E7D4 #x6BDBE0E7 #x45D9179E #x08DF8287 #xDD53BD34 #x22EA6A9A #x5622200A #xE36E141C #x8CB750EE #x7F805D1B #x9F58E837 #xAFE5C7A5 #x4FB1C23C #xE27F996A #x0775F0D0 #xD3867DFB #x6E88891A #xD0E673DE #xAFB86C25 #x123AEB9E #xC145B895 #x30F1D5D5 #xEE7269E7 #xBB434A2D #xF931FA38 #x78CB67EC #x323BBF9C #xF33B0372 #xFB279C74 #x52D66336 #x0AFB4EAA #x505F33AC #xA2CCE187 #xE8A5CD99 #x1E2D30BB #x53497480 #xD5876D90 #x8D2D5711 #x91BC038E #x1F1A4128 #x82E56648 #xD6E2E71D #x497732B7 #x74036C3A #x6361F5AB #x89B67ED9 #xF1EA02A2 #xFFED95D8 #x1464D43D #xE72B3BD6 #x0BDC4820 #xA6300F17 #xED78A77A #xEBC18760))) (defconst tiger-t2 (make-tiger-sbox '(#x05A12138 #xE6A6BE5A #xB4F87C98 #xB5A122A5 #x140B6990 #x563C6089 #x391F5DD5 #x4C46CB2E #xC9B79434 #xD932ADDB #x2015AFF5 #x08EA70E4 #x3E478CF1 #xD765A667 #xAB278D99 #xC4FB757E #x2D6E0692 #xDF11C686 #x0D7F3B16 #xDDEB84F1 #xA665EA04 #x6F2EF604 #xF0E0DFB3 #x4A8E0F0F #x3DBCBA51 #xA5EDEEF8 #x0EA4371E #xFC4F0A2A #x5CB38429 #xE83E1DA8 #xBA1B1CE2 #xDC8FF882 #x8353E80D #xCD45505E #xD4DB0717 #x18D19A00 #xA5F38101 #x34A0CFED #x8887CAF2 #x0BE77E51 #xB3C45136 #x1E341438 #x9089CCF9 #xE05797F4 #xF2591D14 #xFFD23F9D #x8595C5CD #x543DDA22 #x99052A33 #x661F81FD #xDB0F7B76 #x8736E641 #x418E5307 #x15227725 #x162EB2FA #xE25F7F46 #x6C13D9FE #x48A8B212 #x92E76EEA #xAFDC5417 #xC6D1898F #x03D912BF #x1B83F51B #x31B1AAFA #xE42AB7D9 #xF1AC2796 #xFCD2EBAC #x40A3A7D7 #x0AFBBCC5 #x1056136D #x9A6D0C85 #x7889E1DD #x2A7974AA #xD3352578 #x078AC09B #xA7E25D09 #xEAC6EDD0 #xBD4138B3 #x71EB9E70 #x920ABFBE #x4FC2625C #xA2A5D0F5 #x0B1290A3 #xC054E36B #x62FE932B #xF6DD59FF #x11A8AC7D #x35373545 #x72FADCD4 #xCA845E91 #x329D20DC #x84F82B60 #xCD672F18 #x79C62CE1 #xD124642C #x8B09A2AD #x19D9E726 #xD0C1E96A #x4BA9500C #x5A786A9B #x634C43F3 #x0E020336 #xEB66D822 #xC17B474A #xEC9BAAC2 #x6A731AE3 #xE0840258 #x8226667A #x91CAECA5 #x67D45676 #x4875ADB5 #x1D94155C #x5B813FDF #x6D00FD98 #xB774CD06 #x51286EFC #x1FA744AF #x5E883447 #xE761AE2E #xF72CA0AE #xAEE8E09A #xBE40E4CD #x5118F665 #xE9970BBB #x33DF1964 #x726E4BEB #x29199762 #x703B0007 #xF5EF30A7 #x4631D816 #x1504A6BE #xB880B5B5 #x7ED84B6C #x641793C3 #xF6E97D96 #x7B21ED77 #x2EF96B73 #x77630631 #xE86FF3F4 #xAE528948 #x86A3F8F8 #x53DBD7F2 #x4CFC1063 #x16CADCE7 #xFA52C6DD #x005C19BD #x64D46AD3 #x68868F5D #xCF1E186A #x3A9D512C #x385660AE #x367E62C2 #x77DCB1D7 #xE359E7EA #x749ABE6E #x526C0773 #xD09F734B #x735AE5F9 #x8A558BA8 #x493FC7CC #x3041AB45 #xB0B9C153 #x470A59BD #x321958BA #x5F46C393 #x852DB00B #xD336B0E5 #x91209B2B #x659EF19F #x6E604F7D #x782CCB24 #xB99A8AE2 #xC814C4C7 #xCCF52AB6 #xBE11727B #x4727D9AF #x0121B34D #x7E950D0C #x70AD471F #x756F4356 #x615A6849 #xF5ADD442 #x80B9957A #x4E87E099 #x50AEE355 #x2ACFA1DF #xFD2FD556 #xD898263A #xD80C8FD6 #xC8F4924D #x754A173A #xCF99CA3D #xAF91BF3C #xFE477BAC #xD690C12D #xED5371F6 #x5E687094 #x831A5C28 #x3708A0A4 #xC5D3C90A #x17D06580 #x0F7F9037 #xB8FDF27F #x19F9BB13 #x4D502843 #xB1BD6F1B #x8FFF4012 #x1C761BA3 #xE2E21F3B #x0D1530C4 #xA7372C8A #x8943CE69 #xFEB5CE66 #xE5184E11 #xBD736621 #x618BDB80 #x8B574D0B #x7D29BAD6 #x25E6FE5B #x81BB613E #xBC07913F #x071C9C10 #x09AC2D97 #xC7BEEB79 #x3BC5D757 #xC3E58D35 #xF38F61E8 #xEB017892 #x9B1CC21A #xD4EFFB9C #xF494F7AB #x99727D26 #x956B3E03 #xA3E063A2 #x4AA09C30 #x9D4A8B9A #x00090FB4 #x3F6AB7D5 #x57268AC0 #x9CC0F2A0 #xEDBF42D1 #x3DEE9D2D #x7960A972 #x330F49C8 #x87421B41 #xC6B27202 #x7C00369C #x0AC59EC0 #xCB353425 #xEF4EAC49 #xEF0129D8 #xF450244E #xCAF4DEB6 #x8ACC46E5 #x989263F7 #x2FFEAB63 #x5D7A4578 #x8F7CB9FE #x4E634635 #x5BD8F764 #xBF2DC900 #x427A7315 #x2125261C #x17D0C4AA #x93518E50 #x3992486C #xA2D7D4C3 #xB4CBFEE0 #x2C5DDD8D #x7C75D620 #xE35B6C61 #xDBC295D8 #x02032B19 #x60B369D3 #xDCE44132 #xCE42685F #xDDF65610 #x06F3DDB9 #xB5E148F0 #x8EA4D21D #x2FCD496F #x20B0FCE6 #x58B0EE31 #x2C1B9123 #x18F5A308 #xB28317B8 #x9CA6D2CF #xA89C1E18 #x6AAADBC8 #x0C6B1857 #x1299FAE3 #xB65DEAA9 #x7F1027E7 #xFB2B794B #x443B5BEB #x04E4317F #x5939D0A6 #x4B852D32 #xFB207FFC #xD5AE6BEE #x81C7D374 #x309682B2 #x94C3B475 #xBAE309A1 #x13B49F05 #x8CC3F97B #xF8293967 #x98A9422F #x1076FF7C #x244B16B0 #x663D67EE #xF8BF571C #xEEE30DA1 #x1F0D6758 #x7ADEB9B7 #xC9B611D9 #x7B6C57A2 #xB7AFD588 #x6B984FE1 #x6290AE84 #xACC1A5FD #x94DF4CDE #xC5483AFF #x058A5BD1 #x42BA3C37 #x63166CC1 #xB2F76F40 #x8DB8526E #x6F0D6D4E #xE1088003 #x971D311D #x9E0523C9 #xCC7CD691 #x45EC2824 #xE62382C9 #x575B8359 #xC4889995 #xFA9E400D #x45721568 #xD1823ECB #x8206082F #xDAFD983B #x2386A8CB #xAA7D2908 #x03B87588 #x269FCD44 #x28BDD1E0 #x1B91F5F7 #x040201F6 #xE4669F39 #x8CF04ADE #x7A1D7C21 #xD79CE5CE #x65623C29 #x96C00BB1 #x23684490 #x9DA503BA #xAB9BF187 #xA458058E #xBC23ECB1 #xBB401ECC #x9A58DF01 #xA85F143D #xA070E868 #x7DF2239E #x4FF18830 #x1A641183 #x14D565B4 #x52701602 #xEE133374 #x3F285E09 #x950E3DCF #xB9C80953 #x59930254 #x8930DA6D #x3BF29940 #x53691387 #xA955943F #xA9CB8784 #xA15EDECA #x352BE9A0 #x29142127 #xFF4E7AFB #x76F0371F #x274F2228 #x0239F450 #x1D5E868B #xBB073AF0 #xC10E96C1 #xBFC80571 #x68222E23 #xD2670885 #x8E80B5B0 #x9671A3D4 #xE193BB81 #x55B5D38A #xA18B04B8 #x693AE2D0 #xADD5335F #x5C48B4EC #x4916A1CA #xFD743B19 #x34BE98C4 #x25770181 #x3C54A4AD #xE77987E8 #xDA33E1B9 #x28E11014 #x226AA213 #x270CC59E #x6D1A5F60 #x71495F75 #x60AFEF77 #x9BE853FB #xF7443DBF #xADC786A7 #x73B29A82 #x09044561 #xC232BD5E #x58BC7A66 #x673AC8B2 #xF306558C #xB6C9772A #x41F639C6 #x9FDA35DA #x216DEFE9 #x1C7BE615 #x11640CC7 #x565C5527 #x93C43694 #x46777839 #xEA038E62 #x5A3E2469 #xF9ABF3CE #x0FD312D2 #x741E768D #xCED652C6 #x0144B883 #xA33F8552 #xC20B5A5B #xC3435A9D #x1AE69633 #x088CFDEC #x97A28CA4 #x1E96F420 #x8824A43C #x6EEEA746 #x37612FA6 #xF9CF0E5A #x6B4CB165 #xA0ABFB4A #x43AA1C06 #xF162796B #x7F4DC26F #x54ED9B0F #x6CBACC8E #xD2BB253E #xA6B7FFEF #xB0A29D4F #x2E25BC95 #xDEF1388C #x86D6A58B #x76B6F054 #xDED74AC5 #x2B45805D #x8030BDBC #xE94D9289 #x3C81AF70 #x9E3100DB #x3EFF6DDA #xDFCC8847 #xB38DC39F #x8D17B87E #x12388552 #x40B1B642 #xF2DA0ED2 #xD54BF9A9 #x44CEFADC #x433C7EE6 #x1312200E #x3A78C748 #x9FFCC84F #x248576BB #xF0CD1F72 #x3638CFE4 #xEC697405 #x0CEC4E4C #x2BA7B67C #xE5CE32ED #xAC2F4DF3 #x26EA4C11 #xCB33D143 #xC77E58BC #xA4E9044C #xD934FCEF #x5F513293 #x06E55444 #x5DC96455 #x317DE40A #x50DE418F #x69DDE259 #x388CB31A #x55820A86 #x2DB4A834 #x84711AE9 #x9010A91E #xB1498371 #x4DF7F0B7 #xC0977179 #xD62A2EAB #xAA8D5C0E #x22FAC097))) (defconst tiger-t3 (make-tiger-sbox '(#xF1DAF39B #xF49FCC2F #x6FF29281 #x487FD5C6 #xFCDCA83F #xE8A30667 #xD2FCCE63 #x2C9B4BE3 #x93FBBBC2 #xDA3FF74B #xFE70BA66 #x2FA165D2 #x970E93D4 #xA103E279 #xB0E45E71 #xBECDEC77 #x3985E497 #xCFB41E72 #x5EF75017 #xB70AAA02 #x3840B8E0 #xD42309F0 #x35898579 #x8EFC1AD0 #xE2B2ABC5 #x96C6920B #x375A9172 #x66AF4163 #xCA7127FB #x2174ABDC #x4A72FF41 #xB33CCEA6 #x083066A5 #xF04A4933 #xD7289AF5 #x8D970ACD #x31C8C25E #x8F96E8E0 #x76875D47 #xF3FEC022 #x056190DD #xEC7BF310 #xBB0F1491 #xF5ADB0AE #x0FD58892 #x9B50F885 #x58B74DE8 #x49754883 #x91531C61 #xA3354FF6 #x81D2C6EE #x0702BBE4 #x7DEDED98 #x89FB2405 #x8596E902 #xAC307513 #x172772ED #x1D2D3580 #x8E6BC30D #xEB738FC2 #x63044326 #x5854EF8F #x5ADD3BBE #x9E5C5232 #x325C4623 #x90AA53CF #x349DD067 #xC1D24D51 #xA69EA624 #x2051CFEE #x862E7E4F #x13220F0A #x04E04864 #xCE393994 #x7086FCB7 #xD9C42CA4 #x8A03E7CC #x685AD223 #xAB2FF1DB #x066484B2 #xEFBF79EC #xFE9D5D70 #x9C481854 #x5B13B9DD #xED1509AD #x15F0D475 #x0EC79851 #x0BEBCD06 #x183AB7F8 #xD58C6791 #x52F3EEE4 #xD1187C50 #xE54E82FF #xC95D1192 #xB9AC6CA2 #x86EEA14C #x53677D5D #x3485BEB1 #x1F8C492A #xDD191D78 #xA784EBF9 #xF60866BA #xA2D08C74 #x518F643B #xE1087C22 #x8852E956 #xC410AE8D #xA768CB8D #xBFEC8E1A #x38047726 #xCD3B45AA #xA67738B4 #xEC0DDE19 #xAD16691C #x80462E07 #xC6D43193 #x0BA61938 #xC5A5876D #xA58FD840 #x16B9FA1F #x3CA74F18 #x188AB117 #xC99C021F #xABDA2F98 #x134AE816 #x3E0580AB #x73645ABB #x5F3B05B7 #x5575F2F6 #x2501A2BE #x4E7E8BA9 #x1B2F7400 #x71E8D953 #x1CD75803 #x62764E30 #x7F6ED895 #x596F003D #xB15926FF #xA8C5D6B9 #x9F65293D #xD690F84C #x6ECEF04D #xFF33AF88 #x4782275F #x3F820801 #xE4143308 #x9A1AF9B5 #xFD0DFE40 #x2CDB396B #x4325A334 #xB301B252 #x8AE77E62 #x6655615A #xC36F9E9F #x92D32C09 #x85455A2D #x49477485 #xF2C7DEA9 #x33A39EBA #x63CFB4C1 #x6EBC5462 #x83B040CC #xFDB326B0 #x3B9454C8 #x87FFD78C #x56F56A9E #x99F42BC6 #x2DC2940D #x6B096E2D #x98F7DF09 #x3AD852BF #x19A6E01E #xDBD4B40B #x42A99CCB #x45E9C559 #xA59998AF #x07D93186 #x366295E8 #xFAA1F773 #x6B48181B #x157A0A1D #x1FEC57E2 #xF6201AD5 #x4667446A #xCFB0F075 #xE615EBCA #x68290778 #xB8F31F4F #xCE22D11E #x22713ED6 #x2EC3C93B #x3057C1A7 #x7C3F1F2F #xCB46ACC3 #x02AAF50E #xDBB893FD #x600B9FCF #x331FD92E #x48EA3AD6 #xA498F961 #x8B6A83EA #xA8D8426E #xB7735CDC #xA089B274 #x1E524A11 #x87F6B373 #xCBC96749 #x118808E5 #xB19BD394 #x9906E4C7 #x9B24A20C #xAFED7F7E #xEB3644A7 #x6509EADE #xE8EF0EDE #x6C1EF1D3 #xE9798FB4 #xB9C97D43 #x740C28A3 #xA2F2D784 #x6197566F #x7B849647 #xB65F069D #x7A5BE3E6 #x78BE6F10 #xF96330ED #x7A076A15 #xEEE60DE7 #xA08B9BD0 #x2B4BEE4A #xC7B8894E #x6A56A63E #xBA34FEF4 #x02121359 #x283703FC #x4CBF99F8 #x0CAF30C8 #x39807135 #xF017687A #xD0A77A89 #x9E423569 #xF1C1A9EB #x2DEE8199 #x8C797628 #xDD1F7ABD #x5D1737A5 #x09A9FA80 #x4F53433C #xDF7CA1D9 #xFA8B0C53 #x886CCB77 #x3FD9DCBC #xA91B4720 #xC040917C #xF9D1DCDF #x7DD00142 #x4F387B58 #x8476FC1D #xF3316503 #x23F8E7C5 #xE7E37339 #x032A2244 #x50F5A74B #x5C87A5D7 #x3698992E #x082B4CC4 #xB858F63C #xDF917BEC #x5BF86DDA #x3270B8FC #x29B5DD76 #x10AE72BB #x7700362B #x576AC94E #xC61EFB8F #x1AD112DA #xC5FAA427 #x691BC30E #xCC327143 #xFF246311 #x30E53206 #x3142368E #xE02CA396 #x71380E31 #x0AAD76F1 #x958D5C96 #xC16DA536 #xF8D6F430 #x1BE7E1D2 #xC8FFD13F #x004DDBE1 #x7578AE66 #x067BE646 #x05833F01 #x3BFE586D #xBB34B5AD #xA12B97F0 #x095F34C9 #x25D60CA8 #x247AB645 #x017477D1 #xDCDBC6F3 #xDECAD24D #x4A2E14D4 #xBE0A1EEB #xBDB5E6D9 #x794301AB #x2A7E70F7 #x270540FD #xDEF42D8A #xA34C22C1 #x01078EC0 #xF4C16387 #xE5DE511A #xBD9A330A #x7EBB3A52 #xAA7D6435 #x77697857 #x03AE4C32 #x004E8316 #xAD78E312 #xE7A21020 #x6AB420F2 #x9D41A70C #xEA1141E6 #x28E06C18 #x984F6B28 #xD2B28CBD #x446E9D83 #x26B75F6C #x4D418D7F #xBA47568C #xE6183D8E #xD80BADBF #x5F166044 #x0E206D7F #x11CBCA3E #xE258A439 #xB21DC0BC #x723A1746 #xF5D7CDD3 #xC7CAA854 #x3D261D9C #x7CAC3288 #x23BA942C #x7690C264 #x478042B8 #x17E55524 #x56A2389F #xE0BE4776 #x67AB2DA0 #x4D289B5E #x8FBBFD31 #x44862B9C #x9D141365 #xB47CC804 #x2B91C793 #x822C1B36 #xFB13DFD8 #x4EB14655 #x14E2A97B #x1ECBBA07 #x5CDE5F14 #x6143459D #xD5F0AC89 #x53A8FBF1 #x1C5E5B00 #x97EA04D8 #xD4FDB3F3 #x622181A8 #x572A1208 #xE9BCD341 #x43CCE58A #x14112586 #xA4C6E0A4 #x9144C5FE #x65CF620F #x0D33D065 #x9F219CA1 #x54A48D48 #x6D63C821 #xC43E5EAC #x72770DAF #xA9728B3A #x20DF87EF #xD7934E7B #x1A3E86E5 #xE35503B6 #xC819D504 #xCAE321FB #xAC60BFA6 #x129A50B3 #x7E9FB6C3 #xCD5E68EA #x9483B1C7 #xB01C9019 #xC295376C #x3DE93CD5 #x2AB9AD13 #xAED52EDF #xC0A07884 #x2E60F512 #xE36210C9 #xBC3D86A3 #x163951CE #x35269D9B #xD0CDB5FA #x0C7D6E2A #xD87F5733 #x59E86297 #x898DB0E7 #x298EF221 #xD1A5AA7E #x55000029 #xB5061B45 #x8BC08AE1 #x6C92703A #xC2C31C2B #xAF25EF42 #x94CC596B #x22540456 #x0A1D73DB #xD9C4179A #x04B6A0F9 #xAE3D3C60 #xEFFDAFA2 #xB49496C4 #xF7C8075B #x1D1CD4E3 #x9CC5C714 #x218E5534 #x78BD1638 #xF850246A #xB2F11568 #x9502BC29 #xEDFABCFA #xDA23051B #x796CE5F2 #xDC93537C #xAAE128B0 #xEE4B29AE #x3A493DA0 #x416895D7 #xB5DF6B2C #x122D7F37 #xFCABBD25 #x105DC4B1 #x70810B58 #xF7882A90 #xE10FDD37 #x518A3F5C #x524DCAB5 #x8451255B #x3C9E8587 #x19BD34E2 #x40298281 #x5D3CECCB #x74A05B6F #x42E13ECA #xB6100215 #x2F59E2AC #x0FF979D1 #xE4F9CC50 #x6037DA27 #x0DF1847D #x5E92975A #xD3E623FE #xD66DE190 #x7B568048 #x5032D6B8 #x8235216E #x9A36B7CE #x24F64B4A #x80272A7A #x8C6916F7 #x93EFED8B #x4CCE1555 #x37DDBFF4 #x4B99BD25 #x4B95DB5D #x69812FC0 #x92D3FDA1 #x90660BB6 #xFB1A4A9A #x46A4B9B2 #x730C1969 #x7F49DA68 #x81E289AA #x83B1A05F #x64669A0F #x9644F48B #x27B3FF7D #x8DB675B3 #xCC6B615C #xBCEBBE95 #x674F20B9 #x75655982 #x6F312382 #x3E45CF05 #x5AE48871 #x54C21157 #xBF619F99 #x40A8EAE9 #xEABAC460 #xF2C0C1CD #x454C6FE9 #x6412691C #x419CF649 #x265B0F70 #xD3DC3BEF #xC3578A9E #x6D0E60F5))) (defconst tiger-t4 (make-tiger-sbox '(#x26323C55 #x5B0E6085 #xFA1B59F5 #x1A46C1A9 #x7C4C8FFA #xA9E245A1 #xDB2955D7 #x65CA5159 #xCE35AFC2 #x05DB0A76 #xA9113D45 #x81EAC77E #xB6AC0A0D #x528EF88A #x597BE3FF #xA09EA253 #xAC48CD56 #x430DDFB3 #xF45CE46F #xC4B3A67A #xFBE2D05E #x4ECECFD8 #xB39935F0 #x3EF56F10 #x9CD619C6 #x0B22D682 #x74DF2069 #x17FD460A #x8510ED40 #x6CF8CC8E #x3A6ECAA7 #xD6C824BF #x1A817049 #x61243D58 #xBBC163A2 #x048BACB6 #x7D44CC32 #xD9A38AC2 #xAAF410AB #x7FDDFF5B #xA804824B #xAD6D495A #x2D8C9F94 #xE1A6A74F #x35DEE8E3 #xD4F78512 #x6540D893 #xFD4B7F88 #x2AA4BFDA #x247C2004 #x17D1327C #x096EA1C5 #x361A6685 #xD56966B4 #x1221057D #x277DA5C3 #xA43ACFF7 #x94D59893 #xCDC02281 #x64F0C51C #xFF6189DB #x3D33BCC4 #x4CE66AF1 #xE005CB18 #x1DB99BEA #xFF5CCD1D #xFE42980F #xB0B854A7 #x718D4B9F #x7BD46A6A #x22A5FD8C #xD10FA8CC #x2BE4BD31 #xD3148495 #xCB243847 #xC7FA975F #x5846C407 #x4886ED1E #x1EB70B04 #x28CDDB79 #xF573417F #xC2B00BE2 #x2180F877 #x5C959045 #xF370EB00 #x7A6BDDFF #xD6D9D6A4 #xCE509E38 #x647FA702 #xEBEB0F00 #x76606F06 #x1DCC06CF #xA286FF0A #xE4D9F28B #xC918C262 #xD85A305D #x32225F54 #x475B1D87 #x68CCB5FE #x2D4FB516 #xD72BBA20 #xA679B9D9 #x912D43A5 #x53841C0D #xBF12A4E8 #x3B7EAA48 #xF22F1DDF #x781E0E47 #x0AB50973 #xEFF20CE6 #x9DFFB742 #x20D261D1 #x062A2E39 #x16A12B03 #x39650495 #x1960EB22 #xD50EB8B8 #x251C16FE #xF826016E #x9AC0C330 #x953E7671 #xED152665 #xA6369570 #x02D63194 #x94B1C987 #x5074F083 #x90B25CE1 #x70BA598C #x0B9742F6 #x794A1581 #xFCAF8C6C #x0D5925E9 #xD868744E #x3067716C #xE8D7731B #x910AB077 #x5AC42F61 #x6A61BBDB #xF0851567 #x93513EFB #x9E83E9D5 #xF494724B #x5C09648D #xE887E198 #x75370CFD #x34B1D3C6 #xBC0D255D #xDC35E433 #x34131BE0 #xD0AAB842 #xB48B7EAF #x08042A50 #x44A3AB35 #x9997C4EE #x201799D0 #x829A7B49 #xB7C54441 #x263B8307 #xFD6A6CA6 #x752F95F4 #x2C08C6E5 #x92721740 #xA795D9EE #x2A8AB754 #x2F72943D #xA442F755 #x19781208 #x2C31334E #xEAEE6291 #x4FA98D7C #x665DB309 #x55C3862F #x5D53B1F3 #xBD061017 #x40413F27 #x46FE6CB8 #xDF0CFA59 #x3FE03792 #x2EB85E8F #xCFE70037 #xADBCE118 #xA7BE29E7 #xDE8431DD #xE544EE5C #x41F1873E #x8A781B1B #xA0D2F0E7 #xA5C94C78 #x77B60728 #x39412E28 #xAFC9A62C #xA1265EF3 #x6A2506C5 #xBCC2770C #xDCE1CE12 #x3AB66DD5 #x4A675B37 #xE65499D0 #x81BFD216 #x7D8F5234 #xEC15F389 #x0F6F64FC #x8B5B13C8 #x74EFBE61 #x14273E1D #xACDC82B7 #x03199D17 #xDD40BFE0 #xE7E061F8 #x37E99257 #x04775AAA #xFA526269 #x463D56F9 #x8BBBF63A #x43A26E64 #xF0013F15 #x879EC898 #xA8307E9F #x150177CC #xCC4C27A4 #xCA1D3348 #x1B432F2C #x9F6FA013 #xDE1D1F8F #x47A7DDD6 #x606602A0 #xCC1CB2C7 #xD237AB64 #x25FCD1D3 #x9B938E72 #x8E0FF476 #xEC4E0370 #x3D03C12D #xFEB2FBDA #xEE43889A #xAE0BCED2 #xEBFB4F43 #x22CB8923 #x3CF7396D #x69360D01 #xD2D4E022 #x855E3602 #xD01F784C #x073805BA #x3852F546 #x33E17A13 #x8AC7B638 #xDF487405 #x678AA14A #xBA92B29C #x6CFAADCD #x0CE89FC7 #x08339E34 #x5F9D4E09 #x1F5923B9 #xF1AFE929 #x0F4A265F #x6E3480F6 #xB29B841C #xEEBF3A2A #x8F91B4AD #xE21938A8 #x45C6D3C3 #x57DFEFF8 #xF62CAAF2 #x2F006B0B #x6F75EE78 #x62F479EF #x1C8916A9 #x11A55AD4 #x84FED453 #xF229D290 #x16B000E6 #x42F1C27B #x9823C074 #x2B1F7674 #xC2745360 #x4B76ECA3 #xB91691BD #x8C98F463 #xF1ADE66A #x14BCC93C #x6D458397 #x8885213E #x274D4711 #x8E177DF0 #x503F2951 #xB49B73B5 #xC3F96B6B #x10168168 #x63CAB0AE #x0E3D963B #x55A1DB14 #x8DFC4B56 #x6E14DE5C #xF789F135 #x4E51DAC1 #x683E68AF #x8D4B0FD9 #xC9A84F9D #x52A0F9D1 #x3691E03F #xE1878E80 #x5ED86E46 #x99D07150 #x3C711A0E #x0C4E9310 #x5A0865B2 #xE4F0682E #x56FBFC1F #x105EDF9B #xEA8D5DE3 #x2379187A #x71ABFDB1 #xBEE77B9C #x2EB99DE1 #x33CF4523 #x21ECC0EA #x1805C7A1 #x59A4D752 #x56AE7C72 #x3896F5EB #xB18F75DC #xAA638F3D #xABE9808E #x9F39358D #xC00B72AC #xB7DEFA91 #x62492D92 #x6B5541FD #xF92E4D5B #x6DC6DEE8 #xC4BEEA7E #x353F57AB #xDA5690CE #x735769D6 #x42391484 #x0A234AA6 #x28F80D9D #xF6F95080 #x7AB3F215 #xB8E319A2 #x51341A4D #x31AD9C11 #x7BEF5805 #x773C22A5 #x07968633 #x45C7561A #x249DBE36 #xF913DA9E #x78A64C68 #xDA652D9B #x3BC334EF #x4C27A97F #xE66B17F4 #x76621220 #x9ACD7D0B #x96774389 #xE0ED6782 #xF3EE5BCA #x00C879FC #x409F7536 #xB5926DB6 #x06D09A39 #x317AC588 #x6F83AEB0 #x86381F21 #x01E6CA4A #xD19F3025 #x66FF3462 #xDDFD3BFB #x72207C24 #xE2ECE2EB #x4AF6B6D3 #xC7EA08DE #x9C994DBE #xB09A8BC4 #x49ACE597 #xCF0797BA #xB38C4766 #xC57C2A75 #x131B9373 #x61931E58 #xB1822CCE #x09BA1C0C #x9D7555B9 #x937D11D2 #x127FAFDD #xC66D92E4 #x29DA3BAD #x54C2ECBC #xA2C1D571 #x82F6FE24 #x58C5134D #x5B62274F #x1C3AE351 #x01CB8126 #xE907C82E #x13E37FCB #xF8ED0919 #xC80046C9 #x3249D8F9 #xE388FB63 #x80CF9BED #x116CF19E #x1881539A #x6BD52457 #x5103F3F7 #xAE47F7A8 #x15B7E6F5 #xD47E9CCF #xDBD7C6DE #x0228BB1A #x44E55C41 #x5EDB4E99 #xB647D425 #xB8AAFC30 #x5D11882B #x29D3212A #xF5098BBB #xE90296B3 #x8FB5EA14 #x57DD025A #x677B9421 #xA390ACB5 #xFB58E7C0 #x83BD4A01 #x89D3674C #x4BF3B93B #x9E2DA4DF #x8CAB4829 #xFCC41E32 #xBA582C52 #x03F38C96 #x7FD85DB2 #xCAD1BDBD #x6082AE83 #xBBB442C1 #xA5DA9AB0 #xB95FE86B #x3771A93F #xB22E0467 #x493152D8 #x845358C9 #x97B4541E #xBE2A4886 #xD38E6966 #x95A2DC2D #x923C852B #xC02C11AC #x0DF2A87B #x2388B199 #x1B4F37BE #x7C8008FA #x4D54E503 #x1F70D0C8 #x7ECE57D4 #x5490ADEC #xD9063A3A #x002B3C27 #x8030A2BF #x7EAEA384 #xED2003C0 #xC602326D #x69A94086 #x83A7287D #x30F57A8A #xC57A5FCB #x79EBE779 #xB56844E4 #x05DCBCE9 #xA373B40F #x88570EE2 #xD71A786E #xBDE8F6A0 #x879CBACD #xC164A32F #x976AD1BC #x9666D78B #xAB21E25E #xE5E5C33C #x901063AA #x48698D90 #x9818B344 #x3E1E8ABB #xE36487AE #x893BDCB4 #xAFBDF931 #x5FBBD519 #x6345A0DC #x9B9465CA #x8628FE26 #x3F9C51EC #x1E5D0160 #xA15049B7 #x4DE44006 #xF776CBB1 #xBF6C70E5 #xEF552BED #x411218F2 #x705A36A3 #xCB0C0708 #x4F986044 #xE74D1475 #x0EA8280E #xCD56D943 #x535F5065 #xC12591D7 #x720AEF96 #xC83223F1 #x7363A51F #xC3A0396F))) #+#.(cl:if (cl:= ironclad::+tiger-wordsize+ 64) '(and) '(or)) (defun update-tiger-block (regs block) (declare (type tiger-regs regs) (type tiger-state-block block) #.(burn-baby-burn)) (let ((a (tiger-regs-a regs)) (b (tiger-regs-b regs)) (c (tiger-regs-c regs))) (macrolet ((key-schedule (block) `(setf (aref ,block 0) (mod64- (aref ,block 0) (logxor (aref ,block 7) #xa5a5a5a5a5a5a5a5)) (aref ,block 1) (logxor (aref ,block 1) (aref ,block 0)) (aref ,block 2) (mod64+ (aref ,block 2) (aref ,block 1)) (aref ,block 3) (mod64- (aref ,block 3) (logxor (aref ,block 2) (mod64ash (mod64lognot (aref ,block 1)) 19))) (aref ,block 4) (logxor (aref ,block 4) (aref ,block 3)) (aref ,block 5) (mod64+ (aref ,block 5) (aref ,block 4)) (aref ,block 6) (mod64- (aref ,block 6) (logxor (aref ,block 5) (mod64ash (mod64lognot (aref ,block 4)) -23))) (aref ,block 7) (logxor (aref ,block 7) (aref ,block 6)) (aref ,block 0) (mod64+ (aref ,block 0) (aref ,block 7)) (aref ,block 1) (mod64- (aref ,block 1) (logxor (aref ,block 0) (mod64ash (mod64lognot (aref ,block 7)) 19))) (aref ,block 2) (logxor (aref ,block 2) (aref ,block 1)) (aref ,block 3) (mod64+ (aref ,block 3) (aref ,block 2)) (aref ,block 4) (mod64- (aref ,block 4) (logxor (aref ,block 3) (mod64ash (mod64lognot (aref ,block 2)) -23))) (aref ,block 5) (logxor (aref ,block 5) (aref ,block 4)) (aref ,block 6) (mod64+ (aref ,block 6) (aref ,block 5)) (aref ,block 7) (mod64- (aref ,block 7) (logxor (aref ,block 6) #x0123456789abcdef)))) (tiger-round (a b c block n mul) `(progn (setf ,c (logxor ,c (aref ,block ,n)) ,a (mod64- ,a (logxor (aref tiger-t1 (first-byte ,c)) (aref tiger-t2 (third-byte ,c)) (aref tiger-t3 (fifth-byte ,c)) (aref tiger-t4 (seventh-byte ,c)))) ,b (mod64+ ,b (logxor (aref tiger-t1 (eighth-byte ,c)) (aref tiger-t2 (sixth-byte ,c)) (aref tiger-t3 (fourth-byte ,c)) (aref tiger-t4 (second-byte ,c)))) ,b (mod64* ,b ,mul)))) (pass (a b c block mul) `(progn (tiger-round ,a ,b ,c ,block 0 ,mul) (tiger-round ,b ,c ,a ,block 1 ,mul) (tiger-round ,c ,a ,b ,block 2 ,mul) (tiger-round ,a ,b ,c ,block 3 ,mul) (tiger-round ,b ,c ,a ,block 4 ,mul) (tiger-round ,c ,a ,b ,block 5 ,mul) (tiger-round ,a ,b ,c ,block 6 ,mul) (tiger-round ,b ,c ,a ,block 7 ,mul)))) (pass a b c block 5) (key-schedule block) (pass c a b block 7) (key-schedule block) (pass b c a block 9) (setf (tiger-regs-a regs) (logxor a (tiger-regs-a regs)) (tiger-regs-b regs) (mod64- b (tiger-regs-b regs)) (tiger-regs-c regs) (mod64+ c (tiger-regs-c regs))) regs))) #+#.(cl:if (cl:= ironclad::+tiger-wordsize+ 32) '(and) '(or)) (defun update-tiger-block (regs block) (declare (type tiger-regs regs) (type (simple-array (unsigned-byte 32) (16)) block) #.(burn-baby-burn)) (let ((a0 (tiger-regs-a0 regs)) (a1 (tiger-regs-a1 regs)) (b0 (tiger-regs-b0 regs)) (b1 (tiger-regs-b1 regs)) (c0 (tiger-regs-c0 regs)) (c1 (tiger-regs-c1 regs)) (x00 (aref block 0)) (x01 (aref block 1)) (x10 (aref block 2)) (x11 (aref block 3)) (x20 (aref block 4)) (x21 (aref block 5)) (x30 (aref block 6)) (x31 (aref block 7)) (x40 (aref block 8)) (x41 (aref block 9)) (x50 (aref block 10)) (x51 (aref block 11)) (x60 (aref block 12)) (x61 (aref block 13)) (x70 (aref block 14)) (x71 (aref block 15)) (aa0 0) (aa1 0) (bb0 0) (bb1 0) (cc0 0) (cc1 0) (temp0 0) (temp1 0) (temps0 0) (tcarry 0)) (declare (type (unsigned-byte 32) a0 a1 b0 b1 c0 c1 x00 x01 x10 x11 x20 x21 x30 x31 x40 x41 x50 x51 x60 x61 x70 x71 aa0 aa1 bb0 bb1 cc0 cc1 temp0 temp1 temps0) (type bit tcarry)) (macrolet ((sub64 (s0 s1 p0 p1) `(progn (multiple-value-setq (temps0 tcarry) (%subtract-with-borrow ,s0 ,p0 1)) (setf ,s0 temps0 ,s1 (%subtract-with-borrow ,s1 ,p1 tcarry)))) (add64 (s0 s1 p0 p1) `(progn (multiple-value-setq (temps0 tcarry) (%add-with-carry ,s0 ,p0 0)) (setf ,s0 temps0 ,s1 (%add-with-carry ,s1 ,p1 tcarry)))) (xor64 (s0 s1 p0 p1) `(setf ,s0 (logxor ,s0 ,p0) ,s1 (logxor ,s1 ,p1))) (mul5 (s0 s1) `(let ((tempt0 (mod32ash ,s0 2)) (tempt1 (logior (mod32ash ,s1 2) (mod32ash ,s0 -30)))) (declare (type (unsigned-byte 32) tempt0 tempt1)) (add64 ,s0 ,s1 tempt0 tempt1))) (mul7 (s0 s1) `(let ((tempt0 (mod32ash ,s0 3)) (tempt1 (logior (mod32ash ,s1 3) (mod32ash ,s0 -29)))) (declare (type (unsigned-byte 32) tempt0 tempt1)) (sub64 tempt0 tempt1 ,s0 ,s1) (setf ,s0 tempt0 ,s1 tempt1))) (mul9 (s0 s1) `(let ((tempt0 (mod32ash ,s0 3)) (tempt1 (logior (mod32ash ,s1 3) (mod32ash ,s0 -29)))) (declare (type (unsigned-byte 32) tempt0 tempt1)) (add64 ,s0 ,s1 tempt0 tempt1))) (save-abc () `(setf aa0 a0 aa1 a1 bb0 b0 bb1 b1 cc0 c0 cc1 c1)) (loref (sbox index) `(aref ,sbox (* 2 ,index))) (hiref (sbox index) `(aref ,sbox (+ (* 2 ,index) 1))) (round-xor (sbox bytefun val) `(setf temp0 (logxor temp0 (loref ,sbox (,bytefun ,val))) temp1 (logxor temp1 (hiref ,sbox (,bytefun ,val))))) (tiger-round(a0 a1 b0 b1 c0 c1 x0 x1 mul) `(progn (xor64 ,c0 ,c1 ,x0 ,x1) (setf temp0 (loref tiger-t1 (first-byte ,c0)) temp1 (hiref tiger-t1 (first-byte ,c0))) (round-xor tiger-t2 third-byte ,c0) (round-xor tiger-t3 first-byte ,c1) (round-xor tiger-t4 third-byte ,c1) (sub64 ,a0 ,a1 temp0 temp1) (setf temp0 (loref tiger-t4 (second-byte ,c0)) temp1 (hiref tiger-t4 (second-byte ,c0))) (round-xor tiger-t3 fourth-byte ,c0) (round-xor tiger-t2 second-byte ,c1) (round-xor tiger-t1 fourth-byte ,c1) (add64 ,b0 ,b1 temp0 temp1) (cond ((= ,mul 5) (mul5 ,b0 ,b1)) ((= ,mul 7) (mul7 ,b0 ,b1)) (t (mul9 ,b0 ,b1))))) (pass (a0 a1 b0 b1 c0 c1 mul) `(progn (tiger-round ,a0 ,a1 ,b0 ,b1 ,c0 ,c1 x00 x01 ,mul) (tiger-round ,b0 ,b1 ,c0 ,c1 ,a0 ,a1 x10 x11 ,mul) (tiger-round ,c0 ,c1 ,a0 ,a1 ,b0 ,b1 x20 x21 ,mul) (tiger-round ,a0 ,a1 ,b0 ,b1 ,c0 ,c1 x30 x31 ,mul) (tiger-round ,b0 ,b1 ,c0 ,c1 ,a0 ,a1 x40 x41 ,mul) (tiger-round ,c0 ,c1 ,a0 ,a1 ,b0 ,b1 x50 x51 ,mul) (tiger-round ,a0 ,a1 ,b0 ,b1 ,c0 ,c1 x60 x61 ,mul) (tiger-round ,b0 ,b1 ,c0 ,c1 ,a0 ,a1 x70 x71 ,mul))) (key-schedule () `(progn (sub64 x00 x01 (logxor x70 #xa5a5a5a5) (logxor x71 #xa5a5a5a5)) (xor64 x10 x11 x00 x01) (add64 x20 x21 x10 x11) (sub64 x30 x31 (ldb (byte 32 0) (logxor x20 (mod32ash (mod32lognot x10) 19))) (ldb (byte 32 0) (mod32lognot (logxor x21 (logior (mod32ash x11 19) (mod32ash x10 -13)))))) (xor64 x40 x41 x30 x31) (add64 x50 x51 x40 x41) (sub64 x60 x61 (ldb (byte 32 0) (mod32lognot (logxor x50 (logior (mod32ash x40 -23) (mod32ash x41 9))))) (ldb (byte 32 0) (logxor x51 (mod32ash (mod32lognot x41) -23)))) (xor64 x70 x71 x60 x61) (add64 x00 x01 x70 x71) (sub64 x10 x11 (ldb (byte 32 0) (logxor x00 (mod32ash (mod32lognot x70) 19))) (ldb (byte 32 0) (mod32lognot (logxor x01 (logior (mod32ash x71 19) (mod32ash x70 -13)))))) (xor64 x20 x21 x10 x11) (add64 x30 x31 x20 x21) (sub64 x40 x41 (ldb (byte 32 0) (mod32lognot (logxor x30 (logior (mod32ash x20 -23) (mod32ash x21 9))))) (ldb (byte 32 0) (logxor x31 (mod32ash (mod32lognot x21) -23)))) (xor64 x50 x51 x40 x41) (add64 x60 x61 x50 x51) (sub64 x70 x71 (logxor x60 #x89abcdef) (logxor x61 #x01234567)))) (feed-forward () `(progn (xor64 a0 a1 aa0 aa1) (sub64 b0 b1 bb0 bb1) (add64 c0 c1 cc0 cc1)))) (save-abc) (dotimes (i 3) (unless (zerop i) (key-schedule)) (pass a0 a1 b0 b1 c0 c1 (or (and (zerop i) 5) (and (= i 1) 7) 9)) (psetq a0 c0 a1 c1 c0 b0 c1 b1 b0 a0 b1 a1)) #+nil (progn (pass a0 a1 b0 b1 c0 c1 5) (key-schedule) (pass c0 c1 a0 a1 b0 b1 7) (key-schedule) (pass b0 b1 c0 c1 a0 a1 9)) (feed-forward) (setf (tiger-regs-a0 regs) a0 (tiger-regs-a1 regs) a1 (tiger-regs-b0 regs) b0 (tiger-regs-b1 regs) b1 (tiger-regs-c0 regs) c0 (tiger-regs-c1 regs) c1) regs))) (defstruct (tiger (:constructor %make-tiger-digest nil) (:constructor %make-tiger-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-tiger-regs) :type tiger-regs :read-only t) (block (make-array #.+tiger-block-n-words+ :element-type '(unsigned-byte #.+tiger-wordsize+)) :type tiger-state-block :read-only t)) (defmethod reinitialize-instance ((state tiger) &rest initargs) (declare (ignore initargs)) (replace (tiger-regs state) +pristine-tiger-registers+) (setf (tiger-amount state) 0 (tiger-buffer-index state) 0) state) (defmethod copy-digest ((state tiger) &optional copy) (declare (type (or cl:null tiger) copy)) (cond (copy (replace (tiger-regs copy) (tiger-regs state)) (replace (tiger-buffer copy) (tiger-buffer state)) (setf (tiger-amount copy) (tiger-amount state) (tiger-buffer-index copy) (tiger-buffer-index state)) copy) (t (%make-tiger-state (copy-seq (tiger-regs state)) (tiger-amount state) (copy-seq (tiger-block state)) (copy-seq (tiger-buffer state)) (tiger-buffer-index state))))) (define-digest-updater tiger "Update the given tiger-state from sequence, which is either a simple-string or a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (flet ((compress (state sequence offset) (let ((block (tiger-block state))) (#.+tiger-block-copy-fn+ block sequence offset) (update-tiger-block (tiger-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (tiger 24) "If the given tiger-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the TIGER standard. The resulting TIGER message-digest is returned as an array of twenty-four (unsigned-byte 8) values. Calling UPDATE-TIGER-STATE after a call to FINALIZE-TIGER-STATE results in unspecified behaviour." (let ((regs (tiger-regs state)) (block (tiger-block state)) (buffer (tiger-buffer state)) (buffer-index (tiger-buffer-index state)) (total-length (* 8 (tiger-amount state)))) (declare (type tiger-regs regs) (type (integer 0 63) buffer-index) (type tiger-state-block block) (type (simple-array (unsigned-byte 8) (*)) buffer)) ;; Add mandatory bit 1 padding. ;; Note that Tiger does this differently from MD5. (setf (aref buffer buffer-index) #x01) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (#.+tiger-block-copy-fn+ block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 56) (update-tiger-block regs block) ;; Create new fully 0 padded block (dotimes (i #.+tiger-block-n-words+) (setf (aref block i) 0))) ;; Add 64bit message bit length #.(if (= +tiger-wordsize+ 32) '(store-data-length block total-length 14) '(setf (aref block 7) total-length)) ;; Flush last block (update-tiger-block regs block) ;; Done, remember digest for later calls (finalize-registers state regs))) (defdigest tiger :digest-length 24 :block-length 64) ironclad_0.33.0/src/digests/whirlpool.lisp0000644000175000017500000003020611761302200015564 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; This file implements the Whirlpool message-digest algoritm, as ;;;; defined in The WHIRLPOOL Hashing Function, by Paulo S.L.M. Barreto1 ;;;; and Vincent Rijmen, revised on Revised on May 24, 2003 (1). ;;;; ;;;; It was written by Peter Gijsels. ;;;; Copyright (c) 2007, Peter Gijsels ;;;; All rights reserved. ;;;; ;;;; This software is "as is", and has no warranty of any kind. The ;;;; authors assume no responsibility for the consequences of any use of ;;;; this software. (in-package :crypto) (eval-when (:compile-toplevel :load-toplevel :execute) (deftype whirlpool-regs () '(simple-array (unsigned-byte 32) (64))) (defun initial-whirlpool-regs () (make-array 64 :element-type '(unsigned-byte 32) :initial-element 0)) (defconstant +whirlpool-regs-hash-offset+ 0) (defconstant +whirlpool-regs-k-offset+ 16) (defconstant +whirlpool-regs-state-offset+ 32) (defconstant +whirlpool-regs-l-offset+ 48) ) ; EVAL-WHEN (defconst +pristine-whirlpool-registers+ (initial-whirlpool-regs)) (defun whirlpoolregs-digest (regs buffer &optional (start 0)) (declare (type whirlpool-regs regs) (type (integer 0 #.(- array-dimension-limit 64)) start)) (flet ((stuff-registers (buffer start) (dotimes (i 16 buffer) (setf (nibbles:ub32ref/be buffer (+ start (* 4 i))) (aref regs i))))) (declare (inline stuff-registers)) (cond (buffer (stuff-registers buffer start)) (t (stuff-registers (make-array 64 :element-type '(unsigned-byte 8)) 0))))) (eval-when (:compile-toplevel :load-toplevel :execute) (defconstant +whirlpool-rounds+ 10 "The number of rounds. The default is 10.") ) (eval-when (:compile-toplevel) ;;; Code to generate lookup tables +C-EVEN+ and +C-ODD+. (defconst +e+ #(#x1 #xB #x9 #xC #xD #x6 #xF #x3 #xE #x8 #x7 #x4 #xA #x2 #x5 #x0)) (defconst +r+ #(#x7 #xC #xB #xD #xE #x4 #x9 #xF #x6 #x3 #x8 #xA #x2 #x5 #x1 #x0)) (defun e (i) (aref +e+ i)) (defun r (i) (aref +r+ i)) (defun e-1 (i) (position i +e+)) (defun byte-xor (i1 i2) (logxor i1 i2)) (defun s-internal (u v) "The S-box internals. Corresponds to equations on page 10 of (1)." (let ((r (r (byte-xor (e u) (e-1 v))))) (values (e (byte-xor (e u) r)) (e-1 (byte-xor (e-1 v) r))))) (defun s (i) "The S-box function." (let ((u (ldb (byte 4 4) i)) (v (ldb (byte 4 0) i))) (multiple-value-bind (u_ v_) (s-internal u v) (let ((result 0)) (setf (ldb (byte 4 4) result) u_ (ldb (byte 4 0) result) v_) result)))) (defconstant +p8+ #.(reduce #'+ (mapcar #'(lambda (x) (expt 2 x)) '(8 4 3 2 0))) "The primitive polynomial of degree 8 for GF(2^8).") ;; Arithmetic in the Galois Field GF(2^8). (defun gf-add (x y) (logxor x y)) (defun gf-shift (x n) (ash x n)) (defun gf-reduce (x) (let ((result x)) (loop until (< (integer-length result) (integer-length +p8+)) do (setf result (gf-add result (gf-shift +p8+ (- (integer-length result) (integer-length +p8+)))))) result)) (defun gf-mult (x y) (loop with result = 0 for i downfrom (integer-length y) to 0 do (progn (setf result (gf-reduce (gf-shift result 1))) (unless (zerop (ldb (byte 1 i) y)) (setf result (gf-add result x)))) finally (return result))) (defun cir (vector) "The circulant matrix whose first row is VECTOR." (loop with n = (length vector) with result = (make-array (list n n)) for i below n do (loop for j below n do (setf (aref result i j) (aref vector (mod (- j i) n)))) finally (return result))) (defparameter *c* (cir #(1 1 4 1 8 5 2 9))) (defun calculate-table-word (i j offset) (loop with sx = (s j) with result = 0 for k below 4 do (setf (ldb (byte 8 (- 32 (* (1+ k) 8))) result) (gf-mult sx (aref *c* i (+ k offset)))) finally (return result))) (defun calculate-c-even () (loop with result = (make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0) for i below 8 do (dotimes (j 256) (setf (aref result i j) (calculate-table-word i j 0))) finally (return result))) (defun calculate-c-odd () (loop with result = (make-array '(8 256) :element-type '(unsigned-byte 32) :initial-element 0) for i below 8 do (dotimes (j 256) (setf (aref result i j) (calculate-table-word i j 4))) finally (return result))) ) ; EVAL-WHEN (declaim (type (simple-array (unsigned-byte 32) (22)) +rc+)) (defconst +rc+ #.(loop with result = (make-array 22 :element-type '(unsigned-byte 32) :initial-element 0) with one-row-of-bytes = (make-array 8 :element-type '(unsigned-byte 8)) for r from 1 to +whirlpool-rounds+ do (progn (loop for j below 8 do (setf (aref one-row-of-bytes j) (s (+ (* 8 (- r 1)) j)))) (setf (aref result (* 2 r)) (nibbles:ub32ref/be one-row-of-bytes 0)) (setf (aref result (+ (* 2 r) 1)) (nibbles:ub32ref/be one-row-of-bytes 4))) finally (return result))) (declaim (type (simple-array (unsigned-byte 32) (8 256)) +c-even+ +c-odd+)) (defconst +c-even+ #.(calculate-c-even)) (defconst +c-odd+ #.(calculate-c-odd)) (eval-when (:compile-toplevel :load-toplevel :execute) ;;; Macro helper functions. (defun extract-byte (k row column) (if (>= column 4) `(ldb (byte 8 ,(- 24 (* 8 (- column 4)))) (,k ,(1+ (* 2 row)))) `(ldb (byte 8 ,(- 24 (* 8 column))) (,k ,(* 2 row))))) (defun split (lst) (let* ((n (length lst)) (mid (floor n 2))) (values (subseq lst 0 mid) (subseq lst mid)))) (defun generate-xor (terms) (if (endp (cdr terms)) (car terms) (multiple-value-bind (terms1 terms2) (split terms) `(logxor ,(generate-xor terms1) ,(generate-xor terms2))))) (defun one-slice (to from i) (let ((indices (loop for n below 8 collect (gensym)))) `(let (,@(loop for index in indices for j below 8 collect `(,index ,(extract-byte from (mod (- i j) 8) j)))) (setf (,to ,(* 2 i)) ,(generate-xor `,(loop for index in indices for j below 8 collect `(aref +c-even+ ,j ,index)))) (setf (,to ,(1+ (* 2 i))) ,(generate-xor `,(loop for index in indices for j below 8 collect `(aref +c-odd+ ,j ,index))))))) ) ; EVAL-WHEN (defmacro lookup-in-c (to from) `(progn ,@(loop for i below 8 collect (one-slice to from i)))) (defun update-whirlpool-block (regs block) "this is the core part of the whirlpool algorithm. it takes a complete 16 word block of input, and updates the working state in the regs." (declare (type whirlpool-regs regs) (type (simple-array (unsigned-byte 32) (16)) block)) (macrolet ((hash (i) `(aref regs (+ ,i +whirlpool-regs-hash-offset+))) (k (i) `(aref regs (+ ,i +whirlpool-regs-k-offset+))) (state (i) `(aref regs (+ ,i +whirlpool-regs-state-offset+))) (l (i) `(aref regs (+ ,i +whirlpool-regs-l-offset+)))) ;; Compute and apply K^0 to the cipher state (loop for i below 16 do (setf (state i) (logxor (aref block i) (setf (k i) (hash i))))) ;; Iterate over all rounds (loop for r of-type (integer 1 11) from 1 to +whirlpool-rounds+ do (progn ;; Compute K^r from K^{r-1} (lookup-in-c l k) (setf (l 0) (logxor (l 0) (aref +rc+ (* 2 r)))) (setf (l 1) (logxor (l 1) (aref +rc+ (+ (* 2 r) 1)))) (loop for i below 16 do (setf (k i) (l i))) ;; Apply the r-th round transformation (lookup-in-c l state) (loop for i below 16 do (setf (l i) (logxor (l i) (k i)))) (loop for i below 16 do (setf (state i) (l i))))) ;; Apply the Miyaguchi-Preneel compression function (loop for i below 16 do (setf (hash i) (logxor (hash i) (logxor (state i) (aref block i))))) regs)) ;;; Mid-Level Drivers (defstruct (whirlpool (:constructor %make-whirlpool-digest nil) (:constructor %make-whirlpool-state (regs amount block buffer buffer-index)) (:copier nil) (:include mdx)) (regs (initial-whirlpool-regs) :type whirlpool-regs :read-only t) (block (make-array 16 :element-type '(unsigned-byte 32)) :type (simple-array (unsigned-byte 32) (16)) :read-only t)) (defmethod reinitialize-instance ((state whirlpool) &rest initargs) (declare (ignore initargs)) (replace (whirlpool-regs state) +pristine-whirlpool-registers+) (setf (whirlpool-amount state) 0 (whirlpool-buffer-index state) 0) state) (defmethod copy-digest ((state whirlpool) &optional copy) (declare (type (or cl:null whirlpool) copy)) (cond (copy (replace (whirlpool-regs copy) (whirlpool-regs state)) (replace (whirlpool-buffer copy) (whirlpool-buffer state)) (setf (whirlpool-amount copy) (whirlpool-amount state) (whirlpool-buffer-index copy) (whirlpool-buffer-index state)) copy) (t (%make-whirlpool-state (copy-seq (whirlpool-regs state)) (whirlpool-amount state) (copy-seq (whirlpool-block state)) (copy-seq (whirlpool-buffer state)) (whirlpool-buffer-index state))))) (define-digest-updater whirlpool "Update the given whirlpool state from sequence, which is either a simple-string or a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (flet ((compress (state sequence offset) (let ((block (whirlpool-block state))) (fill-block-ub8-be block sequence offset) (update-whirlpool-block (whirlpool-regs state) block)))) (declare (dynamic-extent #'compress)) (declare (notinline mdx-updater)) (mdx-updater state #'compress sequence start end))) (define-digest-finalizer (whirlpool 64) "If the given whirlpool-state has not already been finalized, finalize it, by processing any remaining input in its buffer, with suitable padding and appended bit-length, as specified by the Whirlpool standard. The resulting whirlpool message-digest is returned as an array of 64 (unsigned-byte 8) values. Calling UPDATE-WHIRLPOOL-STATE after a call to FINALIZE-WHIRLPOOL-STATE results in unspecified behaviour." (let ((regs (whirlpool-regs state)) (block (whirlpool-block state)) (buffer (whirlpool-buffer state)) (buffer-index (whirlpool-buffer-index state)) (total-length (* 8 (whirlpool-amount state)))) (declare (type whirlpool-regs regs) (type (integer 0 63) buffer-index) (type (simple-array (unsigned-byte 32) (16)) block) (type (simple-array (unsigned-byte 8) (64)) buffer)) ;; Add mandatory bit 1 padding (setf (aref buffer buffer-index) #x80) ;; Fill with 0 bit padding (loop for index of-type (integer 0 64) from (1+ buffer-index) below 64 do (setf (aref buffer index) #x00)) (fill-block-ub8-be block buffer 0) ;; Flush block first if length wouldn't fit (when (>= buffer-index 32) (update-whirlpool-block regs block) ;; Create new fully 0 padded block (loop for index of-type (integer 0 16) from 0 below 16 do (setf (aref block index) #x00000000))) ;; Add 256 bit message bit length (loop for i of-type (integer 0 8) from 0 below 8 do (setf (aref block (+ 8 i)) (ldb (byte 32 (- 256 (* 32 (1+ i)))) total-length))) ;; Flush last block (update-whirlpool-block regs block) ;; Done, remember digest for later calls (finalize-registers state regs))) (defdigest whirlpool :digest-length 64 :block-length 64) ironclad_0.33.0/src/digests/tree-hash.lisp0000644000175000017500000001176611772067464015465 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto) ;;; See the spec at ;;; http://zgp.org/pipermail/p2p-hackers/2002-June/000621.html (defparameter *leaf-byte* (make-array 1 :element-type '(unsigned-byte 8) :initial-element 0)) (defparameter *internal-byte* (make-array 1 :element-type '(unsigned-byte 8) :initial-element 1)) (defun make-tree-hash-leaf-digest (digest-spec) (let ((digest (make-digest digest-spec))) (update-digest digest *leaf-byte*) digest)) (defstruct (tree-hash (:constructor %make-tree-hash nil) (:constructor %make-tree-hash-state (block-length state block-index branch)) (:copier nil)) (block-length 1024 :type (integer 1 #.most-positive-fixnum)) (state (make-tree-hash-leaf-digest :tiger)) (block-index 0 :type (integer 0 #.most-positive-fixnum)) (branch () :type list)) (defun %make-tree-hash-digest (&key (digest :tiger) (block-length 1024)) (%make-tree-hash-state block-length (make-tree-hash-leaf-digest digest) 0 '())) (defun make-tiger-tree-hash () (%make-tree-hash-digest)) (defmethod block-length ((x tree-hash)) (tree-hash-block-length x)) (defmethod digest-length ((x tree-hash)) (digest-length (tree-hash-state x))) (defmethod reinitialize-instance ((state tree-hash) &rest initargs) (declare (ignore initargs)) (reinitialize-instance (tree-hash-state state)) (update-digest (tree-hash-state state) *leaf-byte*) (setf (tree-hash-block-index state) 0) (setf (tree-hash-branch state) '()) state) (defmethod copy-digest ((state tree-hash) &optional copy) (declare (type (or cl:null tree-hash) copy)) (cond (copy (copy-digest (tree-hash-state state) (tree-hash-state copy)) (setf (tree-hash-block-length copy) (tree-hash-block-length state)) (setf (tree-hash-block-index copy) (tree-hash-block-index state)) (setf (tree-hash-branch copy) (tree-hash-branch state)) copy) (t (%make-tree-hash-state (tree-hash-block-length state) (copy-digest (tree-hash-state state)) (tree-hash-block-index state) (tree-hash-branch state))))) (define-digest-updater tree-hash "Update the given tree-hash state from sequence, which is a simple-array with element-type (unsigned-byte 8), bounded by start and end, which must be numeric bounding-indices." (assert (<= start end)) (when (< start end) (loop :with block-length = (tree-hash-block-length state) :with digest = (tree-hash-state state) :for length fixnum = (- end start) :for block-index fixnum = (tree-hash-block-index state) :then 0 :for block-remaining-length fixnum = (- block-length block-index) :for current-length fixnum = (min block-length length) :for new-index fixnum = (+ block-index current-length) :for new-start fixnum = (+ start current-length) :do (update-digest digest sequence :start start :end new-start) (when (= new-index block-length) (update-tree-hash-branch state) (reinitialize-instance digest) (update-digest digest *leaf-byte*) (setf new-index 0)) (setf start new-start) (when (= start end) (setf (tree-hash-block-index state) new-index) (return))))) (defun update-tree-hash-branch (state) (let ((digest (tree-hash-state state))) (setf (tree-hash-branch state) (merge-tree-hash-branch digest (tree-hash-branch state) (produce-digest digest))))) (defun merge-tree-hash-branch (digest branch hash) (let ((other-hash (car branch))) (if (cl:null other-hash) (cons hash (cdr branch)) ;; happens to work when branch is nil! (cons nil (merge-tree-hash-branch digest (cdr branch) (combine-hash-tree-digests digest other-hash hash)))))) (defun combine-hash-tree-digests (digest hash1 hash2) (reinitialize-instance digest) (update-digest digest *internal-byte*) (update-digest digest hash1) (update-digest digest hash2) (produce-digest digest)) (defmethod produce-digest ((state tree-hash) &key digest (digest-start 0)) (when (or (not (zerop (tree-hash-block-index state))) (cl:null (tree-hash-branch state))) (update-tree-hash-branch state)) (let* ((internal-state (tree-hash-state state)) (result (reduce (lambda (hash2 hash1) (cond ((cl:null hash2) hash1) ((cl:null hash1) hash2) (t (combine-hash-tree-digests internal-state hash1 hash2)))) (tree-hash-branch state)))) (if digest (if (<= (length result) (- (length digest) digest-start)) (replace digest result :start1 digest-start) (error 'insufficient-buffer-space :buffer digest :start digest-start :length (length result))) result))) (setf (get 'tree-hash '%digest-length) 24) (setf (get 'tree-hash '%make-digest) (symbol-function '%make-tree-hash-digest)) ironclad_0.33.0/src/macs/hmac.lisp0000644000175000017500000000576211761302200013747 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; hmac.lisp -- RFC 2104 keyed hashing for message authentication (in-package :crypto) (defclass hmac () ((inner-digest :reader inner-digest :initarg :inner-digest) (outer-digest :reader outer-digest :initarg :outer-digest))) (defmethod print-object ((mac hmac) stream) (print-unreadable-object (mac stream :type nil :identity t) (format stream "HMAC(~A)" (type-of (inner-digest mac))))) (defun make-hmac (key digest-name) (make-instance 'hmac :key key :inner-digest (make-digest digest-name) :outer-digest (make-digest digest-name))) (defmethod reinitialize-instance ((mac hmac) &rest initargs &key key &allow-other-keys) (declare (ignore key initargs)) (reinitialize-instance (inner-digest mac)) (reinitialize-instance (outer-digest mac)) (call-next-method)) (defmethod shared-initialize :after ((mac hmac) slot-names &rest initargs &key key &allow-other-keys) (declare (ignore slot-names initargs)) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (let* ((inner (inner-digest mac)) (outer (outer-digest mac)) (block-length (block-length inner)) (inner-padding (make-array block-length :element-type '(unsigned-byte 8) :initial-element #x36)) (outer-padding (make-array block-length :element-type '(unsigned-byte 8) :initial-element #x5c)) (padded-key (make-array block-length :element-type '(unsigned-byte 8) :initial-element 0))) (declare (type simple-octet-vector inner-padding outer-padding padded-key) (fixnum block-length)) ;; XXX: SBCL bogusly ignores this because we use :INITIAL-ELEMENT. ;; see also https://bugs.launchpad.net/sbcl/+bug/902351 (declare (dynamic-extent inner-padding outer-padding padded-key)) (when (> (length key) block-length) (setf key (digest-sequence (type-of inner) key))) (replace padded-key key) (xor-block block-length padded-key inner-padding 0 inner-padding 0) (update-digest inner inner-padding) (xor-block block-length padded-key outer-padding 0 outer-padding 0) (update-digest outer outer-padding) mac)) (defun update-hmac (hmac sequence &key (start 0) (end (length sequence))) (declare (type (simple-array (unsigned-byte 8) (*)) sequence)) (update-digest (inner-digest hmac) sequence :start start :end end) hmac) (defun hmac-digest (hmac &key buffer (buffer-start 0)) (let* ((x (copy-digest (inner-digest hmac))) (inner-hash (produce-digest x :digest buffer :digest-start buffer-start))) (copy-digest (outer-digest hmac) x) (update-digest x inner-hash :digest buffer :digest-start buffer-start) (produce-digest x :digest buffer :digest-start buffer-start))) ironclad_0.33.0/src/macs/cmac.lisp0000644000175000017500000000606611761302200013740 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;; cmac.lisp -- The CMAC algorithm from NIST 800-38B. (in-package :crypto) (defclass cmac () ((cipher :reader cmac-cipher :initarg :cipher) (subkey1 :reader cmac-subkey1 :initarg :subkey1 :type (simple-array (unsigned-byte 8) (*))) (subkey2 :reader cmac-subkey2 :initarg :subkey2 :type (simple-array (unsigned-byte 8) (*))) (buffer :reader cmac-buffer :initarg :buffer :type (simple-array (unsigned-byte 8) (*))) (buffer-index :accessor cmac-buffer-index :initform 0 :type index))) (defun make-cmac (key cipher-name) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (let* ((cipher (make-cipher cipher-name :key key :mode :ecb)) (block-length (block-length cipher-name)) (L (make-array block-length :element-type '(unsigned-byte 8) :initial-element 0))) (encrypt-in-place cipher L) (flet ((gen-subkey (b) (let* ((n-bits (* block-length 8)) (k (integer-to-octets (ldb (byte n-bits 0) (ash (octets-to-integer b) 1)) :n-bits n-bits))) (when (logbitp 7 (aref b 0)) (setf (aref k (1- block-length)) (logxor (ecase block-length (16 #x87) (8 #x1b)) (aref k (1- block-length))))) k))) (let ((L.u (gen-subkey L))) (make-instance 'cmac :cipher cipher :subkey1 L.u :subkey2 (gen-subkey L.u) :buffer (make-array block-length :element-type '(unsigned-byte 8) :initial-element 0)))))) (defun update-cmac (cmac sequence &key (start 0) end) (declare (type (simple-array (unsigned-byte 8) (*)) sequence)) (declare (type index start)) (declare (type (or index cl:null) end)) (do ((end (or end (length sequence))) (buffer (cmac-buffer cmac)) (length (length (cmac-buffer cmac))) (i start (1+ i))) ((>= i end) cmac) (declare (type (simple-array (unsigned-byte 8) (*)) buffer)) (when (= length (cmac-buffer-index cmac)) (setf (cmac-buffer-index cmac) 0) (encrypt-in-place (cmac-cipher cmac) buffer)) (setf (aref buffer (cmac-buffer-index cmac)) (logxor (aref buffer (cmac-buffer-index cmac)) (aref sequence i))) (incf (cmac-buffer-index cmac)))) (defun cmac-digest (cmac) (let* ((block-length (length (cmac-buffer cmac))) (x (copy-seq (cmac-buffer cmac))) (L (cond ((= block-length (cmac-buffer-index cmac)) (cmac-subkey1 cmac)) (t (setf (aref x (cmac-buffer-index cmac)) (logxor (aref x (cmac-buffer-index cmac)) #x80)) (cmac-subkey2 cmac))))) (xor-block block-length L x 0 x 0) (encrypt-in-place (cmac-cipher cmac) x) x)) ironclad_0.33.0/src/public-key/public-key.lisp0000644000175000017500000001041711761302200016215 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; public-key.lisp -- implementation of common public key components (in-package :crypto) ;;; generic definitions (defgeneric make-public-key (kind &key &allow-other-keys) (:documentation "Return a public key of KIND, initialized according to the specified keyword arguments.")) (defgeneric make-private-key (kind &key &allow-other-keys) (:documentation "Return a private key of KIND, initialized according to the specified keyword arguments.")) (defgeneric sign-message (key message &key start end) (:documentation "Produce a key-specific signature of MESSAGE; MESSAGE is a (VECTOR (UNSIGNED-BYTE 8)). START and END bound the extent of the message.")) (defgeneric verify-signature (key message signature &key start end) (:documentation "Verify that SIGNATURE is the signature of MESSAGE using KEY. START and END bound the extent of the message.")) (defgeneric encrypt-message (key message &key start end) (:documentation "Encrypt MESSAGE with KEY. START and END bound the extent of the message. Returns a fresh octet vector.")) (defgeneric decrypt-message (key message &key start end) (:documentation "Decrypt MESSAGE with KEY. START and END bound the extent of the message. Returns a fresh octet vector.")) ;;; converting from integers to octet vectors (defun octets-to-integer (octet-vec &key (start 0) end (big-endian t) n-bits) (declare (type (simple-array (unsigned-byte 8) (*)) octet-vec)) (let ((end (or end (length octet-vec)))) (multiple-value-bind (complete-bytes extra-bits) (if n-bits (truncate n-bits 8) (values (- end start) 0)) (declare (ignorable complete-bytes extra-bits)) (if big-endian (do ((j start (1+ j)) (sum 0)) ((>= j end) sum) (setf sum (+ (aref octet-vec j) (ash sum 8)))) (loop for i from (- end start 1) downto 0 for j from (1- end) downto start sum (ash (aref octet-vec j) (* i 8))))))) (defun integer-to-octets (bignum &key (n-bits (integer-length bignum)) (big-endian t)) (let* ((n-bytes (ceiling n-bits 8)) (octet-vec (make-array n-bytes :element-type '(unsigned-byte 8)))) (declare (type (simple-array (unsigned-byte 8) (*)) octet-vec)) (if big-endian (loop for i from (1- n-bytes) downto 0 for index from 0 do (setf (aref octet-vec index) (ldb (byte 8 (* i 8)) bignum)) finally (return octet-vec)) (loop for i from 0 below n-bytes for byte from 0 by 8 do (setf (aref octet-vec i) (ldb (byte 8 byte) bignum)) finally (return octet-vec))))) (defun maybe-integerize (thing) (etypecase thing (integer thing) ((simple-array (unsigned-byte 8) (*)) (octets-to-integer thing)))) ;;; modular arithmetic utilities (defun modular-inverse (N modulus) "Returns M such that N * M mod MODULUS = 1" (declare (type (integer 1 *) modulus)) (declare (type (integer 0 *) n)) (when (or (zerop n) (and (evenp n) (evenp modulus))) (return-from modular-inverse 0)) (loop with remainder = (list n modulus) and auxiliary = '(1 0) for i from 2 while (> (first remainder) 1) do (multiple-value-bind (quotient new-remainder) (floor (second remainder) (first remainder)) (push new-remainder remainder) (push (+ (* (- quotient) (first auxiliary)) (second auxiliary)) auxiliary)) finally (return (let ((inverse (first auxiliary))) (when (< inverse 0) (setf inverse (mod inverse modulus))) ;; check to see if the inverse is zero (if (zerop (mod (* n inverse) modulus)) 0 inverse))))) ;;; direct from CLiki (defun expt-mod (n exponent modulus) "As (mod (expt n exponent) modulus), but more efficient." (declare (optimize (speed 3) (safety 0) (space 0) (debug 0))) (loop with result = 1 for i of-type fixnum from 0 below (integer-length exponent) for sqr = n then (mod (* sqr sqr) modulus) when (logbitp i exponent) do (setf result (mod (* result sqr) modulus)) finally (return result))) ironclad_0.33.0/src/public-key/dsa.lisp0000664000175000017500000000716012406267171014741 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; dsa.lisp -- implementation of the Digital Signature Algorithm (in-package :crypto) ;;; class definitions (defclass discrete-logarithm-group () ((p :initarg :p :reader group-pval) (q :initarg :q :reader group-qval) (g :initarg :g :reader group-gval))) (defclass dsa-key () ((group :initarg :group :reader group))) (defclass dsa-public-key (dsa-key) ((y :initarg :y :reader dsa-key-y :type integer))) (defclass dsa-private-key (dsa-key) ((y :initarg :y :reader dsa-key-y :type integer) (x :initarg :x :reader dsa-key-x :type integer))) (defclass dsa-signature () ((r :initarg :r :reader dsa-signature-r) (s :initarg :s :reader dsa-signature-s))) (defun dsa-key-p (dsa-key) (group-pval (group dsa-key))) (defun dsa-key-q (dsa-key) (group-qval (group dsa-key))) (defun dsa-key-g (dsa-key) (group-gval (group dsa-key))) ;;; function definitions (defun make-dsa-signature (r s) (make-instance 'dsa-signature :r (maybe-integerize r) :s (maybe-integerize s))) (defmethod make-public-key ((kind (eql :dsa)) &key p q g y &allow-other-keys) (let ((group (make-instance 'discrete-logarithm-group :p p :q q :g g))) (make-instance 'dsa-public-key :group group :y y))) (defmethod make-private-key ((kind (eql :dsa)) &key p q g y x &allow-other-keys) (unless (and p q g) ;; FIXME: "real" ironclad error needed here (error "Must specify all members of the DL group for DSA")) (let ((group (make-instance 'discrete-logarithm-group :p p :q q :g g))) (make-instance 'dsa-private-key :group group :y y :x x))) (defconstant +dsa-message-length+ 20) ;;; Note that hashing is not performed here. (defmethod sign-message ((key dsa-private-key) message &key (start 0) end) (let ((end (or end (length message)))) (unless (= (- end start) +dsa-message-length+) ;; FIXME: "real" ironclad error needed here (error "Can only sign exactly 20 bytes of message with DSA")) (let* ((group (group key)) (k (random (group-qval group))) (r (mod (expt-mod (group-gval group) k (group-pval group)) (group-qval group))) (message-integer (octets-to-integer message :start start :end end)) (k-inverse (modular-inverse k (group-qval group))) (s (mod (* k-inverse (+ (* (dsa-key-x key) r) message-integer)) (group-qval group)))) (assert (= (mod (* k k-inverse) (group-qval group)) 1)) (make-dsa-signature (integer-to-octets r) (integer-to-octets s))))) (defmethod verify-signature ((key dsa-public-key) message (signature dsa-signature) &key (start 0) end) (let ((end (or end (length message)))) (unless (= (- end start) +dsa-message-length+) ;; FIXME: "real" ironclad error needed here (error "Can only verify exactly 20 bytes of message with DSA")) (let* ((group (group key)) (message-integer (octets-to-integer message :start start :end end)) (r-integer (maybe-integerize (dsa-signature-r signature))) (s-integer (maybe-integerize (dsa-signature-s signature))) (w (modular-inverse s-integer (group-qval group))) (u1 (mod (* message-integer w) (group-qval group))) (u2 (mod (* r-integer w) (group-qval group))) (v (mod (mod (* (expt-mod (group-gval group) u1 (group-pval group)) (expt-mod (dsa-key-y key) u2 (group-pval group))) (group-pval group)) (group-qval group)))) (= v r-integer)))) ironclad_0.33.0/src/public-key/rsa.lisp0000644000175000017500000000347111761302200014740 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; rsa.lisp -- implementation of the RSA public key algorithm (in-package :crypto) ;;; class definitions (defclass rsa-key () ((n :initarg :n :reader rsa-key-modulus :type integer))) (defclass rsa-public-key (rsa-key) ((e :initarg :e :reader rsa-key-exponent :type integer))) (defclass rsa-private-key (rsa-key) ((d :initarg :d :reader rsa-key-exponent :type integer))) ;;; function definitions (defmethod make-public-key ((kind (eql :rsa)) &key e n &allow-other-keys) (unless (and e n) (error "Must specify public exponent and modulus")) (make-instance 'rsa-public-key :e e :n n)) (defmethod make-private-key ((kind (eql :rsa)) &key d n &allow-other-keys) (unless (and d n) (error "Must specify private exponent and modulus")) (make-instance 'rsa-private-key :d d :n n)) (defun rsa-core (msg exponent modulus) (expt-mod msg exponent modulus)) (defmethod encrypt-message ((key rsa-private-key) msg &key (start 0) end) (integer-to-octets (rsa-core (octets-to-integer msg :start start :end end) (rsa-key-exponent key) (rsa-key-modulus key)))) (defmethod encrypt-message ((key rsa-public-key) msg &key (start 0) end) (integer-to-octets (rsa-core (octets-to-integer msg :start start :end end) (rsa-key-exponent key) (rsa-key-modulus key)))) (defmethod decrypt-message ((key rsa-private-key) msg &key (start 0) end) (integer-to-octets (rsa-core (octets-to-integer msg :start start :end end) (rsa-key-exponent key) (rsa-key-modulus key)))) (defmethod decrypt-message ((key rsa-public-key) msg &key (start 0) end) (integer-to-octets (rsa-core (octets-to-integer msg :start start :end end) (rsa-key-exponent key) (rsa-key-modulus key)))) ironclad_0.33.0/src/prng/prng.lisp0000664000175000017500000001114512067650304014035 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; prng.lisp -- common functions for pseudo-random number generators (in-package :crypto) (defvar *prng* nil "Default pseudo-random-number generator for use by all crypto functions; the user must initialize it, e.g. with (setf crypto:*prng* (crypto:make-prng :fortuna)).") (defclass pseudo-random-number-generator () () (:documentation "A pseudo random number generator. Base class for other PRNGs; not intended to be instantiated.")) (defun list-all-prngs () '(fortuna)) (defgeneric make-prng (name &key seed) (:documentation "Create a new NAME-type random number generator, seeding it from SEED. If SEED is a pathname or namestring, read data from the indicated file; if it is sequence of bytes, use those bytes directly; if it is :RANDOM then read from /dev/random; if it is :URANDOM then read from /dev/urandom; if it is NIL then the generator is not seeded.")) (defmethod make-prng :around (name &key (seed :random)) (let ((prng (call-next-method))) (cond ((eq seed nil)) ((find seed '(:random :urandom)) (read-os-random-seed seed prng)) ((or (pathnamep seed) (stringp seed)) (read-seed seed prng)) ((typep seed 'simple-octet-vector) (reseed (slot-value prng 'generator) seed) (incf (slot-value prng 'reseed-count))) (t (error "SEED must be an octet vector, pathname indicator, :random or :urandom"))) prng)) (defun random-data (num-bytes &optional (pseudo-random-number-generator *prng*)) (internal-random-data num-bytes pseudo-random-number-generator)) (defgeneric internal-random-data (num-bytes pseudo-random-number-generator) (:documentation "Generate NUM-BYTES bytes using PSEUDO-RANDOM-NUMBER-GENERATOR")) (defun random-bits (num-bits &optional (pseudo-random-number-generator *prng*)) (logand (1- (expt 2 num-bits)) (octets-to-integer (internal-random-data (ceiling num-bits 8) pseudo-random-number-generator)))) (defun strong-random (limit &optional (prng *prng*)) "Return a strong random number from 0 to limit-1 inclusive. A drop-in replacement for COMMON-LISP:RANDOM." (assert (plusp limit)) (assert prng) (etypecase limit (integer (let* ((log-limit (log limit 2)) (num-bytes (ceiling log-limit 8)) (mask (1- (expt 2 (ceiling log-limit))))) (loop for random = (logand (ironclad:octets-to-integer (internal-random-data num-bytes prng)) mask) until (< random limit) finally (return random)))) (float (float (let ((floor (floor 1 long-float-epsilon))) (* limit (/ (strong-random floor) floor))))))) (defun os-random-seed (source num-bytes) #+unix(let ((path (cond ((eq source :random) #P"/dev/random") ((eq source :urandom) #P"/dev/urandom") (t (error "Source must be either :random or :urandom")))) (seq (make-array num-bytes :element-type '(unsigned-byte 8)))) (with-open-file (seed-file path :element-type '(unsigned-byte 8)) (assert (>= (read-sequence seq seed-file) num-bytes)) seq)) ;; FIXME: this is _untested_! #+(and win32 sb-dynamic-core)(sb-win32:crypt-gen-random num-bytes) #-(or unix (and win32 sb-dynamic-core))(error "OS-RANDOM-SEED is not supported on your platform.")) (defun read-os-random-seed (source &optional (prng *prng*)) (internal-read-os-random-seed source prng) t) (defgeneric internal-read-os-random-seed (source prng) (:documentation "(Re)seed PRNG from SOURCE. SOURCE may be :random or :urandom")) (defun read-seed (path &optional (pseudo-random-number-generator *prng*)) "Reseed PSEUDO-RANDOM-NUMBER-GENERATOR from PATH. If PATH doesn't exist, reseed from /dev/random and then write that seed to PATH." (if (probe-file path) (internal-read-seed path pseudo-random-number-generator) (progn (read-os-random-seed pseudo-random-number-generator) (write-seed path pseudo-random-number-generator) ;; FIXME: this only works under SBCL. It's important, though, ;; as it sets the proper permissions for reading a seedfile. #+sbcl(sb-posix:chmod path (logior sb-posix:S-IRUSR sb-posix:S-IWUSR)))) t) (defgeneric internal-read-seed (path prng) (:documentation "Reseed PRNG from PATH.")) (defun write-seed (path &optional (prng *prng*)) (internal-write-seed path prng)) (defgeneric internal-write-seed (path prng) (:documentation "Write enough random data from PRNG to PATH to properly reseed it.")) ironclad_0.33.0/src/prng/fortuna.lisp0000664000175000017500000001353412067652310014550 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; fortuna.lisp -- Fortuna PRNG (in-package :crypto) (defvar fortuna :fortuna) (defparameter +min-pool-size+ 128 "Minimum pool size before a reseed is allowed. This should be the number of bytes of pool data that are likely to contain 128 bits of entropy. Defaults to a pessimistic estimate of 1 bit of entropy per byte.") (defclass pool () ((digest :initform (make-digest :sha256)) (length :initform 0)) (:documentation "A Fortuna entropy pool. DIGEST contains its current state; LENGTH the length in bytes of the entropy it contains.")) (defclass fortuna-prng (pseudo-random-number-generator) ((pools :initform (loop for i from 1 to 32 collect (make-instance 'pool))) (reseed-count :initform 0) (last-reseed :initform 0) (generator)) (:documentation "A Fortuna random number generator. Contains 32 entropy pools which are used to reseed GENERATOR.")) (defmethod internal-random-data (num-bytes (pseudo-random-number-generator fortuna-prng)) (when (plusp num-bytes) (with-slots (pools generator reseed-count last-reseed) pseudo-random-number-generator (when (and (>= (slot-value (first pools) 'length) +min-pool-size+) (> (- (get-internal-run-time) last-reseed) 100)) (incf reseed-count) (loop for i from 0 below (length pools) with seed = (make-array (* (digest-length :sha256) (integer-length (logand reseed-count (- reseed-count)))) :element-type '(unsigned-byte 8)) while (zerop (mod reseed-count (expt 2 i))) collect (with-slots (digest length) (nth i pools) (let ((digest-length (digest-length digest))) (produce-digest digest :digest seed :digest-start (* i digest-length)) (reinitialize-instance digest) (digest-sequence digest seed :digest seed :start (* i digest-length) :end (* (1+ i) digest-length) :digest-start (* i digest-length)) (setf length 0) (reinitialize-instance digest))) finally (reseed generator seed))) (assert (plusp reseed-count)) (pseudo-random-data generator num-bytes)))) (defun add-random-event (source pool-id event &optional (pseudo-random-number-generator *prng*)) (assert (and (<= 1 (length event) 32) (<= 0 source 255) (<= 0 pool-id 31))) (let ((pool (nth pool-id (slot-value pseudo-random-number-generator 'pools)))) (update-digest (slot-value pool 'digest) (concatenate '(vector (unsigned-byte 8)) (integer-to-octets source) (integer-to-octets (length event)) event)) (incf (slot-value pool 'length) (length event)))) (defmethod internal-write-seed (path (pseudo-random-number-generator fortuna-prng)) (with-open-file (seed-file path :direction :output :if-exists :supersede :if-does-not-exist :create :element-type '(unsigned-byte 8)) (write-sequence (random-data 64 pseudo-random-number-generator) seed-file)) t) (defmethod internal-read-os-random-seed (source (pseudo-random-number-generator fortuna-prng)) "Read a random seed from /dev/random or equivalent." (reseed (slot-value pseudo-random-number-generator 'generator) (os-random-seed source 64)) (incf (slot-value pseudo-random-number-generator 'reseed-count))) (defmethod internal-read-seed (path (pseudo-random-number-generator fortuna-prng)) (with-open-file (seed-file path :direction :input :element-type '(unsigned-byte 8)) (let ((seq (make-array 64 :element-type '(unsigned-byte 8)))) (assert (>= (read-sequence seq seed-file) 64)) (reseed (slot-value pseudo-random-number-generator 'generator) seq) (incf (slot-value pseudo-random-number-generator 'reseed-count )))) (write-seed path pseudo-random-number-generator)) (defun feed-fifo (pseudo-random-number-generator path) "Feed random data into a FIFO" (loop while (handler-case (with-open-file (fortune-out path :direction :output :if-exists :overwrite :element-type '(unsigned-byte 8)) (loop do (write-sequence (random-data (1- (expt 2 20)) pseudo-random-number-generator) fortune-out))) (stream-error () t)))) (defun make-fortuna (cipher) (let ((prng (make-instance 'fortuna-prng))) (setf (slot-value prng 'generator) (make-instance 'generator :cipher cipher)) prng)) (defmethod make-prng ((name (eql :fortuna)) &key seed (cipher :aes)) (declare (ignorable seed)) (make-fortuna cipher)) ;; FIXME: this is more than a little ugly; maybe there should be a ;; prng-registry or something? (defmethod make-prng ((name (eql 'fortuna)) &key seed (cipher :aes)) (declare (ignorable seed)) (make-fortuna cipher)) ironclad_0.33.0/src/prng/generator.lisp0000664000175000017500000000432412067650310015053 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; generator.lisp -- Fortuna PRNG generator (in-package :crypto) (defvar +fortuna-cipher-block-size+ 16 "Fortuna is only defined for 128-bit (16-byte) cyphers") (defclass generator () ((key :initform (make-array 32 :element-type '(unsigned-byte 8) :initial-element 0)) (counter :initform 0) (digest :initform (make-digest :sha256)) (cipher :initform nil)) (:documentation "Fortuna generator. KEY is the key used to initialise CIPHER as an instance of CIPHER-NAME (which must be a valid NAME recognised by MAKE-CIPHER).")) (defmethod initialize-instance :after ((generator generator) &key (cipher :aes)) (assert (= (block-length cipher) +fortuna-cipher-block-size+)) (assert (find 32 (key-lengths cipher))) (with-slots (key (cipher-slot cipher)) generator (setf cipher-slot (make-cipher cipher :key key :mode :ecb)))) (defun reseed (generator seed) (with-slots (key counter cipher digest) generator (reinitialize-instance digest) (update-digest digest key) (update-digest digest seed) (produce-digest digest :digest key) (reinitialize-instance digest) (digest-sequence digest key :digest key) (incf counter) (reinitialize-instance cipher :key key))) (defun generate-blocks (generator num-blocks) "Internal use only" (with-slots (cipher key counter) generator (assert (and cipher (plusp counter))) (loop for i from 1 to num-blocks collect (let ((block (integer-to-octets counter :n-bits 128 :big-endian nil))) (encrypt-in-place cipher block) block) into blocks do (incf counter) finally (return (apply #'concatenate 'simple-octet-vector blocks))))) (defun pseudo-random-data (generator num-bytes) (assert (< 0 num-bytes (expt 2 20))) (let* ((output (subseq (generate-blocks generator (ceiling num-bytes 16)) 0 num-bytes)) (key (generate-blocks generator 2))) (setf (slot-value generator 'key) key) output)) ironclad_0.33.0/doc/ironclad.html0000644000175000017500000011026311305364032013660 0ustar00 Ironclad

Ironclad

Ironclad is a cryptography library written entirely in Common Lisp. It includes support for several popular ciphers, digests, and MACs. Rudimentary support for public-key cryptography is included. For several implementations that support Gray Streams, support is included for convenient stream wrappers.

Ironclad was written primarily by Nathan Froyd (froydnj@gmail.com).

Installation

Ironclad can be downloaded at http://www.method-combination.net/lisp/files/ironclad.tar.gz. The latest version is 0.27.

It comes with an ASDF system definition, so (ASDF:OOS 'ASDF:LOAD-OP :IRONCLAD) should be all that you need to get started. The testsuite can be run by substituting ASDF:TEST-OP for ASDF:LOAD-OP in the form above.

Ironclad has been tested in the following implementations:

  • SBCL x86/linux (primary development platform)
  • SBCL x86-64/solaris
  • CMUCL x86/linux
  • ABCL with Sun's 1.5.0 JVM
  • Lispworks 5.0.1 x86/linux
  • Allegro 8.0 x86/linux
  • Allegro 8.1 x86/linux
  • Allegro 8.1 x86-64/linux
  • Allegro 8.1 sparc/solaris
  • CLISP 2.41 x86/linux
  • CLISP 2.44 x86/cygwin
  • Clozure Common Lisp 1.2 x86-64/Linux

All included tests should pass successfully. If you use a platform not listed above, please send your platform information to the author so that he can add it to the above list. If the tests do not all pass, you have found a bug; please report it.

License

Ironclad is released under a MIT-like license; you can do pretty much anything you want to with the code except claim that you wrote it.

Ciphers

make-cipher name &key key mode initialization-vector padding => cipher

Return a cipher object suitable for use for both encryption and decryption.

name denotes the encryption algorithm to use. list-all-ciphers will tell you the names of all supported ciphers; the short list of ones you are likely to be interested in is:

  • AES
  • DES
  • 3DES
  • Blowfish
  • Twofish
  • RC5
  • RC6
  • Arcfour (RC4)

name can be a symbol in the KEYWORD package or the IRONCLAD package; :AES for AES, IRONCLAD:ARCFOUR for RC4, and so forth.

mode describes the mode of operation for the cipher. Stream ciphers such as Arcfour can operate in only one mode, stream. Block ciphers such as AES and DES can operate in several different modes:

  • ECB
  • CBC
  • OFB
  • CFB (note that Ironclad's CFB mode is 'n'-bit CFB, where 'n' is the block-length of the cipher)
  • CFB8 (this seems to be the mode other crypto packages call 'CFB')
  • CTR

mode should be a symbol in the KEYWORD or IRONCLAD packages; :STREAM, IRONCLAD:OFB, and so forth. An error will be signaled if mode is not appropriate for the cipher name.

initialization-vector (IV) should be supplied only if mode requires one. initialization-vector should be a (VECTOR (UNSIGNED-BYTE 8)). The supplied IV should be the same length as the block-length of name.

key is, of course, the key for the cipher. key should be a (VECTOR (UNSIGNED-BYTE 8)).

If padding is supplied, the specified padding method will be used by encrypt and decrypt to handle short blocks when the :HANDLE-FINAL-BLOCK argument is supplied. Depending on the mode specified, padding may be ignored (e.g. OFB and CFB modes do not care about short blocks; neither do stream ciphers).

Notepadding is currently ignored in all modes (and, by extension, so is :HANDLE-FINAL-BLOCK). This oversight is expected to be corrected in a future release.
encrypt cipher plaintext ciphertext &key plaintext-start plaintext-end ciphertext-start plaintext-start ciphertext-start => n-bytes-consumed, n-bytes-produced

Encrypts data according to cipher from plaintext starting at plaintext-start and continuing until plaintext-end. The encrypted data is placed in ciphertext starting at ciphertext-start.

decrypt cipher ciphertext plaintext &key ciphertext-start ciphertext-end plaintext-start ciphertext-start plaintext-start => n-bytes-consumed, n-bytes-produced

Decrypts data according to cipher from ciphertext starting at ciphertext-start and continuing until ciphertext-end. The decrypted data is placed in plaintext starting at plaintext-start.

encrypt-in-place cipher text &key start end => n-bytes-consumed, n-bytes-produced
decrypt-in-place cipher text &key start end => n-bytes-consumed, n-bytes-produced

Encrypts or decrypts data in text between start and end "in-place" according to cipher. These functions are shorthand for:

(encrypt cipher text text :plaintext-start start :plaintext-end end :ciphertext-start start)
(decrypt cipher text text :ciphertext-start start :ciphertext-end end :plaintext-start start)
Noteencrypt-in-place and decrypt-in-place do not support a handle-final-block parameter as encrypt and decrypt do. If you need the functionality that handle-final-block provides, then you need to use encrypt and decrypt.
Noten-bytes-consumed and n-bytes-produced may not always be equal to the length of the data specified in the call to encrypt-in-place or decrypt-in-place. This subtlely is also present in encrypt or decrypt.

Inquiry functions

list-all-ciphers => list

Returns a list of cipher-names that may be validly passed to make-cipher.

cipher-supported-p name => boolean

Returns T if name would be in the list returned by list-all-ciphers, NIL otherwise.

key-lengths cipher => list

Return a list of valid key lengths for cipher.

block-length cipher => number

Return the number of octets cipher processes at a time. This function always returns 1 for stream ciphers.

Digests

Digest functions, also known as hash functions, produce fixed-length output (a digest or hash) from a variable-length message. The simplest example of a digest function is one that adds up all the bytes in the message modulo 256. This digest function fails one test of a cryptographically secure hash function: it must be difficult to find a message with a given digest. It also fails the other test: it must be difficult to find two messages with the same digest.

Ironclad provides several cryptographically secure digest functions and several non-cryptographically secure digest functions.

NoteIn the functions below, messages or parts thereof are provided as octet vectors; Ironclad has no facilities for producing digests of strings. If you need to obtain the digest of a string, then you need to figure out how to convert it to an octet vector first. This is a deliberate design decision. Characters are not equivalent to bytes. See your local Unicode guru for more details.
make-digest digest-name => digester

Returns a digest object. digest-name is a keyword naming the algorithm you wish digester to use. The algorithms you are likely to want to use are:

  • MD4
  • MD5
  • SHA1
  • SHA256
  • Tiger
  • Adler32
  • CRC32

Other legitimate digest names can be found by calling list-all-digests. Like make-cipher, digest-name should be a symbol in the KEYWORD or IRONCLAD packages.

update-digest digester thing &key &allow-other-keys => (values)

Updates the internal state of digester with the contents of thing. The exact method is determined by the type of THING.

There are several methods defined on this generic function that take a particular digester and a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)) as well as the usual start and end keyword arguments. These methods update the state of digester with the subsequence of the array denoted by start and end. They are not listed here because there's one method for every type of digest that Ironclad provides, and listing them would get very tedious for no benefit. An example should suffice.

(let ((digester (ironclad:make-digest :sha1))
      (array (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0)))
  ;; Update with 16 zeroes.
  (ironclad:update-digest digester array)
  ;; Update with 8 ones.
  (fill array 1 :start 2 :end 10)
  (ironclad:update-digest digester array :start 2 :end 10))
update-digest digester (stream stream) &key buffer (start 0) end &allow-other-keys => digester

Update the internal state of digester with the contents of stream, which must respond to READ-BYTE or READ-SEQUENCE with a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)) and return digester. It differs from digest-stream, below, in that you may need to digest data before or after the contents of stream (this happens, for instance, when signing the contents of some file).

produce-digest digester &key digest digest-start => digest

Return the digest of the data processed by digester so far. The internal state of digester is modified; if you wish to retain a copy of the digest, you must call copy-digest.

If digest is provided, the computed digest will be placed into digest starting at digest-start. digest must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). An insufficient-buffer-space error will be signaled if there is insufficient space in digest.

High-level convenience functions

Several high-level convenience functions that encapsulate common sequences of make-digest, update-digest and produce-digest are provided by Ironclad as well. They come in two flavors: the first takes a digest name as would be provided to make-digest. The second way to call these functions is to provide an actual digest object as the first argument. So one can say:

(ironclad:digest-sequence :md5 *buffer*)

or, equivalently:

(let ((digester (make-digest :md5)))
  (ironclad:digest-sequence digester *buffer*))

The second form comes in handy if you plan on reusing the digest object.

digest-sequence digest-spec sequence &rest args &key start end digest digest-start => digest

Returns the digest of the subsequence of sequence bounded by start and end, according to digest-name. sequence must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8)). digest and digest-start are as in produce-digest.

digest-stream digest-spec stream &rest args &key buffer start end digest digest-start => digest

Returns the digest of the contents of the stream specified by stream. READ-BYTE must be a legal operation on stream and return an (UNSIGNED-BYTE 8). In a similar fashion, READ-SEQUENCE on stream must support reading into a (SIMPLE-ARRAY (UNSIGNED-BYTE 8)). digest and digest-start are as in produce-digest.

If buffer is provided, it must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)); the portion of buffer between start and end will be used to read the data from the stream.

digest-file digest-spec pathname &rest args &key buffer start end digest digest-start => digest

Returns the digest of the contents of the file named by pathname. digest and digest-start are as in produce-digest.

If buffer is provided, it must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)); the portion of buffer between start and end will be used to read the data from the stream.

Inquiry functions

list-all-digests => list

Returns a list whose elements may be validly passed to make-digest.

digest-supported-p name => boolean

Returns T if name would be in the list returned by list-all-digests, NIL otherwise.

digest-length digest => number

Returns the length of the digest computed by digest, which may be a digest-name or a digest instance.

Miscellaneous

Ironclad digests are CLOS objects; the interesting thing about this for most purposes is that functions like REINITIALIZE-INSTANCE are supported. This means one can write a fairly efficient clone of the md5sum program like so:

(defun digest-sum-files (digest &rest files)
  (unless files
    (error "no files given to digest"))
  (loop with buffer = (make-array 8192 :element-type '(unsigned-byte 8))
     with digest = (make-array (ironclad:digest-length digest)
                               :element-type '(unsigned-byte 8))
     for file in files
     for digester = (ironclad:make-digest digest)
     then (reinitialize-instance digester)
     do (ironclad:digest-file digester file :buffer buffer :digest digest)
       (format t "~A ~A~%" (file-namestring file)
               (ironclad:byte-array-to-hex-string digest))))

Message authentication codes

A message authentication code is a cryptographic function of some data and a user-specified key. Only a person knowing the key can recompute the MAC for the given message. A MAC is useful where maintaining data integrity is required, but the secrecy of the data is not paramount.

Ironclad provides two different kinds of MACs: HMACs, specified in RFC 2104, and CMACs, specified in RFC 4493 and NIST document 800-38B.

HMACs

Instances of HMACs are constructed by specifying a secret key and a digest-name.

make-hmac key digest-name => hmac

Return an HMAC instance based on the hash function digest-name with secret key key.

The returned object supports REINITIALIZE-INSTANCE:

reinitialize-instance (mac hmac) &rest initargs &key key &allow-other-keys => hmac

The :KEY argument is the secret key, as provided to make-hmac.

update-hmac hmac sequence &key start end => hmac

Update the internal state of hmac with the data in sequence bounded by start and end. sequence must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)).

hmac-digest hmac &key buffer buffer-start => digest

Returns the MAC (digest) computed by hmac thus far. The internal state of hmac is not modified; this feature makes it possible to compute a "rolling MAC" of a document. The length of digest is determined by the digest-length of digest-name passed to make-hmac when hmac was constructed.

If buffer is provided, the computed MAC will be placed into buffer starting at buffer-start. buffer must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). An insufficient-buffer-space error will be signaled if there is insufficient space in buffer.

CMACs

Instances of CMACs are constructed by specifying a secret key and a cipher-name.

make-cmac key cipher-name => cmac

Return a CMAC instance based on the cipher cipher-name with secret key key. cipher-name must have a block-length of either 8 or 16; this restriction is satisfied by most ciphers in Ironclad with the notable exception of stream ciphers. key must be an acceptable key for cipher-name.

update-cmac cmac sequence &key start end => cmac

Update the internal state of cmac with the data in sequence bounded by start and end. sequence must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)).

cmac-digest cmac => digest

Returns the MAC (digest) computed by cmac thus far. The internal state of cmac is not modified; this feature makes it possible to compute a "rolling MAC" of a document. The length of digest is determined by the block-length of cipher-name passed to make-cmac when cmac was constructed.

Public-key Operations

Ironclad includes support for DSA signing and verification. Support for RSA encryption and decryption is provided as well, but it is "raw"--the various formatting schemes (e.g. PKCS-1) must be implemented by the user at this time.

Key construction

make-public-key kind &key &allow-other-keys => public-key

Return a public key according to kind. The &key arguments vary according to kind. The interesting bits are in the methods that specialize on kind, below.

make-public-key (kind (eql :dsa)) &key p q g y &allow-other-keys => private-key

Return a DSA public key. p, q, g, and y are the usual parameters for DSA keys discussed in the literature.

make-private-key kind &key &allow-other-keys => private-key

Return a private key according to kind. The &key arguments vary according to kind. The interesting bits are in the methods that specialize on kind, below.

make-private-key (kind (eql :dsa)) &key p q g y x &allow-other-keys => private-key

Return a DSA private key. p, q, g, y, and x are the usual parameters for DSA keys discussed in the literature.

Digital signatures

sign-message key message &key start end => signature

Return a signature of message between start and end signed with key; the class of key determines the class of signature.

sign-message (key dsa-private-key) message &key (start 0) end => signature

This method places an additional constraint on the size of message specified by start and end: it must be exactly 20 bytes long (the length of a SHA-1 digest). signature is a dsa-signature object.

verify-signature key message signature &key start end => boolean

Verify whether signature is the signature of message between start and end using key. Return T or NIL depending on the result of verification.

verify-signature (key dsa-public-key) message (signature dsa-signature) &key (start 0) end => boolean

Signature objects

There is no one "right" way to format signatures into octet vectors; different applications may have different requirements. sign-message therefore returns objects and lets the user determine how to best format the values contained therein.

dsa-signature

A DSA signature object.

make-dsa-signature r s => signature

Returns a DSA signature with the provided r and s values. r and s may be either integers or they may be 20-byte octet vectors.

dsa-signature-r object => integer

Returns the r value of the provided DSA signature.

dsa-signature-s object => integer

Returns the s value of the provided DSA signature.

Encryption and decryption

encrypt-message key message &key start end end start => encrypted-message
decrypt-message key message &key start end start => decrypted-message

Gray Streams

Ironclad includes support for several convenient stream abstractions based on Gray streams. Gray streams support in Ironclad is included for SBCL, CMUCL, OpenMCL, Lispworks, and Allegro.

Octet streams

Octet streams are very similar to Common Lisp's string-stream, except they deal in octets instead of characters.

make-octet-input-stream buffer &optional start end => octet-input-stream

As make-string-input-stream, only with octets instead of characters.

make-octet-output-stream => octet-output-stream

As make-string-output-stream, only with octets instead of characters.

get-output-stream-octets stream => octet-vector

As get-output-stream-string, only with an octet output-steam instead of a string output-stream.

Digest streams

Digest streams compute a digest of the data written to them according to a specific digest algorithm.

Example:

(defun frobbing-function (stream)
  ;; We want to compute a digest of the data being written to STREAM
  ;; without involving our callees in the process.
  (let* ((digesting-stream (crypto:make-digesting-stream :sha1))
         (stream (make-broadcast-stream stream digesting-stream)))
    ;; Feed data to STREAM.
    (frob-guts stream)
    ;; Do something with the digest computed.
    (... (crypto:produce-digest digesting-stream) ...)
    ...))
make-digesting-stream digest => stream

Make a stream that computes a digest of the data written to it according to the algorithm digest-name. produce-digest may be used to obtain a digest of all the data written to the stream.

NoteCalling produce-digest on a digest stream does not alter the internal state of the digest.

Utility Functions

ub16ref/le buffer index => value
ub32ref/le buffer index => value
ub64ref/le buffer index => value

This family of functions accesses an unsigned 16-bit, 32-bit or 64-bit value stored in little-endian order starting at index in array. array must be a (SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*)). These functions are SETFable.

ub16ref/be buffer index => value
ub32ref/be buffer index => value
ub64ref/be buffer index => value

As the above, only the value is stored in big-endian order.

byte-array-to-hex-string vector &key start end element-type => string
ascii-string-to-byte-array string &key start end => vector

byte-array-to-hex-string converts the bytes of vector between start and end into a hexadecimal string. It is useful for converting digests to a more readable form. element-type indicates the element-type of the returned string.

ascii-string-to-byte-array is provided as a quick and dirty way to convert a string to a byte array suitable for feeding to update-digest or encrypt. Care should be taken to ensure that the provided string is actually an ASCII string. start and end have their usual interpretations.

octets-to-integer octet-vec &key start end big-endian n-bits => number
integer-to-octets bignum &key n-bits big-endian => vector

octets-to-integer converts the bytes of octet-vec between start and end to an integer as though the bytes denoted a number in base 256. big-endian is a boolean indicating whether the bytes are to be read in big-endian or little-endian order. n-bits specifies how many bits should be considered as significant in the resulting number.

integer-to-octets is the reverse operation.

expt-mod => number

Raises n to the exponent power modulo modulus in a more efficient fashion than (MOD (EXPT N EXPONENT) MODULUS).

Conditions

ironclad-error

All errors signaled by Ironclad are of this type. This type is a direct subtype of SIMPLE-ERROR without any extra slots or options.

initialization-vector-not-supplied

This error is signaled by make-cipher when an initialization vector is not provided and the requested mode requires an initialization vector.

invalid-initialization-vector

This error is signaled when an invalid initialization vector is supplied to make-cipher (e.g. when the length of the initialization vector does not match the block length of the cipher).

invalid-key-length

This error is signaled when the key provided to make-cipher is not of an acceptable length for the requested cipher.

unsupported-cipher

This error is signaled when the cipher-name provided to make-cipher is not cipher-supported-p.

unsupported-mode

This error is signaled when the mode provided to make-cipher is not mode-supported-p.

unsupported-digest

This error is signaled when the digest-name provided to make-digest is not digest-supported-p.

insufficient-buffer-space

This error is signaled when Ironclad needs to stuff some data into a buffer (e.g. when the user provides digest to produce-digest) and there is insufficient space.

key-not-supplied

This error is signaled when a :KEY argument is not provided to make-cipher.

ironclad_0.33.0/doc/ironclad-doc.txt0000664000175000017500000010431512067650112014304 0ustar00(:author "Nathan Froyd" :email "froydnj@gmail.com" :package "Ironclad" :cl-package "IRONCLAD" :version #.(asdf:component-version (asdf:find-system :ironclad)) :homepage "http://www.method-combination.net/lisp/ironclad/" :source-code "http://github.com/froydnj/ironclad" :download "http://www.method-combination.net/lisp/files/ironclad.tar.gz") (:h1 ${package}) (:p ${package} " is a cryptography library written entirely in Common Lisp. It includes support for several popular " (:xref "ciphers" "ciphers") ", " (:xref "digests" "digests") ", and " (:xref "macs" "MACs") ". Rudimentary support for " (:xref "public-key" "public-key cryptography") " is included. For several implementations that support Gray Streams, " (:xref "gray-streams" "support") " is included for convenient stream wrappers.") (:p ${package} " was written primarily by " ${author} " (" ${email} ").") (:h2 "Installation") (:p ${package} " can be downloaded at " (:url ${download} ${download}) ". The latest released version is " ${version} ". If you are feeling adventurous, you can download a bleeding-edge version at " (:url ${source-code} ${source-code}) ".") (:p "It comes with an ASDF system definition, so " `(ASDF:OOS 'ASDF:LOAD-OP :IRONCLAD)` " should be all that you need to get started. The testsuite can be run by substituting " `ASDF:TEST-OP` " for " `ASDF:LOAD-OP` " in the form above.") (:p ${package} " has been tested in the following implementations:") (:ul (:li "SBCL x86/linux, x86-64/linux (primary development platforms)") (:li "SBCL x86-64/solaris, x86/darwin") (:li "CMUCL x86/linux") (:li "ABCL with Sun's 1.5.0 JVM") (:li "Lispworks 5.0.1 x86/linux") (:li "Lispworks 5.1.2 x86-64/darwin x86/windows") (:li "Allegro 8.0 x86/linux") (:li "Allegro 8.1 x86/linux, x86-64/linux, sparc/solaris") (:li "CLISP 2.41 x86/linux, x86/cygwin") (:li "Clozure Common Lisp 1.2 x86-64/Linux")) (:p "All included tests should pass successfully. If you use a platform not listed above, please send your platform information to the author so that he can add it to the above list. If the tests do not all pass, you have found a bug; please report it.") (:h2 "License") (:p ${package} " is released under a MIT-like license; you can do pretty much anything you want to with the code except claim that you wrote it.") ((:h2 id "ciphers") "Ciphers") (:describe :function (ironclad:make-cipher cipher)) (:p "Return a cipher object suitable for use for both encryption and decryption.") (:p 'name' " denotes the encryption algorithm to use. " @list-all-ciphers " will tell you the names of all supported ciphers; the short list of ones you are likely to be interested in is:") (:ul (:li "AES") (:li "DES") (:li "3DES") (:li "Blowfish") (:li "Twofish") (:li "RC5") (:li "RC6") (:li "Arcfour (RC4)")) (:p 'name' " can be a symbol in the " `KEYWORD` " package or the " `IRONCLAD` " package; " `:AES` " for AES, " `IRONCLAD:ARCFOUR` " for RC4, and so forth.") (:p 'mode' " describes the mode of operation for the cipher. Stream ciphers such as Arcfour can operate in only one mode, " `stream` ". Block ciphers such as AES and DES can operate in several different modes:") (:ul (:li "ECB") (:li "CBC") (:li "OFB") (:li "CFB (note that Ironclad's CFB mode is 'n'-bit CFB, where 'n' is the " @block-length " of the cipher)") (:li "CFB8 (this seems to be the mode other crypto packages call 'CFB')") (:li "CTR")) (:p 'mode' " should be a symbol in the " `KEYWORD` " or " `IRONCLAD` " packages; " `:STREAM` ", " `IRONCLAD:OFB` ", and so forth. An error will be signaled if " 'mode' " is not appropriate for the cipher " 'name' ".") (:p 'initialization-vector' " (IV) should be supplied only if " 'mode' " requires one. " 'initialization-vector' " should be a " `(VECTOR (UNSIGNED-BYTE 8))` ". The supplied IV should be the same length as the " @block-length " of " 'name' ".") (:p 'key' " is, of course, the key for the cipher. " 'key' " should be a " `(VECTOR (UNSIGNED-BYTE 8))` ".") (:p "If " 'padding' " is supplied, the specified padding method will be used by " @encrypt " and " @decrypt " to handle short blocks when the " `:HANDLE-FINAL-BLOCK` " argument is supplied. Depending on the mode specified, " 'padding' " may be ignored (e.g. OFB and CFB modes do not care about short blocks; neither do stream ciphers).") (:note 'padding' " is currently ignored in all modes (and, by extension, so is " `:HANDLE-FINAL-BLOCK` "). This oversight is expected to be corrected in a future release.") (:describe :function (ironclad:encrypt (values n-bytes-consumed n-bytes-produced))) (:p "Encrypts data according to " 'cipher' " from " 'plaintext' " starting at " 'plaintext-start' " and continuing until " 'plaintext-end' ". The encrypted data is placed in " 'ciphertext' " starting at " 'ciphertext-start' ".") (:describe :function (ironclad:decrypt (values n-bytes-consumed n-bytes-produced))) (:p "Decrypts data according to " 'cipher' " from " 'ciphertext' " starting at " 'ciphertext-start' " and continuing until " 'ciphertext-end' ". The decrypted data is placed in " 'plaintext' " starting at " 'plaintext-start' ".") (:describe :function (ironclad:encrypt-in-place (values n-bytes-consumed n-bytes-produced)) (ironclad:decrypt-in-place (values n-bytes-consumed n-bytes-produced))) (:p "Encrypts or decrypts data in " 'text' " between " 'start' " and " 'end' " \"in-place\" according to " 'cipher' ". These functions are shorthand for:") (:pre "(encrypt cipher text text :plaintext-start start :plaintext-end end :ciphertext-start start) (decrypt cipher text text :ciphertext-start start :ciphertext-end end :plaintext-start start)") (:note @encrypt-in-place " and " @decrypt-in-place " do not support a " 'handle-final-block' " parameter as " @encrypt " and " @decrypt " do. If you need the functionality that " 'handle-final-block' " provides, then you need to use " @encrypt " and " @decrypt ".") (:note 'n-bytes-consumed' " and " 'n-bytes-produced' " may not always be equal to the length of the data specified in the call to " @encrypt-in-place " or " @decrypt-in-place ". This subtlely is also present in " @encrypt " or " @decrypt ".") (:h3 "Inquiry functions") (:describe :function (ironclad:list-all-ciphers list)) (:p "Returns a list of cipher-names that may be validly passed to " @make-cipher ".") (:describe :function (ironclad:cipher-supported-p boolean)) (:p "Returns T if " 'name' " would be in the list returned by " @list-all-ciphers ", NIL otherwise.") (:describe :function (ironclad:key-lengths list)) (:p "Return a list of valid key lengths for " 'cipher' ".") (:describe :function (ironclad:block-length number)) (:p "Return the number of octets " 'cipher' " processes at a time. This function always returns 1 for stream ciphers.") ((:h2 id "digests") "Digests") (:p "Digest functions, also known as hash functions, produce fixed-length output (a " 'digest' " or " 'hash' ") from a variable-length message. The simplest example of a digest function is one that adds up all the bytes in the message modulo 256. This digest function fails one test of a cryptographically secure hash function: it must be difficult to find a message with a given digest. It also fails the other test: it must be difficult to find two messages with the same digest.") (:p "Ironclad provides several cryptographically secure digest functions and several non-cryptographically secure digest functions.") (:note "In the functions below, messages or parts thereof are provided as octet vectors; Ironclad has no facilities for producing digests of strings. If you need to obtain the digest of a string, then you need to figure out how to convert it to an octet vector first. This is a deliberate design decision. Characters are not equivalent to bytes. See your local Unicode guru for more details.") (:describe :function (ironclad:make-digest digester)) (:p "Returns a digest object. " 'digest-name' " is a keyword naming the algorithm you wish " 'digester' " to use. The algorithms you are likely to want to use are:") (:ul (:li "MD4") (:li "MD5") (:li "SHA1") (:li "SHA256") (:li "Tiger") (:li "Adler32") (:li "CRC32")) (:p "Other legitimate digest names can be found by calling " @list-all-digests ". Like " @make-cipher ", " 'digest-name' " should be a symbol in the " `KEYWORD` " or " `IRONCLAD` " packages.") (:describe :generic-function (ironclad:update-digest (values))) (:p "Updates the internal state of " 'digester' " with the contents of " 'thing' ". The exact method is determined by the type of THING.") (:p "There are several methods defined on this generic function that take a particular digester and a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` " as well as the usual " 'start' " and " 'end' " keyword arguments. These methods update the state of " 'digester' " with the subsequence of the array denoted by " 'start' " and " 'end' ". They are not listed here because there's one method for every type of digest that " ${package} " provides, and listing them would get very tedious for no benefit. An example should suffice.") (:pre "(let ((digester (ironclad:make-digest :sha1)) (array (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0))) ;; Update with 16 zeroes. (ironclad:update-digest digester array) ;; Update with 8 ones. (fill array 1 :start 2 :end 10) (ironclad:update-digest digester array :start 2 :end 10))") (:describe :method (ironclad:update-digest (t stream) digester)) (:p "Update the internal state of " 'digester' " with the contents of " 'stream' ", which must respond to " `READ-BYTE` " or " `READ-SEQUENCE` " with a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` " and return " 'digester' ". It differs from " @digest-stream ", below, in that you may need to digest data before or after the contents of " 'stream' " (this happens, for instance, when signing the contents of some file).") (:describe :generic-function (ironclad:produce-digest digest)) (:p "Return the digest of the data processed by " 'digester' " so far. The internal state of " 'digester' " is modified; if you wish to retain a copy of the digest, you must call " @copy-digest ".") (:p "If " 'digest' " is provided, the computed digest will be placed into " 'digest' " starting at " 'digest-start' ". " 'digest' " must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` ". An " @insufficient-buffer-space " error will be signaled if there is insufficient space in " 'digest' ".") (:h3 "High-level convenience functions") (:p "Several high-level convenience functions that encapsulate common sequences of " @make-digest ", " @update-digest " and " @produce-digest " are provided by Ironclad as well. They come in two flavors: the first takes a digest name as would be provided to " @make-digest ". The second way to call these functions is to provide an actual digest object as the first argument. So one can say:") (:pre "(ironclad:digest-sequence :md5 *buffer*)") (:p "or, equivalently:") (:pre "(let ((digester (make-digest :md5))) (ironclad:digest-sequence digester *buffer*))") (:p "The second form comes in handy if you plan on " (:xref "digest-tips" "reusing the digest object") ".") (:describe :generic-function (ironclad:digest-sequence digest)) (:p "Returns the digest of the subsequence of " 'sequence' " bounded by " 'start' " and " 'end' ", according to " 'digest-name' ". " 'sequence' " must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8))` ". " 'digest' " and " 'digest-start' " are as in " @produce-digest ".") (:describe :generic-function (ironclad:digest-stream digest)) (:p "Returns the digest of the contents of the stream specified by " 'stream' ". " `READ-BYTE` " must be a legal operation on " 'stream' " and return an " `(UNSIGNED-BYTE 8)` ". In a similar fashion, " `READ-SEQUENCE` " on " 'stream' " must support reading into a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8))` ". " 'digest' " and " 'digest-start' " are as in " @produce-digest ".") (:p "If " 'buffer' " is provided, it must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` "; the portion of " 'buffer' " between " 'start' " and " 'end' " will be used to read the data from the stream.") (:describe :generic-function (ironclad:digest-file digest)) (:p "Returns the digest of the contents of the file named by " 'pathname' ". " 'digest' " and " 'digest-start' " are as in " @produce-digest ".") (:p "If " 'buffer' " is provided, it must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` "; the portion of " 'buffer' " between " 'start' " and " 'end' " will be used to read the data from the stream.") (:h3 "Inquiry functions") (:describe :function (ironclad:list-all-digests list)) (:p "Returns a list whose elements may be validly passed to " @make-digest ".") (:describe :function (ironclad:digest-supported-p boolean)) (:p "Returns T if " 'name' " would be in the list returned by " @list-all-digests ", NIL otherwise.") (:describe :function (ironclad:digest-length number)) (:p "Returns the length of the digest computed by " 'digest' ", which may be a digest-name or a digest instance.") ((:h3 id "digest-tips") "Miscellaneous") (:p "Ironclad digests are CLOS objects; the interesting thing about this for most purposes is that functions like " `REINITIALIZE-INSTANCE` " are supported. This means one can write a fairly efficient clone of the " `md5sum` " program like so:") (:pre "(defun digest-sum-files (digest-name &rest files) (unless files (error \"no files given to digest\")) (loop with buffer = (make-array 8192 :element-type '(unsigned-byte 8)) with digest = (make-array (ironclad:digest-length digest-name) :element-type '(unsigned-byte 8)) for file in files for digester = (ironclad:make-digest digest-name) then (reinitialize-instance digester) do (ironclad:digest-file digester file :buffer buffer :digest digest) (format t \"~A ~A~%\" (file-namestring file) (ironclad:byte-array-to-hex-string digest))))") (:h3 "Tree hashes") (:p "Ironclad supports tree hashes, as described in " (:url "http://web.archive.org/web/20080316033726/http://www.open-content.net/specs/draft-jchapweske-thex-02.html" "Tree Hash EXchange format") ". You create tree hashes as if you were creating a digest:") (:pre "(ironclad:make-digest :tree-hash)") (:p "By default, this creates a tree hash that uses the Tiger digest algorithm internally and a segment size of 1024. Since using the Tiger digest algorithm is so common, a convenience function that makes your intent obvious:") (:pre "(ironclad:make-tiger-tree-hash)") (:p "has also been provided.") (:p "You may indicate that you wish to use a different algorithm than Tiger:") (:pre "(ironclad:make-digest '(:treehash :digest :sha256))") (:p "Or you might wish to use a different segment size:") (:pre "(ironclad:make-digest '(:tree-hash :block-length 16384))") (:p "There is currently no interface for obtaining the intermediate hashes computed while computing the final tree hash.") ((:h2 id "macs") "Message authentication codes") (:p "A message authentication code is a cryptographic function of some data and a user-specified key. Only a person knowing the key can recompute the MAC for the given message. A MAC is useful where maintaining data integrity is required, but the secrecy of the data is not paramount.") (:p "Ironclad provides two different kinds of MACs: HMACs, specified in " (:url "http://www.ietf.org/rfc/rfc2109.txt" "RFC 2104") ", and CMACs, specified in " (:url "http://www.ietf.org/rfc/rfc4493.txt" "RFC 4493") " and NIST document 800-38B.") (:h3 "HMACs") (:p "Instances of HMACs are constructed by specifying a secret key and a digest-name.") (:describe :function (ironclad:make-hmac hmac)) (:p "Return an HMAC instance based on the hash function " 'digest-name' " with secret key " 'key' ".") (:p "The returned object supports " `REINITIALIZE-INSTANCE` ":") (:describe :method (cl:reinitialize-instance (ironclad::hmac) hmac)) (:p "The " `:KEY` " argument is the secret key, as provided to " @make-hmac ".") (:describe :function (ironclad:update-hmac hmac)) (:p "Update the internal state of " 'hmac' " with the data in " 'sequence' " bounded by " 'start' " and " 'end' ". " 'sequence' " must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` ".") (:describe :function (ironclad:hmac-digest digest)) (:p "Returns the MAC (" 'digest' ") computed by " 'hmac' " thus far. The internal state of " 'hmac' " is not modified; this feature makes it possible to compute a \"rolling MAC\" of a document. The length of " 'digest' " is determined by the " @digest-length " of " 'digest-name' " passed to " @make-hmac " when " 'hmac' " was constructed.") (:p "If " 'buffer' " is provided, the computed MAC will be placed into " 'buffer' " starting at " 'buffer-start' ". " 'buffer' " must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` ". An " @insufficient-buffer-space " error will be signaled if there is insufficient space in " 'buffer' ".") ((:h2 id "kdfs") "Key derivation functions") (:p "Ironclad comes with the basic PBKDF1 and PBKDF2 algorithms, as well as an implementation of the scrypt key derivation function as defined by Colin Percival's " (:url "http://www.tarsnap.com/scrypt.html" "The scrypt key derivation function.")) (:describe :function (ironclad:derive-key digest)) (:p "Given a key derivation function object (produced by " `make-kdf` "), a password and salt (both must be of type " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` "), and number of digest iterations, returns the password digest as a byte array of length " 'key-length' ".") (:p "Scrypt ignores " 'iteration-count' " parameter.") (:describe :function (ironclad:make-kdf kdf)) (:p "Returns a key derivation function instance (" 'kind' " must either be " `PBKDF1` ", " `PBKDF2` " or " `SCRYPT-KDF` "). The PBKDF algorithms use " 'digest' ". The scrypt key derivation uses cost parameters " 'N' ", " 'r' " and " 'p' " (" 'N' " is a CPU cost parameter that must be a power of 2, " 'r' " and " 'p' " are memory cost parameters that must be defined such that " 'r' " * " 'p' " <= 2^30.)") (:p "The default parameters are " 'N' " = 4096, " 'r' " = 8, and " 'p' " = 2. Please note that depending on the values of " 'N' " and " 'r' ", " @derive-key " may not be able to allocate sufficient space for its temporary arrays.") (:h3 "PBKDF Convenience functions") (:p "Ironclad comes with convenience functions for using PBKDF1 and PBKDF2 to store passwords.") (:describe :function (ironclad:pbkdf2-hash-password password)) (:p "Convenience function for hashing passwords using the PBKDF2 algorithm. Returns the derived hash of the password, and the original salt, as byte vectors.") (:describe :function (ironclad:pbkdf2-hash-password-to-combined-string password)) (:p "Convenience function for hashing passwords using the PBKDF2 algorithm. Returns the derived hash of the password as a single string that encodes the given salt and PBKDF2 algorithm parameters.") (:describe :function (ironclad:pbkdf2-check-password boolean)) (:p "Given a " 'password' " byte vector and a combined salt and digest string produced by " `pbkdf2-hash-password-to-combined-string` ", checks whether the password is valid.") (:h3 "CMACs") (:p "Instances of CMACs are constructed by specifying a secret key and a cipher-name.") (:describe :function (ironclad:make-cmac cmac)) (:p "Return a CMAC instance based on the cipher " 'cipher-name' " with secret key " 'key' ". " 'cipher-name' " must have a " @block-length " of either 8 or 16; this restriction is satisfied by most ciphers in Ironclad with the notable exception of stream ciphers. " 'key' " must be an acceptable key for " 'cipher-name' ".") (:describe :function (ironclad:update-cmac cmac)) (:p "Update the internal state of " 'cmac' " with the data in " 'sequence' " bounded by " 'start' " and " 'end' ". " 'sequence' " must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` ".") (:describe :function (ironclad:cmac-digest digest)) (:p "Returns the MAC (" 'digest' ") computed by " 'cmac' " thus far. The internal state of " 'cmac' " is not modified; this feature makes it possible to compute a \"rolling MAC\" of a document. The length of " 'digest' " is determined by the " @block-length " of " 'cipher-name' " passed to " @make-cmac " when " 'cmac' " was constructed.") ((:h2 id "public-key") "Public-key Operations") (:p "Ironclad includes support for DSA signing and verification. Support for RSA encryption and decryption is provided as well, but it is \"raw\"--the various formatting schemes (e.g. PKCS-1) must be implemented by the user at this time.") (:h3 "Key construction") (:describe :generic-function (ironclad:make-public-key public-key)) (:p "Return a public key according to " 'kind' ". The " '&key' " arguments vary according to " 'kind' ". The interesting bits are in the methods that specialize on " 'kind' ", below.") (:describe :method (ironclad:make-public-key ((eql :dsa)) private-key)) (:p "Return a DSA public key. " 'p' ", " 'q' ", " 'g' ", and " 'y' " are the usual parameters for DSA keys discussed in the literature.") (:describe :generic-function (ironclad:make-private-key private-key)) (:p "Return a private key according to " 'kind' ". The " '&key' " arguments vary according to " 'kind' ". The interesting bits are in the methods that specialize on " 'kind' ", below.") (:describe :method (ironclad:make-private-key ((eql :dsa)) private-key)) (:p "Return a DSA private key. " 'p' ", " 'q' ", " 'g' ", " 'y' ", and " 'x' " are the usual parameters for DSA keys discussed in the literature.") (:h3 "Digital signatures") (:describe :generic-function (ironclad:sign-message signature)) (:p "Return a signature of " 'message' " between " 'start' " and " 'end' " signed with " 'key' "; the class of " 'key' " determines the class of " 'signature' ".") (:describe :method (ironclad:sign-message (ironclad::dsa-private-key t) signature)) (:p "This method places an additional constraint on the size of " 'message' " specified by " 'start' " and " 'end' ": it must be exactly 20 bytes long (the length of a SHA-1 digest). " 'signature' " is a " @dsa-signature " object.") (:describe :generic-function (ironclad:verify-signature boolean)) (:p "Verify whether " 'signature' " is the signature of " 'message' " between " 'start' " and " 'end' " using " 'key' ". Return T or NIL depending on the result of verification.") (:describe :method (ironclad:verify-signature (ironclad::dsa-public-key t ironclad::dsa-signature) boolean)) (:h4 "Signature objects") (:p "There is no one \"right\" way to format signatures into octet vectors; different applications may have different requirements. " @sign-message " therefore returns objects and lets the user determine how to best format the values contained therein.") (:describe :class dsa-signature) (:p "A DSA signature object.") (:describe :function (ironclad:make-dsa-signature signature)) (:p "Returns a DSA signature with the provided " 'r' " and " 's' " values. " 'r' " and " 's' " may be either integers or they may be 20-byte octet vectors.") (:describe :function (ironclad:dsa-signature-r integer)) (:p "Returns the " 'r' " value of the provided DSA signature.") (:describe :function (ironclad:dsa-signature-s integer)) (:p "Returns the " 's' " value of the provided DSA signature.") (:h3 "Encryption and decryption") (:describe :function (ironclad:encrypt-message encrypted-message)) (:describe :function (ironclad:decrypt-message decrypted-message)) ((:h2 id "prng") "Pseudo-random Number Generation") (:h3 "Example") (:p (:pre "> (setf *prng* (make-prng :fortuna)) -> #<fortuna-prng> > (random-data 16) -> #(61 145 133 130 220 200 90 86 0 101 62 169 0 40 101 78) > (setf *prng* (make-prng :fortuna :seed nil)) -> #<fortuna-prng> > (crypto:read-os-random-seed :random) -> 1 > (crypto:strong-random 16) -> 3 > (write-seed #P\"/tmp/seed\") -> t > (crypto:read-seed #P\"/tmp/seed\") -> t > (crypto:random-bits 16) -> 41546 > (add-random-event 0 0 (string-to-octets \"foobar\"))")) (:p "See details about " @add-random-event " below.") (:describe :function (ironclad:make-prng prng)) (:p "Create an unseeded pseudo-random number generator.") (:p 'name' " denotes the style of PRNG to use. " @list-all-prngs " will tell you the names of all supported PRNGs. Currently only Fortuna is supported. " 'name' " can be a symbol in the " `KEYWORD` " package or the " `IRONCLAD` " package.") (:p 'seed' " is a " (:em "seed descriptor") ". If NIL, the PRNG will not be seeded (which may prevent it from generating output until it is seeded, depending on the generator). If " `:RANDOM` " then the PRNG will be seeded with the OS's cryptographically-secure PRNG. If " `:URANDOM` " then the PRNG will be seeded with the OS's fast-but-potentially-less-secure PRNG, if available (if not, will fallback to " `:RANDOM` "). If it is a pathname indicator, a seed will be read from the indicated file, then a new seed will be generated and written back to the file (over-writing the old seed). Finally, if it is a byte vector, it will be used to seed the PRNG.") (:describe :function (ironclad:list-all-prngs list)) (:p "List all known PRNG types.") (:describe :function (ironclad:random-data bytes)) (:p "Generate " 'num-bytes' " bytes of random data from " 'pseudo-random-number-generator' ". Updates the state of the generator.") (:describe :function (ironclad:read-os-random-seed reseed-count)) (:p "Reads an OS-provided random seed (from /dev/urandom or /dev/random on Unix; CryptGenRandom on Windows) and reseed " 'pseudo-random-number-generator' ".") (:p 'source' " may be " `:RANDOM` ", which indicates /dev/random or " `:URANDOM` ", which indicates /dev/urandom. On Windows, CryptGenRandom is always used.") (:describe :function (ironclad:read-seed t)) (:p "Read enough bytes from " 'path' " to reseed " 'pseudo-random-number-generator' ", then generate a pseudo-random seed and write it back to " 'path' ". If " 'path' " doesn't exist, calls " @read-os-random-seed " to get a truly random seed from the OS. Note that reseeding does " (:em "not") " reset the generator's state to the seed value; rather, it " (:em "combines" ) " the generator's state with the seed to form a new state.") (:describe :function (ironclad:write-seed t)) (:p "Generate enough random data to reseed " 'pseudo-random-number-generator' ", then write it to " 'path' ".") (:describe :function (ironclad:random-bits integer)) (:p "Generate and integer with " 'num-bits' " bits.") (:describe :function (ironclad:strong-random number)) (:p "A drop-in replacement for " 'COMMON-LISP:RANDOM' ", " `STRONG-RANDOM` " generates a number (and integer if " 'limit' " is an integer and a float if it is a float) between 0 and " 'limit' "-1 in an unbiased fashion.") (:h3 "Fortuna") (:p "Fortuna is a cryptographically-secure random number presented by Ferguson, Schneier and Kohno in " (:cite "Cryptography Engineering") ". It is built around 32 entropy pools, which are used with decreasing frequency for each reseed (e.g. pool 0 is used in each reseed, pool 1 in every other reseed, pool 2 in every fourth reseed and so forth). Pools are seeded with data from up to 256 sources.") (:p "Each application should have one or more entropy sources (say, one for each OS random number source, one for the low bits of the current time, one for the output of a particular command or group of commands and so forth). A source should be used to add randomness to each pool in order, so source 0 should top up pool 0, then pool 1, and so forth up to pool 31, then loop back to pool 1 again. Be very careful to spread entropy across all 32 pools.") (:p "Fortuna automatically feeds entropy from the pools back into its random state when " @random-data " is called, using a method designed to make it resistant to various avenues of attack; even in case of generator compromise it will return to a safe state within a bounded time.") (:p "For purposes of reseeding, Fortuna will not reseed until the first pool contains 128 bits of entropy; " '+min-pool-size+' " sets the number of bytes this is; it defaults to a very conservative 128, meaning that by default each byte of event is assumed to contain a single bit of randomness.") (:p "It also will not reseed more than ten times per second.") (:describe :function (ironclad:add-random-event pool-length)) (:p "Add entropy to " 'pseudo-random-number-generator' ".") ;; FIXME: how to create an ndash in this formatting language? (:p 'source' " is an integer in the range 0-255 specifiying the event's application-defined source.") (:p 'pool-id' " is an integer in the range 0-31 specifying the pool to top up.") (:p 'event' " is up to 32 bytes of data (for longer events, hash them down or break them up into chunks).") ((:h2 id "gray-streams") "Gray Streams") (:p "Ironclad includes support for several convenient stream abstractions based on Gray streams. Gray streams support in Ironclad is included for SBCL, CMUCL, OpenMCL, Lispworks, and Allegro.") (:h3 "Octet streams") (:p "Octet streams are very similar to Common Lisp's " @string-stream ", except they deal in octets instead of characters.") (:describe :function (ironclad:make-octet-input-stream octet-input-stream)) (:p "As " @make-string-input-stream ", only with octets instead of characters.") (:describe :function (ironclad:make-octet-output-stream octet-output-stream)) (:p "As " @make-string-output-stream ", only with octets instead of characters.") (:describe :function (ironclad:get-output-stream-octets octet-vector)) (:p "As " @get-output-stream-string ", only with an octet output-steam instead of a string output-stream.") (:h3 "Digest streams") (:p "Digest streams compute a digest of the data written to them according to a specific digest algorithm.") (:p "Example:") (:pre "(defun frobbing-function (stream) ;; We want to compute a digest of the data being written to STREAM ;; without involving our callees in the process. (let* ((digesting-stream (crypto:make-digesting-stream :sha1)) (stream (make-broadcast-stream stream digesting-stream))) ;; Feed data to STREAM. (frob-guts stream) ;; Do something with the digest computed. (... (crypto:produce-digest digesting-stream) ...) ...))") (:describe :function (ironclad:make-digesting-stream stream)) (:p "Make a stream that computes a digest of the data written to it according to the algorithm " 'digest-name' ". " @produce-digest " may be used to obtain a digest of all the data written to the stream.") (:note "Calling " @produce-digest " on a digest stream does not alter the internal state of the digest.") (:h2 "Utility Functions") (:describe :accessor (ironclad:ub16ref/le value) (ironclad:ub32ref/le value) (ironclad:ub64ref/le value)) (:p "This family of functions accesses an unsigned 16-bit, 32-bit or 64-bit value stored in little-endian order starting at " 'index' " in " 'array' ". " 'array' " must be a " `(SIMPLE-ARRAY (UNSIGNED-BYTE 8) (*))` ". These functions are SETFable.") (:describe :accessor (ironclad:ub16ref/be value) (ironclad:ub32ref/be value) (ironclad:ub64ref/be value)) (:p "As the above, only the value is stored in big-endian order.") (:describe :function (ironclad:byte-array-to-hex-string string) (ironclad:hex-string-to-byte-array string) (ironclad:ascii-string-to-byte-array vector)) (:p `byte-array-to-hex-string` " converts the bytes of " 'vector' " between " 'start' " and " 'end' " into a hexadecimal string. It is useful for converting digests to a more readable form. " 'element-type' " indicates the element-type of the returned string.") (:p `hex-string-to-byte-array` " parses a substring of " 'string' " delimited " 'start' " and " 'end' " of hexadecimal digits into a byte array.") (:p `ascii-string-to-byte-array` " is provided as a quick and dirty way to convert a string to a byte array suitable for feeding to " @update-digest " or " @encrypt ". Care should be taken to ensure that the provided string is actually an ASCII string. " 'start' " and " 'end' " have their usual interpretations.") (:describe :function (ironclad:octets-to-integer number) (ironclad:integer-to-octets vector)) (:p `octets-to-integer` " converts the bytes of " 'octet-vec' " between " 'start' " and " 'end' " to an integer as though the bytes denoted a number in base 256. " 'big-endian' " is a boolean indicating whether the bytes are to be read in big-endian or little-endian order. " 'n-bits' " specifies how many bits should be considered as significant in the resulting number.") (:p `integer-to-octets` " is the reverse operation.") (:describe :function (ironclad:expt-mod number)) (:p "Raises " 'n' " to the " 'exponent' " power modulo " 'modulus' " in a more efficient fashion than " `(MOD (EXPT N EXPONENT) MODULUS)` ".") (:describe :function (ironclad:make-random-salt size)) (:p "Generate a byte vector of " 'size' " (default 16) random bytes, suitable for use as a password salt.") (:h2 "Conditions") (:describe :condition ironclad-error) (:p "All errors signaled by Ironclad are of this type. This type is a direct subtype of " `SIMPLE-ERROR` " without any extra slots or options.") (:describe :condition initialization-vector-not-supplied) (:p "This error is signaled by " @make-cipher " when an initialization vector is not provided and the requested mode requires an initialization vector.") (:describe :condition invalid-initialization-vector) (:p "This error is signaled when an invalid initialization vector is supplied to " @make-cipher " (e.g. when the length of the initialization vector does not match the block length of the cipher).") (:describe :condition invalid-key-length) (:p "This error is signaled when the key provided to " @make-cipher " is not of an acceptable length for the requested cipher.") (:describe :condition unsupported-cipher) (:p "This error is signaled when the " 'cipher-name' " provided to " @make-cipher " is not " @cipher-supported-p ".") (:describe :condition unsupported-mode) (:p "This error is signaled when the " 'mode' " provided to " @make-cipher " is not " @mode-supported-p ".") (:describe :condition unsupported-digest) (:p "This error is signaled when the " 'digest-name' " provided to " @make-digest " is not " @digest-supported-p ".") (:describe :condition insufficient-buffer-space) (:p "This error is signaled when Ironclad needs to stuff some data into a buffer (e.g. when the user provides " 'digest' " to " @produce-digest ") and there is insufficient space.") (:describe :condition key-not-supplied) (:p "This error is signaled when a " `:KEY` " argument is not provided to " @make-cipher ".") ironclad_0.33.0/doc/style.css0000644000175000017500000000175611305364032013057 0ustar00body { margin: 1em 5% 1em 5%; } p { margin-top: 0.5em; margin-bottom: 0.5em; } pre { padding: 0; margin: 0; } h1, h2 { border-bottom: 2px solid #449977; } h1, h2, h3, h4, h5, h6 { font-family: sans-serif; line-height: 1.3; } a:link { color: #449977; } a:visited { color: purple; } a { text-decoration: none; padding: 1px 2px; } a:hover { text-decoration: none; padding: 1px; border: 1px solid #000000; } .lisp-symbol { margin-right: 10%; margin-top: 1.5em; margin-bottom: 1.5em; border: 1px solid #449977; background: #eeeeee; padding: 0.5em; } .note { margin-right: 10%; margin-top: 1.5em; margin-bottom: 1.5em; } td.content { padding: 0; } td.title { font-family: sans-serif; font-size: 1.1em; font-weight: bold; text-align: left; vertical-align: top; text-decoration: underline; padding-right: 0.5em; margin-top: 0.0em; margin-bottom: 0.5em; } .note td.content { padding-left: 0.5em; border-left: 2px solid #449977; } ironclad_0.33.0/src/text.lisp0000664000175000017500000000133212223007206013071 0ustar00;;;; -*- mode: lisp, indent-tabs-mode: nil -*- ;;;; ;;;; text.lisp -- convenience functions for text handling (in-package :ironclad) (defun execute-with-digesting-text-stream (digest format fn) (with-open-stream (stream (ironclad:make-digesting-stream digest)) (with-open-stream (text-stream (flexi-streams:make-flexi-stream stream :external-format (flexi-streams:make-external-format format))) (funcall fn text-stream) (finish-output text-stream) (ironclad:produce-digest stream)))) (defmacro with-digesting-text-stream ((var digest &key (external-format :utf-8)) &body body) `(execute-with-digesting-text-stream ,digest ,external-format (lambda (,var) ,@body))) ironclad_0.33.0/testing/rt.lisp0000644000175000017500000003473411761302200013430 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;-*-syntax:COMMON-LISP;Package:(RT :use "COMMON-LISP" :colon-mode :external)-*- #|----------------------------------------------------------------------------| | Copyright 1990 by the Massachusetts Institute of Technology, Cambridge MA. | | | | Permission to use, copy, modify, and distribute this software and its | | documentation for any purpose and without fee is hereby granted, provided | | that this copyright and permission notice appear in all copies and | | supporting documentation, and that the name of M.I.T. not be used in | | advertising or publicity pertaining to distribution of the software | | without specific, written prior permission. M.I.T. makes no | | representations about the suitability of this software for any purpose. | | It is provided "as is" without express or implied warranty. | | | | M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING | | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL | | M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR | | ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, | | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, | | ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS | | SOFTWARE. | |----------------------------------------------------------------------------|# (defpackage #:regression-test (:nicknames #:rtest #-lispworks #:rt) (:use #:cl) (:export #:*do-tests-when-defined* #:*test* #:continue-testing #:deftest #:do-test #:do-tests #:get-test #:pending-tests #:rem-all-tests #:rem-test) (:documentation "The MIT regression tester with pfdietz's modifications")) ;;This was the December 19, 1990 version of the regression tester, but ;;has since been modified. (in-package :regression-test) (declaim (ftype (function (t) t) get-entry expanded-eval do-entries)) (declaim (type list *entries*)) (declaim (ftype (function (t &rest t) t) report-error)) (declaim (ftype (function (t &optional t) t) do-entry)) (defvar *test* nil "Current test name") (defvar *do-tests-when-defined* nil) (defvar *entries* '(nil) "Test database. Has a leading dummy cell that does not contain an entry.") (defvar *entries-tail* *entries* "Tail of the *entries* list") (defvar *entries-table* (make-hash-table :test #'equal) "Map the names of entries to the cons cell in *entries* that precedes the one whose car is the entry.") (defvar *in-test* nil "Used by TEST") (defvar *debug* nil "For debugging") (defvar *catch-errors* t "When true, causes errors in a test to be caught.") (defvar *print-circle-on-failure* nil "Failure reports are printed with *PRINT-CIRCLE* bound to this value.") (defvar *compile-tests* nil "When true, compile the tests before running them.") (defvar *expanded-eval* nil "When true, convert the tests into a form that is less likely to have compiler optimizations.") (defvar *optimization-settings* '((safety 3))) (defvar *expected-failures* nil "A list of test names that are expected to fail.") (defvar *notes* (make-hash-table :test 'equal) "A mapping from names of notes to note objects.") (defstruct (entry (:conc-name nil)) pend name props form vals) ;;; Note objects are used to attach information to tests. ;;; A typical use is to mark tests that depend on a particular ;;; part of a set of requirements, or a particular interpretation ;;; of the requirements. (defstruct note name contents disabled ;; When true, tests with this note are considered inactive ) ;; (defmacro vals (entry) `(cdddr ,entry)) (defmacro defn (entry) (let ((var (gensym))) `(let ((,var ,entry)) (list* (name ,var) (form ,var) (vals ,var))))) (defun entry-notes (entry) (let* ((props (props entry)) (notes (getf props :notes))) (if (listp notes) notes (list notes)))) (defun has-disabled-note (entry) (let ((notes (entry-notes entry))) (loop for n in notes for note = (if (note-p n) n (gethash n *notes*)) thereis (and note (note-disabled note))))) (defun pending-tests () (loop for entry in (cdr *entries*) when (and (pend entry) (not (has-disabled-note entry))) collect (name entry))) (defun rem-all-tests () (setq *entries* (list nil)) (setq *entries-tail* *entries*) (clrhash *entries-table*) nil) (defun rem-test (&optional (name *test*)) (let ((pred (gethash name *entries-table*))) (when pred (if (null (cddr pred)) (setq *entries-tail* pred) (setf (gethash (name (caddr pred)) *entries-table*) pred)) (setf (cdr pred) (cddr pred)) (remhash name *entries-table*) name))) (defun get-test (&optional (name *test*)) (defn (get-entry name))) (defun get-entry (name) (let ((entry ;; (find name (the list (cdr *entries*)) ;; :key #'name :test #'equal) (cadr (gethash name *entries-table*)) )) (when (null entry) (report-error t "~%No test with name ~:@(~S~)." name)) entry)) (defmacro deftest (name &rest body) (let* ((p body) (properties (loop while (keywordp (first p)) unless (cadr p) do (error "Poorly formed deftest: ~A~%" (list* 'deftest name body)) append (list (pop p) (pop p)))) (form (pop p)) (vals p)) `(add-entry (make-entry :pend t :name ',name :props ',properties :form ',form :vals ',vals)))) (defun add-entry (entry) (setq entry (copy-entry entry)) (let* ((pred (gethash (name entry) *entries-table*))) (cond (pred (setf (cadr pred) entry) (report-error nil "Redefining test ~:@(~S~)" (name entry))) (t (setf (gethash (name entry) *entries-table*) *entries-tail*) (setf (cdr *entries-tail*) (cons entry nil)) (setf *entries-tail* (cdr *entries-tail*)) ))) (when *do-tests-when-defined* (do-entry entry)) (setq *test* (name entry))) (defun report-error (error? &rest args) (cond (*debug* (apply #'format t args) (if error? (throw '*debug* nil))) (error? (apply #'error args)) (t (apply #'warn args))) nil) (defun do-test (&optional (name *test*)) #-sbcl (do-entry (get-entry name)) #+sbcl (handler-bind ((sb-ext:code-deletion-note #'muffle-warning)) (do-entry (get-entry name)))) (defun my-aref (a &rest args) (apply #'aref a args)) (defun my-row-major-aref (a index) (row-major-aref a index)) (defun equalp-with-case (x y) "Like EQUALP, but doesn't do case conversion of characters. Currently doesn't work on arrays of dimension > 2." (cond ((eq x y) t) ((consp x) (and (consp y) (equalp-with-case (car x) (car y)) (equalp-with-case (cdr x) (cdr y)))) ((and (typep x 'array) (= (array-rank x) 0)) (equalp-with-case (my-aref x) (my-aref y))) ((typep x 'vector) (and (typep y 'vector) (let ((x-len (length x)) (y-len (length y))) (and (eql x-len y-len) (loop for i from 0 below x-len for e1 = (my-aref x i) for e2 = (my-aref y i) always (equalp-with-case e1 e2)))))) ((and (typep x 'array) (typep y 'array) (not (equal (array-dimensions x) (array-dimensions y)))) nil) ((typep x 'array) (and (typep y 'array) (let ((size (array-total-size x))) (loop for i from 0 below size always (equalp-with-case (my-row-major-aref x i) (my-row-major-aref y i)))))) (t (eql x y)))) (defun do-entry (entry &optional (s *standard-output*)) (catch '*in-test* (setq *test* (name entry)) (setf (pend entry) t) (let* ((*in-test* t) ;; (*break-on-warnings* t) (aborted nil) r) ;; (declare (special *break-on-warnings*)) (block aborted (setf r (flet ((%do () (cond (*compile-tests* (multiple-value-list (funcall (compile nil `(lambda () (declare (optimize ,@*optimization-settings*)) ,(form entry)))))) (*expanded-eval* (multiple-value-list (expanded-eval (form entry)))) (t (multiple-value-list (eval (form entry))))))) (if *catch-errors* (handler-bind (#-ecl (style-warning #'muffle-warning) (error #'(lambda (c) (setf aborted t) (setf r (list c)) (return-from aborted nil)))) (%do)) (%do))))) (setf (pend entry) (or aborted (not (equalp-with-case r (vals entry))))) (when (pend entry) (let ((*print-circle* *print-circle-on-failure*)) (format s "~&Test ~:@(~S~) failed~ ~%Form: ~S~ ~%Expected value~P: ~ ~{~S~^~%~17t~}~%" *test* (form entry) (length (vals entry)) (vals entry)) (handler-case (let ((st (format nil "Actual value~P: ~ ~{~S~^~%~15t~}.~%" (length r) r))) (format s "~A" st)) (error () (format s "Actual value: #~%") )) (finish-output s) )))) (when (not (pend entry)) *test*)) (defun expanded-eval (form) "Split off top level of a form and eval separately. This reduces the chance that compiler optimizations will fold away runtime computation." (if (not (consp form)) (eval form) (let ((op (car form))) (cond ((eq op 'let) (let* ((bindings (loop for b in (cadr form) collect (if (consp b) b (list b nil)))) (vars (mapcar #'car bindings)) (binding-forms (mapcar #'cadr bindings))) (apply (the function (eval `(lambda ,vars ,@(cddr form)))) (mapcar #'eval binding-forms)))) ((and (eq op 'let*) (cadr form)) (let* ((bindings (loop for b in (cadr form) collect (if (consp b) b (list b nil)))) (vars (mapcar #'car bindings)) (binding-forms (mapcar #'cadr bindings))) (funcall (the function (eval `(lambda (,(car vars) &aux ,@(cdr bindings)) ,@(cddr form)))) (eval (car binding-forms))))) ((eq op 'progn) (loop for e on (cdr form) do (if (null (cdr e)) (return (eval (car e))) (eval (car e))))) ((and (symbolp op) (fboundp op) (not (macro-function op)) (not (special-operator-p op))) (apply (symbol-function op) (mapcar #'eval (cdr form)))) (t (eval form)))))) (defun continue-testing () (if *in-test* (throw '*in-test* nil) (do-entries *standard-output*))) (defun do-tests (&optional (out *standard-output*)) (dolist (entry (cdr *entries*)) (setf (pend entry) t)) (if (streamp out) (do-entries out) (with-open-file (stream out :direction :output) (do-entries stream)))) (defun do-entries* (s) (format s "~&Doing ~A pending test~:P ~ of ~A tests total.~%" (count t (the list (cdr *entries*)) :key #'pend) (length (cdr *entries*))) (finish-output s) (dolist (entry (cdr *entries*)) (when (and (pend entry) (not (has-disabled-note entry))) (format s "~@[~<~%~:; ~:@(~S~)~>~]" (do-entry entry s)) (finish-output s) )) (let ((pending (pending-tests)) (expected-table (make-hash-table :test #'equal))) (dolist (ex *expected-failures*) (setf (gethash ex expected-table) t)) (let ((new-failures (loop for pend in pending unless (gethash pend expected-table) collect pend))) (if (null pending) (format s "~&No tests failed.") (progn (format s "~&~A out of ~A ~ total tests failed: ~ ~:@(~{~<~% ~1:;~S~>~ ~^, ~}~)." (length pending) (length (cdr *entries*)) pending) (if (null new-failures) (format s "~&No unexpected failures.") (when *expected-failures* (format s "~&~A unexpected failures: ~ ~:@(~{~<~% ~1:;~S~>~ ~^, ~}~)." (length new-failures) new-failures))) )) (finish-output s) (null pending)))) (defun do-entries (s) #-sbcl (do-entries* s) #+sbcl (handler-bind ((sb-ext:code-deletion-note #'muffle-warning)) (do-entries* s))) ;;; Note handling functions and macros (defmacro defnote (name contents &optional disabled) `(eval-when (:load-toplevel :execute) (let ((note (make-note :name ',name :contents ',contents :disabled ',disabled))) (setf (gethash (note-name note) *notes*) note) note))) (defun disable-note (n) (let ((note (if (note-p n) n (setf n (gethash n *notes*))))) (unless note (error "~A is not a note or note name." n)) (setf (note-disabled note) t) note)) (defun enable-note (n) (let ((note (if (note-p n) n (setf n (gethash n *notes*))))) (unless note (error "~A is not a note or note name." n)) (setf (note-disabled note) nil) note)) ironclad_0.33.0/testing/testfuns.lisp0000664000175000017500000002564012247654060014672 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) (defun hex-string-to-byte-array (string &key (start 0) (end nil)) ;; This function disappears from profiles if SBCL can inline the ;; POSITION call, so declare SPEED high enough to trigger that. (declare (type string string) (optimize (speed 2))) (let* ((end (or end (length string))) (length (/ (- end start) 2)) (key (make-array length :element-type '(unsigned-byte 8)))) (declare (type (simple-array (unsigned-byte 8) (*)) key)) (flet ((char-to-digit (char) (declare (type base-char char)) (let ((x (cl:position char #.(coerce "0123456789abcdef" 'simple-base-string) :test #'char-equal))) (or x (error "Invalid hex key ~A specified" string))))) (loop for i from 0 for j from start below end by 2 do (setf (aref key i) (+ (* (char-to-digit (char string j)) 16) (char-to-digit (char string (1+ j))))) finally (return key))))) ;;; test vector files (defun test-vector-filename (ident) (merge-pathnames (make-pathname :directory '(:relative "test-vectors") :name (substitute #\- #\/ (format nil "~(~A~)" ident)) :type "testvec") #.*compile-file-pathname*)) (defun sharp-a (stream sub-char numarg) (declare (ignore sub-char numarg)) (crypto:ascii-string-to-byte-array (read stream t nil t))) (defun sharp-h (stream sub-char numarg) (declare (ignore sub-char numarg)) (hex-string-to-byte-array (read stream t nil t))) (defun run-test-vector-file (name function-map) (let ((filename (test-vector-filename name)) (*readtable* (copy-readtable))) (set-dispatch-macro-character #\# #\a #'sharp-a *readtable*) (set-dispatch-macro-character #\# #\h #'sharp-h *readtable*) (with-open-file (stream filename :direction :input :element-type 'character :if-does-not-exist :error) (loop for form = (read stream nil stream) until (eq form stream) do (cond ((not (listp form)) (error "Invalid form in test vector file ~A: ~A" filename form)) (t (let ((test-function (cdr (assoc (car form) function-map)))) (unless test-function (error "No test function defined for ~A" (car form))) (apply test-function name (cdr form))))) finally (return t))))) ;;; cipher testing (defun ecb-mode-test (cipher-name hexkey hexinput hexoutput) (cipher-test-guts cipher-name :ecb hexkey hexinput hexoutput)) (defun stream-mode-test (cipher-name hexkey hexinput hexoutput) (cipher-test-guts cipher-name :stream hexkey hexinput hexoutput)) (defun stream-nonce-mode-test (cipher-name hexkey hexiv hexinput hexoutput) (cipher-test-guts cipher-name :stream hexkey hexinput hexoutput (list :initialization-vector hexiv))) (defparameter *cipher-tests* (list (cons :ecb-mode-test 'ecb-mode-test) (cons :stream-mode-test 'stream-mode-test) (cons :stream-nonce-mode-test 'stream-nonce-mode-test))) (defun cipher-test-guts (cipher-name mode key input output &optional extra-make-cipher-args) (labels ((frob-hex-string (func input) (let ((cipher (apply #'crypto:make-cipher cipher-name :key key :mode mode extra-make-cipher-args)) (scratch (copy-seq input))) (funcall func cipher input scratch) scratch)) (cipher-test (func input output) (not (mismatch (frob-hex-string func input) output)))) (unless (cipher-test 'crypto:encrypt input output) (error "encryption failed for ~A on key ~A, input ~A, output ~A" cipher-name key input output)) (unless (cipher-test 'crypto:decrypt output input) (error "decryption failed for ~A on key ~A, input ~A, output ~A" cipher-name key output input)))) ;;; encryption mode consistency checking ;;; tests from NIST (defun mode-test (mode cipher-name key iv input output) (labels ((frob-hex-string (cipher func input) (let ((scratch (copy-seq input))) (funcall func cipher input scratch) scratch)) (cipher-test (cipher func input output) (not (mismatch (frob-hex-string cipher func input) output)))) (let ((cipher (crypto:make-cipher cipher-name :key key :mode mode :initialization-vector iv))) (unless (cipher-test cipher 'crypto:encrypt input output) (error "encryption failed for ~A on key ~A, input ~A, output ~A" cipher-name key input output)) (reinitialize-instance cipher :key key :mode mode :initialization-vector iv) (unless (cipher-test cipher 'crypto:decrypt output input) (error "decryption failed for ~A on key ~A, input ~A, output ~A" cipher-name key output input))))) (defparameter *mode-tests* (list (cons :mode-test 'mode-test))) ;;; digest testing routines (defun digest-test/base (digest-name input expected-digest) (let ((result (crypto:digest-sequence digest-name input))) (when (mismatch result expected-digest) (error "one-shot ~A digest of ~S failed" digest-name input)))) (defun digest-test/incremental (digest-name input expected-digest) (loop with length = (length input) with digester = (crypto:make-digest digest-name) for i from 0 below length do (crypto:update-digest digester input :start i :end (1+ i)) finally (let ((result (crypto:produce-digest digester))) (when (mismatch result expected-digest) (error "incremental ~A digest of ~S failed" digest-name input))))) #+(or sbcl cmucl) (defun digest-test/fill-pointer (digest-name octets expected-digest) (let* ((input (let ((x (make-array (* 2 (length octets)) :fill-pointer 0 :element-type '(unsigned-byte 8)))) (dotimes (i (length octets) x) (vector-push (aref octets i) x)))) (result (crypto:digest-sequence digest-name input))) (when (mismatch result expected-digest) (error "fill-pointer'd ~A digest of ~S failed" digest-name input)))) #+(or lispworks sbcl cmucl openmcl allegro) (defun digest-test/stream (digest-name input expected-digest) (let* ((stream (crypto:make-digesting-stream digest-name))) (write-sequence input stream) (when (mismatch (crypto:produce-digest stream) expected-digest) (error "stream-y ~A digest of ~S failed" digest-name input)))) (defun digest-test/reinitialize-instance (digest-name input expected-digest) (let* ((digest (crypto:make-digest digest-name)) (result (progn (crypto:digest-sequence digest input) (crypto:digest-sequence (reinitialize-instance digest) input)))) (when (mismatch result expected-digest) (error "testing reinitialize-instance ~A digest of ~S failed" digest-name input)))) (defun digest-bit-test (digest-name leading byte trailing expected-digest) (let* ((input (let ((vector (make-array (+ 1 leading trailing) :element-type '(unsigned-byte 8) :initial-element 0))) (setf (aref vector leading) byte) vector)) (result (crypto:digest-sequence digest-name input))) (when (mismatch result expected-digest) (error "individual bit test ~A digest of (~D #x~2,'0X ~D) failed" digest-name leading byte trailing)))) (defparameter *digest-tests* (list (cons :digest-test 'digest-test/base) (cons :digest-bit-test 'digest-bit-test))) (defun ignore-test (&rest args) (declare (ignore args)) nil) (defparameter *digest-incremental-tests* (list (cons :digest-test 'digest-test/incremental) (cons :digest-bit-test 'ignore-test))) #+(or sbcl cmucl) (defparameter *digest-fill-pointer-tests* (list (cons :digest-test 'digest-test/fill-pointer) (cons :digest-bit-test 'ignore-test))) #+(or lispworks sbcl cmucl openmcl allegro) (defparameter *digest-stream-tests* (list (cons :digest-test 'digest-test/stream) (cons :digest-bit-test 'ignore-test))) (defparameter *digest-reinitialize-instance-tests* (list (cons :digest-test 'digest-test/reinitialize-instance) (cons :digest-bit-test 'ignore-test))) ;;; mac testing routines (defun hmac-test (name digest-name key data expected-digest) (declare (ignore name)) (let ((hmac (ironclad:make-hmac key digest-name))) (ironclad:update-hmac hmac data) (when (mismatch expected-digest (ironclad:hmac-digest hmac)) (error "HMAC/~A failed on key ~A, input ~A, output ~A" digest-name key data expected-digest)) (loop initially (reinitialize-instance hmac :key key) for i from 0 below (length data) do (ironclad:update-hmac hmac data :start i :end (1+ i)) (ironclad:hmac-digest hmac) finally (when (mismatch expected-digest (ironclad:hmac-digest hmac)) (error "progressive HMAC/~A failed on key ~A, input ~A, output ~A" digest-name key data expected-digest))))) (defun cmac-test (name cipher-name key data expected-digest) (declare (ignore name)) (let ((cmac (ironclad:make-cmac key cipher-name))) (ironclad:update-cmac cmac data) (when (mismatch expected-digest (ironclad:cmac-digest cmac)) (error "CMAC/~A failed on key ~A, input ~A, output ~A" cipher-name key data expected-digest)))) (defparameter *mac-tests* (list (cons :hmac-test 'hmac-test) (cons :cmac-test 'cmac-test))) ;;; PRNG testing routines (defun fortuna-test (name seed entropy expected-sequence) (declare (ignore name)) (let ((prng (crypto:make-prng :fortuna :seed (coerce seed 'crypto::simple-octet-vector))) (num-bytes (length expected-sequence))) (loop for (source pool-id event) in entropy do (crypto:add-random-event source pool-id event prng)) (equalp expected-sequence (crypto:random-data num-bytes prng)))) (defun generator-test (name cipher seeds expected-sequences) (declare (ignore name)) (let ((generator (make-instance 'crypto::generator :cipher cipher))) (loop for seed in seeds do (crypto::reseed generator (coerce seed '(vector (unsigned-byte 8))))) (every (lambda (sequence) (assert (zerop (mod (length sequence) 16))) (equalp sequence (crypto::generate-blocks generator (/ (length sequence) 16)))) expected-sequences))) (defparameter *prng-tests* `((:fortuna-test . ,'fortuna-test) (:generator-test . ,'generator-test))) ironclad_0.33.0/testing/test-vectors/macs.lisp0000644000175000017500000000031511761302200016354 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) (rtest:deftest :hmac (run-test-vector-file :hmac *mac-tests*) t) (rtest:deftest :cmac (run-test-vector-file :cmac *mac-tests*) t) ironclad_0.33.0/testing/test-vectors/modes.lisp0000644000175000017500000000077411761302200016551 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; modes.lisp -- sanity checks for mode reversibility (in-package :crypto-tests) (rtest:deftest :modes.cbc (run-test-vector-file :cbc *mode-tests*) t) (rtest:deftest :modes.cfb (run-test-vector-file :cfb *mode-tests*) t) (rtest:deftest :modes.cfb8 (run-test-vector-file :cfb8 *mode-tests*) t) (rtest:deftest :modes.ofb (run-test-vector-file :ofb *mode-tests*) t) (rtest:deftest :modes.ctr (run-test-vector-file :ctr *mode-tests*) t) ironclad_0.33.0/testing/test-vectors/ciphers.lisp0000644000175000017500000000537712221270763017115 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) (rtest:deftest verify-key.bad-cipher (handler-case (crypto::verify-key :error (make-array 0 :element-type '(unsigned-byte 8))) (crypto:unsupported-cipher () :ok) (:no-error () :error)) :ok) (rtest:deftest verify-key.bad-key0 (handler-case (crypto::verify-key :aes "") (type-error () :ok) (:no-error () :error)) :ok) (rtest:deftest verify-key.bad-key1 (handler-case (crypto::verify-key :aes nil) (crypto:key-not-supplied () :ok) (:no-error () :error)) :ok) (rtest:deftest unprovided-key (handler-case (crypto:make-cipher :blowfish :mode :ecb :initialization-vector (make-array 8 :element-type '(unsigned-byte 8))) (crypto:key-not-supplied () :ok) (:no-error () :error)) :ok) (rtest:deftest unsupported-mode.1 (handler-case (crypto:make-cipher :blowfish :mode :stream :key (make-array 8 :element-type '(unsigned-byte 8)) :initialization-vector (make-array 8 :element-type '(unsigned-byte 8))) (crypto:unsupported-mode () :ok) (:no-error () :error)) :ok) (rtest:deftest unsupported-mode.2 (handler-case (crypto:make-cipher :salsa20 :mode :cbc :key (make-array 16 :element-type '(unsigned-byte 8))) (crypto:unsupported-mode () :ok) (:no-error () :error)) :ok) (rtest:deftest block-length.known-ciphers (dolist (name (crypto:list-all-ciphers) :ok) (unless (crypto:block-length name) (return :error))) :ok) (rtest:deftest block-length.bad-cipher (crypto:block-length :error) nil) (rtest:deftest key-lengths.known-ciphers (dolist (name (crypto:list-all-ciphers) :ok) (unless (crypto:key-lengths name) (return :error))) :ok) (rtest:deftest key-lengths.bad-cipher (crypto:key-lengths :error) nil) #.(loop for cipher in (crypto:list-all-ciphers) collect `(rtest:deftest ,cipher (run-test-vector-file ',cipher *cipher-tests*) t) into forms finally (return `(progn ,@forms))) (rtest:deftest ciphers.crypto-package (every #'(lambda (s) (and (eq (symbol-package s) (find-package :ironclad)) (eq (nth-value 1 (find-symbol (symbol-name s) (find-package :ironclad))) :external))) (crypto:list-all-ciphers)) t) (rtest:deftest clean-symbols.ciphers (loop with n-ciphers = (length (crypto:list-all-ciphers)) for s being each symbol of :crypto when (crypto::%find-cipher s) count s into computed-n-ciphers finally (return (= n-ciphers computed-n-ciphers))) t) ironclad_0.33.0/testing/test-vectors/digests.lisp0000644000175000017500000001604311772446530017121 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) (rtest:deftest make-digest.error (handler-case (crypto:make-digest :error) (crypto:unsupported-digest () :ok) (:no-error () :error)) :ok) (rtest:deftest digest-length.error (handler-case (crypto:digest-length :error) (crypto:unsupported-digest () :ok) (:no-error () :error)) :ok) (rtest:deftest produce-digest.buffer-space (let ((sequence (make-array 0 :element-type '(unsigned-byte 8)))) (dolist (digest (crypto:list-all-digests) :ok) (let* ((digest-length (crypto:digest-length digest)) (buffer (make-array (1- digest-length) :element-type '(unsigned-byte 8)))) (handler-case (crypto:digest-sequence digest sequence :digest buffer :digest-start 0) (crypto:insufficient-buffer-space () :ok) (:no-error () (return :error)))))) :ok) (rtest:deftest produce-digest.using-buffers (let ((sequence (make-array 0 :element-type '(unsigned-byte 8)))) (dolist (digest (crypto:list-all-digests) :ok) (let* ((digest-length (crypto:digest-length digest)) (buffer (make-array digest-length :element-type '(unsigned-byte 8))) (returned (crypto:digest-sequence digest sequence :digest buffer :digest-start 0))) (unless (eq returned buffer) (return :error))))) :ok) #.(loop for digest in (crypto:list-all-digests) collect `(rtest:deftest ,digest (run-test-vector-file ',digest *digest-tests*) t) into forms finally (return `(progn ,@forms))) #.(loop for digest in (crypto:list-all-digests) collect `(rtest:deftest ,(intern (format nil "~A/~A" digest '#:incremental)) (run-test-vector-file ',digest *digest-incremental-tests*) t) into forms finally (return `(progn ,@forms))) #.(loop for digest in (crypto:list-all-digests) collect `(rtest:deftest ,(intern (format nil "~A/~A" digest '#:block-buffering)) (let* ((sequences (mapcar (lambda (s) (coerce s 'nibbles:simple-octet-vector)) '(#(71 69 84) #(10) #(10) #(10) #(10) #(120 45 97 109 122 45 100 97 116 101 58) #(84 117 101 44 32 50 54 32 74 117 110 32 50) #(48 49 50 32 49 55 58 50 49 58 51) #(57 32 71 77 84) #(10) #(47 120 47 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97 97)))) (incremental-digest (ironclad:make-digest ',digest)) (incremental-result (dolist (s sequences (ironclad:produce-digest incremental-digest)) (ironclad:update-digest incremental-digest s))) (one-shot-result (ironclad:digest-sequence ',digest (apply 'concatenate 'nibbles:simple-octet-vector sequences)))) (equalp incremental-result one-shot-result)) t) into forms finally (return `(progn ,@forms))) #.(if (boundp '*digest-stream-tests*) (loop for digest in (crypto:list-all-digests) collect `(rtest:deftest ,(intern (format nil "~A/~A" digest '#:stream)) (run-test-vector-file ',digest *digest-stream-tests*) t) into forms finally (return `(progn ,@forms))) nil) #.(loop for digest in (crypto:list-all-digests) collect `(rtest:deftest ,(intern (format nil "~A/~A" digest '#:reinitialize-instance)) (run-test-vector-file ',digest *digest-reinitialize-instance-tests*) t) into forms finally (return `(progn ,@forms))) #.(if (boundp '*digest-fill-pointer-tests*) (loop for digest in (crypto:list-all-digests) collect `(rtest:deftest ,(intern (format nil "~A/~A" digest '#:fill-pointer)) (run-test-vector-file ',digest *digest-fill-pointer-tests*) t) into forms finally (return `(progn ,@forms))) nil) (rtest:deftest digests.crypto-package (every #'(lambda (s) (and (eq (symbol-package s) (find-package :ironclad)) (eq (nth-value 1 (find-symbol (symbol-name s) (find-package :ironclad))) :external))) (crypto:list-all-digests)) t) (rtest:deftest clean-symbols.digest (loop with n-digests = (length (crypto:list-all-digests)) for s being each symbol of :crypto when (crypto::digestp s) count s into computed-n-digests finally (return (= n-digests computed-n-digests))) t) (rtest:deftest copy-digest.null (dolist (digest (crypto:list-all-digests) t) (let* ((original (crypto:make-digest digest)) (copy (crypto:copy-digest original))) ;; Ideally, here we'd also test that'd we'd properly copied ;; everything (we would probably also UPDATE-DIGEST ORIGINAL a bit ;; first, to ensure that we weren't just creating an entirely new ;; digest as our copy). But that requires MOP smarts or separate ;; tests for every digest we support. Ugh--at least for the ;; latter. (when (eq original copy) (return nil)))) t) (rtest:deftest copy-digest.copy (dolist (digest (crypto:list-all-digests) t) (let* ((original (crypto:make-digest digest)) (copy (crypto:make-digest digest))) ;; Make sure we return the object getting passed in. ;; ;; Ideally, here we'd also test that'd we'd properly copied ;; everything (we would probably also UPDATE-DIGEST ORIGINAL a bit ;; first, to ensure that we weren't just creating an entirely new ;; digest as our copy). But that requires MOP smarts or separate ;; tests for every digest we support. Ugh--at least for the ;; latter. (unless (eq (crypto:copy-digest original copy) copy) (return nil)))) t) (rtest:deftest copy-digest.error (dolist (digest (crypto:list-all-digests) t) (let* ((original (crypto:make-digest digest))) (handler-case (crypto:copy-digest original (make-array 10)) (error () nil) (:no-error () (return nil))))) t) ironclad_0.33.0/testing/test-vectors/padding.lisp0000644000175000017500000000115111761302200017036 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; padding.lisp (in-package :crypto-tests) (rtest:deftest pkcs7-padding (loop with block-size = 16 and array = (make-array 16 :element-type '(unsigned-byte 8) :initial-element 0) and padding = (make-instance 'crypto::pkcs7-padding) for i from 0 below block-size do (crypto::add-padding-bytes padding array 0 i block-size) finally (return (dotimes (i block-size :ok) (unless (= (aref array i) (- block-size i)) (return :error))))) :ok) ironclad_0.33.0/testing/test-vectors/pkcs5.lisp0000664000175000017500000000634412222266271016502 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) ;;; Test vectors for "bare" PBKDF* are impossible to find; RSA has some, ;;; but they're tied up with other PKCS bits, making the tests a wee bit ;;; more complicated than I'd like. The ones used here are from: ;;; ;;; http://www.di-mgt.com.au/cryptoKDFs.html (defvar *password* (coerce #(#x70 #x61 #x73 #x73 #x77 #x6F #x72 #x64) '(vector (unsigned-byte 8)))) (defvar *salt* (coerce #(#x78 #x57 #x8E #x5A #x5D #x63 #xCB #x6) '(vector (unsigned-byte 8)))) (defun run-kdf-test (kdf password salt iteration-count key-length expected-key) (let ((key (ironclad:derive-key kdf password salt iteration-count key-length))) (not (mismatch key expected-key)))) (defvar *pbkdf1-key* (coerce #(#xDC #x19 #x84 #x7E #x5 #xC6 #x4D #x2F #xAF #x10 #xEB #xFB #x4A #x3D #x2A #x20) '(vector (unsigned-byte 8)))) (rtest:deftest pbkdf1 (run-kdf-test (crypto:make-kdf 'crypto:pbkdf1 :digest 'ironclad:sha1) *password* *salt* 1000 16 *pbkdf1-key*) t) (rtest:deftest pbkdf1.valid-hashes (loop with valid-hashes = '(crypto:md2 crypto:md5 crypto:sha1) for hash in (crypto:list-all-digests) when (handler-case (crypto:make-kdf 'crypto:pbkdf1 :digest hash) (error () nil) (:no-error (kdf) (declare (ignore kdf)) t)) collect hash into candidates finally (return (set-difference candidates valid-hashes))) nil) (defvar *pbkdf2-key* (coerce #(#xBF #xDE #x6B #xE9 #x4D #xF7 #xE1 #x1D #xD4 #x9 #xBC #xE2 #xA #x2 #x55 #xEC #x32 #x7C #xB9 #x36 #xFF #xE9 #x36 #x43) '(vector (unsigned-byte 8)))) (rtest:deftest pbkdf2 (run-kdf-test (crypto:make-kdf 'crypto:pbkdf2 :digest 'ironclad:sha1) *password* *salt* 2048 24 *pbkdf2-key*) t) (rtest:deftest pbkdf2-convenience (ironclad:pbkdf2-check-password *password* "PBKDF2$SHA256:1000$78578e5a5d63cb06$aa2ae650dc866dc4de4fc3c8f06eddac1abc3011a99402fbc46d7e131fac06d5") t) (rtest:deftest unsupported-kdf (handler-case (crypto:make-kdf :random-name) (crypto:unsupported-kdf () :ok) (:no-error () :error)) :ok) (rtest:deftest pbkdf1-invalid-iteration-count (handler-case (ironclad:derive-key (ironclad:make-kdf 'ironclad:pbkdf1 :digest 'ironclad:sha1) *password* *salt* -1 24) (type-error () :ok) (:no-error () :error)) :ok) (rtest:deftest pbkdf1-invalid-key-length (handler-case (ironclad:derive-key (ironclad:make-kdf 'ironclad:pbkdf1 :digest 'ironclad:sha1) *password* *salt* 2048 -1) (type-error () :ok) (:no-error () :error)) :ok) (rtest:deftest pbkdf2-invalid-iteration-count (handler-case (ironclad:derive-key (ironclad:make-kdf 'ironclad:pbkdf2 :digest 'ironclad:sha1) *password* *salt* -1 24) (type-error () :ok) (:no-error () :error)) :ok) (rtest:deftest pbkdf2-invalid-key-length (handler-case (ironclad:derive-key (ironclad:make-kdf 'ironclad:pbkdf2 :digest 'ironclad:sha1) *password* *salt* 2048 -1) (type-error () :ok) (:no-error () :error)) :ok) ironclad_0.33.0/testing/test-vectors/scrypt.lisp0000644000175000017500000000452212050566356017001 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) ;;; Test vectors based on calling crypto_scrypt library function in ;;; the original scrypt utility. (defvar *scrypt1-password* (coerce #(112 97 115 115 119 111 114 100) '(vector (unsigned-byte 8)))) (defvar *scrypt1-salt* (coerce #(115 97 108 116) '(vector (unsigned-byte 8)))) (defvar *scrypt1-key* (coerce #(116 87 49 175 68 132 243 35 150 137 105 237 162 137 174 238 0 91 89 3 172 86 30 100 165 172 161 33 121 123 247 115) '(vector (unsigned-byte 8)))) ;; The parameters for this test can easily cause an attempt to allocate ;; a vector of length greater than ARRAY-DIMENSION-LIMIT. Try to avoid ;; such a scenario. This is not exhaustive; if other implementations ;; run into problems, we can try expanding this conditional and/or ;; adjusting the scrypt implementation. #+x86-64 (rtest:deftest scryptkdf1 (run-kdf-test (crypto:make-kdf 'crypto:scrypt-kdf :N 16384 :r 8 :p 1) *scrypt1-password* *scrypt1-salt* 1000 (length *scrypt1-key*) *scrypt1-key*) t) (defvar *scrypt2-password* (coerce #(112 97 115 115 119 111 114 100) '(vector (unsigned-byte 8)))) (defvar *scrypt2-salt* (coerce #(115 97 108 116) '(vector (unsigned-byte 8)))) (defvar *scrypt2-key* (coerce #(243 198 84 124 73 207 248 197 175 189 52 186 30 224 136 138 229 99 59 58 111 136 95 54 139 227 241 159 14 126 231 215) '(vector (unsigned-byte 8)))) ;; Avoid issues around ARRAY-DIMENSION-LIMIT. #+x86-64 (rtest:deftest scryptkdf2 (run-kdf-test (crypto:make-kdf 'crypto:scrypt-kdf :N 16384 :r 8 :p 2) *scrypt2-password* *scrypt2-salt* 1000 (length *scrypt2-key*) *scrypt2-key*) t) (defvar *scrypt3-password* (coerce #(112 97 115 115 119 111 114 100) '(vector (unsigned-byte 8)))) (defvar *scrypt3-salt* (coerce #(115 97 108 116) '(vector (unsigned-byte 8)))) (defvar *scrypt3-key* (coerce #(136 189 94 219 82 209 221 0 24 135 114 173 54 23 18 144 34 78 116 130 149 37 177 141 115 35 165 127 145 150 60 55) '(vector (unsigned-byte 8)))) (rtest:deftest scryptkdf3 (run-kdf-test (crypto:make-kdf 'crypto:scrypt-kdf :N 16 :r 100 :p 100) *scrypt3-password* *scrypt3-salt* 1000 (length *scrypt3-key*) *scrypt3-key*) t) ironclad_0.33.0/testing/test-vectors/ironclad.lisp0000644000175000017500000000073411761302200017231 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- ;;;; ironclad.lisp -- tests for non-cryptography functionality (in-package :crypto-tests) (rtest:deftest quotationp.1 (crypto::quotationp '(quote foo)) t) (rtest:deftest quotationp.2 (crypto::quotationp '(quote foo bar)) nil) (rtest:deftest unquote.1 (crypto::unquote (quote foo)) foo) (rtest:deftest unquote.2 (crypto::unquote 2) 2) (rtest:deftest unquote.3 (crypto::unquote '#1=(list 'foo 'bar)) #1#) ironclad_0.33.0/testing/test-vectors/prng-tests.lisp0000664000175000017500000000036112067650243017557 0ustar00;;;; -*- mode: lisp; indent-tabs-mode: nil -*- (in-package :crypto-tests) (rtest:deftest :prng-fortuna (run-test-vector-file :prng *prng-tests*) t) ;; (random-data (make-prng :fortuna :seed (coerce #(0) 'simple-octet-vector)) 1) #(28)) ironclad_0.33.0/testing/test-vectors/crc24.testvec0000644000175000017500000000066111305364032017065 0ustar00;;; standard tests for crc24 (:digest-test #a"" #h"b704ce") (:digest-test #a"a" #h"f25713") (:digest-test #a"abc" #h"ba1c7b") (:digest-test #a"message digest" #h"dbf0b6") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"ed3665") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"4662cd") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"8313bb") ironclad_0.33.0/testing/test-vectors/crc32.testvec0000644000175000017500000000067711305364032017073 0ustar00;;; standard tests for crc32 (:digest-test #a"" #h"00000000") (:digest-test #a"a" #h"e8b7be43") (:digest-test #a"abc" #h"352441c2") (:digest-test #a"message digest" #h"20159d7f") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"4c2750bd") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"1fc2e6d2") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"7ca94a72") ironclad_0.33.0/testing/test-vectors/adler32.testvec0000644000175000017500000000070111305364032017377 0ustar00;;; standard tests for adler32 (:digest-test #a"" #h"00000001") (:digest-test #a"a" #h"00620062") (:digest-test #a"abc" #h"024d0127") (:digest-test #a"message digest" #h"29750586") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"90860b20") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"8adb150c") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"97b61069") ironclad_0.33.0/testing/test-vectors/md2.testvec0000644000175000017500000000111111305364032016621 0ustar00(:digest-test #a"" #h"8350e5a3e24c153df2275c9f80692773") (:digest-test #a"a" #h"32ec01ec4a6dac72c0ab96fb34c0b5d1") (:digest-test #a"abc" #h"da853b0d3f88d99b30283a69e6ded6bb") (:digest-test #a"message digest" #h"ab4f496bfb2a530b219ff33031fe06b0") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"4e8ddff3650292ab5a4108c3aa47940b") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"da33def2a42df13975352846c30338cd") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"d5976f79d83d3a0dc9806c3c66f3efd8") ironclad_0.33.0/testing/test-vectors/md4.testvec0000644000175000017500000010400011305364032016624 0ustar00;;; standard tests (:digest-test #a"" #h"31d6cfe0d16ae931b73c59d7e0c089c0") (:digest-test #a"a" #h"bde52cb31de33e46245e05fbdbd6fb24") (:digest-test #a"abc" #h"a448017aaf21d8525fc10ae87aa6729d") (:digest-test #a"message digest" #h"d9130a8164549fe818874806e1c7014b") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"d79e1c308aa5bbcdeea8ed63df412da9") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"043f8582f241db351ce627e153e7f0e4") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"e33b4ddc9c38f2199c3e7b164fcc0536") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"BBD35E5215A4F49086AC51702AC8F453") (:digest-bit-test 0 #x40 63 #h"7F0784ACCCF41ED1BEFC001417DC177F") (:digest-bit-test 0 #x20 63 #h"8B32C668EA420DDD2D0D292F80209203") (:digest-bit-test 0 #x10 63 #h"1FDB0B6005B3FEBB4CCABAB9016E659F") (:digest-bit-test 0 #x08 63 #h"88BD1D0ABB04C65F942F381C1D10B4E8") (:digest-bit-test 0 #x04 63 #h"6D11C1CE327B4AF3219B8E7127F77F87") (:digest-bit-test 0 #x02 63 #h"ABD2C0F985A49416DD93353269CB8B6E") (:digest-bit-test 0 #x01 63 #h"D5ECE790332E2980B265A6C4ADA4B313") (:digest-bit-test 1 #x80 62 #h"1FE57101A89843C127B807A415E27174") (:digest-bit-test 1 #x40 62 #h"7A1DB4C6C50BA59D451FB3E8842B2E24") (:digest-bit-test 1 #x20 62 #h"C9241D9976E8794792CF7C752EA912A4") (:digest-bit-test 1 #x10 62 #h"BCDCA2DD3C1CC599328FDD433F65E5D6") (:digest-bit-test 1 #x08 62 #h"633ED249ECDDD2162778A3FB9C2101A9") (:digest-bit-test 1 #x04 62 #h"7B461DF7AFB13186981A8683102C440B") (:digest-bit-test 1 #x02 62 #h"F00EC0E84F45D2E8F1C3D098963BB556") (:digest-bit-test 1 #x01 62 #h"FBB41C20E1F771F8CF941DE587D46483") (:digest-bit-test 2 #x80 61 #h"CAE77290924AD0AF75C2040742D9A1DC") (:digest-bit-test 2 #x40 61 #h"CA066A24C77C269F054C1C5878E4E80C") (:digest-bit-test 2 #x20 61 #h"A1640FC6F5D39B124622C479995AF67D") (:digest-bit-test 2 #x10 61 #h"B88105189B7FB16E6014DC734AF561D6") (:digest-bit-test 2 #x08 61 #h"2285357FAE38EE229777CF2785B97281") (:digest-bit-test 2 #x04 61 #h"107E5822CB98AFB516A5B447C7727978") (:digest-bit-test 2 #x02 61 #h"4B710DF5F98A1497BE0807692F8FB1DB") (:digest-bit-test 2 #x01 61 #h"F26FBF349B2373A944684CE0EE801E20") (:digest-bit-test 3 #x80 60 #h"F7A42E8770042DF7710E016FC46658C0") (:digest-bit-test 3 #x40 60 #h"293ACF948761A14FC464EF1500DE9C3F") (:digest-bit-test 3 #x20 60 #h"BC7893BB2CF21E9EC9334AC6765EBF2B") (:digest-bit-test 3 #x10 60 #h"45B42B939CF8F1FBB57C5C98837E8B38") (:digest-bit-test 3 #x08 60 #h"4D0F25D2E48D8720D1E6E132DC6B07BF") (:digest-bit-test 3 #x04 60 #h"F6547862D7627CB5B0AB492DEBF82084") (:digest-bit-test 3 #x02 60 #h"671FC792B2855699762FE44EDFBB1F49") (:digest-bit-test 3 #x01 60 #h"CA1A6A7C4C83C3F2B784A266DED6B5DE") (:digest-bit-test 4 #x80 59 #h"07081DEA52B67A10352400DD2E493B5E") (:digest-bit-test 4 #x40 59 #h"8EEA6F82A654706114819BA76492B02C") (:digest-bit-test 4 #x20 59 #h"77F832636B2A4F548F9561B50F00D04F") (:digest-bit-test 4 #x10 59 #h"D85CC14ABB85E1AF9BB0031FD1A0F4E5") (:digest-bit-test 4 #x08 59 #h"8477AD6B25C8329A8E9961E918E509A9") (:digest-bit-test 4 #x04 59 #h"3772EFC29E9B49E745B244C0533208BF") (:digest-bit-test 4 #x02 59 #h"9672F5178E99A1F2D0EE8AAD91773C83") (:digest-bit-test 4 #x01 59 #h"CD286A0381B2B92CC8B5D97B3724B44A") (:digest-bit-test 5 #x80 58 #h"22F9C5DAC3B12BFEDEBE79D5A92CD71E") (:digest-bit-test 5 #x40 58 #h"0CE9433431E2C994C3B3E8C313AF7E53") (:digest-bit-test 5 #x20 58 #h"BF26B54EDCD513D58812A4B098D782C5") (:digest-bit-test 5 #x10 58 #h"63390175CB490D30165690B47F984DBC") (:digest-bit-test 5 #x08 58 #h"93B57559DDD377AF5C8FA4A588B7E403") (:digest-bit-test 5 #x04 58 #h"537DC75DD559E080AACA55921A3CB5E6") (:digest-bit-test 5 #x02 58 #h"6AEBF1038DF6894C14EFD3F8B868D391") (:digest-bit-test 5 #x01 58 #h"07EF953031EC4EFDD007A7445B13016D") (:digest-bit-test 6 #x80 57 #h"D19B3DA81B887021117AACE297455878") (:digest-bit-test 6 #x40 57 #h"889031546AE1F9195E824D5257E9BF99") (:digest-bit-test 6 #x20 57 #h"8944E2D679925948C153821926508797") (:digest-bit-test 6 #x10 57 #h"979E317C4EEB567F419289872669B7B6") (:digest-bit-test 6 #x08 57 #h"17781CF3EF732E6848B76239B89B8765") (:digest-bit-test 6 #x04 57 #h"12AC5D1727F09C1E8EF91352EDCB499F") (:digest-bit-test 6 #x02 57 #h"7873D8BCC863F163F535468F804ABF12") (:digest-bit-test 6 #x01 57 #h"3A1AEF9C29E5208BB6153148EC45DA3B") (:digest-bit-test 7 #x80 56 #h"1DCF200C9E0595290506EE6DE6C80347") (:digest-bit-test 7 #x40 56 #h"244B3E0B1EF717E2684947609FCF0F5C") (:digest-bit-test 7 #x20 56 #h"B6ED2988D01B395A48A554BBDCD2235A") (:digest-bit-test 7 #x10 56 #h"4E5066C4CF9445BF14C96B9ADB0CBBC0") (:digest-bit-test 7 #x08 56 #h"D734B03840FA5D4815047D384AE8F957") (:digest-bit-test 7 #x04 56 #h"0C3E357ED652686CA8ACC945A8A9399B") (:digest-bit-test 7 #x02 56 #h"4A96F69D1F332D13C53B75EC0EC9A98C") (:digest-bit-test 7 #x01 56 #h"C7E506B3C26B016FB58B93C6DC24455C") (:digest-bit-test 8 #x80 55 #h"5341A52A09F29AA025C586C6F30871CD") (:digest-bit-test 8 #x40 55 #h"BCA78320EA99A7EF42F5C50470FB170D") (:digest-bit-test 8 #x20 55 #h"6322D5E6AF7AB230A6B95029C052E15D") (:digest-bit-test 8 #x10 55 #h"1F71B30932FBCC899A96179587162C21") (:digest-bit-test 8 #x08 55 #h"DF6BC482AF780F888EF4816889AD3F72") (:digest-bit-test 8 #x04 55 #h"90EF7853DAA5A1FE63DEBAD8EE1244C6") (:digest-bit-test 8 #x02 55 #h"B25B09E34F72C81E03BA18A82861A281") (:digest-bit-test 8 #x01 55 #h"67F251CB476F65AD4FA54271BCC2D5DC") (:digest-bit-test 9 #x80 54 #h"F38437C6EA09FEB3D408685F6ACB14E5") (:digest-bit-test 9 #x40 54 #h"ACEC89994059ACA9F7969E349F43A078") (:digest-bit-test 9 #x20 54 #h"22B584E43A310FE4A95D008AF6F53578") (:digest-bit-test 9 #x10 54 #h"555694DBA0468B7E47699C195F14BAD4") (:digest-bit-test 9 #x08 54 #h"00A3F64332DCF7F56C573EC1F69B7941") (:digest-bit-test 9 #x04 54 #h"BA0C7968D94657547F7BAC324D75ECFE") (:digest-bit-test 9 #x02 54 #h"D670D44E05180676F3F130B22A210701") (:digest-bit-test 9 #x01 54 #h"F7A6A4776F5AEE80DD9E799628312E67") (:digest-bit-test 10 #x80 53 #h"5C244D2D5B727BB5755F727366453FA9") (:digest-bit-test 10 #x40 53 #h"1E3557F5CCA3A449BAC3C975BBB929CA") (:digest-bit-test 10 #x20 53 #h"29E48D6E694AA6B88816DF35AD0EBA20") (:digest-bit-test 10 #x10 53 #h"611AE1550A2163E622EA480E70B0B76A") (:digest-bit-test 10 #x08 53 #h"FB2BDC98CF0C8ACBDB83DB241E8EB776") (:digest-bit-test 10 #x04 53 #h"B58BCD699DEE5DAA2D7571AF100B8068") (:digest-bit-test 10 #x02 53 #h"EB019E3CFB9C824227F958688A39A8BD") (:digest-bit-test 10 #x01 53 #h"2C6AF1FDAE0FCBB979FBD296F869397D") (:digest-bit-test 11 #x80 52 #h"1240B2BD883CC2E6B79851E440BEE571") (:digest-bit-test 11 #x40 52 #h"7F4A696A12E446D750361491459C3366") (:digest-bit-test 11 #x20 52 #h"63DD0E996BD33ED0AC66B10363878EA2") (:digest-bit-test 11 #x10 52 #h"D6E9605298D44D3C1544F27E5F25DB99") (:digest-bit-test 11 #x08 52 #h"476C4D1C167B5178A5B1FD7E32433DBC") (:digest-bit-test 11 #x04 52 #h"EBB2643274CBB654258610B16F9A86D8") (:digest-bit-test 11 #x02 52 #h"17CCF469B50EA792EF05FC3BBFDCF71D") (:digest-bit-test 11 #x01 52 #h"C1F9C8646DB996F208D14A7F68AA8169") (:digest-bit-test 12 #x80 51 #h"32BB562417D57CCE8232D64247B9F59D") (:digest-bit-test 12 #x40 51 #h"8AE16E4ACC1DDBA9A94A584EA0D2E3F9") (:digest-bit-test 12 #x20 51 #h"07D272C782E6CAB67EFE5B1A9E6AFF9E") (:digest-bit-test 12 #x10 51 #h"095225F76964298D4526399E2B256AE3") (:digest-bit-test 12 #x08 51 #h"5FD4EC9766AAB9298DF74B3BB309B2F8") (:digest-bit-test 12 #x04 51 #h"AE1CBA144FDC928C587DFDB66EE195F8") (:digest-bit-test 12 #x02 51 #h"0BBC13567EC582FFBFBD284EC559935D") (:digest-bit-test 12 #x01 51 #h"E4EEA7ED1354FF9C991128EA6EF05A37") (:digest-bit-test 13 #x80 50 #h"92256984D50F23C70211F228C33125C6") (:digest-bit-test 13 #x40 50 #h"F7CB16B72B1917924C3D27078ED46D14") (:digest-bit-test 13 #x20 50 #h"82061087C8424761ECCB8A33427EFD71") (:digest-bit-test 13 #x10 50 #h"513B968E2DC615D856D8A487459C08DC") (:digest-bit-test 13 #x08 50 #h"78C86BCCA923AF0107DC20D04143356F") (:digest-bit-test 13 #x04 50 #h"B62193B828B5A1B5E79C85230074A503") (:digest-bit-test 13 #x02 50 #h"6D3607862B7A14C74B2C3FC264FF938F") (:digest-bit-test 13 #x01 50 #h"6C268B65574C7E71B1B33A9FBA073028") (:digest-bit-test 14 #x80 49 #h"6EAF3875811D115C423CBDB782CEDB53") (:digest-bit-test 14 #x40 49 #h"76733B1C620219C48B3949EB79BB6162") (:digest-bit-test 14 #x20 49 #h"07C291BFECC39263CE9BEBB61D4F0151") (:digest-bit-test 14 #x10 49 #h"3561F4C91950702DA3C446A3FC608D47") (:digest-bit-test 14 #x08 49 #h"DFAAD6F42AD6D1EA80D18482825D7642") (:digest-bit-test 14 #x04 49 #h"67A4CB746083176B3F0196CFFF14C784") (:digest-bit-test 14 #x02 49 #h"B8326FCD6202593CFEEFEE4EBEF2A6D4") (:digest-bit-test 14 #x01 49 #h"7469B5EF25A906073CE985D8E9B6E3A6") (:digest-bit-test 15 #x80 48 #h"CADE494EF95747A696C914974F8529F9") (:digest-bit-test 15 #x40 48 #h"4C39AEF3783EDFB45FEDF0B24AA9C051") (:digest-bit-test 15 #x20 48 #h"FA04E0FBB65C7CCCD217547D03095F02") (:digest-bit-test 15 #x10 48 #h"54084EBCB91B8135981606FE7B96AB3B") (:digest-bit-test 15 #x08 48 #h"7ED51DDA7ED82A52AD83A25B3488E394") (:digest-bit-test 15 #x04 48 #h"271DD7546EB6E370058B1D2C8BF80749") (:digest-bit-test 15 #x02 48 #h"FE50CC119179A9D07548E39EB346A88A") (:digest-bit-test 15 #x01 48 #h"C4F54F5EAC3CE0368A804C9E271118BF") (:digest-bit-test 16 #x80 47 #h"46F0F8D5CC4F5DAEA65F083CDC60E1DB") (:digest-bit-test 16 #x40 47 #h"67D344764EC49EB384614BB8F32B4D07") (:digest-bit-test 16 #x20 47 #h"B524BF3E80AA6EDE797C8AC992CB06AE") (:digest-bit-test 16 #x10 47 #h"051B1B738DDD2F4704F7C56901879D6A") (:digest-bit-test 16 #x08 47 #h"D0337757E0A97C6F073FEE23B9338137") (:digest-bit-test 16 #x04 47 #h"41CF88BD76E6589EB3F779992BCC8646") (:digest-bit-test 16 #x02 47 #h"D2D1C2A673C7D26719EA7D06E54930F8") (:digest-bit-test 16 #x01 47 #h"0974DA79F1825FF4C0D96974460B1D78") (:digest-bit-test 17 #x80 46 #h"B3141AA98A4C3C52AE7BED0FB3E6DA02") (:digest-bit-test 17 #x40 46 #h"E955F5F222DFC412049CF0CB5DCDA8BA") (:digest-bit-test 17 #x20 46 #h"67FA38FCC938149E2434FDBF4094925A") (:digest-bit-test 17 #x10 46 #h"EF8ED24DCA3CE16EF463B9B4BF432F45") (:digest-bit-test 17 #x08 46 #h"0DE6EE7CDB1AB6DAB4244B0321177216") (:digest-bit-test 17 #x04 46 #h"8F584FC4B32AF8DD020240AE7CDEEBD7") (:digest-bit-test 17 #x02 46 #h"430939F51E8BB6A610C9E8B5F98D111A") (:digest-bit-test 17 #x01 46 #h"50E64EBBA2706F9D341879A04448EAA9") (:digest-bit-test 18 #x80 45 #h"42A07CE420358C8F6098396CE22CA993") (:digest-bit-test 18 #x40 45 #h"0D52BB5B089ABE136BB4AB593D03D57C") (:digest-bit-test 18 #x20 45 #h"5ED8617595F3200E7CF6B8326397AA00") (:digest-bit-test 18 #x10 45 #h"942754C7D535EF0EF553F5450125A831") (:digest-bit-test 18 #x08 45 #h"4587B8BFF1F599A478E4A428C19D5615") (:digest-bit-test 18 #x04 45 #h"1397C38048BCC3AA66B969077F1C62D2") (:digest-bit-test 18 #x02 45 #h"7A9DC04D89B0521D50D05CAAA83AE2EF") (:digest-bit-test 18 #x01 45 #h"A5D4603311C1970EC972AD190F0827C3") (:digest-bit-test 19 #x80 44 #h"DA6E4729A1911A639B3649CABCEC92F5") (:digest-bit-test 19 #x40 44 #h"EBF6599665AC5BEEA657C4E9F54C853A") (:digest-bit-test 19 #x20 44 #h"6BC6C2D4CD06FEF687D3C19C102AC435") (:digest-bit-test 19 #x10 44 #h"70BDFA5136C02554261EF1CBC266941D") (:digest-bit-test 19 #x08 44 #h"F788D088B95B7F560DC723E613053D82") (:digest-bit-test 19 #x04 44 #h"2E954672495564949E25C2207F68B2CC") (:digest-bit-test 19 #x02 44 #h"9AFD84C38D649CC61312C2892081CEE6") (:digest-bit-test 19 #x01 44 #h"3F59B60AD8ADAF8D15E35661B06C191F") (:digest-bit-test 20 #x80 43 #h"2A4451BF917B982FE6F2F611133D6145") (:digest-bit-test 20 #x40 43 #h"86219233D1CF5CC8461E7B7B67021258") (:digest-bit-test 20 #x20 43 #h"882C712BCD8333C7065B52DB7BC19A5A") (:digest-bit-test 20 #x10 43 #h"02A043BDB1922E81BD9ED074B5550C9B") (:digest-bit-test 20 #x08 43 #h"E95F2180F9BDA9680609B5DACC35D438") (:digest-bit-test 20 #x04 43 #h"76C05C78F0E28BD39BDEECB065DE31C8") (:digest-bit-test 20 #x02 43 #h"6413344601FD3B1E8539151B2F688A87") (:digest-bit-test 20 #x01 43 #h"5A6E81FC927131D1437C74DBC6BCD2C8") (:digest-bit-test 21 #x80 42 #h"16727D48488DC7B1C55028B9200DC96F") (:digest-bit-test 21 #x40 42 #h"24926A61E0810C361878588921E0E3A9") (:digest-bit-test 21 #x20 42 #h"0923DE3419F9F268C7C2A6D5DAD7D497") (:digest-bit-test 21 #x10 42 #h"8D598E2B0F8EEDB5B04E6A33D1CE98CC") (:digest-bit-test 21 #x08 42 #h"5AF6606098F0E22B3DD17BC1077A62E8") (:digest-bit-test 21 #x04 42 #h"62B5D8D3B14FE9C452BBF2AADF3B81EA") (:digest-bit-test 21 #x02 42 #h"43D78C46015F1AB109D2FE30052AAE6F") (:digest-bit-test 21 #x01 42 #h"B5ED66241DD79682BB0A9806EF662FC7") (:digest-bit-test 22 #x80 41 #h"619974CCD395FCFE5CF02FF3BA662315") (:digest-bit-test 22 #x40 41 #h"CDDE837F7461E55D0BF9A61DBC6801E1") (:digest-bit-test 22 #x20 41 #h"AB559653C6827C329338AD38FD747047") (:digest-bit-test 22 #x10 41 #h"A46FE12C4FBD38285B5FF154EBF80E61") (:digest-bit-test 22 #x08 41 #h"C9713B0A4429253231587565599FF94B") (:digest-bit-test 22 #x04 41 #h"75AEEFB4108210DFE68EFEB3AFB2E7AE") (:digest-bit-test 22 #x02 41 #h"D4282199C2600B098AF5CF4F6167A00C") (:digest-bit-test 22 #x01 41 #h"32054517D277F032998BFF444FE95DA2") (:digest-bit-test 23 #x80 40 #h"A49093F9C4F3C008CF08557BE76D27CD") (:digest-bit-test 23 #x40 40 #h"9C7806F3E44746AFE28513332D58F9A4") (:digest-bit-test 23 #x20 40 #h"EEC9CF74E56407537B797BAD535E164C") (:digest-bit-test 23 #x10 40 #h"7A4E8818E396894348A6BB9B9532621A") (:digest-bit-test 23 #x08 40 #h"8DABC9FE2D737DC37706C41B50575215") (:digest-bit-test 23 #x04 40 #h"34E835F14E4EC40343708E84EA163E8D") (:digest-bit-test 23 #x02 40 #h"4D8D1E037F329D64ED0752AAF0477AA7") (:digest-bit-test 23 #x01 40 #h"7497441DEB00A263D5335A132A4B8FA6") (:digest-bit-test 24 #x80 39 #h"4C599D8C2BD2572FB69C9A3FE69889AE") (:digest-bit-test 24 #x40 39 #h"4DE04150DC49AE121D39F3192B720575") (:digest-bit-test 24 #x20 39 #h"AC0EDA6732FAF6C03A0458A4E9637F83") (:digest-bit-test 24 #x10 39 #h"3B1D47A30271AFF9DA567FDA4BBBDF7C") (:digest-bit-test 24 #x08 39 #h"8E1A86357FF873D1C175C1C836F66364") (:digest-bit-test 24 #x04 39 #h"93E93726DC16D8557A49736880224619") (:digest-bit-test 24 #x02 39 #h"A4A8AADEF87556D60B5750C81048A2E7") (:digest-bit-test 24 #x01 39 #h"2398942DA53D994A7E4DD68F91676C72") (:digest-bit-test 25 #x80 38 #h"35A88E3124467CED6BF66BE8ABD96F93") (:digest-bit-test 25 #x40 38 #h"CADD29296AE24866EB9F6647B00820D9") (:digest-bit-test 25 #x20 38 #h"1D6636BCC96FB7A658168D36D8F5F457") (:digest-bit-test 25 #x10 38 #h"C92F5CAC84C30B3ABD69FCFA6B0661C6") (:digest-bit-test 25 #x08 38 #h"DF5FB3B4C2060A348F75E8E23881E195") (:digest-bit-test 25 #x04 38 #h"188AA80B6C337DF9D449B82B15986E3F") (:digest-bit-test 25 #x02 38 #h"9D737F50026D12240D4DB709B46D58E1") (:digest-bit-test 25 #x01 38 #h"8EEA8966AB0BFFE09EA95741E77496CE") (:digest-bit-test 26 #x80 37 #h"DD5C3855B1AFE1CB95F0B089D3EA4998") (:digest-bit-test 26 #x40 37 #h"15B441917B86443307ACBEB17903E28A") (:digest-bit-test 26 #x20 37 #h"8B9AC04A7359CAB27ECE8367E66EB1DD") (:digest-bit-test 26 #x10 37 #h"7706D55F0079CB4884358C6B4BCEA8DD") (:digest-bit-test 26 #x08 37 #h"2AABDD8E5BBBB2C71A5947EDA4E82250") (:digest-bit-test 26 #x04 37 #h"692E8799F4600207583CA843C28AF287") (:digest-bit-test 26 #x02 37 #h"7CF376D748E12F38AA598FABBA9CCBBE") (:digest-bit-test 26 #x01 37 #h"5CF3005A49D12B590F8D66651DEA3DD5") (:digest-bit-test 27 #x80 36 #h"832D8A7F23D849DE46AE6B242C7AB2CD") (:digest-bit-test 27 #x40 36 #h"C986FC62A1958C43A83C865FE58FEB0B") (:digest-bit-test 27 #x20 36 #h"42C81E6975949A88C1D290731A8D91CF") (:digest-bit-test 27 #x10 36 #h"D5C3F7DB76B70ACB2D61A5C7EAF57B63") (:digest-bit-test 27 #x08 36 #h"78B48D47312640F3B1B6E7168E051B5F") (:digest-bit-test 27 #x04 36 #h"D70E5706E48CBC4E89A7A03C9739A5BA") (:digest-bit-test 27 #x02 36 #h"7A83FB7A2EDCF2567534B2C6894597BE") (:digest-bit-test 27 #x01 36 #h"69EFEA0635D5E0DA3BB5E8DAC6450F15") (:digest-bit-test 28 #x80 35 #h"2CEF430452F547213E0060E439732BC9") (:digest-bit-test 28 #x40 35 #h"41504BD226814D1B8CE5A8E55BCEA2F2") (:digest-bit-test 28 #x20 35 #h"3B86CD11128F3E0CC02A6877BA972131") (:digest-bit-test 28 #x10 35 #h"DDC565ADB0FB192F8ECA2BA88A8A1617") (:digest-bit-test 28 #x08 35 #h"3BA992E7472A287F5443A4B7F2221248") (:digest-bit-test 28 #x04 35 #h"0FC4DC0CE3175D60460DE92ADAA30D2A") (:digest-bit-test 28 #x02 35 #h"D8CDD5ABF212C71965484392BC6C124B") (:digest-bit-test 28 #x01 35 #h"3A717676580551078A52BF501C600A30") (:digest-bit-test 29 #x80 34 #h"865C8091BACBCF8769BBA30B0D632F7B") (:digest-bit-test 29 #x40 34 #h"4DCFF6335B297771DF356997422BC0D4") (:digest-bit-test 29 #x20 34 #h"624302CC3FCCE2934535FBAF1569066D") (:digest-bit-test 29 #x10 34 #h"72B97C91164BC5B4B44ED53A641EA3E0") (:digest-bit-test 29 #x08 34 #h"93CE2501503C24AAF380273EC5CEFD1F") (:digest-bit-test 29 #x04 34 #h"ABF8F5DDE8FEC0150A1862E39F8D500E") (:digest-bit-test 29 #x02 34 #h"256ACF418C6EF3A796421D1915ED8361") (:digest-bit-test 29 #x01 34 #h"D52D6A384778AAE72B7BC381D32E9D1D") (:digest-bit-test 30 #x80 33 #h"ABA10D2AC6437B7D452D699174AF8804") (:digest-bit-test 30 #x40 33 #h"B5800387557A4F78044719FD8BD3473C") (:digest-bit-test 30 #x20 33 #h"AB949036594E0ECE4C24046D93E0D412") (:digest-bit-test 30 #x10 33 #h"43BFF184762DC63887F60148D76E48DC") (:digest-bit-test 30 #x08 33 #h"5D9AEC1DBF3F18CD12528436FF5FD2CF") (:digest-bit-test 30 #x04 33 #h"268560A41F44D97308C27C757899AD18") (:digest-bit-test 30 #x02 33 #h"831ED0FB77AE0A814D03475D679BDAF8") (:digest-bit-test 30 #x01 33 #h"B9D26E4AB351EFCD1092DE80967FFC1F") (:digest-bit-test 31 #x80 32 #h"F2A62DCF99199D49E6AEBE4F392D0C77") (:digest-bit-test 31 #x40 32 #h"A42FEB16940D4D7479D86A624999AD2A") (:digest-bit-test 31 #x20 32 #h"A5B27E702A3EDEE9946EC87E15F976BB") (:digest-bit-test 31 #x10 32 #h"BF0848C7D1B15D5229EBDC0B0BD038B3") (:digest-bit-test 31 #x08 32 #h"D2019E459B8E4F5B954AABAD128ECEFF") (:digest-bit-test 31 #x04 32 #h"A788071A087E7E4B6825F74CE8A8CADF") (:digest-bit-test 31 #x02 32 #h"2B4D686480A6379FC03D90AEB5C86F33") (:digest-bit-test 31 #x01 32 #h"E982708474DA81345710A20378CE2A67") (:digest-bit-test 32 #x80 31 #h"FF87F490B456AFE143452549C129D89E") (:digest-bit-test 32 #x40 31 #h"F69EAD65AED542643BC2560319978F38") (:digest-bit-test 32 #x20 31 #h"DBC4C1B2BB09B59D58DF6F4F62836922") (:digest-bit-test 32 #x10 31 #h"69C389886C0712456F69D0F9CF8F639F") (:digest-bit-test 32 #x08 31 #h"30BCD138CEBB7FDBA6E1F1381CD11F44") (:digest-bit-test 32 #x04 31 #h"9D996ADCCFC36B12FEFA2BE8CFABD95B") (:digest-bit-test 32 #x02 31 #h"CB406268152E14C548716F39352AC34F") (:digest-bit-test 32 #x01 31 #h"A0B04825CC109E4D76E007AA39BC6553") (:digest-bit-test 33 #x80 30 #h"8D73D3D813C14ED1C56898BA41ACCC26") (:digest-bit-test 33 #x40 30 #h"2F7321C9863B7D7379CAC8B127C00A42") (:digest-bit-test 33 #x20 30 #h"13984F531C0F8AB48AE74125EE65780A") (:digest-bit-test 33 #x10 30 #h"A610CE994AD741163460366002C4F319") (:digest-bit-test 33 #x08 30 #h"C65ED54BB67FE83D6F902D6544438C54") (:digest-bit-test 33 #x04 30 #h"013CF0DDF9A4C640D6B92CFE85B9860F") (:digest-bit-test 33 #x02 30 #h"B3762E84CB42EADE69453D81AD361A0A") (:digest-bit-test 33 #x01 30 #h"35340708EBA84A9D916F06E5C3D17FBA") (:digest-bit-test 34 #x80 29 #h"96EA5D98D41EB4C01A6AA81F98041427") (:digest-bit-test 34 #x40 29 #h"4C06D9489F80E0F3B12BE2519C75F5C0") (:digest-bit-test 34 #x20 29 #h"E46B367072C0C6686DFEB205D301DF82") (:digest-bit-test 34 #x10 29 #h"CDE9A045C3C57841CCDE5813DEB4275E") (:digest-bit-test 34 #x08 29 #h"BA8EC409FAD3F4A2ED51EE907BB5AC01") (:digest-bit-test 34 #x04 29 #h"DF72074C648A095D15EC6DADBF3C5925") (:digest-bit-test 34 #x02 29 #h"D6A4A77C409D399B571F39525C32A6CA") (:digest-bit-test 34 #x01 29 #h"91A1E9545A7429F3ACE04996DEB2A749") (:digest-bit-test 35 #x80 28 #h"40E2605929B2056A0E15EF339793B9A8") (:digest-bit-test 35 #x40 28 #h"C97528C25B98C098BDBAAD1B36BE3837") (:digest-bit-test 35 #x20 28 #h"D736C0CE9B37F201E25A8AEA4FEB7327") (:digest-bit-test 35 #x10 28 #h"9E353F7709472BA386A95EDCCF4827C4") (:digest-bit-test 35 #x08 28 #h"33E38ECB8F90F6D5BAA5EA7741202583") (:digest-bit-test 35 #x04 28 #h"F5E8DAD1164591B8E7E1680E5B0774C7") (:digest-bit-test 35 #x02 28 #h"31D22E6286675D1FB3FFE1FA39F9AC20") (:digest-bit-test 35 #x01 28 #h"9C362C0933D1212FB82530AEA8850980") (:digest-bit-test 36 #x80 27 #h"4F21AC13177670F938372E5C4F27F2CF") (:digest-bit-test 36 #x40 27 #h"EFE719571D6D7A40C9E59A25CCD1E332") (:digest-bit-test 36 #x20 27 #h"CA80D2DA774FBD460B1F9DE81DED27FA") (:digest-bit-test 36 #x10 27 #h"518913DBF627D354FC84240CD094A617") (:digest-bit-test 36 #x08 27 #h"BE2ADDC5E1985BAB750230CBF404E57F") (:digest-bit-test 36 #x04 27 #h"F25486DDFCCDC3A485FB1262FEECAE55") (:digest-bit-test 36 #x02 27 #h"CD66204F6D1F1F7D9D5B3515B2020830") (:digest-bit-test 36 #x01 27 #h"FF8AE245F0C57CF41EE804F02A50F6C4") (:digest-bit-test 37 #x80 26 #h"5B51221EF27C1EEF866035355890A5E4") (:digest-bit-test 37 #x40 26 #h"FE730AF0F19A1A5989CE0A09F4C0E183") (:digest-bit-test 37 #x20 26 #h"AFAC7BDAAB4EC1DD692433C6D0A7C03B") (:digest-bit-test 37 #x10 26 #h"6F2C2F536421C0B5692DA2D44C7FBD60") (:digest-bit-test 37 #x08 26 #h"51CD443D6EDBD2A9531AD8583631D31F") (:digest-bit-test 37 #x04 26 #h"FD673C736F07198D80FCC4504B5F6398") (:digest-bit-test 37 #x02 26 #h"814704B4D6E377F5E432A7AE335489D4") (:digest-bit-test 37 #x01 26 #h"265FB34FBC784919C7B8ADC667256F11") (:digest-bit-test 38 #x80 25 #h"D440BAE2B511C93CE93A29CF502FC418") (:digest-bit-test 38 #x40 25 #h"6DEA21BF7B854B7B483DBEB2960B0821") (:digest-bit-test 38 #x20 25 #h"89EB5F4BE9D4122A89012D675D284F7B") (:digest-bit-test 38 #x10 25 #h"063C5EE35961BAAC960FB49527AFC67D") (:digest-bit-test 38 #x08 25 #h"6082B4AACE19665A1D38B8DA2B79A17E") (:digest-bit-test 38 #x04 25 #h"04F028CA5F997AED87AF61BBB545C685") (:digest-bit-test 38 #x02 25 #h"12AE1D9B9B28CAA6CB087039EE8B25C8") (:digest-bit-test 38 #x01 25 #h"0C7B89B951ECB0C8BE2431FD742CEFE6") (:digest-bit-test 39 #x80 24 #h"4FBB360E60AE501CAB37E5A4F3E8C6D8") (:digest-bit-test 39 #x40 24 #h"EA31199F57786DA6D58D0B3BACBD668B") (:digest-bit-test 39 #x20 24 #h"ABA89F55D83F112F621A2501693A331E") (:digest-bit-test 39 #x10 24 #h"00956676DCF8138E1FEF0530C9E59FD0") (:digest-bit-test 39 #x08 24 #h"B932997CA40CF9D450056DE2E0234D38") (:digest-bit-test 39 #x04 24 #h"B0B54FDE61EC826AAF6941B301B9FA1D") (:digest-bit-test 39 #x02 24 #h"8FD8BC0F48BD80A5BD2B62C4800230B4") (:digest-bit-test 39 #x01 24 #h"E1B2A290E5C8F665A24B5DC022DDC12C") (:digest-bit-test 40 #x80 23 #h"8D915A468B1ADC4390DEAD2709CBFA9C") (:digest-bit-test 40 #x40 23 #h"335C558FEA3E913B1523204C628ACC5E") (:digest-bit-test 40 #x20 23 #h"D5F14992EF1BBD10438E6DE5A27222C6") (:digest-bit-test 40 #x10 23 #h"41D654B7B7DAD4AE3DE1FE69AB13A1B7") (:digest-bit-test 40 #x08 23 #h"DC4F2C360F492C0B98BA1A63A65EAA38") (:digest-bit-test 40 #x04 23 #h"4B2160C6735BDD1EA8112420414045AA") (:digest-bit-test 40 #x02 23 #h"BD2FDD88594F4A18AFD3BB660A77FA1F") (:digest-bit-test 40 #x01 23 #h"711CFCF659134FAD7333FF46119A01B0") (:digest-bit-test 41 #x80 22 #h"26191BE887BC1AFE51B6D3E92B4F88C9") (:digest-bit-test 41 #x40 22 #h"1E7B43A9C56DFFFAD29009D57F374145") (:digest-bit-test 41 #x20 22 #h"B83DE8AA13560F35120C01CDA26BA04A") (:digest-bit-test 41 #x10 22 #h"62A011815241418CD33BDA000E166087") (:digest-bit-test 41 #x08 22 #h"E04880B4DC587B9C6CE5A35408EC09D4") (:digest-bit-test 41 #x04 22 #h"107D1E02C9D5860D96170AC255AA67F5") (:digest-bit-test 41 #x02 22 #h"7C0AA11E779995FB585BDEF438CF9ACD") (:digest-bit-test 41 #x01 22 #h"5CC7953B35C35F8647EFFD9510E75A59") (:digest-bit-test 42 #x80 21 #h"78D8843516DFBB7508455EF5FA142B2D") (:digest-bit-test 42 #x40 21 #h"612B20B5C4F6BAE4F594E9F3F4A82FB3") (:digest-bit-test 42 #x20 21 #h"65D501D431B40185E3E63655EF12F6B7") (:digest-bit-test 42 #x10 21 #h"2F60CD131ABC3C637381D557B8B772DF") (:digest-bit-test 42 #x08 21 #h"D2035E9BB99D8D6135C86317C67490B3") (:digest-bit-test 42 #x04 21 #h"2599B6106634DDFFE1A6097239ED6327") (:digest-bit-test 42 #x02 21 #h"7155929319337413322F167CBA970CFC") (:digest-bit-test 42 #x01 21 #h"7DA0BC63FE503B3E0E4195DA5783EAC5") (:digest-bit-test 43 #x80 20 #h"EB22FC226396838D1A0242DCD75AE8D2") (:digest-bit-test 43 #x40 20 #h"64971E0FADC6912C387214F422D27268") (:digest-bit-test 43 #x20 20 #h"853B17C08A669B84345FD47C27FC64AB") (:digest-bit-test 43 #x10 20 #h"E5C9F54314498E87AF8F4F838D68C207") (:digest-bit-test 43 #x08 20 #h"38C8F547BCCC142B5488DEA99D2FD15B") (:digest-bit-test 43 #x04 20 #h"7890E5E8CFEB171F92E901E2BFF49DEF") (:digest-bit-test 43 #x02 20 #h"134FADF68897B0AAED3D138A5E73B457") (:digest-bit-test 43 #x01 20 #h"655555A93CEC20854AB16BC9A2EE12E1") (:digest-bit-test 44 #x80 19 #h"113CCE04855767F7ECCABAC3AB9DBC4C") (:digest-bit-test 44 #x40 19 #h"8DCABDD80D6891AE82D27A62CA5CBFDC") (:digest-bit-test 44 #x20 19 #h"B55E241BD6E6F1EFEEA94DACED298082") (:digest-bit-test 44 #x10 19 #h"A986C1E46876C5B79876FEE689007EF8") (:digest-bit-test 44 #x08 19 #h"8FDF2D086D8EA0EF2BD4BFB626C8065F") (:digest-bit-test 44 #x04 19 #h"0018C4C92548087707886B19B9B6DEB5") (:digest-bit-test 44 #x02 19 #h"A6A8D3FC4596E65CA9A9474E845B4482") (:digest-bit-test 44 #x01 19 #h"19372E51D0E1FFDD658ED1768C9951C4") (:digest-bit-test 45 #x80 18 #h"3AFEC090447E3E8ECFE9A36DA12A9C4A") (:digest-bit-test 45 #x40 18 #h"AA7A63CE7C642387AB142F3C368F4DAC") (:digest-bit-test 45 #x20 18 #h"67743320502FCC66B7B054C636554F13") (:digest-bit-test 45 #x10 18 #h"8812200381A08D93260BB16D3C7B8053") (:digest-bit-test 45 #x08 18 #h"30A2A0AC2059F43F822738FE41B64392") (:digest-bit-test 45 #x04 18 #h"71F1169342B7E47057F10AE0C514ABDB") (:digest-bit-test 45 #x02 18 #h"A27E2D60772D8EA0C576D439F38CB7FD") (:digest-bit-test 45 #x01 18 #h"AD2D997DF99283C0088ACA0CFA939B6A") (:digest-bit-test 46 #x80 17 #h"1574271BB22E22A26D5E4025F8CA3BE0") (:digest-bit-test 46 #x40 17 #h"0E6593CF9CBE2E5FD9459D4E25FC8808") (:digest-bit-test 46 #x20 17 #h"921D0D98FEE2FD0FAE77BBE8CEE75C4C") (:digest-bit-test 46 #x10 17 #h"330DBD27827948BF7854AD8F770EA413") (:digest-bit-test 46 #x08 17 #h"193F2E38A7E001DC2B132153E86C3170") (:digest-bit-test 46 #x04 17 #h"AB0F8A360190725F0DB386511FA16688") (:digest-bit-test 46 #x02 17 #h"522884031569527E0EA2CD59FF2AFAE6") (:digest-bit-test 46 #x01 17 #h"A70526A45C6204AED6F872AFE0C2030F") (:digest-bit-test 47 #x80 16 #h"2929A46F1243345745BE5F0CEFFFEA9D") (:digest-bit-test 47 #x40 16 #h"A1C2FE4D26AD58FC32025C2BDE0B8F53") (:digest-bit-test 47 #x20 16 #h"49F7F1239B65A00C79B833102DEA4470") (:digest-bit-test 47 #x10 16 #h"D715B83A7C045EA5DE1A1014D3C388E0") (:digest-bit-test 47 #x08 16 #h"C5B9DC3AF4F82C4A0EEB9FD5A3CA71AE") (:digest-bit-test 47 #x04 16 #h"990130C05319F8CCCDFC295F13D0B51E") (:digest-bit-test 47 #x02 16 #h"58D52BCD0D981839F438371952F76FE4") (:digest-bit-test 47 #x01 16 #h"A7167C368E85068EC798C8242D97B9B5") (:digest-bit-test 48 #x80 15 #h"BCCCC2A040780B8634A160077A0518B6") (:digest-bit-test 48 #x40 15 #h"217F09C5C7D9C35370A20293FA48BE64") (:digest-bit-test 48 #x20 15 #h"7E100CAD7A0BCD1F1F91426009E5035C") (:digest-bit-test 48 #x10 15 #h"9937ECE33144619A1B4C06B3B5D958C1") (:digest-bit-test 48 #x08 15 #h"B81C377C685216B65060E496E20DD1AE") (:digest-bit-test 48 #x04 15 #h"95E6F4F0EA2E1D9BFA0CB30CFCEB82C1") (:digest-bit-test 48 #x02 15 #h"40C3B24318632EC9640F3F0C8E561C84") (:digest-bit-test 48 #x01 15 #h"EED48C469E07EE625615E3D75949740A") (:digest-bit-test 49 #x80 14 #h"E7F28F14BE306A1C8B1A01280878F0F1") (:digest-bit-test 49 #x40 14 #h"373585DF43F020AACB6061A95D7A3D04") (:digest-bit-test 49 #x20 14 #h"3B400E497AFFB8C308A953E70EA4C9DC") (:digest-bit-test 49 #x10 14 #h"8E28C7D91C8C70E44D201FCA8264C6D0") (:digest-bit-test 49 #x08 14 #h"106A08239964D83046F4BC5C6FC5D292") (:digest-bit-test 49 #x04 14 #h"BE99DB37B00BF454B7FD234FA38325FB") (:digest-bit-test 49 #x02 14 #h"E60BDC54B53931474DACC0F938EAFB82") (:digest-bit-test 49 #x01 14 #h"AD49039B927F3255746F5F8B29D026BC") (:digest-bit-test 50 #x80 13 #h"243B1CA9BB302073C43D2034D1701008") (:digest-bit-test 50 #x40 13 #h"51D708A3EC669C4AEAE962B7002E84AB") (:digest-bit-test 50 #x20 13 #h"3C3C48C8FECE87A8244A812EB30103D7") (:digest-bit-test 50 #x10 13 #h"62FCEBD1322730F36609C0B71F013977") (:digest-bit-test 50 #x08 13 #h"A40079DD041D39E7F286D4C074319A88") (:digest-bit-test 50 #x04 13 #h"4CE8D48695094B9ED177C32D84490C64") (:digest-bit-test 50 #x02 13 #h"239CB4F2D9DAF02880590639D9473D72") (:digest-bit-test 50 #x01 13 #h"42BEECDFE7ED6721E3D746AD9ADF60D8") (:digest-bit-test 51 #x80 12 #h"6637254EB223AEF1E0070CE24D150A42") (:digest-bit-test 51 #x40 12 #h"EC1C0EFB06D494F5929170230EA29F8B") (:digest-bit-test 51 #x20 12 #h"06E20B68CD82553945F588CF3B072228") (:digest-bit-test 51 #x10 12 #h"4C935F8067F9E89002F664E32310D653") (:digest-bit-test 51 #x08 12 #h"65F609AA81C427B2461DE2E87F19232D") (:digest-bit-test 51 #x04 12 #h"130CB2489827F80099188772A1E297A7") (:digest-bit-test 51 #x02 12 #h"FF2870DAC9CEBF2C00EAF9C7397A84AF") (:digest-bit-test 51 #x01 12 #h"965BEFA150B21B023476934CE2F4DD48") (:digest-bit-test 52 #x80 11 #h"4748E12C9B9B027C2FD250A7BF75D404") (:digest-bit-test 52 #x40 11 #h"3C22EE69FAA79253E66276B9BFAB6E7F") (:digest-bit-test 52 #x20 11 #h"F915A8F4EF3CEEF1239E8EA00A08FDC0") (:digest-bit-test 52 #x10 11 #h"5E9BE5E6AECD61AACAD27B71C219A4FF") (:digest-bit-test 52 #x08 11 #h"B90EA5FCECE69767CB22ACA0322F8182") (:digest-bit-test 52 #x04 11 #h"B03FC9B6458121630E1E12425BDE2B76") (:digest-bit-test 52 #x02 11 #h"4C0C22304A32242DE23C0952251625D7") (:digest-bit-test 52 #x01 11 #h"BDD58B71E31A4537F8CBDAB9E4EA2823") (:digest-bit-test 53 #x80 10 #h"3BC207A83DEBCAE9DB19C67881A2907D") (:digest-bit-test 53 #x40 10 #h"17ABC23A3B7C5C3F4238B4C9B60393FB") (:digest-bit-test 53 #x20 10 #h"990ADD29BBEEA26D36FBE9FAEE480DE0") (:digest-bit-test 53 #x10 10 #h"E739B36FB27CD07EF63C1DEA5F05C2B5") (:digest-bit-test 53 #x08 10 #h"6C2ABCD513756454FD8EFF7C05C347D9") (:digest-bit-test 53 #x04 10 #h"714C165F1098665831F20C3CCACC786B") (:digest-bit-test 53 #x02 10 #h"A4297212FE643FE7585B61B0CA54501E") (:digest-bit-test 53 #x01 10 #h"CC1F3F9C967BB3D518F17CB917AF3541") (:digest-bit-test 54 #x80 9 #h"7CBDDD340A9EDB15E9764C8D0C5CAC82") (:digest-bit-test 54 #x40 9 #h"CBEA87EAD6F2861A1A976B0094CEC936") (:digest-bit-test 54 #x20 9 #h"2BA194132EE5196988287217E16CA218") (:digest-bit-test 54 #x10 9 #h"8A9B3CB20F1F3F9A5B25F51A2744C593") (:digest-bit-test 54 #x08 9 #h"6E379119BBD6CB8956568EB2EAF3CF16") (:digest-bit-test 54 #x04 9 #h"6B3B3AF07FF6CCFA55326CF74CE1BE12") (:digest-bit-test 54 #x02 9 #h"58CC216A7E8B1B520B914A42CD77A95C") (:digest-bit-test 54 #x01 9 #h"62D402575E31D8F00A24829ABB4FB735") (:digest-bit-test 55 #x80 8 #h"27AB445A2D2F6AE41D0BC60AEFC8D8FD") (:digest-bit-test 55 #x40 8 #h"3780B0F8539BF4B4BF650149C0219323") (:digest-bit-test 55 #x20 8 #h"0C12ACE64B7B880FE86AE3930B5C923B") (:digest-bit-test 55 #x10 8 #h"30EA9812001F376C52AA8BF2A8803258") (:digest-bit-test 55 #x08 8 #h"00A77BBA134EC7F048495CC221D0C1AC") (:digest-bit-test 55 #x04 8 #h"91548EE3EC1175D8408610CED2DE1D61") (:digest-bit-test 55 #x02 8 #h"90A3AEB7EE1BEFC671B1E3974694814F") (:digest-bit-test 55 #x01 8 #h"BF4EA65FF974E5864DE084172A42BE94") (:digest-bit-test 56 #x80 7 #h"101087341122D53A5C9C39A14486FBD1") (:digest-bit-test 56 #x40 7 #h"8AC7E1D8C4B6C5D0D7E8AE04C99A5AEB") (:digest-bit-test 56 #x20 7 #h"FDD1A742B9A53720A83D13BBB52E6B59") (:digest-bit-test 56 #x10 7 #h"7074A3E598C6CB6B729953D1912EDE8F") (:digest-bit-test 56 #x08 7 #h"3BCCA8F88026DA33A85EBEA0D92085E7") (:digest-bit-test 56 #x04 7 #h"8C39347BE5FFEEB436720E7B62F95AB7") (:digest-bit-test 56 #x02 7 #h"2A8D32E9D57BCA170A314E10EB2E14D9") (:digest-bit-test 56 #x01 7 #h"AEBA2E5DFA53D0866C670EC2DF9BAEFA") (:digest-bit-test 57 #x80 6 #h"76C4B1546EFE5FE4CE780D88F45112C6") (:digest-bit-test 57 #x40 6 #h"B2C9982B2BB69CF1F803E4FB721EE594") (:digest-bit-test 57 #x20 6 #h"6064131C8D0045906C3A4AC95CEA9850") (:digest-bit-test 57 #x10 6 #h"A573132EB414900A6F2D145054ED9B71") (:digest-bit-test 57 #x08 6 #h"BD3803EBAF57D1D59D2E344B95C95DBA") (:digest-bit-test 57 #x04 6 #h"97679B799CE10FF731F1B036F300261F") (:digest-bit-test 57 #x02 6 #h"045FA3ED64892236889D890D70F88297") (:digest-bit-test 57 #x01 6 #h"EDFEF1B83D497F241AFCAD2670766550") (:digest-bit-test 58 #x80 5 #h"5044776204D1D991CB6D039F3CE639A6") (:digest-bit-test 58 #x40 5 #h"E3C3A88841C4486991BD684C482F468F") (:digest-bit-test 58 #x20 5 #h"204B0EED4092ED3CD041555213C7016E") (:digest-bit-test 58 #x10 5 #h"AA181AEB0883C2EB1517546F05DCF5A1") (:digest-bit-test 58 #x08 5 #h"0776CD1285638E99C9F92B67DFE3A93B") (:digest-bit-test 58 #x04 5 #h"41F545E21F35D1C76D35F46AF08D1AC3") (:digest-bit-test 58 #x02 5 #h"5C0027928ACEA6E8764992BB53D9A200") (:digest-bit-test 58 #x01 5 #h"9F764E6504EEB62D6F7B0551CFEB32C5") (:digest-bit-test 59 #x80 4 #h"65A182D7F3C3551DB2EB9A589C2BC154") (:digest-bit-test 59 #x40 4 #h"E1D3D40E72D89A16E985A7D6D45B2BD6") (:digest-bit-test 59 #x20 4 #h"4DE48F8B3A984A17D9871D4D7394DD96") (:digest-bit-test 59 #x10 4 #h"A616A4C01CB1CB5AC0B170AC7F295C81") (:digest-bit-test 59 #x08 4 #h"D57E28E6A20EB1E605FC1185796FD76A") (:digest-bit-test 59 #x04 4 #h"5162808EB7C844045397AAE6A9FD579A") (:digest-bit-test 59 #x02 4 #h"C02D9BA7FD05719313649E4A9C4B377F") (:digest-bit-test 59 #x01 4 #h"7EDE5C243C23AAC804CF2B9CD82A9B4E") (:digest-bit-test 60 #x80 3 #h"08FA1E2DEB8C28C84D3501C6490C8299") (:digest-bit-test 60 #x40 3 #h"98E814F0BCB5BB2E0C4CECF0E456ED66") (:digest-bit-test 60 #x20 3 #h"D5F234F232A16CA09403113659DF5940") (:digest-bit-test 60 #x10 3 #h"11B36584307FA2026A1EF1FB2F923E53") (:digest-bit-test 60 #x08 3 #h"20EFCB7687C857E2DB86AD61E9EB64F0") (:digest-bit-test 60 #x04 3 #h"52961A3E3F4D807B17924B945D0EF0BA") (:digest-bit-test 60 #x02 3 #h"AE39BED8D20A0BAEE477D53C4388247B") (:digest-bit-test 60 #x01 3 #h"E73B87F8A3FB962D7F8B6E5724FBB394") (:digest-bit-test 61 #x80 2 #h"43A7ED379BEFB67B5A757726B36FAF03") (:digest-bit-test 61 #x40 2 #h"04E387CD2BABD6ED2A581CE0D35CA2C4") (:digest-bit-test 61 #x20 2 #h"C3E46CCE582699F849E852D8CC72786B") (:digest-bit-test 61 #x10 2 #h"E511DC2C83118F52DBC80330DF1F44D7") (:digest-bit-test 61 #x08 2 #h"04D1B43C3ED99FC2A59DA3462142E070") (:digest-bit-test 61 #x04 2 #h"D4C0D26CE697D58ACE25AC2D9FFA99BD") (:digest-bit-test 61 #x02 2 #h"46479C1ED1572FD54099CE935E03A509") (:digest-bit-test 61 #x01 2 #h"8856F192CE9E7FEA0FDC5F5C2FEAA54E") (:digest-bit-test 62 #x80 1 #h"ED72DED2FF418F23A7CC250E3607AF66") (:digest-bit-test 62 #x40 1 #h"055F5FE4A2376F94EE6CFB892F083AF1") (:digest-bit-test 62 #x20 1 #h"E587BC51D8CC4CDBB72B615C7DBE2F19") (:digest-bit-test 62 #x10 1 #h"886FC0C898EEB8A3FA34A62D9CD9EE3E") (:digest-bit-test 62 #x08 1 #h"5CE1643888E280FC6AEA24EB4E7484C5") (:digest-bit-test 62 #x04 1 #h"E28C5C0C011898C183595262938E7AD3") (:digest-bit-test 62 #x02 1 #h"FBCD570FF301F37DB9B59DA5290ACCF9") (:digest-bit-test 62 #x01 1 #h"EEB3F6127C385A4CF0001A0482E7B5AD") (:digest-bit-test 63 #x80 0 #h"C0765C537B427E59CCCA837A101C82A5") (:digest-bit-test 63 #x40 0 #h"C7DA8C6B49A6679F620552876BCFE9AA") (:digest-bit-test 63 #x20 0 #h"EF6FD22A2F3D55B935F7E7842E9A563E") (:digest-bit-test 63 #x10 0 #h"A44C909A87C3EB6201888A92FEBFC1DB") (:digest-bit-test 63 #x08 0 #h"1A2A32D70B2328B8AEDAABF0BBE80190") (:digest-bit-test 63 #x04 0 #h"083F164EA0D8BDB2CE5D18A187792BAA") (:digest-bit-test 63 #x02 0 #h"01A1F51997AD4AF2A6652517B7FFB9DC") (:digest-bit-test 63 #x01 0 #h"F43AF6AEC164C17A6DCDCD7D460B093D") ironclad_0.33.0/testing/test-vectors/md5.testvec0000644000175000017500000010400011305364032016625 0ustar00;;; standard tests (:digest-test #a"" #h"d41d8cd98f00b204e9800998ecf8427e") (:digest-test #a"a" #h"0cc175b9c0f1b6a831c399e269772661") (:digest-test #a"abc" #h"900150983cd24fb0d6963f7d28e17f72") (:digest-test #a"message digest" #h"f96b697d7cb7938d525a2f31aaf161d0") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"c3fcd3d76192e4007dfb496cca67e13b") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"d174ab98d277d9f5a5611c2c9f419d9f") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"57edf4a22be3c955ac49da2e2107b67a") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"D100ADC7D963AC0B837F7AC29DC701D7") (:digest-bit-test 0 #x40 63 #h"5946DFD41CC23659B3A6671B61BEEBD5") (:digest-bit-test 0 #x20 63 #h"DEC544A38537D47AE3074C1B1FE258CE") (:digest-bit-test 0 #x10 63 #h"F86BBABF1921DDE8BDA8BFD280C7EF42") (:digest-bit-test 0 #x08 63 #h"F5504FB61B4A45F425A7E81A5EE46F9D") (:digest-bit-test 0 #x04 63 #h"6D0FE6F22A181464E6445CECCC9F0637") (:digest-bit-test 0 #x02 63 #h"B17122050F10191A428685C69D6443FC") (:digest-bit-test 0 #x01 63 #h"BC5481E124C00F21E314EF579DC23C42") (:digest-bit-test 1 #x80 62 #h"E0D1D11DB4A1920B5D1E2AC3C8FF2EE5") (:digest-bit-test 1 #x40 62 #h"B41789204BFB001544CF30C99B80C2BF") (:digest-bit-test 1 #x20 62 #h"427E645F8141751530520C4AEDF94AF6") (:digest-bit-test 1 #x10 62 #h"313E604ACFFC20F994BC77A5338868F9") (:digest-bit-test 1 #x08 62 #h"0A53C1D28669E7E0E50FCDF88C8127C5") (:digest-bit-test 1 #x04 62 #h"22589A024E2B52B44365C84BF9053EAB") (:digest-bit-test 1 #x02 62 #h"B0052285C8B28883ADDD0728B85A7FA2") (:digest-bit-test 1 #x01 62 #h"77598FEF54DCD2A8AF4062FEC8EA07D0") (:digest-bit-test 2 #x80 61 #h"C0516F144ADA2C0093BFEA89C9FA5CEF") (:digest-bit-test 2 #x40 61 #h"1A4AAB1565206E54831978864E6B4E98") (:digest-bit-test 2 #x20 61 #h"ED46B74E2F7904F49E2FF64038EFC620") (:digest-bit-test 2 #x10 61 #h"A60F5E85EB851E6367428340BF949D7A") (:digest-bit-test 2 #x08 61 #h"26770E1F01C793D8363B79CEF5594749") (:digest-bit-test 2 #x04 61 #h"71878DF60B5DF9A34B1064ED509F3B07") (:digest-bit-test 2 #x02 61 #h"C372906819C3B158A5A91FD08332EEE8") (:digest-bit-test 2 #x01 61 #h"5E468347458E0171D2459B72FA762A5D") (:digest-bit-test 3 #x80 60 #h"4A3D18FB567AB08710581C9810B3C1F1") (:digest-bit-test 3 #x40 60 #h"AD2FBD456923D0405A7413463E26FC91") (:digest-bit-test 3 #x20 60 #h"4B94D72B5CB2CF60E1360035A6A823A9") (:digest-bit-test 3 #x10 60 #h"562A13C1BC97451ACB25584C7741EECA") (:digest-bit-test 3 #x08 60 #h"97C6A1580F949812E5FEEE45F0DF91E5") (:digest-bit-test 3 #x04 60 #h"711EB2C46C3E465BCF05204A829D75DB") (:digest-bit-test 3 #x02 60 #h"BE9AA44A92B42D0740A59FC3EF96C59B") (:digest-bit-test 3 #x01 60 #h"841A0BCE1788101C5E650ABFA1367509") (:digest-bit-test 4 #x80 59 #h"D51020E2512CEF1F19781497A8065252") (:digest-bit-test 4 #x40 59 #h"03380DEF2104B313079E26A20D65A67C") (:digest-bit-test 4 #x20 59 #h"486D95AC56F4A12878676E896E0A6279") (:digest-bit-test 4 #x10 59 #h"ED0289B0EA4570C831F880A0007F7404") (:digest-bit-test 4 #x08 59 #h"667FFB9C10ACBAF700E30EA0C0497BA8") (:digest-bit-test 4 #x04 59 #h"151C00A49855680BA36700676857A8F4") (:digest-bit-test 4 #x02 59 #h"CA7CD07DA0E6EDA1040613CF4B70777E") (:digest-bit-test 4 #x01 59 #h"71DA93F3E01AE2945AED2BC4F5052C53") (:digest-bit-test 5 #x80 58 #h"421AD4DBECDDCCB0138E6A2AC0E4F6FC") (:digest-bit-test 5 #x40 58 #h"30BFC0E8F8C2FC95773138BC8DA947B6") (:digest-bit-test 5 #x20 58 #h"9D3A13F27EB032F2687D8E6D1788D61E") (:digest-bit-test 5 #x10 58 #h"0BE383B2766ED8B575B9040BC0D42EF5") (:digest-bit-test 5 #x08 58 #h"4427BC6CC79301E7A26C2A3D8ECB6E10") (:digest-bit-test 5 #x04 58 #h"534D98E515BA47AACF89E3C351887F68") (:digest-bit-test 5 #x02 58 #h"8A8A0244B9B3F6F3C0330CBC34304522") (:digest-bit-test 5 #x01 58 #h"E54B50B64867080469586A3A2B3EF892") (:digest-bit-test 6 #x80 57 #h"873821E3ED8865BC96639C18B23A9A44") (:digest-bit-test 6 #x40 57 #h"757E17C903DF12EA67252CBA283B66A0") (:digest-bit-test 6 #x20 57 #h"D344B3E83A02BCF8D75CF6E5FBEBFCF7") (:digest-bit-test 6 #x10 57 #h"08A482079AED8725E0A41DA42F3BCF88") (:digest-bit-test 6 #x08 57 #h"B148E58BB47D90595E34EFD04A6BF45C") (:digest-bit-test 6 #x04 57 #h"FEE2CB77ABF8EE1DBE1FE5112C05EBE7") (:digest-bit-test 6 #x02 57 #h"4A5DB81DDB230FEBA62388CD585EDFF6") (:digest-bit-test 6 #x01 57 #h"2B48DCA04A1CB4CCCF74D8C8AEF831E0") (:digest-bit-test 7 #x80 56 #h"D6B3AA2679C44FFF034482620FC4B6C4") (:digest-bit-test 7 #x40 56 #h"651C77103A6CAA2DDD64253AB619DCEC") (:digest-bit-test 7 #x20 56 #h"4DA303D58A562B00FD3A168750A5DC51") (:digest-bit-test 7 #x10 56 #h"13670CF998C2E742F0466D414B10FE03") (:digest-bit-test 7 #x08 56 #h"0846D2C1F7202CC2DC62B40E23AD1604") (:digest-bit-test 7 #x04 56 #h"09F09DA03DE4AB2FDCD34A101AA71560") (:digest-bit-test 7 #x02 56 #h"55876BC89EB5D8A45A063F46A758C83D") (:digest-bit-test 7 #x01 56 #h"FF2719AE2554BA4C0EB721799CDA860E") (:digest-bit-test 8 #x80 55 #h"99B6A99F2BF6E8DFEAE34BC1B8BEA0FE") (:digest-bit-test 8 #x40 55 #h"153A4356041A8AFC4610244D059D625C") (:digest-bit-test 8 #x20 55 #h"ADFF5B78D55AF02CA60DC92EE7A5FB72") (:digest-bit-test 8 #x10 55 #h"7B25E849B8EF1F651A85707D0B673CE7") (:digest-bit-test 8 #x08 55 #h"3B81887F8FCBD61A81E98257DBE82814") (:digest-bit-test 8 #x04 55 #h"3640E4FC3D96346AACC19CE13197BC26") (:digest-bit-test 8 #x02 55 #h"9F392C0A01B3F31C872501D822E123B1") (:digest-bit-test 8 #x01 55 #h"FA534E290740E8DF8637C76F1904518B") (:digest-bit-test 9 #x80 54 #h"1C0098B2775421532A7CB1844DD304D9") (:digest-bit-test 9 #x40 54 #h"CA4123F709792AABD8593207AA3D870E") (:digest-bit-test 9 #x20 54 #h"5425E8B0EFCD62EA3E1C5F1798E5057C") (:digest-bit-test 9 #x10 54 #h"671ABDDEE265899ABEEB777C26FE0628") (:digest-bit-test 9 #x08 54 #h"3D78D853674651BE79F7EEB985D66CA0") (:digest-bit-test 9 #x04 54 #h"6EE70CE7ACAC7BBFCAA5918FC7D7A231") (:digest-bit-test 9 #x02 54 #h"5A8CD68C9E7EBB8EC286F95527E1FABD") (:digest-bit-test 9 #x01 54 #h"A3B9360D025565B5BBB74E11EB4CCAF6") (:digest-bit-test 10 #x80 53 #h"FF3A4D6DA7A8C8C223B784F7BB89D3A0") (:digest-bit-test 10 #x40 53 #h"9B2E198A717FF73011A49E4436A993EB") (:digest-bit-test 10 #x20 53 #h"3FE32E36378A361D53811CBB3B65E036") (:digest-bit-test 10 #x10 53 #h"CBA94A4C71DE66B971CC1D1715B4BF97") (:digest-bit-test 10 #x08 53 #h"4FFB7C963D0504F6D0F76D3A74982371") (:digest-bit-test 10 #x04 53 #h"C540F2FF6F64B3F8201CA26DEDF38982") (:digest-bit-test 10 #x02 53 #h"7BD5B7EDB6049EB30E29F7AA381D8BA9") (:digest-bit-test 10 #x01 53 #h"4A0630379B12E49EEE8212350A936463") (:digest-bit-test 11 #x80 52 #h"712E4057E7BD5A9E2F37F24557FE8AD8") (:digest-bit-test 11 #x40 52 #h"EF98CA91A9657B23B153EFC5711A97C2") (:digest-bit-test 11 #x20 52 #h"66C77963623201ACADD590E332DCB36A") (:digest-bit-test 11 #x10 52 #h"EE1FA779386BF3ABDFE5B1CDA730BF1F") (:digest-bit-test 11 #x08 52 #h"FA9A2E663AEFB2A3EF14DF8407CC3CC7") (:digest-bit-test 11 #x04 52 #h"F03821A6191AED4FA02B66A9C7F71C63") (:digest-bit-test 11 #x02 52 #h"53A7A4B6D595901360F4507D9362D11F") (:digest-bit-test 11 #x01 52 #h"58507FDADC715BB403A179FE094FDB3F") (:digest-bit-test 12 #x80 51 #h"C6A4255B565F0B7FA5F3BF239B3CE550") (:digest-bit-test 12 #x40 51 #h"331A4C06F709E2BCE0E5331BCD8770F5") (:digest-bit-test 12 #x20 51 #h"10733E1F79C2B5C1F78C688C43A3CD19") (:digest-bit-test 12 #x10 51 #h"FD5DDB64A262D775FEAFECBE6B196361") (:digest-bit-test 12 #x08 51 #h"D23F63302AE2F9D987D50641A74D09CD") (:digest-bit-test 12 #x04 51 #h"206693D8C90F7FC826820AAD553FB3C0") (:digest-bit-test 12 #x02 51 #h"54571E2A04C159B9CD187E84CD591B5D") (:digest-bit-test 12 #x01 51 #h"5FD2ACD825D46FBB58EB912A263D0144") (:digest-bit-test 13 #x80 50 #h"4000D3A40B0CB27806530E25F2CF1645") (:digest-bit-test 13 #x40 50 #h"3129198B6D899EAF6355AA9038E76D25") (:digest-bit-test 13 #x20 50 #h"D8D03681175ADBF8F46242C2EB7DC855") (:digest-bit-test 13 #x10 50 #h"E33B91B2D6B65749DCD7BFD16FF6496D") (:digest-bit-test 13 #x08 50 #h"BCC9EF044C7D4A807D7BA8DE5ABD9DA0") (:digest-bit-test 13 #x04 50 #h"48277E4B13A266FF3389F2A5D219A341") (:digest-bit-test 13 #x02 50 #h"04B174213538AAD2F2546F8CDA4E1AE3") (:digest-bit-test 13 #x01 50 #h"1C2D889EABE9B8DF20AF4F82CB8E9F32") (:digest-bit-test 14 #x80 49 #h"2CC4983246D6613B913C46A9A9626AC0") (:digest-bit-test 14 #x40 49 #h"CA27C85CB612740C0B811B117080104E") (:digest-bit-test 14 #x20 49 #h"15E7103C17842034916397988BBE4179") (:digest-bit-test 14 #x10 49 #h"52C6EFB891B43888B59871EE62DE12C4") (:digest-bit-test 14 #x08 49 #h"B62131086AFE3EA0965181CC25A4271C") (:digest-bit-test 14 #x04 49 #h"F14EB6ABA0B197361A0008A2F7BD2C17") (:digest-bit-test 14 #x02 49 #h"28DEDF5CD293E20E8D4724DE72EF21B4") (:digest-bit-test 14 #x01 49 #h"D734625FCFCECAE9E6422BC9B0E25C09") (:digest-bit-test 15 #x80 48 #h"4837F0FC7F4477E20897DC342E8A441A") (:digest-bit-test 15 #x40 48 #h"1707597D3776B9FC9FA1880174591AF2") (:digest-bit-test 15 #x20 48 #h"BF7B65F71482D88575422D0ED5B45F6B") (:digest-bit-test 15 #x10 48 #h"D249809882892BAED703041E78B4E31F") (:digest-bit-test 15 #x08 48 #h"80D4B2EFDAE671E9201C6EE54CF24744") (:digest-bit-test 15 #x04 48 #h"A7517BC483991C3D517DAD8CB22AE90A") (:digest-bit-test 15 #x02 48 #h"4FEC09054AF195AEE8BE25A69EEDAE9D") (:digest-bit-test 15 #x01 48 #h"E8E8BBD894CC2E34C30580319F434B0D") (:digest-bit-test 16 #x80 47 #h"B8BC4C030D9B5E7C21DAD46C64A01D47") (:digest-bit-test 16 #x40 47 #h"2FE6FF005BD3DD6B7A0DD2E19B494D86") (:digest-bit-test 16 #x20 47 #h"1F19F7138EF63D8E204761C6F94D7A66") (:digest-bit-test 16 #x10 47 #h"4D068C3202A3E6672D423E18F2376590") (:digest-bit-test 16 #x08 47 #h"1E9952941C130B19BB856BF7C575D776") (:digest-bit-test 16 #x04 47 #h"B697FEB25C0DBE9B15AAF267CA43FB00") (:digest-bit-test 16 #x02 47 #h"155EA0621E9038C14C0731059589FD1C") (:digest-bit-test 16 #x01 47 #h"BD0C6E70CD8BDD76D1A785E807758744") (:digest-bit-test 17 #x80 46 #h"9D769C10174B8913F7E8169AE915A753") (:digest-bit-test 17 #x40 46 #h"025001736462C0854B38E97E36A6A722") (:digest-bit-test 17 #x20 46 #h"BAAE5CD4937CE794C123719159FB04C3") (:digest-bit-test 17 #x10 46 #h"3308EF5BBED8073DF6C40840B7CB1949") (:digest-bit-test 17 #x08 46 #h"87162A4A837FD93A5E917C697471C471") (:digest-bit-test 17 #x04 46 #h"C6F9639643E42CE1CD58FF5B1FC77F54") (:digest-bit-test 17 #x02 46 #h"04684925D5CB72903C75586AFB22F824") (:digest-bit-test 17 #x01 46 #h"0EB1E65C388190160ECF5A1B0B9D6264") (:digest-bit-test 18 #x80 45 #h"C7257CEB571C737132D11B6521BE67EA") (:digest-bit-test 18 #x40 45 #h"EE7648EF561CAE348C3DCC1344CA2D8D") (:digest-bit-test 18 #x20 45 #h"18715BA9CAA905F7D42EE35BB9B6DAF0") (:digest-bit-test 18 #x10 45 #h"81F7169AA6B34763F37EC296EDF8E777") (:digest-bit-test 18 #x08 45 #h"16C8DFFC05C2E5A3FAB785169F655EA1") (:digest-bit-test 18 #x04 45 #h"945DBB32B439F6746C1DCA85BCC19650") (:digest-bit-test 18 #x02 45 #h"507294EA0591C0E74EAA016663A9D41B") (:digest-bit-test 18 #x01 45 #h"DE75CF7B97DBB781D9B7B5D4AE8204C7") (:digest-bit-test 19 #x80 44 #h"85D06D83AE3EF12D42A55DF38DE3905D") (:digest-bit-test 19 #x40 44 #h"515433D6CD023AA480E8E111DC43C7B5") (:digest-bit-test 19 #x20 44 #h"9839348A2E202C867FF409B2AD90E8E3") (:digest-bit-test 19 #x10 44 #h"E8FB9977E83A56190180A77BF3CF73A0") (:digest-bit-test 19 #x08 44 #h"5B80805194B94E300C6356B9316E0485") (:digest-bit-test 19 #x04 44 #h"086E40611F0649CC5B330A0BCD430411") (:digest-bit-test 19 #x02 44 #h"48C94CC7533CAB43EDBCC9828F0416C8") (:digest-bit-test 19 #x01 44 #h"2B6F068A88D555E2E7802FC8A045EA47") (:digest-bit-test 20 #x80 43 #h"2A346699E7C039F552426ACA283A666B") (:digest-bit-test 20 #x40 43 #h"E302E0A7AF88DC248AE8EDC617197A36") (:digest-bit-test 20 #x20 43 #h"6A7F062A9765B7E72FA96FA90DDD143E") (:digest-bit-test 20 #x10 43 #h"CDBFDCC221EB2FFAA3786130098C8592") (:digest-bit-test 20 #x08 43 #h"F5A9AFB7A3C5007C5AEE6ECFAAE9B40C") (:digest-bit-test 20 #x04 43 #h"D5B00318E61E0F34BD1487EE222F7080") (:digest-bit-test 20 #x02 43 #h"333CD297065AF4A6895006E9D4280142") (:digest-bit-test 20 #x01 43 #h"32A631DB7E2CEEBDBEAFB4F875024DE8") (:digest-bit-test 21 #x80 42 #h"AE560D63E7BB6F828FE0F86ADF29F86C") (:digest-bit-test 21 #x40 42 #h"9CE9366DA2449989DD4EB7124B1424A3") (:digest-bit-test 21 #x20 42 #h"BAD0D7713C2C6913C46F7F1A2A92B4A4") (:digest-bit-test 21 #x10 42 #h"FD5D05F5B5EB324A2B594BA8D2435825") (:digest-bit-test 21 #x08 42 #h"58E5890DD2E1DAA3F911EC6A9C33B88F") (:digest-bit-test 21 #x04 42 #h"368AEBF2535160286C1508E8B0D8015A") (:digest-bit-test 21 #x02 42 #h"F9BBF1F99BA8DE645D5DA4E4FC661B13") (:digest-bit-test 21 #x01 42 #h"618688BF18F0A630D8AA26E0644FB20D") (:digest-bit-test 22 #x80 41 #h"1EFCDB0E7B1510826FB1073DF48AA5EA") (:digest-bit-test 22 #x40 41 #h"0D7D9124EA411E52CA2B01FFA1EE292A") (:digest-bit-test 22 #x20 41 #h"BDA259C306268A65B348B575C2CA72CA") (:digest-bit-test 22 #x10 41 #h"A3221BD958FEE82FF3C0374885B33138") (:digest-bit-test 22 #x08 41 #h"3ECFA4CF473A94AC01EB576427B2620E") (:digest-bit-test 22 #x04 41 #h"75A2FE3A9471A0D8D45EE5756C46DBD5") (:digest-bit-test 22 #x02 41 #h"3106D91DCF01FDCF28203F8F2D9100DB") (:digest-bit-test 22 #x01 41 #h"8B80DF449634ADD584C56EC82FA8B491") (:digest-bit-test 23 #x80 40 #h"7642C132B0FF94C2585BFAB0DDD7F6AB") (:digest-bit-test 23 #x40 40 #h"1D5E6A65A4ACA67ECD46104B81BE50CB") (:digest-bit-test 23 #x20 40 #h"60E861BC3EDB744A966B43EBEDA7B56E") (:digest-bit-test 23 #x10 40 #h"6D0BD086D12CEF697B746334883AE196") (:digest-bit-test 23 #x08 40 #h"50B7EC4B54BDBBA0EF6D56765B29E2C0") (:digest-bit-test 23 #x04 40 #h"20D8A4B3C11A4759963AF7A6429FA2C3") (:digest-bit-test 23 #x02 40 #h"98FE37C528A7AE0E341B3DBCCD98EEA6") (:digest-bit-test 23 #x01 40 #h"33D64C0B4E5A9E444252F0738B9C2DE0") (:digest-bit-test 24 #x80 39 #h"5D2BE56802387E0D53C4374EEB8C82B6") (:digest-bit-test 24 #x40 39 #h"5CB0C473C47139C526BDDB60043C68C2") (:digest-bit-test 24 #x20 39 #h"EF271AF9F4401397DDB402C99A4F0F4E") (:digest-bit-test 24 #x10 39 #h"72BF2334299E719FA84844CED300CD4A") (:digest-bit-test 24 #x08 39 #h"E3FD2AC469580923C48AEE429B3562CB") (:digest-bit-test 24 #x04 39 #h"267A19F7B8E18E2B4E720432139B6E8C") (:digest-bit-test 24 #x02 39 #h"381382D00904888081A9552B81ED36BB") (:digest-bit-test 24 #x01 39 #h"824D1F79E689A04CFD5EE69DDC580BE2") (:digest-bit-test 25 #x80 38 #h"357C82CE0EB4F6F667DEF290C0D1D120") (:digest-bit-test 25 #x40 38 #h"D389C3A8975C0AACB44104CCF632C1F8") (:digest-bit-test 25 #x20 38 #h"03631F92DA0C67552BF7A026D679F723") (:digest-bit-test 25 #x10 38 #h"CB0A3236BB2F2DC7B785BA63676A964D") (:digest-bit-test 25 #x08 38 #h"79AC06CCCD507714BD453964ED787677") (:digest-bit-test 25 #x04 38 #h"83B33925BED3AC0EB4F9AF6BC75F0D8B") (:digest-bit-test 25 #x02 38 #h"221A948B265FA265ED0217AFA9448AC9") (:digest-bit-test 25 #x01 38 #h"358FBC82B38B0A24D4AF61C87D6C62A5") (:digest-bit-test 26 #x80 37 #h"66D9F3919AE352F3F16246EAD3074E75") (:digest-bit-test 26 #x40 37 #h"84136628469F13A6D30C2F81D9FB8709") (:digest-bit-test 26 #x20 37 #h"6B8D6430324A11559E31A92743F16644") (:digest-bit-test 26 #x10 37 #h"F009B9C33611966B29B945EB38D2B130") (:digest-bit-test 26 #x08 37 #h"DED34074FEDFCDBBCC4DA3074AEB5087") (:digest-bit-test 26 #x04 37 #h"6A528A222478BCA9DFBFAC2A00B64E15") (:digest-bit-test 26 #x02 37 #h"22C5635999C532034A3FBE8CCA3BFBAE") (:digest-bit-test 26 #x01 37 #h"0C9193A1124BD00CEBB09A05CA6BAC7D") (:digest-bit-test 27 #x80 36 #h"9EE0BA3AFFBC9610FBB0C1F93F98E957") (:digest-bit-test 27 #x40 36 #h"40F6E1BAB20BC825462FA8B84B029E03") (:digest-bit-test 27 #x20 36 #h"479AA5097DB0D27D906967DFE0359B94") (:digest-bit-test 27 #x10 36 #h"4EE4F2F35E36A2729EA0BB07658CEF83") (:digest-bit-test 27 #x08 36 #h"A7D27906D1889C91C565FEB36D3E41E5") (:digest-bit-test 27 #x04 36 #h"488D5CD0C76DEEB44D839F0280F42BD8") (:digest-bit-test 27 #x02 36 #h"3383D0E16168120B3A440D5CB517E65C") (:digest-bit-test 27 #x01 36 #h"049F7E9F7A579E9DC8CB2E90370B7DFD") (:digest-bit-test 28 #x80 35 #h"F15759B10756BBC1F057174E11FBEA3C") (:digest-bit-test 28 #x40 35 #h"9E915844865C745CDDAAE9086D67CB7C") (:digest-bit-test 28 #x20 35 #h"3C5A2485AA83037AE41529AE190DF88B") (:digest-bit-test 28 #x10 35 #h"871E522A6D16C4A0E000C8809F9EC5F6") (:digest-bit-test 28 #x08 35 #h"968B472E57E76D5D1E63476B38C58816") (:digest-bit-test 28 #x04 35 #h"E662F9A0CE1298E18FE149BEE0504AB0") (:digest-bit-test 28 #x02 35 #h"30C3AE4FBC27B9ECD88BBC21D8B3F55D") (:digest-bit-test 28 #x01 35 #h"B4DC26D3BFED9ED9BBE0DBAF21DD95FF") (:digest-bit-test 29 #x80 34 #h"F0EDA2E5CB682C4C82A6DED6E1A9E4E2") (:digest-bit-test 29 #x40 34 #h"AE6E5FE9CD9B0B8FBBA08D86A73C1FC9") (:digest-bit-test 29 #x20 34 #h"B0AF28AB9D0FC7EEE36A757E9A1ED66B") (:digest-bit-test 29 #x10 34 #h"70F0627C98DF0A4282D20B07A6A05BA1") (:digest-bit-test 29 #x08 34 #h"7CE886342A970ED79132994AA682BEBC") (:digest-bit-test 29 #x04 34 #h"25313BE41F42B3D30E1CD065D73ACDD7") (:digest-bit-test 29 #x02 34 #h"A90FA5EBF49DD9F4E77716C3C1E9765D") (:digest-bit-test 29 #x01 34 #h"1F9DD8FC6AC8EFBC2D378D6AB44AAFE7") (:digest-bit-test 30 #x80 33 #h"4B0858EEB2639659EACA7B7B7C3349A5") (:digest-bit-test 30 #x40 33 #h"5E8280869101EF49835627FDFB13E5D3") (:digest-bit-test 30 #x20 33 #h"0B495C962E6799B67D93F1B5B590C844") (:digest-bit-test 30 #x10 33 #h"4DC7D22B8F29BEB964B2965191A11463") (:digest-bit-test 30 #x08 33 #h"60768F63CFA2E88A75367561DF60FA01") (:digest-bit-test 30 #x04 33 #h"009B7E32759B44054975D918DA7424CC") (:digest-bit-test 30 #x02 33 #h"DC82A437FF020C9C9BC699ADF214D937") (:digest-bit-test 30 #x01 33 #h"904D158775D4A8666D663AD2FB2E79A1") (:digest-bit-test 31 #x80 32 #h"FC6B5B1628894C202D19C36A29BE2C98") (:digest-bit-test 31 #x40 32 #h"AA186F907E4A59827646EC5DA8CB4B8C") (:digest-bit-test 31 #x20 32 #h"C889405D3292C5F4866E2B82EB743FDB") (:digest-bit-test 31 #x10 32 #h"2ACD03AC14947052515B8F311F759093") (:digest-bit-test 31 #x08 32 #h"B4CDCE550EF4285C2851EF81B479FDE8") (:digest-bit-test 31 #x04 32 #h"9D1FD01C05A09169E37ED94562BAAAF5") (:digest-bit-test 31 #x02 32 #h"E97333985B140C769EF4CDBF13B5FBA3") (:digest-bit-test 31 #x01 32 #h"29911578E644BDF6257D23B8D4DD0D38") (:digest-bit-test 32 #x80 31 #h"ED9D395824171A7F82A0CB538433A22B") (:digest-bit-test 32 #x40 31 #h"101BE3EECE1ED26CE794B90C6C5D0460") (:digest-bit-test 32 #x20 31 #h"89B836293A99ED6E02D5DADE0121AC20") (:digest-bit-test 32 #x10 31 #h"AEBBF1CFCA7CCE6941FA0B93B9E58B7A") (:digest-bit-test 32 #x08 31 #h"C4714103FA3E1AC58C9AB450F4567764") (:digest-bit-test 32 #x04 31 #h"499F861EE4EFB2FB38A00B97EFF10010") (:digest-bit-test 32 #x02 31 #h"D95C0AD5BB39C47DB3B0D6EE7F354444") (:digest-bit-test 32 #x01 31 #h"FB0E49A8512A6514C8E52E8F302C1313") (:digest-bit-test 33 #x80 30 #h"92ACEF120453F4AF4AC41BF1970D7356") (:digest-bit-test 33 #x40 30 #h"1F9836EE1AFDB7972819B91ABF856A4E") (:digest-bit-test 33 #x20 30 #h"0C3D4612FC048FDAA32E4A94B6F1386F") (:digest-bit-test 33 #x10 30 #h"7CE5B968386A1AC3759B4B4BA636D939") (:digest-bit-test 33 #x08 30 #h"4250DA118C52D1BCD8C76D657535EC5E") (:digest-bit-test 33 #x04 30 #h"07A7BDC93E71936D4358FF104F5C6F2B") (:digest-bit-test 33 #x02 30 #h"39069C6B6051F6F0D270A0E04E91369E") (:digest-bit-test 33 #x01 30 #h"882EE17FB046D8A07610C313AC5915DF") (:digest-bit-test 34 #x80 29 #h"BEBF589B9A2561EDA0E6A08221882759") (:digest-bit-test 34 #x40 29 #h"96C91B562423BCD0727E0A0731D797AC") (:digest-bit-test 34 #x20 29 #h"421B5C3068FC2555A4DF70B3817B8780") (:digest-bit-test 34 #x10 29 #h"43D4E2EA49CD56875A788AE9E892D9C5") (:digest-bit-test 34 #x08 29 #h"67FDD0B32AC1C39FC3331B3CAF957E2E") (:digest-bit-test 34 #x04 29 #h"3B1290877EE8C9D6C0785D7D08B13578") (:digest-bit-test 34 #x02 29 #h"239986662C2E2FDD2DA5C8EBD9AC78B4") (:digest-bit-test 34 #x01 29 #h"1FDF66EA7A8791B4DBD42B3D97624788") (:digest-bit-test 35 #x80 28 #h"6831072E80D199D3C4A348AE6DD143D0") (:digest-bit-test 35 #x40 28 #h"9470D664B893EFF4D79B36ED46D9493F") (:digest-bit-test 35 #x20 28 #h"4B635B3106408769F8F1CD71EF4AF402") (:digest-bit-test 35 #x10 28 #h"FC7ABB2218193926602C5BE159EF2157") (:digest-bit-test 35 #x08 28 #h"8F6D97EC60BBF7BE9F9E2DE37B495D9D") (:digest-bit-test 35 #x04 28 #h"A921143B8BCA6CAC4B44D946E5948537") (:digest-bit-test 35 #x02 28 #h"DD2EB5678E96DE9148B8851680016F63") (:digest-bit-test 35 #x01 28 #h"04F0A7E368A6FEF21524BEB4DC5310C2") (:digest-bit-test 36 #x80 27 #h"07BED9042B3422E6158DA127D4C2BD60") (:digest-bit-test 36 #x40 27 #h"D47C8F862F2A5DA9FAA888FDA124808B") (:digest-bit-test 36 #x20 27 #h"C2C749BF832F924E379EAC89959694C3") (:digest-bit-test 36 #x10 27 #h"4096823ABA928A856D6724FD91C57D3D") (:digest-bit-test 36 #x08 27 #h"B731BBD56CFC1E3EFB11F717E494EA82") (:digest-bit-test 36 #x04 27 #h"A4F83A8ACD7A56B5200834DFF5ABA455") (:digest-bit-test 36 #x02 27 #h"1ECA937A011FD3C181A455D5DCDDAC73") (:digest-bit-test 36 #x01 27 #h"F481C363C8AB7EF5AC2DD6B4389BF62F") (:digest-bit-test 37 #x80 26 #h"5E6906AD1D5495F44366D61FDD593689") (:digest-bit-test 37 #x40 26 #h"033F089D5B15DF34AEE9862A2998B190") (:digest-bit-test 37 #x20 26 #h"C5B96A88C4D30AC218A00FE8C8A5FE0E") (:digest-bit-test 37 #x10 26 #h"ECA700AA944E6014C5336A0A797E9EA5") (:digest-bit-test 37 #x08 26 #h"9822EA7178B96DC5156EF33477D9FFF6") (:digest-bit-test 37 #x04 26 #h"5EEEB310879425F489A2910A1E5BF85B") (:digest-bit-test 37 #x02 26 #h"09C86FFA6114D9356DDD340B829B8315") (:digest-bit-test 37 #x01 26 #h"9A7120E4C17EBCE75121C55F56EA7122") (:digest-bit-test 38 #x80 25 #h"B3632C95BCAB4E24EE5333AA2F28941B") (:digest-bit-test 38 #x40 25 #h"3C5C4A9AD5BA676E0F916621C4D09398") (:digest-bit-test 38 #x20 25 #h"723FD90024007F7103E98DA58890DE41") (:digest-bit-test 38 #x10 25 #h"8C83B58202FE44078263C22E3329B2A6") (:digest-bit-test 38 #x08 25 #h"4E8FD8E2758CD544E6682B987AE13820") (:digest-bit-test 38 #x04 25 #h"4B5A95DBC9911A08B27D33F5B606BC1C") (:digest-bit-test 38 #x02 25 #h"B8CE619A1D6B9956E0B54DB4B295994C") (:digest-bit-test 38 #x01 25 #h"4A5F3B1A66788529448A43F3E12AF39D") (:digest-bit-test 39 #x80 24 #h"DFEBB879EC199A81A4D3B4A8B435DD4C") (:digest-bit-test 39 #x40 24 #h"06F8D0A5735612DD5967037B7CDAC850") (:digest-bit-test 39 #x20 24 #h"E57BCB5946E8F7058DB6528F61C430FA") (:digest-bit-test 39 #x10 24 #h"D99EBFDA2BB73EED3665216E8C2A1CF1") (:digest-bit-test 39 #x08 24 #h"61C9AA0D28C04D6DD753EC855214149E") (:digest-bit-test 39 #x04 24 #h"3A6070C3732E697E7FC826E8EEB5094C") (:digest-bit-test 39 #x02 24 #h"063DEEAE397AE2C6F3A6AE4B98AB2C7A") (:digest-bit-test 39 #x01 24 #h"9D15B95AEB06B324A0134A1F9976DCB4") (:digest-bit-test 40 #x80 23 #h"434B09EA2CCB9C84EE9D5E53224A1AEF") (:digest-bit-test 40 #x40 23 #h"EC30D78EC1CE0EF63367AAEB083161BB") (:digest-bit-test 40 #x20 23 #h"CAA711A199F4A91B0B04DD7D7226ADE7") (:digest-bit-test 40 #x10 23 #h"4A7A550DEDFF320DDA0A5538EC0CAA5B") (:digest-bit-test 40 #x08 23 #h"EF5BF0E556BB02C413E3E721EE46CE8E") (:digest-bit-test 40 #x04 23 #h"AE78A69932F7567419555CB281CC43FB") (:digest-bit-test 40 #x02 23 #h"D4974DF3B1C5C570F9EDBBC36B4E0EFA") (:digest-bit-test 40 #x01 23 #h"66F4FC209A7DC510FD540DB13FA5A9D0") (:digest-bit-test 41 #x80 22 #h"D8B0C69B1460D390394B18A8291CCAE6") (:digest-bit-test 41 #x40 22 #h"842F8BAE44E33E459870B947FBA846A4") (:digest-bit-test 41 #x20 22 #h"19EE32DC24E80C8E41A1DE95B555C3DB") (:digest-bit-test 41 #x10 22 #h"5EC5971D4C35A16E4DF4957454C9AC67") (:digest-bit-test 41 #x08 22 #h"28712A9C1B541BF38BDD3579D050D5CB") (:digest-bit-test 41 #x04 22 #h"6A6B51E428A95BEEA6F4D4597296E03D") (:digest-bit-test 41 #x02 22 #h"14D77332F92E1C1BA396812696946307") (:digest-bit-test 41 #x01 22 #h"3494210E35210F36EF5863E9654FE203") (:digest-bit-test 42 #x80 21 #h"2153AFCA13686918AD74D84B91B3FD7E") (:digest-bit-test 42 #x40 21 #h"E8C2D6FDA486A004774D642971D299DE") (:digest-bit-test 42 #x20 21 #h"D8BFD743BAC554D9FAEE587568C779C9") (:digest-bit-test 42 #x10 21 #h"3C6D50F6E8B2DF1F0170DD1F5078005B") (:digest-bit-test 42 #x08 21 #h"904751732AD4A6DD1633F6F32FE15B6C") (:digest-bit-test 42 #x04 21 #h"6F6458AC973D5227EA1FA11BDDCF5C28") (:digest-bit-test 42 #x02 21 #h"3512A0D0699AB677C0E8D18AA60669F5") (:digest-bit-test 42 #x01 21 #h"D20E8CE906D28EB16A79AA50133D0390") (:digest-bit-test 43 #x80 20 #h"FA25C49644FE02B2DCC09B21DC80CC8C") (:digest-bit-test 43 #x40 20 #h"BEF7CB2C5BB419A274DB5F752B58789B") (:digest-bit-test 43 #x20 20 #h"4E5B96D2A37D53FAD56E1011F83A9B95") (:digest-bit-test 43 #x10 20 #h"F896E7E529BA2C51F35FA96713A90A54") (:digest-bit-test 43 #x08 20 #h"08A7042023558FEFE2EED405784152BC") (:digest-bit-test 43 #x04 20 #h"793B08BDBF6FE53A4DABF59D0F3065E9") (:digest-bit-test 43 #x02 20 #h"AA147CCCFE9C4D8DB5B53CB30DD9E06F") (:digest-bit-test 43 #x01 20 #h"5D59349615747260835F2453EEE6BC5B") (:digest-bit-test 44 #x80 19 #h"CC729FB233027898E5C518AF9B545EB0") (:digest-bit-test 44 #x40 19 #h"8B6E6D2982109FF64A86951CF1DB22E6") (:digest-bit-test 44 #x20 19 #h"2C979E5B5505F99C0285462C6E9A2585") (:digest-bit-test 44 #x10 19 #h"5E921F1CDB50574A1D42A318F72F4E06") (:digest-bit-test 44 #x08 19 #h"91C95A8DCA2CA8989CE17EC38A6388A7") (:digest-bit-test 44 #x04 19 #h"684120A9CFAB2CD256FA26077E98D848") (:digest-bit-test 44 #x02 19 #h"FBB5156D83A78CB68DC5DF712C253D1A") (:digest-bit-test 44 #x01 19 #h"3CB2BDC773A346D47EE802D67D547693") (:digest-bit-test 45 #x80 18 #h"DBF8F334AB91DED574DD285F8C000FF4") (:digest-bit-test 45 #x40 18 #h"0B46FA6EE628F27B47F0A4A2596EADEC") (:digest-bit-test 45 #x20 18 #h"EBDFAF3A03CB6F6B132DC4978D68995C") (:digest-bit-test 45 #x10 18 #h"1B8832D27893A6F8B971EF9145CAED46") (:digest-bit-test 45 #x08 18 #h"C7424DA41E411A7DBD0EBD1182DE61A3") (:digest-bit-test 45 #x04 18 #h"4E66E56FD2AD4E534C43A9976DB2C75E") (:digest-bit-test 45 #x02 18 #h"760C2D53D55FBD65E7DAED31E4F463CF") (:digest-bit-test 45 #x01 18 #h"D517E380A8C618BBA8169A905224AD4A") (:digest-bit-test 46 #x80 17 #h"3031C0316DE64B89C3E0780FE5C2ECE6") (:digest-bit-test 46 #x40 17 #h"E11DDBFE49C7D15D4605FE051F7DC13C") (:digest-bit-test 46 #x20 17 #h"6AAED62F00954A26BF916E0C245ACF42") (:digest-bit-test 46 #x10 17 #h"FF448413805677217C354881E17FD9E5") (:digest-bit-test 46 #x08 17 #h"908FD38B278D2DF6E24A13DD924C484D") (:digest-bit-test 46 #x04 17 #h"152F4843E348EFE4E73E74E0CF4B8219") (:digest-bit-test 46 #x02 17 #h"E21E3D6E39C1F98BFE666A2C69520211") (:digest-bit-test 46 #x01 17 #h"E07EA5D16AEB8431BFB016EE7BD0C5CC") (:digest-bit-test 47 #x80 16 #h"AFF6A755F2ABD47A06165D5C28E125BB") (:digest-bit-test 47 #x40 16 #h"DCE5532469BDD235444DF3608D98EBF0") (:digest-bit-test 47 #x20 16 #h"DA4808CEDCF6FD31715854CF73CC3383") (:digest-bit-test 47 #x10 16 #h"22D2C86CA8BE7782C2239D51CC285A52") (:digest-bit-test 47 #x08 16 #h"6DE111AC57EEC38FF4F5B8B458F35C20") (:digest-bit-test 47 #x04 16 #h"0169943B9748514AB5D0083D5174F7F0") (:digest-bit-test 47 #x02 16 #h"C1EB9BCEEC97EBD8E6589C2CE337033F") (:digest-bit-test 47 #x01 16 #h"ECB3F11368167148C7D35CAD06FF0C6C") (:digest-bit-test 48 #x80 15 #h"9A42CB788CDEE1C20EEC7B16F294E184") (:digest-bit-test 48 #x40 15 #h"2CCF587C931D62CAC815676A6A6457B3") (:digest-bit-test 48 #x20 15 #h"F6F2004BC97D03608CABB0BD44E998A1") (:digest-bit-test 48 #x10 15 #h"7C80829659877A03938CC796BA738DEF") (:digest-bit-test 48 #x08 15 #h"4CA3F42094A36B4FE4DC893BFB813310") (:digest-bit-test 48 #x04 15 #h"474513BB6D0C0F73A63DFE920210216E") (:digest-bit-test 48 #x02 15 #h"431BE2611DFFD6DE4EAB6936E0E497DA") (:digest-bit-test 48 #x01 15 #h"813B32050FEDCDB719F95A646E888560") (:digest-bit-test 49 #x80 14 #h"49384B8B60C1A065346A995BB31CEA47") (:digest-bit-test 49 #x40 14 #h"B97D733DE2C048FF0C01891114D0AFB5") (:digest-bit-test 49 #x20 14 #h"8B8346E0F1D63A73CE1CCAD90D2CF097") (:digest-bit-test 49 #x10 14 #h"137398F39EF97AE7B6B682F8253CE123") (:digest-bit-test 49 #x08 14 #h"6E244EC4300F40A8DCBE38A446DE9006") (:digest-bit-test 49 #x04 14 #h"0286C3F8D66DAB8FF8CD925A1B9D7140") (:digest-bit-test 49 #x02 14 #h"788CC909AD9F81FEF4749B8B58C92473") (:digest-bit-test 49 #x01 14 #h"A05C4E77731A523F396EADA342D6E66A") (:digest-bit-test 50 #x80 13 #h"5C5208058E887AEFA1A32E8988A37455") (:digest-bit-test 50 #x40 13 #h"7567725FF801A30914E07CFFE1A6C49A") (:digest-bit-test 50 #x20 13 #h"346DE7910432F66E09BAC32E34EB1B58") (:digest-bit-test 50 #x10 13 #h"145C587A9887EFE3D3E0E758B7589D39") (:digest-bit-test 50 #x08 13 #h"E0CFD61D4F4604C26E299A7F1FF60A9B") (:digest-bit-test 50 #x04 13 #h"031525ABB3AA04A8F9FF4EEA20955BF2") (:digest-bit-test 50 #x02 13 #h"8FC8AFDFFBA17F5F6FECAAB9B52DF2A6") (:digest-bit-test 50 #x01 13 #h"1959366FB1C73BE165B12D3A972BBBF7") (:digest-bit-test 51 #x80 12 #h"822496D965F7D85215D7752AFF1C03CC") (:digest-bit-test 51 #x40 12 #h"C2E0DE6429654FB9590324DCF1D92D8F") (:digest-bit-test 51 #x20 12 #h"4D360BBE43BE367A2A7EE6BFF0ECDC65") (:digest-bit-test 51 #x10 12 #h"83351D012FEF8C39D6C8ED2764365222") (:digest-bit-test 51 #x08 12 #h"68B502C668B792ED079866770B10C965") (:digest-bit-test 51 #x04 12 #h"9160B774CBD240B9971CC01C694254EA") (:digest-bit-test 51 #x02 12 #h"772D02B47D9A881ED8793AEA6DB156A2") (:digest-bit-test 51 #x01 12 #h"453952F734884B80C5843A05693F9BB5") (:digest-bit-test 52 #x80 11 #h"F5816D1064596ABFF2E783455467626B") (:digest-bit-test 52 #x40 11 #h"AB5FE94D6F3942B597087F55689F88E3") (:digest-bit-test 52 #x20 11 #h"53CAAF5CBC27128942AB99FC82F93D16") (:digest-bit-test 52 #x10 11 #h"4ECC87CE3E1663123FC0073032A46698") (:digest-bit-test 52 #x08 11 #h"AEDD921FC1C61F882874AD4C852326E7") (:digest-bit-test 52 #x04 11 #h"13B9902301C02A268AD8BF10B8F9E3A1") (:digest-bit-test 52 #x02 11 #h"A223438271EB74888A765160D6522886") (:digest-bit-test 52 #x01 11 #h"0ADAFB3AB3E613570405A34CD6F45F66") (:digest-bit-test 53 #x80 10 #h"EAE6F63E52CD7468B6D0ECC4B071237C") (:digest-bit-test 53 #x40 10 #h"18D3E8B9062752CAEBE9D883134AAABC") (:digest-bit-test 53 #x20 10 #h"6EDF355D7837ABDFA212D2CD5BCB87D6") (:digest-bit-test 53 #x10 10 #h"0A3ECD269F355AB60EEFBE4091F18AD5") (:digest-bit-test 53 #x08 10 #h"6E7B760A6835B012538A335E380780E3") (:digest-bit-test 53 #x04 10 #h"C662C5004355636CA82CD719F9D1C73E") (:digest-bit-test 53 #x02 10 #h"F5AE69B217C1CF7244A23B131EDD92EA") (:digest-bit-test 53 #x01 10 #h"C1932E05A9013D9F99F4D3E5276A119C") (:digest-bit-test 54 #x80 9 #h"A6B846C6737042EA576BE18DE7E02269") (:digest-bit-test 54 #x40 9 #h"F4152ECC66945DA718F7D9D555187B6C") (:digest-bit-test 54 #x20 9 #h"501779DF50469939215CCCE08A3A94D6") (:digest-bit-test 54 #x10 9 #h"C1ABB35E11F4BC38294874287BEE9AAF") (:digest-bit-test 54 #x08 9 #h"9C91D1E0FA615B35AE1BECB2246E6455") (:digest-bit-test 54 #x04 9 #h"0C0736C7063B09A489911E501C0150E3") (:digest-bit-test 54 #x02 9 #h"B38E7B51485EDD91FD7E9F4378E38816") (:digest-bit-test 54 #x01 9 #h"595EB1247564E5E2F0CD600972D5BDD1") (:digest-bit-test 55 #x80 8 #h"1903BA1EC1F52753FBB268F9F3CCD6B1") (:digest-bit-test 55 #x40 8 #h"AAD887A7C026424568B7ABD0811EB531") (:digest-bit-test 55 #x20 8 #h"A7045885FB7FCD4A53CB0F22C6CDB5AD") (:digest-bit-test 55 #x10 8 #h"CD5B21D3AA49BABBC11B111BBDF76EC9") (:digest-bit-test 55 #x08 8 #h"4643EF5500FDED7B08B5D69C62D5582D") (:digest-bit-test 55 #x04 8 #h"4B90DA4B10A0B514998EF664C3BAFF69") (:digest-bit-test 55 #x02 8 #h"3F93EDCBC0F9DAA89D2034C562F1BDFA") (:digest-bit-test 55 #x01 8 #h"6E4C987BE3A6B24B3E38F1CAFE963C1E") (:digest-bit-test 56 #x80 7 #h"F025E2F601BBD45F231B7DCC4056B365") (:digest-bit-test 56 #x40 7 #h"C6C66B75C45E8E06811AF898D995AE1C") (:digest-bit-test 56 #x20 7 #h"78A2026C6B2693223B902BE948136BB8") (:digest-bit-test 56 #x10 7 #h"E2BBAC6D03DDAF61E40CE15DBFBE90C3") (:digest-bit-test 56 #x08 7 #h"CDB03F27AEDB30F7E596343BECB734BD") (:digest-bit-test 56 #x04 7 #h"93E750C651C7948DA2A60699DF6DEDCA") (:digest-bit-test 56 #x02 7 #h"DEAF528DF04ACF72DE18B3217053D427") (:digest-bit-test 56 #x01 7 #h"46A254BF46ED3199BB635ECCDAF15885") (:digest-bit-test 57 #x80 6 #h"0FF7741D480328D0686A2DEC4B41B4AE") (:digest-bit-test 57 #x40 6 #h"E146B00D2369DC2DDDA083A8BB1A7DEE") (:digest-bit-test 57 #x20 6 #h"C87C5FF808384504E42BFD1BE5A712B1") (:digest-bit-test 57 #x10 6 #h"8275B17CEABDFEF760222DA01A35715D") (:digest-bit-test 57 #x08 6 #h"D3DD3D6F53B45B797778E7FEF28A8C5B") (:digest-bit-test 57 #x04 6 #h"E5F72DF56B978D8DB7E7EED04AF709B4") (:digest-bit-test 57 #x02 6 #h"0F5730004ACE61A069514071F184A1B6") (:digest-bit-test 57 #x01 6 #h"5B70D9641D978CE2E2CFFD7FB77710A9") (:digest-bit-test 58 #x80 5 #h"7EDDEF710BA2068E8598EE4D4359114D") (:digest-bit-test 58 #x40 5 #h"B89DFF15C70666B1F41D53C3EEFDF88B") (:digest-bit-test 58 #x20 5 #h"3762BACD52DC2AD602CFEFDBCCB86699") (:digest-bit-test 58 #x10 5 #h"EC0B054B6DF1C6622ACB55F025092521") (:digest-bit-test 58 #x08 5 #h"38C8CC15D9C50B404EB18E07F5C020DC") (:digest-bit-test 58 #x04 5 #h"B841829E581AA28D25B61890711D99C5") (:digest-bit-test 58 #x02 5 #h"D91E2A0CFD68A772D39A15DCB0061E72") (:digest-bit-test 58 #x01 5 #h"46D2ED6F3043A6201A7A9853320D70BA") (:digest-bit-test 59 #x80 4 #h"0E380317C0B7A38666CA700C54A86A7D") (:digest-bit-test 59 #x40 4 #h"6459F489263B4AA47205258F8844B57B") (:digest-bit-test 59 #x20 4 #h"67CF6FBF0D86024C9B54B140350298C2") (:digest-bit-test 59 #x10 4 #h"67D1FEFA06650699BBA2498D77422E48") (:digest-bit-test 59 #x08 4 #h"7EF6EEF95A7F051CFF31EB3F8906D7BD") (:digest-bit-test 59 #x04 4 #h"8EF040642F6A536C63556B8708BC17E5") (:digest-bit-test 59 #x02 4 #h"DB7648736FFA74596EB5C3B3918AEBA3") (:digest-bit-test 59 #x01 4 #h"01C0DCC29632E632E2D65D22C8D5A397") (:digest-bit-test 60 #x80 3 #h"505A6E9E779E4AC35767F624C815F2E2") (:digest-bit-test 60 #x40 3 #h"E5404AD29B710C5189669E150A710D29") (:digest-bit-test 60 #x20 3 #h"40BEE92CF590D130F7CD8DF31223B105") (:digest-bit-test 60 #x10 3 #h"A213CD218594A7F3EB14B627E1FC5B76") (:digest-bit-test 60 #x08 3 #h"F2ECA81F5EE194D356210A5E83657BCC") (:digest-bit-test 60 #x04 3 #h"BE42CF5328636668130F9000FD6B601C") (:digest-bit-test 60 #x02 3 #h"7D8CB103E55798EBC816DBB9D49B1B0F") (:digest-bit-test 60 #x01 3 #h"7996972214DBEA50ED400B5250E3AE6F") (:digest-bit-test 61 #x80 2 #h"47CAF317CF83F0D4B52015079A22067C") (:digest-bit-test 61 #x40 2 #h"2C8B88503B88BBF4E03F9112EADCAA1E") (:digest-bit-test 61 #x20 2 #h"27D5C2DBD350B6D18849CC5DFD690630") (:digest-bit-test 61 #x10 2 #h"F2F36909DBA92546CCC4536C529E1244") (:digest-bit-test 61 #x08 2 #h"A8F24846E4BEB0662FB1DB3448B9B80E") (:digest-bit-test 61 #x04 2 #h"15E190036F667CE0AE80DB61834DB56F") (:digest-bit-test 61 #x02 2 #h"EBC2C68270E129D7766887108739BAC9") (:digest-bit-test 61 #x01 2 #h"B6A4C6F85D391A98D0513E074B5313C5") (:digest-bit-test 62 #x80 1 #h"25F86F015DF2C1DB33B53BDAC1F7C37E") (:digest-bit-test 62 #x40 1 #h"26154B8662C7AB915CFD5D3AEACA736A") (:digest-bit-test 62 #x20 1 #h"1EFCFE1F115FE9DF8D60F1B985FEBE3A") (:digest-bit-test 62 #x10 1 #h"37DC0F6EDD8AC35C5A556081B41097DD") (:digest-bit-test 62 #x08 1 #h"E4B76A9A8F6BCA334439CB82892C2925") (:digest-bit-test 62 #x04 1 #h"934867C0BBFCB06C5BBA8A324EBF9EA4") (:digest-bit-test 62 #x02 1 #h"56859B2F54F496E8BB0A09231975842E") (:digest-bit-test 62 #x01 1 #h"7D7B4FB873242930EF536C6E80879BA1") (:digest-bit-test 63 #x80 0 #h"CC10DAD64C6DECDA5FBDD62A11BBE586") (:digest-bit-test 63 #x40 0 #h"83F78A4FAA4E4ED312DC33C6B2514700") (:digest-bit-test 63 #x20 0 #h"DDA2969799CEC4F270FCB69209474EC7") (:digest-bit-test 63 #x10 0 #h"8197D643B6A206825B566BFEC1461987") (:digest-bit-test 63 #x08 0 #h"638A19A3375D1CD4A6D597D0ED0FB2A3") (:digest-bit-test 63 #x04 0 #h"62881F317DE9E38108F29307239EC178") (:digest-bit-test 63 #x02 0 #h"441C9490934F4E743EF246C24576AF8E") (:digest-bit-test 63 #x01 0 #h"0B0BA2C1FE0416434ABD826DB682FAD5") ironclad_0.33.0/testing/test-vectors/sha1.testvec0000644000175000017500000011426111305364032017006 0ustar00;;; standard tests (:digest-test #a"" #h"DA39A3EE5E6B4B0D3255BFEF95601890AFD80709") (:digest-test #a"a" #h"86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8") (:digest-test #a"abc" #h"A9993E364706816ABA3E25717850C26C9CD0D89D") (:digest-test #a"message digest" #h"C12252CEDA8BE8994D5FA0290A47231C1D16AAE3") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"32D10C7B8CF96570CA04CE37F2A19D84240D3A89") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"84983E441C3BD26EBAAE4AA1F95129E5E54670F1") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"761C457BF73B14D27E9E9265C46F4B4DDA11F940") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"50ABF5706A150990A08B2C5EA40FA0E585554732") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"C80B973C1157A7FE4F4150AD4C2A932494BF7BC7") (:digest-bit-test 0 #x40 63 #h"56B60A86C48BF35C2688B2B4E44E906C22221CF6") (:digest-bit-test 0 #x20 63 #h"F07DC15D139E20B569D018C517EA697434CB35AE") (:digest-bit-test 0 #x10 63 #h"CF3E842C69F06D3BC769367BC4B4F6E57B5496E5") (:digest-bit-test 0 #x08 63 #h"96429B7BAA941F24306C1F9103FE2B454D1323B2") (:digest-bit-test 0 #x04 63 #h"F8A7C819FA7A7CC6C08376001F6F7C30DC52837D") (:digest-bit-test 0 #x02 63 #h"78ADA92E4FEFC60B100EE2AF775B05520823B020") (:digest-bit-test 0 #x01 63 #h"9C8D8E5A31C9802B093C4116DFB0A23A311B8029") (:digest-bit-test 1 #x80 62 #h"7D43DAA11204FC356565AA3C6D05ACA04D9870C7") (:digest-bit-test 1 #x40 62 #h"E6B75E72075112399E5BF80A9A9CFBF6049EB5D2") (:digest-bit-test 1 #x20 62 #h"B445E64D88F2633490FA0EEB349D7FAC9747C8F4") (:digest-bit-test 1 #x10 62 #h"038C8FD9D653E91399EEBB87DFA2DD801B2B34A5") (:digest-bit-test 1 #x08 62 #h"DDA4821E8441BC1CA66D18A2EAAE4A6D0A495228") (:digest-bit-test 1 #x04 62 #h"499E5250D504F77DAE8196D52B399EDE52B19BC5") (:digest-bit-test 1 #x02 62 #h"CFEE25E054425F4989F1E6EFD3E1F3633FFD2D5E") (:digest-bit-test 1 #x01 62 #h"01F033F733AD52897A5F85743631D2C5A24DF29D") (:digest-bit-test 2 #x80 61 #h"8F16CF5C70AB51ED9CDB44312EAEAD39C3EC2E52") (:digest-bit-test 2 #x40 61 #h"740B98B60EF34F120E38818427D72187CD5DF4DA") (:digest-bit-test 2 #x20 61 #h"D0723C0AFF5876687A7B8CB6D0C45E6CDFE398C0") (:digest-bit-test 2 #x10 61 #h"BF2AA88116C9BBA41E76C4835A8DDD0C2822A5FE") (:digest-bit-test 2 #x08 61 #h"6EBF3F3419C3CCC586344CF24E07050A8D5E5AAA") (:digest-bit-test 2 #x04 61 #h"1DED9734A2A6497F545537F50E162B707EBBECEE") (:digest-bit-test 2 #x02 61 #h"E0150DD6726DCEC7EECF0675A7FC998A98D43852") (:digest-bit-test 2 #x01 61 #h"C85602D666EC3B89FFBC8D496447113D15B15910") (:digest-bit-test 3 #x80 60 #h"11945DDD1210E9720335BAA588911F0DD22A75F8") (:digest-bit-test 3 #x40 60 #h"3F085871E93D27CA79BA3CF549F4F14E925B47EB") (:digest-bit-test 3 #x20 60 #h"1EAF14B33C7CCA699DAD92C8514BDF68B01CCB40") (:digest-bit-test 3 #x10 60 #h"09444FABB51E6FE7D4452E79D1063B4A8E3E4D82") (:digest-bit-test 3 #x08 60 #h"87D02B5C01451B2E71917D51C078C522CECF3E0B") (:digest-bit-test 3 #x04 60 #h"2168E7CE44E725A2723542EF9BD06FDA7A7E7C8F") (:digest-bit-test 3 #x02 60 #h"2E9C528E8E7F79FF214EB169D8A4C9762125373A") (:digest-bit-test 3 #x01 60 #h"80762AC3A2C6589B32FBD1B5EDF9CF04B1B2215C") (:digest-bit-test 4 #x80 59 #h"AC293B9701FEF4DDDAC98EA2B6024719642D26BB") (:digest-bit-test 4 #x40 59 #h"6C7DBCCA072D9FB9096F0CB316F519DA899173E0") (:digest-bit-test 4 #x20 59 #h"5B5E8B8FD142866535F68E59D4FE77CB05FD9CE1") (:digest-bit-test 4 #x10 59 #h"42875F6AF7B7651D0C8385B425DB3FFD99550102") (:digest-bit-test 4 #x08 59 #h"694D8BC576F66ADE600CB6984EA7A7260CC44F14") (:digest-bit-test 4 #x04 59 #h"FE26D65A5424E8A8B3D3F5F1C34B9B5062BAF56E") (:digest-bit-test 4 #x02 59 #h"3371E839A02AADAD47C7CCA1B2E2533F2767F422") (:digest-bit-test 4 #x01 59 #h"4168FA28936F4B1033A4E19D0A12DA2DDD47C244") (:digest-bit-test 5 #x80 58 #h"24FFD42C1B342AA89E041B37755B337879ED7CA7") (:digest-bit-test 5 #x40 58 #h"1C0913FFD921BEF41BD7462358E086227294B183") (:digest-bit-test 5 #x20 58 #h"48C97D9F0E0C7B29130646BE6A56D4B2646EDB88") (:digest-bit-test 5 #x10 58 #h"D6777E499284128D7F6E37D730D0E3FEA173E438") (:digest-bit-test 5 #x08 58 #h"D032E3F7EF5669B263F474E3CCAC671CDBBAF8AB") (:digest-bit-test 5 #x04 58 #h"97C80A4D5A89B79294C35CD6763B2E9C757545C7") (:digest-bit-test 5 #x02 58 #h"15595DE8404B06AEB0AC4F5460741C5EC4618A6A") (:digest-bit-test 5 #x01 58 #h"E35EAC18F548B2213043E2071E8A3328073E3B0D") (:digest-bit-test 6 #x80 57 #h"D9CFDC0AFF96B9553CF7E3043D9276A434615E96") (:digest-bit-test 6 #x40 57 #h"0A99C997839E36B53BC61E11978D44052527891E") (:digest-bit-test 6 #x20 57 #h"F6D409B550C2EF3271D07D50ECF0AD2D88700619") (:digest-bit-test 6 #x10 57 #h"DEED66BF0A4E4043D3811EA8BA0326704C334B0F") (:digest-bit-test 6 #x08 57 #h"2567B864FD878473495FD335AECEA89FCCDF2673") (:digest-bit-test 6 #x04 57 #h"EB8BFF11ACD9A2E62CBEF9CD5A61697E5D5316D9") (:digest-bit-test 6 #x02 57 #h"C7F2D49AAA96200A373890516DC9320819416808") (:digest-bit-test 6 #x01 57 #h"B529D29A35A660A26B1D940EB48B3F29983F12C2") (:digest-bit-test 7 #x80 56 #h"55BB9C4F4175807789AB8C7E23CACFE2F8CF7031") (:digest-bit-test 7 #x40 56 #h"0E4FE8A0F3E5D3E415B93E85924FF96684EDD04B") (:digest-bit-test 7 #x20 56 #h"0CC5775BEF98969EAA8B1DF3BEDD1E305825D076") (:digest-bit-test 7 #x10 56 #h"1A455AD4ED941623B6A3FE01B16C1AB10C0AF1A4") (:digest-bit-test 7 #x08 56 #h"BC112941C3736D8608572454BC3B9B81E4F00ECD") (:digest-bit-test 7 #x04 56 #h"38846E9960050E14E883B55D84DB7F01215355AF") (:digest-bit-test 7 #x02 56 #h"087894D777079923A1F335B5CFF64EEB020B9831") (:digest-bit-test 7 #x01 56 #h"455BBDE02D1E9648A3C5D6B2B0BBE09B1167AB9B") (:digest-bit-test 8 #x80 55 #h"E09044703F1C8F36B359CB4F88D9183E2626795B") (:digest-bit-test 8 #x40 55 #h"A7B4E0ED99C4FF63BF6008E07AC09C0C812BAE1B") (:digest-bit-test 8 #x20 55 #h"3A11D6DDA00DB4C776E3FC7B6464679283E85F9A") (:digest-bit-test 8 #x10 55 #h"631C575338C15E3F7938F30619E17BD3F93B3C89") (:digest-bit-test 8 #x08 55 #h"EE5C5EA82DE03CC13772A1D41520F5771A2D54BA") (:digest-bit-test 8 #x04 55 #h"6C9A8F934DB6F888D6F9BD47DE8D18E97AEF836E") (:digest-bit-test 8 #x02 55 #h"A1332E2DD7913BD57AF24F0F9179D73D72480809") (:digest-bit-test 8 #x01 55 #h"0DBCC21D171566F731595798084806D37E301461") (:digest-bit-test 9 #x80 54 #h"E6C51116961912F5314CFFA544A6DE2B24AB90D5") (:digest-bit-test 9 #x40 54 #h"E6250ADF0AEC03FA20EA071B0FBD35B069E706C5") (:digest-bit-test 9 #x20 54 #h"325B2FA3C59CE312460897453FF74318877C6B72") (:digest-bit-test 9 #x10 54 #h"DEE1C0C3387D7D8C31867F1BA6AF34026D49E1D7") (:digest-bit-test 9 #x08 54 #h"BF533F21E4E65065AF6B3EE144683A80BF925D4B") (:digest-bit-test 9 #x04 54 #h"B9E4A4E179F9198A2ABFEFAB564C27EA3C6D5F52") (:digest-bit-test 9 #x02 54 #h"9D892745D3179215EE1D2EA9898A3AB758DD63E9") (:digest-bit-test 9 #x01 54 #h"3506520468939295101A6EA95E427F762720DFE9") (:digest-bit-test 10 #x80 53 #h"4C8D7DC1DBF470B879ABFC6DB168899AE10F70BC") (:digest-bit-test 10 #x40 53 #h"C426EBAA58B03228871719AA5FCB30B05BF740C9") (:digest-bit-test 10 #x20 53 #h"5AA07142574F0AA5AE4FD7B5A51EB9AA63C1EB42") (:digest-bit-test 10 #x10 53 #h"56280BC7492BC80A2AD438E42C5C3956DC30E097") (:digest-bit-test 10 #x08 53 #h"967580251AC2A105E964C97DA71A1FEBA94A68AF") (:digest-bit-test 10 #x04 53 #h"158B4D9BA108126FC615A75C18228120D7D1969E") (:digest-bit-test 10 #x02 53 #h"119DAB5498C9D2E0240C21B9EEFF2D384F350855") (:digest-bit-test 10 #x01 53 #h"59C36C62CA45E8C5CB3E20747B19EE899E3DFB00") (:digest-bit-test 11 #x80 52 #h"A2D8594658B47709E739AFDA17E32174FC22D293") (:digest-bit-test 11 #x40 52 #h"C7646820D8315F820EE5DAAF48A32E10CD942617") (:digest-bit-test 11 #x20 52 #h"46EBF4A676804A632551E82BE4B57BD5CA435058") (:digest-bit-test 11 #x10 52 #h"941FEE8AFFDCE92C7B0C0C9F53935250D1606D2F") (:digest-bit-test 11 #x08 52 #h"4E79BF4BC6F098285196C9F624113476C002FC50") (:digest-bit-test 11 #x04 52 #h"1EF86E0EEA541C8C374817BF6BF07278D3EFFEFC") (:digest-bit-test 11 #x02 52 #h"C24BE886919E9FEC48294C5E2C7F7BBD5332565D") (:digest-bit-test 11 #x01 52 #h"6C99FCD7E1F6855EED92C2A7D1F3D3D9F6E8AD87") (:digest-bit-test 12 #x80 51 #h"E756DA506BFC4A04465D5D7DD4C205E946485B22") (:digest-bit-test 12 #x40 51 #h"FD4E900DE3342EE985823CBE347D7ABFF0085087") (:digest-bit-test 12 #x20 51 #h"CDB5CFE636C4F385E133D9422E38AE177DDF607E") (:digest-bit-test 12 #x10 51 #h"F40B90D9CFD60CD39C1CF1C5ED6A6BE9B4C81EC5") (:digest-bit-test 12 #x08 51 #h"F82DB7F598A7A746B90E7F0FAFB95B69C98D9C39") (:digest-bit-test 12 #x04 51 #h"B9BED915E0015F533E4C47A65264BF7DDDB2C7DD") (:digest-bit-test 12 #x02 51 #h"77B7CD2112666C5C49C9326BA18EA9B7E01912CE") (:digest-bit-test 12 #x01 51 #h"4C0CAC3DE798E7667519CBD8313562D32CB3F666") (:digest-bit-test 13 #x80 50 #h"32419E5FC2008472AC4F46B03E905DFBD8357B60") (:digest-bit-test 13 #x40 50 #h"D6B3831658FDD1185971EA835D071FA672220080") (:digest-bit-test 13 #x20 50 #h"71DB19334F8216306F414D16ABB810D5F887EEC6") (:digest-bit-test 13 #x10 50 #h"4EF16FC64A42E04BA42070BD52C7B331A8D7B33C") (:digest-bit-test 13 #x08 50 #h"2773F7D0174EDA2BABC2E658D4112E1ECEED7C4D") (:digest-bit-test 13 #x04 50 #h"3C9EC7C855FC076D4E93446B0B97881614AE69C4") (:digest-bit-test 13 #x02 50 #h"C05B6BCCD76C842939C824BB7062837D606DC774") (:digest-bit-test 13 #x01 50 #h"7FC1463FC5E883A8783E83BA2AED9477140CEFC7") (:digest-bit-test 14 #x80 49 #h"23CA389ADC702949AFDC8CE40B6CE7CB88A1DA02") (:digest-bit-test 14 #x40 49 #h"25D9C3078E383115720D33841E04590E03FDDB85") (:digest-bit-test 14 #x20 49 #h"5749378C96E41C974AB6EB82720F795CE2822FF4") (:digest-bit-test 14 #x10 49 #h"24F8E36845E10A853528181AD6EB1649657123B7") (:digest-bit-test 14 #x08 49 #h"45CB9C18DA6F7ED31007F7F7AE1AE49CE685BE67") (:digest-bit-test 14 #x04 49 #h"B26C1E83F82D92ADC5787069EA64A97EAEB05449") (:digest-bit-test 14 #x02 49 #h"9ADEF89F604BCEE1A318F0F9AB93460D3F03DD3B") (:digest-bit-test 14 #x01 49 #h"CA02BF109DD63BAD6210E37DD0436F91BA94F33B") (:digest-bit-test 15 #x80 48 #h"B4DA276DDFA7179F9E1557343D30FC553F61C485") (:digest-bit-test 15 #x40 48 #h"3E003A83B8694BCC857A628447DD83D4B1B4B255") (:digest-bit-test 15 #x20 48 #h"CFAA4C7F76DCEA939513C08DFAC97C7D350EBA04") (:digest-bit-test 15 #x10 48 #h"004C40DD366F88F9FDDD83771C05B48B66DCD70C") (:digest-bit-test 15 #x08 48 #h"BEC1E4B13505FC884DE92454B178481ABC2BFA59") (:digest-bit-test 15 #x04 48 #h"E7CCBEF62B98CB5597DF9B14B8AC8F8B0C97F518") (:digest-bit-test 15 #x02 48 #h"7B0215FAF7F0443BE069C9278286165E26CBCF73") (:digest-bit-test 15 #x01 48 #h"108CE1122EB0C82633F976CA2EFA026BBA959308") (:digest-bit-test 16 #x80 47 #h"975C113EC6E5A2C1D6D79478A109040E2751D43F") (:digest-bit-test 16 #x40 47 #h"B61659219A809E80C7ED3D7846F6F3F3BEE7089A") (:digest-bit-test 16 #x20 47 #h"B8278481A63BF09E1418081155AE7E5261E1A241") (:digest-bit-test 16 #x10 47 #h"AC46AEABE0A215D11130DFBB031A1222C055EC7E") (:digest-bit-test 16 #x08 47 #h"6531C0A7931C275B4F632EF8093919DF9313C4F5") (:digest-bit-test 16 #x04 47 #h"C74538BD718108640DB915639119F04D72C3F096") (:digest-bit-test 16 #x02 47 #h"F3144CC8D9A20E480E4E58DA30ACFEE56D591CFD") (:digest-bit-test 16 #x01 47 #h"98556435801AA5697D810F8473630343A1B31A61") (:digest-bit-test 17 #x80 46 #h"DA48390CD34E4B6128B0164BD47120E098CCC32E") (:digest-bit-test 17 #x40 46 #h"0E5758502FAB4FAC56076ECBC3E3434184CD81D1") (:digest-bit-test 17 #x20 46 #h"C6AD9BDFC1A609434A034987B95DF0A95F16AA09") (:digest-bit-test 17 #x10 46 #h"6B7EDE476CEFDCFD23C99A2507C7289C703CC52A") (:digest-bit-test 17 #x08 46 #h"8EBED867CA66DF27A46CFD0DF20C836EF5A46C2A") (:digest-bit-test 17 #x04 46 #h"0D1A9561D0E873FEDE31413352A8C6877431662B") (:digest-bit-test 17 #x02 46 #h"71DC3FD33E02157B10FCBA37BE9424783098890E") (:digest-bit-test 17 #x01 46 #h"700BB77FF59F2F0EA7770106EA4ED5D45A86E2CD") (:digest-bit-test 18 #x80 45 #h"F657B3ED77505CDAFFCA43B21549A5D9426306C9") (:digest-bit-test 18 #x40 45 #h"661C99496AED852B153656EC8B26EF26366395AC") (:digest-bit-test 18 #x20 45 #h"5B95A6DA71F704BF5A432D1987EBF996996043CC") (:digest-bit-test 18 #x10 45 #h"A97DD84F3159897B8369F7D7CCC0C1B32D2C397B") (:digest-bit-test 18 #x08 45 #h"891799A91B5D53171B3FC831B0AEB08969206365") (:digest-bit-test 18 #x04 45 #h"C9109757AA36E1856C660A2B52183EA5CF50F0D8") (:digest-bit-test 18 #x02 45 #h"4FCD24B654212348D52FDCF0C0942737F997E6FA") (:digest-bit-test 18 #x01 45 #h"D1397B8A4066E2168FD8AADE3EE10CA203CF17CF") (:digest-bit-test 19 #x80 44 #h"349FBC1CCBF6069A09A8FC7995C069E32DE61F0B") (:digest-bit-test 19 #x40 44 #h"A2CDC16FE423A24901918C97398D1B961CFC316C") (:digest-bit-test 19 #x20 44 #h"317843ABBDC2B0953E4FA0904733F4242D7947E0") (:digest-bit-test 19 #x10 44 #h"0D7FFF1FF47D64E3E48D7282B34BF6747284B415") (:digest-bit-test 19 #x08 44 #h"78F1BE3F2CE991B8DA39691A5604B9E635611DA4") (:digest-bit-test 19 #x04 44 #h"F9ABB648ADB9141E575B8EB55D19A7C3D668E77E") (:digest-bit-test 19 #x02 44 #h"E4F6C06F5EE755AF403815180F77B928E4825517") (:digest-bit-test 19 #x01 44 #h"7E012352BA1CC23980832C211BBE905B20500589") (:digest-bit-test 20 #x80 43 #h"BC8B0C78E3881EB468080BA61399C19A57E37722") (:digest-bit-test 20 #x40 43 #h"129B6F6CCD15EA61F479D5BAB6D3AF9A6ECBE8F8") (:digest-bit-test 20 #x20 43 #h"274CBEEA6E5437DE4E1C509A2D7898192D1190C9") (:digest-bit-test 20 #x10 43 #h"7D2E8445D5AF45B4234C662D7365DE0FDE3F137A") (:digest-bit-test 20 #x08 43 #h"09778AE85FB61B38629ADA752E43968CFDEA9735") (:digest-bit-test 20 #x04 43 #h"FFAC48B01BDDD251E36EC2117FE4D7FB3E2DAE88") (:digest-bit-test 20 #x02 43 #h"BF7F915990E45208E2115494C3C84B54E3F94D1A") (:digest-bit-test 20 #x01 43 #h"BCEBAE614742D8B4EA82342D41081B9477AF1298") (:digest-bit-test 21 #x80 42 #h"38ADB2132156AD53D301331100DC40E1A8B5061A") (:digest-bit-test 21 #x40 42 #h"EA743C69E66472733131F459195BEC8AF9226306") (:digest-bit-test 21 #x20 42 #h"847E47943D04B434A66BF9BD9B0703A1E480F9F5") (:digest-bit-test 21 #x10 42 #h"BB62CE0B4DDC49A425C9020C558EA08613C304ED") (:digest-bit-test 21 #x08 42 #h"2183FBE664BEECDADC7A01EEBBFB5948AAB60A6E") (:digest-bit-test 21 #x04 42 #h"0B80D23DF470BB06F2519E17C03002CC0AD4F2CC") (:digest-bit-test 21 #x02 42 #h"FDDD3E02E14360F5DB82D9791E42087B4FC86AF2") (:digest-bit-test 21 #x01 42 #h"49BB25180763123AC51C3BC43C7DDBC32D778FE4") (:digest-bit-test 22 #x80 41 #h"4D34E126B4F06392A6648DAA3DBA9F48C128B9B1") (:digest-bit-test 22 #x40 41 #h"7D90EBA93DF3A8E8AAF26F42AA3B87246A4C2086") (:digest-bit-test 22 #x20 41 #h"B6919E57AABDD131F4B01A8CA3CD5DEE4EC0ED85") (:digest-bit-test 22 #x10 41 #h"AB4CF9C77E130A221852FC35623DD8B056FA7A00") (:digest-bit-test 22 #x08 41 #h"9C2F76C3FB5ED565DE41FD703227B420E9BBDA64") (:digest-bit-test 22 #x04 41 #h"3BA8BC25929043F59402ACE9C9E57758C2A1037D") (:digest-bit-test 22 #x02 41 #h"722073DD703E1E9AC88AD3D0F1E267479BCBFAB3") (:digest-bit-test 22 #x01 41 #h"94D62AD63B4DFA23208CE1EA8F95F114F023C58A") (:digest-bit-test 23 #x80 40 #h"F9DF96D378B1992100EED2DF0D4D349A17F6EB93") (:digest-bit-test 23 #x40 40 #h"CD83248D90959C86D383C0E9A7A722AA8C9D4688") (:digest-bit-test 23 #x20 40 #h"BC548A565154A6694995B5BFA59423D65F3A8981") (:digest-bit-test 23 #x10 40 #h"E8A080EE63161372523FB08370F525FEF7535C43") (:digest-bit-test 23 #x08 40 #h"203B3667F5227B2ED4EE398A9078E840B25289F4") (:digest-bit-test 23 #x04 40 #h"9196A67C90584CC300100BBCFF5DDC6FD71A2405") (:digest-bit-test 23 #x02 40 #h"7D540DC309A2597BFD5B5AE0C4DCD926E49F4920") (:digest-bit-test 23 #x01 40 #h"3060E082B61E4C6EC0D4030C17817453D69D9285") (:digest-bit-test 24 #x80 39 #h"E1BF28EA2645C40BF120B26D7AB4FC5A1EC254A8") (:digest-bit-test 24 #x40 39 #h"9BAA92BCA186E8C5948CAE54F88D09F2AEC14D7F") (:digest-bit-test 24 #x20 39 #h"18BA5CA9513B130CE92453FF36A5A0D2FAA9A476") (:digest-bit-test 24 #x10 39 #h"DBED362F2B76BBF6FA58E18D29397A95F0FA0112") (:digest-bit-test 24 #x08 39 #h"E2E1A4BBDED9D5FA2DA200B233E2186630396F57") (:digest-bit-test 24 #x04 39 #h"4211DC41833E093510D395A5B14BB96D64C38D92") (:digest-bit-test 24 #x02 39 #h"E726FCCE510DF503CE82640AC1F7AB28C19D7C46") (:digest-bit-test 24 #x01 39 #h"D702CBE5864F3B07AFFC43367136D69A1F2B8D42") (:digest-bit-test 25 #x80 38 #h"54B17EE781A17EDC3B4C420D78F83C7C978F3CAB") (:digest-bit-test 25 #x40 38 #h"49C732AF40F4A74D780D4250267706F7FB1A6C47") (:digest-bit-test 25 #x20 38 #h"17DDCE095E7D0CFD5F795AB462EDFCC116B7E532") (:digest-bit-test 25 #x10 38 #h"D0C2B1BF2F99F8D107800A78C414701FC1A842F6") (:digest-bit-test 25 #x08 38 #h"43027A3615D6C7A83D14581535FBACAA36572ADD") (:digest-bit-test 25 #x04 38 #h"DD40216A698A881B04541E2405CF43D38BD62D61") (:digest-bit-test 25 #x02 38 #h"A14ED13406E4751DF32F0C6F1BD82F03B0D335DD") (:digest-bit-test 25 #x01 38 #h"30600629A515EA95FADAA13E33CC4F1C6D2E7EE5") (:digest-bit-test 26 #x80 37 #h"D8003007E44D39E16CBF0A0B7BB72E523705FF35") (:digest-bit-test 26 #x40 37 #h"090919153F6F2B0B7414013B00F29BA16C3F6ED4") (:digest-bit-test 26 #x20 37 #h"A9F90B4F50C93EC61148D8A0AC41B10CBBD42C51") (:digest-bit-test 26 #x10 37 #h"56F121A340DE79356F95BE7E371C4214643A92FD") (:digest-bit-test 26 #x08 37 #h"CCFA24CFD91E151AA67B88120B6E3E6F252F41BE") (:digest-bit-test 26 #x04 37 #h"DF66AF08C35C0DDD6FAA088CEF132466022F1CAD") (:digest-bit-test 26 #x02 37 #h"E081C6CC8E45EB60EC5EF41F56255BAC13546D06") (:digest-bit-test 26 #x01 37 #h"AEC50B2FEFD190011516392B43B61E86C9F4F779") (:digest-bit-test 27 #x80 36 #h"D9D04DCDF5855C520BF87ACCF7C86AD48E648935") (:digest-bit-test 27 #x40 36 #h"21A6A0044B5F5BFFA8245672EB0C0AC70CAF9757") (:digest-bit-test 27 #x20 36 #h"EB9B20C75D2DE45B58049D0A7B7AC42A21E14161") (:digest-bit-test 27 #x10 36 #h"84569C7E024FDA33562804ED1F1959CD60C1537E") (:digest-bit-test 27 #x08 36 #h"D6A143BBE76833DDBA3B2F2BD8481C1F0FEFA59F") (:digest-bit-test 27 #x04 36 #h"26D802656E0E29EAA263CD58FF39CD8D08567A1C") (:digest-bit-test 27 #x02 36 #h"A8A2791D33CC80A935F07744012667E989E19805") (:digest-bit-test 27 #x01 36 #h"1B2AC35A2425E935D1B4398D72313306586E77DB") (:digest-bit-test 28 #x80 35 #h"A89C88DD8D3057BB49344BA9D7D274986BDAC954") (:digest-bit-test 28 #x40 35 #h"48D0F840967AF3F7F67162B04467996F7E0248AD") (:digest-bit-test 28 #x20 35 #h"1E2355A26E6E96391A6CBB14F41790743EB65D3D") (:digest-bit-test 28 #x10 35 #h"6580E48E6E1F51CC4FA2B65D74C8183B59F69A6A") (:digest-bit-test 28 #x08 35 #h"0C4E898BB1CD11C1FBE41A434A2A73697E2A39EF") (:digest-bit-test 28 #x04 35 #h"F4261C323CEFAEE5CDA5F20275BFB4B62D8206B8") (:digest-bit-test 28 #x02 35 #h"1A4788A361CECCED29EFEAC51FF8F6BB68DFDED4") (:digest-bit-test 28 #x01 35 #h"2C414B96A80B2BE5D1A6E1A29DD24E68FB7EF776") (:digest-bit-test 29 #x80 34 #h"5B8C03EF6CCBF12DF96F9D46DEF25C497EB8E4EF") (:digest-bit-test 29 #x40 34 #h"509A557F6D594B365626EC8A836468DEF7BA1970") (:digest-bit-test 29 #x20 34 #h"4A5BB3D4B6336D2BC02E60BDA63195F07A767B62") (:digest-bit-test 29 #x10 34 #h"4B52399A9FE907CDBE8370F1F7F28F8884DB5B70") (:digest-bit-test 29 #x08 34 #h"310775D674A5A05F9F6FB70CDDD3C9EF68A6ED8D") (:digest-bit-test 29 #x04 34 #h"10F543F139A0F6BC2B8051974222D4870C79A050") (:digest-bit-test 29 #x02 34 #h"890E02391B11FAB9602F0EE18B0CA0A34AF425F5") (:digest-bit-test 29 #x01 34 #h"9DEA28EC04E1A9BDDE165FB81B9E123256CBB876") (:digest-bit-test 30 #x80 33 #h"4972106BA1ECEFD0C55068120585EF2D94239CBE") (:digest-bit-test 30 #x40 33 #h"787F7049BB78E3712E5B9B4F447DB38D2A42DA67") (:digest-bit-test 30 #x20 33 #h"3E8E2C84DE92183C61419BE04FF01A26ACEF9EA9") (:digest-bit-test 30 #x10 33 #h"DCF8E1EDB48F42331F5DD50C06269F51A1C7B2D5") (:digest-bit-test 30 #x08 33 #h"BDEAEDC13E7010849D258AA7C9BE0206F95C853A") (:digest-bit-test 30 #x04 33 #h"36AA3434BAD394718B21ACDF6EC2526F51627948") (:digest-bit-test 30 #x02 33 #h"E6EE7041303A55D95BA3093507F58F5DA10B8254") (:digest-bit-test 30 #x01 33 #h"380CC98BD9C83AA09DC30DB59C3029A3ECBA5C1C") (:digest-bit-test 31 #x80 32 #h"9B928D8148F4114F158E46824E766FF2A7A62B34") (:digest-bit-test 31 #x40 32 #h"F33FAC77F2A2036C6116D19EFBCF07B1C0F38FAD") (:digest-bit-test 31 #x20 32 #h"1CA9B7E149C031EE02C254182A90B62547DB6AA4") (:digest-bit-test 31 #x10 32 #h"B1DB2B2305B65A1421B7084A78F97FF2D227865B") (:digest-bit-test 31 #x08 32 #h"BAC51FAAADF6127971F210E8EDDBE17E99E17993") (:digest-bit-test 31 #x04 32 #h"D26C92EAD620313A4B21CDACF0F32287BFD21F74") (:digest-bit-test 31 #x02 32 #h"D7A7B4D4D0CA22EEC9D2E7CB1D8FDE422225483C") (:digest-bit-test 31 #x01 32 #h"F936AF09029B1E14CDDB9387E8362EB29A436A0B") (:digest-bit-test 32 #x80 31 #h"C335854A19D6B6B099AA4145E1CD9658DAC4B60F") (:digest-bit-test 32 #x40 31 #h"B8EA6301BA799CAEDF54DED2F4E04253E1831D8F") (:digest-bit-test 32 #x20 31 #h"6BEA287617579A5B351CDDC18D14E1CF0E695250") (:digest-bit-test 32 #x10 31 #h"AD6C45B1CD47B6C705D3B75CCF90AC0D1915686C") (:digest-bit-test 32 #x08 31 #h"6EB575E8412D916DF0AC6FFDBB5CC79EBA83DCE5") (:digest-bit-test 32 #x04 31 #h"226D1AC28AB39B62D24E2B80BAF4D9DBA0B1C755") (:digest-bit-test 32 #x02 31 #h"A109D1D9CFD7800D310BCBA64E2F1300C7367734") (:digest-bit-test 32 #x01 31 #h"37B7DCF21E0E183A9A86170997DF242A84A85FF7") (:digest-bit-test 33 #x80 30 #h"C3E28649F4C02F21C4CD5D8E27D4E3D67016C2AC") (:digest-bit-test 33 #x40 30 #h"79889011EDC1EE59541FD593B24B4AA905BD17C4") (:digest-bit-test 33 #x20 30 #h"4E1D04704B703757389B3C91FB05D2AA7E2D9043") (:digest-bit-test 33 #x10 30 #h"A86CB3BFB25AE2F28C063E6B88CFFD8C37850CF6") (:digest-bit-test 33 #x08 30 #h"093FFB88A184EA1E0F81E244E40A13449CEC646E") (:digest-bit-test 33 #x04 30 #h"EC7D66DA9C3FA2CCA0365E2AD3E2A78BD59DB1BB") (:digest-bit-test 33 #x02 30 #h"F8EFA4B89684A900E6A7DFBD8E76834074D3C653") (:digest-bit-test 33 #x01 30 #h"2B95691BE17BFEAC4911ED9C629B47DFA8729E1E") (:digest-bit-test 34 #x80 29 #h"93A743FC2BE88424D24B459475CF7579B6FE82D9") (:digest-bit-test 34 #x40 29 #h"C68E51DA0171770DFA3FA96234AEF2F53BC493BF") (:digest-bit-test 34 #x20 29 #h"3B74CC5D74226619E37F01EE83D2B48540CD734F") (:digest-bit-test 34 #x10 29 #h"AA08CCB4A80FA396B4E8D60F679EEC506B7B9A65") (:digest-bit-test 34 #x08 29 #h"A11E372982163EBFC67412B34B63D86FC3E83067") (:digest-bit-test 34 #x04 29 #h"605312FB9DCAFE0794773C6016E428EFA6F762D7") (:digest-bit-test 34 #x02 29 #h"112984BB5F7E77D2838A44D9166A01EB339E3C11") (:digest-bit-test 34 #x01 29 #h"2338180643FC2A6F60A8CB718DAC7E1639F57351") (:digest-bit-test 35 #x80 28 #h"F14B90992F4D5A1243BFC5A63C94C49590C46B68") (:digest-bit-test 35 #x40 28 #h"FFB6AD250782AE8C16F9A610973C77DFEF095F1C") (:digest-bit-test 35 #x20 28 #h"D1B731D084179C8D12E5365EFF7100BBECA13427") (:digest-bit-test 35 #x10 28 #h"96730C09F3AB3E06BBD64A4A42850877E7AE4293") (:digest-bit-test 35 #x08 28 #h"58F5585F58985EB95C7A3EF8561D5FFBBB60A6A9") (:digest-bit-test 35 #x04 28 #h"89DE54F734D3A6A3A2E05D9C58C630A9C25D4981") (:digest-bit-test 35 #x02 28 #h"5AB0D562986A32A334ECA6CC5B21433C18B7819A") (:digest-bit-test 35 #x01 28 #h"7E3D6DFE5A25FCC4A340D9CC5A998F0614688176") (:digest-bit-test 36 #x80 27 #h"18977350D746C049A89B49814682FBC8DAC9E28C") (:digest-bit-test 36 #x40 27 #h"93F5DEE808872B1ACB23F7CF21B5C7CB5EC7FC52") (:digest-bit-test 36 #x20 27 #h"015100CAE85185F42A48B70EB95AB0DE9AE118A4") (:digest-bit-test 36 #x10 27 #h"D12E261473BF1C68A961F34334DF31E164CD73A8") (:digest-bit-test 36 #x08 27 #h"D74FDFB0D814771E7B4B955C268D15B5AA99D72F") (:digest-bit-test 36 #x04 27 #h"CED846E7527C74653CD30D80E8097BBD8C29BCA6") (:digest-bit-test 36 #x02 27 #h"77A55E00E669E34FD0F9A16F2D16DEFC900EA466") (:digest-bit-test 36 #x01 27 #h"281F0F08687150F51218B5F9119CA082D4F3423E") (:digest-bit-test 37 #x80 26 #h"404BA3E3275F06E9FAC48C8D92F51E9AF4DF55D3") (:digest-bit-test 37 #x40 26 #h"97EB1BC7B8D1DFA3549B8A2E07595676163D09D3") (:digest-bit-test 37 #x20 26 #h"C099C6B7A8352BEB1262ECD02782BF4428FF69C4") (:digest-bit-test 37 #x10 26 #h"9D77E37FF377A4C222E7C81003051CD4DA9FE9EB") (:digest-bit-test 37 #x08 26 #h"C59DA8793931E9E4B930E100CDBB4C36EBF3ECA6") (:digest-bit-test 37 #x04 26 #h"BB6C8B6F3896DD85F33740404A834920E8AEA444") (:digest-bit-test 37 #x02 26 #h"DD366C91DE61D6B1581472C950C6D1223BC67CBC") (:digest-bit-test 37 #x01 26 #h"66071311DB52813C4F7F6538B28ED8EA38002555") (:digest-bit-test 38 #x80 25 #h"7FCB5E982D0475D029869F3947C25B1A55755589") (:digest-bit-test 38 #x40 25 #h"DE0ED84A276AA030B8EA70DC3C9CF295ADCCF007") (:digest-bit-test 38 #x20 25 #h"E6BED540761C6FDA38AC6DB6661D676DF7AFC71E") (:digest-bit-test 38 #x10 25 #h"829EADE04C28286AB3C589069D58B7226EBD15A3") (:digest-bit-test 38 #x08 25 #h"794F0FF33702723E8E6981F006632062CCC05D15") (:digest-bit-test 38 #x04 25 #h"8AFA385DBBDEE2BFA4FDCF01D047F3A131E08A67") (:digest-bit-test 38 #x02 25 #h"1E86C19A1A91270275C3E6E41CED9B7D4FF81133") (:digest-bit-test 38 #x01 25 #h"3ABBD0AD167CEE74D94CA4593B3C2EA74B9246C7") (:digest-bit-test 39 #x80 24 #h"6ED914AE39347E3A9A96080AAFBD497E33701866") (:digest-bit-test 39 #x40 24 #h"05CE2DD4AB125A0E913DFD514D9DD935B8DD3D62") (:digest-bit-test 39 #x20 24 #h"7C577206C0F66B2DF7ADB657B6AD528144913B26") (:digest-bit-test 39 #x10 24 #h"1D43ABCFCAE5E92A06796E7A751C8F569D88F7FC") (:digest-bit-test 39 #x08 24 #h"7B4CCFFD7E64AB1D7816CA43886EFE58CDE89B7B") (:digest-bit-test 39 #x04 24 #h"0F3D83BF05E509F3939B23C71D8E518E38A6C3C1") (:digest-bit-test 39 #x02 24 #h"223CB390EBBE15C117225A39DD45D7A9FC5B1D7B") (:digest-bit-test 39 #x01 24 #h"96AAC2F7DFA3FF387C3E12A53D8C51F93D362A44") (:digest-bit-test 40 #x80 23 #h"946F7992EF21D07B55B8CCCCB4840834CFC52492") (:digest-bit-test 40 #x40 23 #h"1254CEDA60C0DD56A06395D4B78A07A9A623CF8D") (:digest-bit-test 40 #x20 23 #h"4548994E655B8B63EC7761015C46BDAD46BBCA94") (:digest-bit-test 40 #x10 23 #h"A4DA64E02BB6FC6783254CCE92F4C28D79753F25") (:digest-bit-test 40 #x08 23 #h"8A213BDC144A8B6A4C518C1C22A425D3F21FEC85") (:digest-bit-test 40 #x04 23 #h"768B6B9397CE32864C5EE1A90EAF42D0489CDBE6") (:digest-bit-test 40 #x02 23 #h"F9313FB67EE62D61CB35B58A67F2668E8996A77F") (:digest-bit-test 40 #x01 23 #h"56F8DBF4CCF51AD0BFA042B7B2410346BC138E36") (:digest-bit-test 41 #x80 22 #h"DCCB6932C8AAE2EFA72EFAF9AAFB4804FA28AEDA") (:digest-bit-test 41 #x40 22 #h"2061CDBFE1D8A55C9F9D8DD49A8366139327ECD6") (:digest-bit-test 41 #x20 22 #h"956C4CD7F0E47501F07FD6694ADEE481A0A706D7") (:digest-bit-test 41 #x10 22 #h"B0A22915B6D5990EAE90AD3E550F9294D18F6E90") (:digest-bit-test 41 #x08 22 #h"21286BA23811271A072A75A3A7ECF33F186533B6") (:digest-bit-test 41 #x04 22 #h"BA591B8FBD5C8DFAE091AD997AF7D58D56656356") (:digest-bit-test 41 #x02 22 #h"34522D926DC21F0997400B42927EBF1CB291B961") (:digest-bit-test 41 #x01 22 #h"A0AA85260B30DA9D658413214918F7BEA7E3BC15") (:digest-bit-test 42 #x80 21 #h"696E36B391191DBA094532F9F61C9432AC42BB36") (:digest-bit-test 42 #x40 21 #h"032498A6EC908F466125E7A8A0BDC928199B5111") (:digest-bit-test 42 #x20 21 #h"2CE9D0CA449332DD88531128A549AC5AB50C38C5") (:digest-bit-test 42 #x10 21 #h"4970CDDB596A876A39F9D273CF718961603D2190") (:digest-bit-test 42 #x08 21 #h"A09DAB62BC9FD4A646B346398CE8665A0BB8108F") (:digest-bit-test 42 #x04 21 #h"9AE7485721299A29977998D5480505CA77BCDC40") (:digest-bit-test 42 #x02 21 #h"61BDD16D7695CDBC7E09C8ACC87C2EB64851CB39") (:digest-bit-test 42 #x01 21 #h"1DF7548A0CAD64526A030BC9BFC5626D17479831") (:digest-bit-test 43 #x80 20 #h"E6D75B4731632B08A9EC48332E3CC9C9E5F9994D") (:digest-bit-test 43 #x40 20 #h"29DE6BD404BF0FE6C284C578B017A6E713F59ECB") (:digest-bit-test 43 #x20 20 #h"55895E9A39F68680BA67F2CBB4EEA698496CB950") (:digest-bit-test 43 #x10 20 #h"85FCBA107C2156453C42CFFC30C63B40C9CAFDAF") (:digest-bit-test 43 #x08 20 #h"A9BB529EC301805AA8ACBE8389AD48E0385162BF") (:digest-bit-test 43 #x04 20 #h"154F31BEAFD8730A343C80051A2F9C149A3DD4D5") (:digest-bit-test 43 #x02 20 #h"F303E5E88C37C0EFF29180B372E00B9A8DC7DDB7") (:digest-bit-test 43 #x01 20 #h"A3B287D882127B00F7A723DB405298A460C73796") (:digest-bit-test 44 #x80 19 #h"4C8100F4E5629FB2CC6324D77737569522E5C775") (:digest-bit-test 44 #x40 19 #h"C1B6D177E1D224B3FB8B7719263CF6F2FA211323") (:digest-bit-test 44 #x20 19 #h"7EAF07E00BB7FD8F18E06BE05A137E314BA34BF2") (:digest-bit-test 44 #x10 19 #h"0C2AAE56115BE62930C4AE04B4FD152F64ED409C") (:digest-bit-test 44 #x08 19 #h"D676E0F5DE53FDAC16B35D06BB777599E838A1E0") (:digest-bit-test 44 #x04 19 #h"C500095E6F880659EEC666FF7F5BC37E39FABC2C") (:digest-bit-test 44 #x02 19 #h"D7E6EBA584DA5CD273D2E154330229B417F34361") (:digest-bit-test 44 #x01 19 #h"66BC10E7F84332A968D2E9E0CB79C68643ECECF9") (:digest-bit-test 45 #x80 18 #h"8EF22381D402646D3E102FB413703A8277D2B565") (:digest-bit-test 45 #x40 18 #h"B449114BD723E547DCAC5CA2D88BCEC690254F98") (:digest-bit-test 45 #x20 18 #h"2647472C0C4875CDA5E266ACBE6B2836539AB432") (:digest-bit-test 45 #x10 18 #h"29D6E52268ABDF244FE662DBA33AB9435EE66D1C") (:digest-bit-test 45 #x08 18 #h"4F0E93F97BBFC3395210D426F08D88D0C2BFD599") (:digest-bit-test 45 #x04 18 #h"6D76EB4C96F011E859EA81B136870784C70722F3") (:digest-bit-test 45 #x02 18 #h"4182D12C128BD5EE2EC8851C943B21720A6ECC32") (:digest-bit-test 45 #x01 18 #h"0DB22B512839C314A0235B245B66ECCC4FB29176") (:digest-bit-test 46 #x80 17 #h"9F9F449FEF08DE2A3F202B481C5B9B9690938B82") (:digest-bit-test 46 #x40 17 #h"6FD1EE49A36F67407F36B193DF20FB0EE9EBB3BF") (:digest-bit-test 46 #x20 17 #h"178C4E21E76A1718A4263E1DC9197D76345C1756") (:digest-bit-test 46 #x10 17 #h"C6519DC7593847544FDC38D2F024ED55A66BAED5") (:digest-bit-test 46 #x08 17 #h"BDF4A387201CA0D1D2FFDEE174F913ADEA999CC7") (:digest-bit-test 46 #x04 17 #h"549C43613AC1743E5B4E7A9A506F665B11CAE4CF") (:digest-bit-test 46 #x02 17 #h"0E59307C457A57EB30D5A9E9D797CA6B64D5F191") (:digest-bit-test 46 #x01 17 #h"9D15C38B6220C7F41EFA2C8B6A2DD1C17A19C109") (:digest-bit-test 47 #x80 16 #h"CBA55F53BBCB90E739B2344C8E8508D631CA429E") (:digest-bit-test 47 #x40 16 #h"86CF8C99F8996DC0DB12E004721A781533B33F68") (:digest-bit-test 47 #x20 16 #h"5E735505672A66959BCAD565F6DD9B4D311923BA") (:digest-bit-test 47 #x10 16 #h"E15C395B45066D50F2F25B8F85DEC3791281BA0A") (:digest-bit-test 47 #x08 16 #h"CDD485F608FA7BF001F59BA9DAAF266C50FCFA98") (:digest-bit-test 47 #x04 16 #h"94BEEAC05F3E5A6FB2CF1CB1229B230542451864") (:digest-bit-test 47 #x02 16 #h"D5481F60FCEF55D8C101FBBA7C054D88E37637F9") (:digest-bit-test 47 #x01 16 #h"4843CA5C5A803061D2FFCCD73FAEEE578AB13DBD") (:digest-bit-test 48 #x80 15 #h"D479FC21C0A351DDEDE3E79541B4E1B5F9542FD6") (:digest-bit-test 48 #x40 15 #h"E5F1EE88DF160FE503195104AC809E78F1697049") (:digest-bit-test 48 #x20 15 #h"1D37721790245F4182292F058930C37B4A9CE7EE") (:digest-bit-test 48 #x10 15 #h"44D614ADA253C44BC5FDEF6FA7DFF5792E621698") (:digest-bit-test 48 #x08 15 #h"745F03BFB20EF8CBD663767E3326AD6B1B4FC679") (:digest-bit-test 48 #x04 15 #h"9A88A295DCE2B8E8E48FBF7BE3CE55B33635A97F") (:digest-bit-test 48 #x02 15 #h"09909637CE971B7015281B85210B30C12F76E09E") (:digest-bit-test 48 #x01 15 #h"F0E9EE70866ABF4F2AAEB307663032214B976F27") (:digest-bit-test 49 #x80 14 #h"C19991C30080994CF78DD0B8CBB59DCE2C64079A") (:digest-bit-test 49 #x40 14 #h"29FE5880518565977D40DD45AEC19BAE84515E81") (:digest-bit-test 49 #x20 14 #h"0FBA86225438A82DB0F2DD6D655D1D85A5AD3B14") (:digest-bit-test 49 #x10 14 #h"AE8E67D9F7A3CD1D5B883EB4988BD751EDA4F6A4") (:digest-bit-test 49 #x08 14 #h"DFB8DA261C6CF4E55156F9CC6C760FC236479614") (:digest-bit-test 49 #x04 14 #h"DA9E82445FAB469B724230008E70C96CADD60239") (:digest-bit-test 49 #x02 14 #h"3820C5054068282169D937A1B01C2C5206012BEE") (:digest-bit-test 49 #x01 14 #h"C733A544F82A013C0F1A26D4A040357D2EAA4C52") (:digest-bit-test 50 #x80 13 #h"5F3CD7855C356B7587E8DEDAF9ED0262AABEE7C4") (:digest-bit-test 50 #x40 13 #h"E740EAEECA9A5E5C59578E6D89674EF1A56970E1") (:digest-bit-test 50 #x20 13 #h"A51B76E73BFBDBF980BF6FEA495A3CFB7D25809A") (:digest-bit-test 50 #x10 13 #h"A6E554F7E2D4FF1CA71395BA093BDD19A3661639") (:digest-bit-test 50 #x08 13 #h"5BD9F14F7985CB09638FEAF2CD5389A9A18BE557") (:digest-bit-test 50 #x04 13 #h"F65ADF18A93A5B67DEC169D2A73F4AE1673FC773") (:digest-bit-test 50 #x02 13 #h"73F8B85993F0D3CB12ABA034FDBA2F4D6E3E168B") (:digest-bit-test 50 #x01 13 #h"5055E365875B5E91C91B87619E3FC079ADD4DEEB") (:digest-bit-test 51 #x80 12 #h"C8FCB6653D648A5162C53D624DC0E85745769BB4") (:digest-bit-test 51 #x40 12 #h"3D7C3EA505167F9FBD99D18A5B615ECFD9C26D15") (:digest-bit-test 51 #x20 12 #h"061BD5CF62919A1B2E1163520436E2AA552BE242") (:digest-bit-test 51 #x10 12 #h"6A0FE1B5F651E7CA327D0083BA65E6F8FC42337B") (:digest-bit-test 51 #x08 12 #h"338BC5B38BBA52B80A2BFE88FCF95E925A9702D8") (:digest-bit-test 51 #x04 12 #h"F510D70693808ED495B06D86A784627DE4D87672") (:digest-bit-test 51 #x02 12 #h"AD0D2471322D2C27DB1F0BABC3C292CD3AB3239C") (:digest-bit-test 51 #x01 12 #h"93FF72C5D4A53FE0823F4F392D5407B298C5ADBB") (:digest-bit-test 52 #x80 11 #h"EF17405E6D26269F503EEEA3504FC9280D2603B9") (:digest-bit-test 52 #x40 11 #h"E5036DD48A55451D8212A27A85FE5779C30964FE") (:digest-bit-test 52 #x20 11 #h"10B74A030D16992F2DF906256858186D882554A6") (:digest-bit-test 52 #x10 11 #h"7181DC401250F84AAE4AA1FFB94A89ACD98E5FAC") (:digest-bit-test 52 #x08 11 #h"441C9327F5DC2907FD3C85C01D094FB2727AA6AF") (:digest-bit-test 52 #x04 11 #h"068A13FD27DCE7B9BDE20EBF9C28C1227EDA5F6F") (:digest-bit-test 52 #x02 11 #h"37273BD0E062B21349798C89B95A6E74BF58821A") (:digest-bit-test 52 #x01 11 #h"0A5A8FDBAF2101414D23860287A37C0582641646") (:digest-bit-test 53 #x80 10 #h"05B6211A7398032D2CC58C9BC3FA1A66D70C1E83") (:digest-bit-test 53 #x40 10 #h"0FFC3B8756C5D5765FD64B2EB9F065B2CAF06C5A") (:digest-bit-test 53 #x20 10 #h"992E5DD62BF677CC7439C10C73FBBA5B61A6C8E5") (:digest-bit-test 53 #x10 10 #h"385CE73875A2150C12D1558B3B89A53BA780A9BA") (:digest-bit-test 53 #x08 10 #h"C5DC05F37C48D5A299806C2AB3D3E992D9994A09") (:digest-bit-test 53 #x04 10 #h"D53B026111BCAF9C8FF3255709850E153EC7F149") (:digest-bit-test 53 #x02 10 #h"40CEF784A88C9DA3355C80C9B220B12B578F8430") (:digest-bit-test 53 #x01 10 #h"9E83DBD01B91EE6A3615334D3530EB52FC6D79AF") (:digest-bit-test 54 #x80 9 #h"BD2A8E4A91DF23662428C4FDDB93D665AAE02BEF") (:digest-bit-test 54 #x40 9 #h"06EA50EEE8EE904D4BCAB484C7A0D57F1E686D3C") (:digest-bit-test 54 #x20 9 #h"BEC01BB7F8BDBF144DFE0B3DD05427666F1DAA00") (:digest-bit-test 54 #x10 9 #h"3F281D9F9288C3284D6D614606ACE0288FA46FDE") (:digest-bit-test 54 #x08 9 #h"8B3B8B96A5AF2FEA5DED2EED9DBF87AC28872287") (:digest-bit-test 54 #x04 9 #h"FE60132B70DD243B661E7851828C79708CADFCF9") (:digest-bit-test 54 #x02 9 #h"B5ED866E9BCCA4E703FBB30A1E4924D72FAF4D50") (:digest-bit-test 54 #x01 9 #h"A0A55EC19E35FD0870BBC90A7CF333ADE724DE25") (:digest-bit-test 55 #x80 8 #h"0CBC0062C25F233616DE607A0A54B6D16B5A016F") (:digest-bit-test 55 #x40 8 #h"7FB304F334DA910FBBB412ED6A41CBEE66A0093A") (:digest-bit-test 55 #x20 8 #h"22032F4E752E7D5D26DB09991EF731E87E118680") (:digest-bit-test 55 #x10 8 #h"E2E5204F0258896446F8F943ECCB94688EDA05CA") (:digest-bit-test 55 #x08 8 #h"BCE31D00762D3D3699CAF25BAC4BBE27C4853530") (:digest-bit-test 55 #x04 8 #h"296B3124D4AA6C9E37A08720D6A7697CC075340F") (:digest-bit-test 55 #x02 8 #h"D14EB2BB8EC810A4CBFF2189095F99EC54CA0BAB") (:digest-bit-test 55 #x01 8 #h"A02059C3AC82077C2081C90C869257C530AB43C2") (:digest-bit-test 56 #x80 7 #h"73C80B1D08CBFD229CAD79F4F613A1D2A5E442EA") (:digest-bit-test 56 #x40 7 #h"1DA62F48EBB2D50EC062DD98C85FE8345B1129EC") (:digest-bit-test 56 #x20 7 #h"2FDFA42088BE5E2EF6AFA13890635ADB64BF59A7") (:digest-bit-test 56 #x10 7 #h"29F98848CC4E358FE51512739FD2985A3D9C5592") (:digest-bit-test 56 #x08 7 #h"AED5C356ED2DAA62BF20174834062B66F728C39C") (:digest-bit-test 56 #x04 7 #h"26C420F37DD3C7CDFFEF3EDD8E2F1842AFEFECBD") (:digest-bit-test 56 #x02 7 #h"CC70839427BC048BB08BB44E67758D1124B643BE") (:digest-bit-test 56 #x01 7 #h"DC393101E9B13892DC97EA811DD6D33421E672AC") (:digest-bit-test 57 #x80 6 #h"D01E8D33C9EAFBD8BE5369E3B6A857074BE5F78B") (:digest-bit-test 57 #x40 6 #h"13DB83187325B05980E84AAEE5C632D028109B17") (:digest-bit-test 57 #x20 6 #h"3D6E9C628537656EB88DC5F76E18E2A2DCEB38A7") (:digest-bit-test 57 #x10 6 #h"DEB2662AC60DA809BB5D94E2A5B9B38A7696D383") (:digest-bit-test 57 #x08 6 #h"BD9E94D831BF1235DCCC7D361AA374C97501E87B") (:digest-bit-test 57 #x04 6 #h"6D9052727FC9912CBBCB67120D2FD27C3C6E9A28") (:digest-bit-test 57 #x02 6 #h"E8640E2A840DE60356471F4B44220A9E15266A73") (:digest-bit-test 57 #x01 6 #h"C09A06651D0E3599ED42FAC3726575EFC3404C66") (:digest-bit-test 58 #x80 5 #h"F42C449EC2D162E5A7CB1688133BF9A290A9C3B3") (:digest-bit-test 58 #x40 5 #h"D399A7B5077BCB4527194109E04EF89CC71277EA") (:digest-bit-test 58 #x20 5 #h"866BB6B24E81487390F6A36545379421ADE02B6F") (:digest-bit-test 58 #x10 5 #h"7CBB546D49007E94D064D4F905245D19B9060EAB") (:digest-bit-test 58 #x08 5 #h"4D58003B6F36A7352F3ECF258FA4509D79E7D2CE") (:digest-bit-test 58 #x04 5 #h"C80BA62BE5DA26073C287AA03BEEDB4E916BB0FE") (:digest-bit-test 58 #x02 5 #h"06AB61CB329F3423AE513B49551191D6FA515FB1") (:digest-bit-test 58 #x01 5 #h"2FF9AF0FAF9A3B0AB42DE6B02E77FDC5B297CE28") (:digest-bit-test 59 #x80 4 #h"B2A39AAA8924F3D8059734794597889477F27E6F") (:digest-bit-test 59 #x40 4 #h"8D06BC2C793D856974AE5459AA669169E07EAC62") (:digest-bit-test 59 #x20 4 #h"0833ABD972DD3228DA4F024F5662DBE2117282D7") (:digest-bit-test 59 #x10 4 #h"A4ECE25FBFD97E44832F6B89A0648E248E2FD49F") (:digest-bit-test 59 #x08 4 #h"616310FDB4E72B3B985281C3EBD1C176A1273CFD") (:digest-bit-test 59 #x04 4 #h"9D19F19B80897024806F8CB2325960E375727ED7") (:digest-bit-test 59 #x02 4 #h"9E14014EE80E7614091F2AA5A0A9CAF27909F313") (:digest-bit-test 59 #x01 4 #h"5D119D7F6858CD7495DE1E9A645D2F80F8291DF5") (:digest-bit-test 60 #x80 3 #h"EBB2F360AB47F053A8BC736F45F33158C6EA878C") (:digest-bit-test 60 #x40 3 #h"5FE1A052AA885D1B4AD99D9F196DBE92CF65885D") (:digest-bit-test 60 #x20 3 #h"F552BEE8D59BF0654AC344F1A0CC3AE5597A7A71") (:digest-bit-test 60 #x10 3 #h"DC7825AC0CD824F74AB7A47B899300C3096D8667") (:digest-bit-test 60 #x08 3 #h"FA5D5599C5660ED0665A79EC395C722997BC5AC2") (:digest-bit-test 60 #x04 3 #h"EF8916D8A9EFCF4D6E02FE72DE8CAB90A3992262") (:digest-bit-test 60 #x02 3 #h"9F4ED685D398A752BC4EE8C0891D724258121D25") (:digest-bit-test 60 #x01 3 #h"5D36B7997B600229D9421D81A9EA1CB1DA1BED2D") (:digest-bit-test 61 #x80 2 #h"B1DA174937C24516A28C7F4770B98F8DF059ED1B") (:digest-bit-test 61 #x40 2 #h"890E8D2C34E060193AB21DE16B1C1929616D6EDA") (:digest-bit-test 61 #x20 2 #h"AB44A81DDB33C2439E2DF6EB42B3DA5ADB4460A6") (:digest-bit-test 61 #x10 2 #h"4796DEFE552974795285841588C9D0B0C2B39E21") (:digest-bit-test 61 #x08 2 #h"C42CCE86691B2B0A0A7297D3FC3077DE7B875457") (:digest-bit-test 61 #x04 2 #h"8969BBAF55EC689588998ADAC8A0CEEBDBA06DC3") (:digest-bit-test 61 #x02 2 #h"05F6A29AE91B66CDBC0D7F3D349DF5AA6519366D") (:digest-bit-test 61 #x01 2 #h"554E489049A20D8BD47FB1234EA397E21D8CAE77") (:digest-bit-test 62 #x80 1 #h"293CADC30C0CD9CF55ED269D42FB1758E5C71667") (:digest-bit-test 62 #x40 1 #h"AA0D67F4E35B04373C2A73A139A8FE8A9F1D0680") (:digest-bit-test 62 #x20 1 #h"9F10E6DFF017BC8553CC93C9255E3A1441C55DF5") (:digest-bit-test 62 #x10 1 #h"3A459F9EE9CA8ECBCF864769A0D30B2A9A0AA9FB") (:digest-bit-test 62 #x08 1 #h"C5A5F5833988BB1B920B7C7A7324890B7E681761") (:digest-bit-test 62 #x04 1 #h"DD81B919473C77D804DF031EE569571657195F9C") (:digest-bit-test 62 #x02 1 #h"E156B150616E25C4CC689A5A10849B2CB9C4C8C7") (:digest-bit-test 62 #x01 1 #h"83698FCBBA5CBE3B4E67B35466425B28C4E5162B") (:digest-bit-test 63 #x80 0 #h"ECAFA6F24326F8CEC555731834168EC7A75AA577") (:digest-bit-test 63 #x40 0 #h"CBC2CF467401231717CE7339BCD8591665823F46") (:digest-bit-test 63 #x20 0 #h"06DAA528DFD015E666C579F6AA997E50ECEF2451") (:digest-bit-test 63 #x10 0 #h"D84B71FDFD8E9F0A76AA1EB174CD253789D6408B") (:digest-bit-test 63 #x08 0 #h"74D9106CC9C67F307425CF940CC588B278F84AE2") (:digest-bit-test 63 #x04 0 #h"68B9EB81C30694D4A3EE926C53A08F8B76B099E5") (:digest-bit-test 63 #x02 0 #h"D229D9D61E24B80CB32373BB3362A3BDC7DCCE73") (:digest-bit-test 63 #x01 0 #h"AAE81062811EDFD2AF3081941D667FB7033DCE80") ironclad_0.33.0/testing/test-vectors/sha224.testvec0000644000175000017500000000104411305364032017147 0ustar00;;; tests from RFC 3874 and around the web (:digest-test #a"" #h"d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f") (:digest-test #a"abc" #h"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7") (:digest-test #a"message digest" #h"2cb21c83ae2f004de7e81c3c7019cbcb65b71ab656b22d6d0c39b8eb") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"45a5f72c39c5cff2522eb3429799e49e5f44b356ef926bcf390dccc2") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525") ironclad_0.33.0/testing/test-vectors/sha256.testvec0000644000175000017500000014456111305364032017170 0ustar00;;; standard tests (:digest-test #a"" #h"E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855") (:digest-test #a"a" #h"CA978112CA1BBDCAFAC231B39A23DC4DA786EFF8147C4E72B9807785AFEE48BB") (:digest-test #a"abc" #h"BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD") (:digest-test #a"message digest" #h"F7846F55CF23E14EEBEAB5B4E1550CAD5B509E3348FBC4EFA3A1413D393CB650") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"71C480DF93D6AE2F1EFAD1447C66C9525E316218CF51FC8D9ED832F2DAF18B73") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"248D6A61D20638B8E5C026930C3E6039A33CE45964FF2167F6ECEDD419DB06C1") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"DB4BFCBD4DA0CD85A60C3C37D3FBD8805C77F15FC6B1FDFE614EE0A7C8FDB4C0") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"F371BC4A311F2B009EEF952DD83CA80E2B60026C8E935592D0F9C308453C813E") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"A9E8913B13864096B9EA592F9548C87654AAF8DF24E3437645FAC174D1036E1C") (:digest-bit-test 0 #x40 63 #h"F315F3F6D33215F8777A7D5A4B809F433729D13A86FE6ADF3DA5C11137E18273") (:digest-bit-test 0 #x20 63 #h"AE1F446791358EEB17DEBD264614CAEB7F72558C085C73BE0DDE284B4C63A957") (:digest-bit-test 0 #x10 63 #h"94C41AF484FFF7964969E0BDD922F82DFF0F4BE87A60D0664CC9D1FFD3ACD650") (:digest-bit-test 0 #x08 63 #h"2763D88A93549AF57C701D5187E8B477D9AA99EBEFE6D1E41A3CE07BF1A1AA50") (:digest-bit-test 0 #x04 63 #h"D6E497B816C27A31ACD5D9F3ED670639FEF7842FEE51F044DFBFB6319C760A5F") (:digest-bit-test 0 #x02 63 #h"8A023A9E4AFFBB255A6B48AE85CC4A7D1A1B9E8E6809FE9E48535C01C1FC071A") (:digest-bit-test 0 #x01 63 #h"16ABAB341FB7F370E27E4DADCF81766DD0DFD0AE64469477BB2CF6614938B2AF") (:digest-bit-test 1 #x80 62 #h"5A42062C0EF5A54ECCF7B0B155C90BBF408AB2480EE939342ACBEBC24E265401") (:digest-bit-test 1 #x40 62 #h"B5B17E5DFF8C9A4AE35D22DE243821159C400060F0F32D8FD87914DA904AE459") (:digest-bit-test 1 #x20 62 #h"5CD77BAB00B0CDF152F3B0B42287F061E5DAF3AC7806B484572DB8E0A64BEE77") (:digest-bit-test 1 #x10 62 #h"ED5F4ED0D6617D50ABD49D4C84281E175B48A7E1EDF550A89BF2C9B5C4CE01F0") (:digest-bit-test 1 #x08 62 #h"D5755A80F47671E9C3E10C007865D7868432D9942CA2CE7D60510039A281CC5C") (:digest-bit-test 1 #x04 62 #h"335D953107E146619C0BF52F8D650C2CDBB5DAF1E1278F51437D96215AC74DB9") (:digest-bit-test 1 #x02 62 #h"1A2A07EA5731313C488CD126D0C118542516CF35A507F9E8AE4A81EA92E3F267") (:digest-bit-test 1 #x01 62 #h"4286DA436D65E3A216846042CA5E0F51AC7A192E9DA271A72A9C4097BEECD52F") (:digest-bit-test 2 #x80 61 #h"FE882C6CF31C7A4A93A4F5A2BC5499E443731A87F6074EB32CEFAFA3E3B8B864") (:digest-bit-test 2 #x40 61 #h"5B9CD7FE975B5F7894DF930EB23518029068F9BA7D2DAD3D8DA29B40E1AA2EF0") (:digest-bit-test 2 #x20 61 #h"36558C5A404A9748423F31D60FAD2373E643A9B5B2F145C4390AD8C80345DC14") (:digest-bit-test 2 #x10 61 #h"887BBFD20CB15B19D2483B1D56DFCF5BCD74B8D05ED44CC912ABE80E92D1064F") (:digest-bit-test 2 #x08 61 #h"5D434409283CDC8E500C72DE5591F50BD858C8377A7F5F979E5F1B446E091EC0") (:digest-bit-test 2 #x04 61 #h"68062FA9A8B16191F44B782CBC5C35E434965C23E7922001447B2005F5EAB033") (:digest-bit-test 2 #x02 61 #h"CFA4AAF2F726AD6D9726B59E8D850BA58B688490E5214187B1766963E0DC1408") (:digest-bit-test 2 #x01 61 #h"2F59C313EECC21D0CAE49D92EF60246E0498BCB84FF30925F2E9BC045578B1AA") (:digest-bit-test 3 #x80 60 #h"2E7963AF3EC7FF5CE6A4C23FF2C3D9BFA765C1A7CCF843E03E0BE147D852E91D") (:digest-bit-test 3 #x40 60 #h"2FF775793E4DCBAD7D20D2428BC09CEEC908628797AEFD57A958B50F3485FEA3") (:digest-bit-test 3 #x20 60 #h"3DAE0491CDE03D6C7FAEA715170ED25139A0F7B77F601FA20F2A6FBAF8076610") (:digest-bit-test 3 #x10 60 #h"63635B0197FC6C31478B85C92748372B03C4356718B5D600B677C2F7A2A45DF9") (:digest-bit-test 3 #x08 60 #h"C4F689A854EFE7254FE0683DFC3ED392BB5F98656B2B906437819416F43D190C") (:digest-bit-test 3 #x04 60 #h"F0E43B2C47EE3CF4865CAFA6C2406CADEF4C7AE461AA7FD23C9F294F88AC3E23") (:digest-bit-test 3 #x02 60 #h"C4A8240D8711FF7C881B00324B9FB0A8BE9D90D99E7F95525EA69EAF9F7658CB") (:digest-bit-test 3 #x01 60 #h"18AE4CCBDA9538839D79BB18CA09E23E24AE8C1550F56CBB3D84B05331FFF401") (:digest-bit-test 4 #x80 59 #h"1B19FF19DB12ED9ACC13FA3A0AF2359D7F247946306E2B4BB9C33CDAFF3AF619") (:digest-bit-test 4 #x40 59 #h"9FC1D2FDDC3BF79EF1CD260C4DC38F9049FE9008A30361E939FB7D3484B78913") (:digest-bit-test 4 #x20 59 #h"73EC741E9AAB162395254AAA253960753D7B2270648C47BCF88D6B56B4B21B6D") (:digest-bit-test 4 #x10 59 #h"2E65812BD89BD1145EFEB3907772D220902C3D29DDA4DCBD5C56D956DFB3798A") (:digest-bit-test 4 #x08 59 #h"96CBBE51E1657CEA98D8A528B326F9E12B4EC3E96DF44248472E314378E63289") (:digest-bit-test 4 #x04 59 #h"0AB3F00B996C2E9B364C0180CBE26663D0270E7FBD54C6B1161A0E5AECF2730B") (:digest-bit-test 4 #x02 59 #h"78554A3A0C8F62E32DB9906F946B2BB3AC03B88618170E9E67C011EE4F7096D1") (:digest-bit-test 4 #x01 59 #h"D6DAAFE3DFBC6F26CEBBFEF13DBA8216F3CE07972F0755B0A39C92ABF6858E70") (:digest-bit-test 5 #x80 58 #h"55FFE1A582E6C6EC8EB546943833E4B746B122597B0937E265A7E2151F8EC5F1") (:digest-bit-test 5 #x40 58 #h"EC44B4A96BB31BE6E90B95FFAEF0FCB1650DCA2AC3687837FE0454EBCC3CF6E2") (:digest-bit-test 5 #x20 58 #h"E233BA3685C62E92EAE8A6A5E876426D8C384A4F0A41DD769A2EE19156127C2B") (:digest-bit-test 5 #x10 58 #h"C48910BEEC85E2C9E5DD94E15FB8F93FAE049199776832E7001CDC70139B24F5") (:digest-bit-test 5 #x08 58 #h"E810A131AB2FE5C1B224E06FB74237C52CFC290F8BB5E7CA67704ACF26A6A8F4") (:digest-bit-test 5 #x04 58 #h"EB3B3D88EC46D915AF459E38EEBCFE26ECD7FF2D966E99A5760A71001D4DB287") (:digest-bit-test 5 #x02 58 #h"A6444DCE5DEED90C057E9BF7126BF2A7DDA65FEFD19C0C835BB6228D24319EB5") (:digest-bit-test 5 #x01 58 #h"384A41704D44FC9FA013A0EE0A967AC55B303D92782D0DC1B002CE1163422B5B") (:digest-bit-test 6 #x80 57 #h"51655DFDD09BCBB89161EE7D934CB63F65E7F0C9BE8AF2DEAD06C909165EFAC0") (:digest-bit-test 6 #x40 57 #h"465B47DF86D8D6601383540EDE75E40AF1C482BBED28A2FA6415256AECA035C6") (:digest-bit-test 6 #x20 57 #h"FAE00DD8A3EFE9AEA394489EE52871975DEA0B517BD7DD464D16DD63101CFFDF") (:digest-bit-test 6 #x10 57 #h"069AD6583EEF4D8D1595D8F9BCD5E56F84658BDE7399737588D3AD3E4C35BD83") (:digest-bit-test 6 #x08 57 #h"848E1411238E592C06A260F0EC88654BE43716670A0F2CEBF795D200EB6BD2B6") (:digest-bit-test 6 #x04 57 #h"B6DDE25E006907CACDBB977307FFE3ECB5C1FAABD72350D19FE635A1F68A6C63") (:digest-bit-test 6 #x02 57 #h"45D1133AC05424A2D9B87030B58444F494CF37AF30C0A1F3C347537A43EC909C") (:digest-bit-test 6 #x01 57 #h"99390D8450F4498771E12A6E19F5511A67E1FDE8034154D1CE0C6D6D1C9FA6CC") (:digest-bit-test 7 #x80 56 #h"FA5FF9C30BF0762E0919831B82ADB7B0F817C53F97E16E23295A6AE410A30F45") (:digest-bit-test 7 #x40 56 #h"101664E54D067297DEB010BFA4B349DFD0F8BB29CFB9D164D8497CA7D4B364DC") (:digest-bit-test 7 #x20 56 #h"8A4EE959DB604A645DC87D6059B5BD2BE618F9630BCFD0802472EFEAFE161DBF") (:digest-bit-test 7 #x10 56 #h"16A4790BEB5E658DB1EB41B0BE81E67905C4FB250DDA9586290DA8170A1F2C3B") (:digest-bit-test 7 #x08 56 #h"238366DB6F519D123C0368F079F5022CA613B098716521C63DBA487382DFD706") (:digest-bit-test 7 #x04 56 #h"63F9E0E3EB02BC1E5D9B9914A85CA67D15379D2770018FFDD922CBF8C8499218") (:digest-bit-test 7 #x02 56 #h"98D66C738C93E5FCB805317BF1933E9FB6785D755947F7BC295378825D3022D3") (:digest-bit-test 7 #x01 56 #h"27B0F56C18180D06A1EA825A813E7EE7F68909AB503B66ED1D30FE35DE3ED5FB") (:digest-bit-test 8 #x80 55 #h"87FE0A8DCC23EB80FC1DB6724320543E4E55F983D5ADA1C422587E7D0F3A0376") (:digest-bit-test 8 #x40 55 #h"750C89EE48ADE5764BB543E267E04C32DFA5365F8188F4383BDC9BF7DFF9E862") (:digest-bit-test 8 #x20 55 #h"71CEC1690D152A93F13D0C4A1A2B3CDC0460ABE8AF1800EF94CD649662627B28") (:digest-bit-test 8 #x10 55 #h"D1C43A7FDA45CA32D2514DBD8F50F743EAA24E5F150B083650A454DCBC3B87ED") (:digest-bit-test 8 #x08 55 #h"04452E812B76E6BC0FA033984651AD9EFEF0DB4D56D8886C24FF24B06981FEBB") (:digest-bit-test 8 #x04 55 #h"54CE27BA2B8D5643E2915B5089157AEAFD4FF4E81306452671E06D6C26BEB856") (:digest-bit-test 8 #x02 55 #h"D7E5AD6B662F02F8B634949B2A90B654FA9357E6095798F721C4A26D42EFF4CC") (:digest-bit-test 8 #x01 55 #h"6E384B20006C687FE6183A443D7F15691A4D81BE5FE39D8ACB8D9EF7A8238117") (:digest-bit-test 9 #x80 54 #h"9E8C093CC770B108AD5D2C028CF48D3B4652548583D83389A3CFFD8F857821A2") (:digest-bit-test 9 #x40 54 #h"1D867F890D163C3094B6E2BA6FE16B19D8CDE95049F5CAE0095003576CF359DC") (:digest-bit-test 9 #x20 54 #h"5C82EA174F7C99F20FA78E4FFCD74BE8372AD83D4DDD9CE3E0D53B99A813A93F") (:digest-bit-test 9 #x10 54 #h"C54CE44900EDE8FE1434A667CFDBFB998180ACD3DCCA0CD73132E32F0F0056DE") (:digest-bit-test 9 #x08 54 #h"D04D6AB514083027C4FA071FF0ECF988F49ED5A9496E07842944FC496CF7C685") (:digest-bit-test 9 #x04 54 #h"961CD2C98BB68515DA22EC681520E912C7A1E9C0F01D749715FA229648ED02D8") (:digest-bit-test 9 #x02 54 #h"28E0FC7EFF7AB3F7A2F800B75BF819E2424B14ADB3DE8E35BFE500AFDB2A857D") (:digest-bit-test 9 #x01 54 #h"68ACC3396AAABA9F0DB2CE1D7B8327FA4B3BCC8A881F8BD16C3EE9EDEDC2E088") (:digest-bit-test 10 #x80 53 #h"5D987E43F6368F9B33F3AA812E785006210FF192670906C2E4A3C9DAB8096B01") (:digest-bit-test 10 #x40 53 #h"8DAE1338F0E9A06141FFF2E76953E0FDAE888113A5950EA5D0AF728D3744D3CF") (:digest-bit-test 10 #x20 53 #h"385EEC3C348B1AED84CBE8015D75EB79E3F3B354CCCDE381ABBE8F5C2ADDA330") (:digest-bit-test 10 #x10 53 #h"8DDBDBBF787F139A25C1D40D8A9108B9CF8C008FD10379B3EBEA8FB27A3B7A4C") (:digest-bit-test 10 #x08 53 #h"1E633B490B9369213ED26FD9B920B79FC6EC5E6B8FF3DED091C95CD5EFF6580D") (:digest-bit-test 10 #x04 53 #h"C5A580DEC9773743AAA8DD054B9E0A2556F96100FB7618E761BAACB5666689D5") (:digest-bit-test 10 #x02 53 #h"7AF26FB0A4158771ED17824C894F872E3D9BE453EF1A60FE075BC3609731819B") (:digest-bit-test 10 #x01 53 #h"4BA4FC0C8C329114035A8026CEB7088F302639D1D4D4727222BD1E67C448535E") (:digest-bit-test 11 #x80 52 #h"1A2ACF4E303865B9E92EA408A9278510A6A6D8B2003589652EF1901691123EEF") (:digest-bit-test 11 #x40 52 #h"0054216AC82168CF4389850D921F3297C0EB3191FF4B59D092BEC5AFCC144B3D") (:digest-bit-test 11 #x20 52 #h"2ACABFC631E3E54ADCA91DFF5CC7317C993926A56A986760184D7CEEA5D99B4A") (:digest-bit-test 11 #x10 52 #h"4CE4CB88C6364B3B2C7FBA1496693D32DCDA14141D38EDEF6B89ADB59D592364") (:digest-bit-test 11 #x08 52 #h"D995A4726D4117E0C270EDF2C90A86CC92E707D58F829D550390A33EF332229F") (:digest-bit-test 11 #x04 52 #h"5B0932A24469CE654D4B6F9336DD2C704E76C47BCBD246769D7A11DA87226F2E") (:digest-bit-test 11 #x02 52 #h"22EBC262ADFC355F74DCABA5049413F91DD6DF368256400C694DF9F9387C9170") (:digest-bit-test 11 #x01 52 #h"8204174FEC9661937F10FDCDC0F21D22C715CEA75E8A65EA48AA5F2656ACE73C") (:digest-bit-test 12 #x80 51 #h"793526200C8789845B8EBF1576D81EB58968CBA1E21DC569B77CFDD44B319724") (:digest-bit-test 12 #x40 51 #h"9394D8EF9CB5F34520A2D915E44134243F37763AA62457562FB08F833DC15EA4") (:digest-bit-test 12 #x20 51 #h"1E3D1BC3E1E151B53C020F2753A310241071A8635EBE7D73B7B403FC5249549B") (:digest-bit-test 12 #x10 51 #h"A06F37224118DFF3AADA5F800B73E868D894A9C137ED70B1E8B11EAD10CB1025") (:digest-bit-test 12 #x08 51 #h"EBAB76D8BD268E025ACFFB4C3BA37838F9D31980112F9477D96EE20F6D05F9E8") (:digest-bit-test 12 #x04 51 #h"8171056C199703D480DA637C5172F0C57636EDBD3019AF2638434022F11E68E6") (:digest-bit-test 12 #x02 51 #h"07CC0BD8CEFF88F280DCF9E8DBCD5A180C6A3C56C654896E6F9D533F56E5F12D") (:digest-bit-test 12 #x01 51 #h"A1591A87F66ECED286A026BE194EC87BE0FE1E9479BAF3B85CAEBA29AAA5FF98") (:digest-bit-test 13 #x80 50 #h"E709390882728CECA49604B51FF3A5B90773E499DDE9825F9953F166B50D2171") (:digest-bit-test 13 #x40 50 #h"0CA4D2B8860E35EA0A6113EFDD91C75718D6722AD6DB319E1ED05F7477592E62") (:digest-bit-test 13 #x20 50 #h"D18C38719F01277CCF0E394AFBA357352116D2BFA238A0C8389E8B4CB6053F13") (:digest-bit-test 13 #x10 50 #h"0B89A41A456BD73B36B66291604F4B2700FFC121BC5E6303D523EE9EF1A5769F") (:digest-bit-test 13 #x08 50 #h"F7109D2565DB442291E915E10622EBFFCFF00B7EB811B35C49356B828CFF3D09") (:digest-bit-test 13 #x04 50 #h"6E59F3D6E44866A80A9F83F47F6551188529341B6DC3B28DC97066183E4F62EB") (:digest-bit-test 13 #x02 50 #h"A96C072C03E4892DEE7C06A0E53327BC0F5A2E434DA82D44510484C158576C28") (:digest-bit-test 13 #x01 50 #h"CF196D6069AB8CD56FB148363BC793D8FA4F82571E46C6F4C47D6CDE34D08E09") (:digest-bit-test 14 #x80 49 #h"FD6402909175BE39A851E90C8A9679AC28175DC1D1FEC3ED8B5D5633BA0FB29D") (:digest-bit-test 14 #x40 49 #h"C1D6BB03D087AC72DFA0F60BC321EED88C453DA67047E077E254A4AE42C5DCA6") (:digest-bit-test 14 #x20 49 #h"15C7F345247CB2C74D53BFA08A41098816C3EDCABBE35226B8FBD532F37A5B3E") (:digest-bit-test 14 #x10 49 #h"CDC2F7D71B79384BBDEB4C1BB523D0EAFB54D8B6534BA0BFD3EA509CAB6D5263") (:digest-bit-test 14 #x08 49 #h"9F7B018C867EF344141DC43286533AC255C92F52D898547400BFEC008371B739") (:digest-bit-test 14 #x04 49 #h"041CB84FA14B83E44998E02443D22630873EECA3235B5B6B99757241758DF4CA") (:digest-bit-test 14 #x02 49 #h"5048583E74D84DB87F14455B3C3BC6DF30026A70606F0211564ED13C3681E8EE") (:digest-bit-test 14 #x01 49 #h"6D739D8A74C3DF91A97199A7E0F5B411F90634C4390BDE23D71F72EE1DAA386E") (:digest-bit-test 15 #x80 48 #h"C6D5A6F68BB7D53CB7304DECD22E4E831A465DC337F077CF9207BE07A788A470") (:digest-bit-test 15 #x40 48 #h"928E386EA548B1922B4D284003689D5C04A26A9BCD7D876B294FFEB18062F68E") (:digest-bit-test 15 #x20 48 #h"28B6290B52D13B0A0D6B967B98B1921E04C55FA98D45E7E1373D093C92950CE5") (:digest-bit-test 15 #x10 48 #h"EAB497B1F7E1FA12E3457F9C542C7B2AA47418C4BA15E7E1F2FAFD95E9B24080") (:digest-bit-test 15 #x08 48 #h"8A9BA0B1B781511F4FE2B9CB9E1B779B454D13F6771F0E5C088604DF18020B13") (:digest-bit-test 15 #x04 48 #h"151B522B45309B70B7A740D2102A9D1AFA00EB5309985A270E72477384BD5A2A") (:digest-bit-test 15 #x02 48 #h"413A2D719B9ECD7DAEE9B5782EA0DC4BC7DA68A36578D52F462F07C5C7CC3EBB") (:digest-bit-test 15 #x01 48 #h"0BFBAA977CDBEC98D5208E6A39ED8084C49E9B3812AA08456105B591B639E500") (:digest-bit-test 16 #x80 47 #h"11F95D879EB9E20338049F04186D8D3BD6B84AD6D168B5CB94A81F0928F76123") (:digest-bit-test 16 #x40 47 #h"83E869669EF1EB86AF473C27131BC1043EE2AA098171F0CB10396838B80E2852") (:digest-bit-test 16 #x20 47 #h"AD3923410D65B22EBE52D9241B064AEA2E9C6B1FCC1F3B87CF4FE24B6D279C81") (:digest-bit-test 16 #x10 47 #h"F34D63713B41A46AB57E3D58ACC1E2FB551B1ACB1464B84844495DDF3CA31C53") (:digest-bit-test 16 #x08 47 #h"37C4014E1190109F6AB94757573D42969CEF35C62DB81163BCBE344F6D35952E") (:digest-bit-test 16 #x04 47 #h"622327209A67F4F716E21992B1AA2C2EFE291502C973B84DF66CCC594D8951B3") (:digest-bit-test 16 #x02 47 #h"EE022A8C4A651ADAE0C94A710342C3E34A7EB8A144C7C68DD9E28AF6F857E8AB") (:digest-bit-test 16 #x01 47 #h"752C03CE3316BA05CA4C9256A56F20287FFA5CA9DE120C54083422FF0AA39484") (:digest-bit-test 17 #x80 46 #h"62B6821AC06AE513EBD4BB6E71905C2BE2D23D7F6F91585D25FFB4F4A7EADC82") (:digest-bit-test 17 #x40 46 #h"4D636023B89838862F6C5E13323B7126D9992EB9DC116EA0FD49C07E55077AEF") (:digest-bit-test 17 #x20 46 #h"186B0115921105FDC79642B22B975D73E8BAEF39F3DFA54D899BAB19742CD08E") (:digest-bit-test 17 #x10 46 #h"00437FA812270E235B565E4380108CDFCE3965B7EAB947F885AC38625BCC05E6") (:digest-bit-test 17 #x08 46 #h"C4A82A95E933A1002A4D0F428E692775AF3DA97F26B4859DB4411851039E278E") (:digest-bit-test 17 #x04 46 #h"433344AD40912C81654FBB4EE5B9DFDB40EFAE5E04701902DC2CFBD61E46406C") (:digest-bit-test 17 #x02 46 #h"A025F9FAB4920B6E075BB27B2EDFA590CB7AAF4FBF79D6244992745C2E4CCDA7") (:digest-bit-test 17 #x01 46 #h"100374AB429378172246C68FCBB03FD2F0C248CA5661D22BC57C5E11089EE0B9") (:digest-bit-test 18 #x80 45 #h"BD61FE93A4AFC5FC18826B72E9170D0F5A90673A4DCA6029933C1E7EE9F8A994") (:digest-bit-test 18 #x40 45 #h"E600FAF8F2A3ECCA343E9B2C0750C1B555C70C48233E5FE1843319E14DB4CCA6") (:digest-bit-test 18 #x20 45 #h"74ABD7E3B63DA0C50C60285ED214D5EB5685B041C04F2A5760E16CDA326E5A26") (:digest-bit-test 18 #x10 45 #h"CEE269F6ED2306C50A51E8652CB16EC3F5244422E74716E7B2B496210FEC8691") (:digest-bit-test 18 #x08 45 #h"E111CE36766C35A4FFB51B92EC020751478FB953CFE45E4EC8F0533DE6B0E389") (:digest-bit-test 18 #x04 45 #h"8A9B737C2505074E365B4E93AFAE34FB5750DE584F4EA6DB410DCA4EB4A4A4B9") (:digest-bit-test 18 #x02 45 #h"85368C816EFFDB2AABB46BCA1A68E6BE939763A007E5D8E0C300F010E4A20950") (:digest-bit-test 18 #x01 45 #h"F73860746259527888883C4A156C166B1E437D9F901B20A53C9AD38CA1A79F0F") (:digest-bit-test 19 #x80 44 #h"1214272B5CA64919D4A5E414BE111EBAC89E38A3E7012D266FA37059E7661A56") (:digest-bit-test 19 #x40 44 #h"F436C8090922DC9C9125F7946DBAD989D0F30C6937797F201B4EF6D50978762D") (:digest-bit-test 19 #x20 44 #h"83E1655FFECBFF4B6E9ADED0A2D1312FF900036CAEAB5C8761D7CE3CA893B688") (:digest-bit-test 19 #x10 44 #h"D139857DD62ED86DB019D9BC802288021B718C7ACC4175E33B660E2D0A397020") (:digest-bit-test 19 #x08 44 #h"0843449A3FE35677DFB3816FE4CFA489A8EE1AE3E5F84AE79042B26F79B58062") (:digest-bit-test 19 #x04 44 #h"323B852EBB3286D88AAD0139783166B82A2BBA338B400C6D6B87E1E8D3F2EC46") (:digest-bit-test 19 #x02 44 #h"F54441B6A5C993833062D5F66F230FBE7C81B7BF66E7C9279F91AAD94056DB82") (:digest-bit-test 19 #x01 44 #h"E4FB21E08A3DDDAE736792FE342E9AEAC7DDD42BB2BDAE7E650D80B0C29095F3") (:digest-bit-test 20 #x80 43 #h"0091715550D08BDC74C02EF3C679EF7008FCE665F24C13CD5DED432307E1B25F") (:digest-bit-test 20 #x40 43 #h"E2D01443022CFF8771825D02812C3909E13642691422CCDF4197DAFE8E7A53ED") (:digest-bit-test 20 #x20 43 #h"831A8C1A5EC3793DD2FEBD46B2EA989653F26984B2DF508E94C913C5D8209B27") (:digest-bit-test 20 #x10 43 #h"5BD023733D2742D9DAFB53CB1E949B3F5EBB89DD0063E5C8B937E95C3B0378D0") (:digest-bit-test 20 #x08 43 #h"406AE8A0DA1864B419B7196570A3B358F5E92D49FA0F2916543428D72AF6705F") (:digest-bit-test 20 #x04 43 #h"5966231A1F9016C946FC89CD163D28939C28B2FA8E85FBB3071FACDD7D793B33") (:digest-bit-test 20 #x02 43 #h"0ADA1081AD3E0CBF690BC16623C584D5A01E5F287842D9C3A54FA05D53F57B5C") (:digest-bit-test 20 #x01 43 #h"20FC7056C693A040CDDA479FE23832945C771265A86A81EBB46756A0E35C8E41") (:digest-bit-test 21 #x80 42 #h"92B814A7A3C35BA18DF50A8D61BDA5B920872C8761E5127DA5FA5417979710FB") (:digest-bit-test 21 #x40 42 #h"1C0CE1582DEA18877BDA514F5EA714B5E1EFE47FC56F636661AD627ECA3A88C6") (:digest-bit-test 21 #x20 42 #h"63CED81AAAE244EDBE9F3061EB04880081B760151102D4E3EF96CEE066A702A4") (:digest-bit-test 21 #x10 42 #h"7F1B4A9181213108A725E8688E1A0C89A42D669A040E642E7C50DF293C6EB286") (:digest-bit-test 21 #x08 42 #h"B61A30279CB9685D26F0633B942FB92D1EDCF10125155C95CCC3E4F324127F46") (:digest-bit-test 21 #x04 42 #h"DA0063B8AA47894FC7C2B192DF6286A7AA8AB189A75166ABA3910523F4C7343C") (:digest-bit-test 21 #x02 42 #h"CF0BE9C1E8E5536A0063714709F3CE9B6C64870583273D152E1AF2E9E8826437") (:digest-bit-test 21 #x01 42 #h"A40F4791838B9E90624E6048BD74B355222D74123F2BE4DF87C5C53E6528EDF1") (:digest-bit-test 22 #x80 41 #h"47FD4A2160999C3438801AE2741044C30BFB09FA28E588339B40EB4147A0088E") (:digest-bit-test 22 #x40 41 #h"1633C6F7CF7DFAFC06AA6566FCF5BDBA663987DE2118BD80B90DDDC24B3E6B47") (:digest-bit-test 22 #x20 41 #h"48A6C26EECFE1257C905F42AD27C5AEA3E247A12D8E37168B87EC23C5A3782E7") (:digest-bit-test 22 #x10 41 #h"69904A58FFB51D5A523B3F7CD89B1537B9464142FC6A558165D94C4306B36486") (:digest-bit-test 22 #x08 41 #h"4234E0D401967DC48B8F8E7065F21061827D4D3E164F212D49E9D3E4F8D08203") (:digest-bit-test 22 #x04 41 #h"0D35CFC713B51EECF0C7CD174AC057598E321E59CF8BC8F66701093451CB263D") (:digest-bit-test 22 #x02 41 #h"8252A0DE60A97430BED19227D2601829C1A4186EF0D9EE83081B681DC62833D0") (:digest-bit-test 22 #x01 41 #h"12B01C4ADB167F43D5C82C5D36C20433A1999D7B697296067325150F6B42E723") (:digest-bit-test 23 #x80 40 #h"FE92431BD6235C3A8E6CCD5BFF3C426A384805E20957B7709805D8B250199B0D") (:digest-bit-test 23 #x40 40 #h"257416F289917F3747A70BA80B0F2FA456938C5EDFD8235CFE57D241489B5A36") (:digest-bit-test 23 #x20 40 #h"2884586F209E50323451F32AE31A622202847696CE159E7DA03F9CE652244567") (:digest-bit-test 23 #x10 40 #h"A7F896978FDA16AEE6A05FE0E0E0A0053C05FF8EEEB94ADC2C2D80CAA5B78EF9") (:digest-bit-test 23 #x08 40 #h"E671DE62E823AC67D41803B68AA2E0FF74DE70C3F9C7894C69DADEEE6B102D8B") (:digest-bit-test 23 #x04 40 #h"AFB4ABE7C93F3B90BB6A3CF07700A413EC4FFF9354F1B54FC8198DF227FEE29E") (:digest-bit-test 23 #x02 40 #h"447FF32829FAE9ACA889CB164D52DD4A92CA6A56E303926CD9760A9B7A511062") (:digest-bit-test 23 #x01 40 #h"19DE25609DC348DB36FC8668F42B78131E981774DE9AB5D68B7FF38FAD1855BF") (:digest-bit-test 24 #x80 39 #h"998E932CCE059900512CF7C87965D3CB55B8F6F57B026CBCC170EBD2FA685039") (:digest-bit-test 24 #x40 39 #h"6AA754752F5885684231557BD9A696281ACAAB81202E3CF242B74C4C9974E95B") (:digest-bit-test 24 #x20 39 #h"1660EC3919278CF063BC16C4DA6C0493B7C95187F4B1E3BE91007FCA9B258FD9") (:digest-bit-test 24 #x10 39 #h"D5439F4CD69F0249C5F4B669863EF07AB67059FF9F6EDF5AB8569CC5AFBD707A") (:digest-bit-test 24 #x08 39 #h"C4B882FEBB7E9297980D45D05E7D77FDDA4FC320D39138C389B80E3EE1F5FE93") (:digest-bit-test 24 #x04 39 #h"BA29EC0E1056626D9D503BE8A4180D82694BBF9E7C6F9BA84F768337F836CEA6") (:digest-bit-test 24 #x02 39 #h"44FFEF2CAAC31AA58C323E8D54C4969E805140A8068E54C6948106FDFCF39FFB") (:digest-bit-test 24 #x01 39 #h"250575D2C5AA729F3A7A67696E93CFECBB0C74F610F7DF30483FA77D6156EBBB") (:digest-bit-test 25 #x80 38 #h"8463946014AF993FC53521E151DD0A5FE62DC9E4BE44B25951CE5108506E81FC") (:digest-bit-test 25 #x40 38 #h"4210C9B91A7903E1BEDF52F002CF07E9C940101F6A2A706FA5F5C46370B69BED") (:digest-bit-test 25 #x20 38 #h"35BCC9DDBA586ED7741840B1CC50318CBADB7D21033D49A9E13A365BDD8CF7B2") (:digest-bit-test 25 #x10 38 #h"1C4E0AA5721CB3FBA9619E7D3187289FE3B73FED4976C57C6B96B3FCC787E7A8") (:digest-bit-test 25 #x08 38 #h"D66C48F9805CA3A23C492763E7CB0CAD4F39C2906960F70782F03D982DE658DB") (:digest-bit-test 25 #x04 38 #h"86E32F041164B61EA3CEA4B08CC4DE1F0B372DF8DE0C70CA8912E74416C3C56B") (:digest-bit-test 25 #x02 38 #h"FC980464CADC70834ED870A8805297A9A134A17CE774577929883D37986E575B") (:digest-bit-test 25 #x01 38 #h"A960F4A548A5082B0C7A6E81CFC267EC551FF0590E7E481DBBB49D1320DB2993") (:digest-bit-test 26 #x80 37 #h"EB3D05BA0DBF1E4639B508A5071E048EA9537F5061D97635C278E1A42085FC4D") (:digest-bit-test 26 #x40 37 #h"4721C0512921E73F152434D3758BEE3850FD781D1615C216C9B9548215971D60") (:digest-bit-test 26 #x20 37 #h"75D3942826ADEADB234C13620EAE3387AC3712A0011E73D4B43CDDC1D8A19A3B") (:digest-bit-test 26 #x10 37 #h"B1C964DC8EF1DD6C7776F80513D20E907D151CF85B9288C211C43B11622ADE9C") (:digest-bit-test 26 #x08 37 #h"D131B7F26B81998EC103602D4519D8CE666AB16B28DFC0BE3AC8905F89F5FCD8") (:digest-bit-test 26 #x04 37 #h"992D98B251D8434F949203946F08DC58B8E5DC8E9B1A2683EF6C147D02FF4AE1") (:digest-bit-test 26 #x02 37 #h"796F69162354BAB8808A8A5995366974B63EF0FC918F742E96669825D3C4B7B3") (:digest-bit-test 26 #x01 37 #h"E853183FE5C256B343660C585EE24EAF3D08E7EFB03FE37153E3EFD10139210F") (:digest-bit-test 27 #x80 36 #h"596E7B035AF0AE5DE70BCD5676201A2AF82A5F2FA4C9B6C816179682D26C5512") (:digest-bit-test 27 #x40 36 #h"1AD5B174B748974B910D09AD8C69DE4BB9048616D946E7E68EA5E7633C97E6E5") (:digest-bit-test 27 #x20 36 #h"467F92DB569C7931096F19DE0E29D17010CA82C3B50E85FED08CB2D85B0B8F97") (:digest-bit-test 27 #x10 36 #h"9E7F02E099917E00619ED5BB9F9C7EEC2811F57ED0DAD85D2C95ED8DD0E4C08E") (:digest-bit-test 27 #x08 36 #h"3104DDF4257DEDC2010A4705CAF03B7D504B4FCF2ED1EEC59ADCA70BCA9310D5") (:digest-bit-test 27 #x04 36 #h"933883E24E576162D81D93298D58D922A8329795081D7597D4CF8010D94FA8D2") (:digest-bit-test 27 #x02 36 #h"D739D01F7E09356921DD36B319A81E6E5DFFE1F3A4B4835763B0E0BC7AF7D54C") (:digest-bit-test 27 #x01 36 #h"6F9FC1387DF177C8834F70EE0935668EBADE05884B7A613354F95ECA31071D95") (:digest-bit-test 28 #x80 35 #h"08FDA821CDCECD8B02CDEEF208BA74581883AB871564E283A497007619F05FF8") (:digest-bit-test 28 #x40 35 #h"8B486B4DFF4E698B634905033D54646C1506D5E99FDE44ECD842629B5AEDFFDF") (:digest-bit-test 28 #x20 35 #h"046B626BF4B91DF0948C5B424EFCC4998D399ED924514B111BF3DA6CB804A044") (:digest-bit-test 28 #x10 35 #h"49F8604A06257AF4E62B76EB9BAA153C00F6205529661240440236E8596C18E4") (:digest-bit-test 28 #x08 35 #h"4876639F3A19CD4BAD75A47E729E99C9D431F3ACD8E0C675FCFACCC7268CDE9A") (:digest-bit-test 28 #x04 35 #h"47B47983332873578EDE4F3C872005FA65B88B723A8D63B68266187FFF24C7BC") (:digest-bit-test 28 #x02 35 #h"6A3B715A9D621F009D0420B210B6628E0810A9B0FC5C230F5B6CB2A1CCB32521") (:digest-bit-test 28 #x01 35 #h"80AA5123B8E959A78F92DD0DF9C086E7CFF95CCAE81F11EE95A9178BC97DA5C3") (:digest-bit-test 29 #x80 34 #h"EB2495DD75C3983B972EE86E0C44A7DCCB58BDE45AAD011868FC1A4BA174B284") (:digest-bit-test 29 #x40 34 #h"52E5B0C1691841DDBFDB16B15ED91D4FD0AF5A5BAFBF803948CC692AD15001A6") (:digest-bit-test 29 #x20 34 #h"B8DEA824DDCFAE01942B3ECED0925C56D8E8D713484C0198F133FD6876CC7E88") (:digest-bit-test 29 #x10 34 #h"F854548650BD2EE462A221DF3F618A507CE737946BB6111BD10DF72AA519668B") (:digest-bit-test 29 #x08 34 #h"CE7A1418551803A588EBF7AB1874E803918461518052667CB3E827A2C331A1B1") (:digest-bit-test 29 #x04 34 #h"1AAF9C4E2210C62DDF85B8A17DE97A11A8FDA73F50EF3EB091905F4725C01890") (:digest-bit-test 29 #x02 34 #h"8C2BC5F4A7F1A04838B8CECA0FE1B2138298CB3E9EE8E9F3D398B9386C0EA0DC") (:digest-bit-test 29 #x01 34 #h"883F6A2B2F5F3CE3D0719327C32BD7FDC3678F30B7C0E6C9B646E8F255B24C6F") (:digest-bit-test 30 #x80 33 #h"97240AF3BB1ED0F4C40909902B619CEB345EBEC32FCE1A76778582F769DE5F08") (:digest-bit-test 30 #x40 33 #h"2E71DCDD0C32DB17D1B1A8E6CC4DA8C09069AD7FBCE3660C038A629A54CB9E33") (:digest-bit-test 30 #x20 33 #h"D73D0C259438C01E5C623B1AB558AFE7E158950A3FFF48028E9054B6A294C879") (:digest-bit-test 30 #x10 33 #h"9F44A53FB13DE79E4F851DE224A20905A471E4D5495BCE832BE55A72A3A9859F") (:digest-bit-test 30 #x08 33 #h"80577CB7D412273020AEA6986F7E7B82096C2C191D4F3A2641C1AAF854E35A40") (:digest-bit-test 30 #x04 33 #h"DB93C3458D36F2800D2FB03957237190EE0FE64D35978EE7A822B272BA1DF978") (:digest-bit-test 30 #x02 33 #h"E548EFC34D2F70A0C730679057A4CD9A0DE2FC57E804F970B5919F946A61FCF0") (:digest-bit-test 30 #x01 33 #h"060FD02BCB60AE26536EB1A50A25571E9712C6106AD966452FE5C40602BD9186") (:digest-bit-test 31 #x80 32 #h"D3321F207A723107AEA06879AF488D83AB99EFC7DD6AD75D2356857CBFE4D718") (:digest-bit-test 31 #x40 32 #h"1E8A162B8929F27D4EE0BC6DE76C4D186EE5B7500A658EE13BFB4429F596FFE6") (:digest-bit-test 31 #x20 32 #h"1CCA23F135D6A051C5BCEAB95D8BBC3983A92021783FFE3540C209F682C5C93B") (:digest-bit-test 31 #x10 32 #h"E7125019709757B38FD5429EB0608C03E8D939FC721345643C5085822A3FF424") (:digest-bit-test 31 #x08 32 #h"2E65FAFD44BB10B41DA06D445673A68F2441D68DAE0CBF1BA7C62C75E9FCDD5D") (:digest-bit-test 31 #x04 32 #h"342B4F26D63BD11D5AA83A658B40191D6701CEF38D0F4001116B4358FACF2B58") (:digest-bit-test 31 #x02 32 #h"60066741365E8D416FF884AF7E3EC36CC209B6CD6CEDCE891A0B4CB88DCD1C7F") (:digest-bit-test 31 #x01 32 #h"58E8F2A1F78F0A591FEB75AEBECAAA81076E4290894B1C445CC32953604DB089") (:digest-bit-test 32 #x80 31 #h"8F6DAB338DE16AB12E496BF52B51D00EE1358741033FA19A8B6E3736A9E55357") (:digest-bit-test 32 #x40 31 #h"E7AE17EEBECD2650630473FAB6F5716D80DB238BE1F09FA93DC004942255C08B") (:digest-bit-test 32 #x20 31 #h"0B41C730A71A17718B3E8EFBF741918BE3637A981F4838835F76289C00E424B9") (:digest-bit-test 32 #x10 31 #h"A44A029E04493B8D2FE7893391C2B3CEEFEC1603C585AAD6203F2D14E07BFEAD") (:digest-bit-test 32 #x08 31 #h"5AC78D953211AA822C3AE6E9B0058E42394DD32E5992F29F9C12DA3681985130") (:digest-bit-test 32 #x04 31 #h"D647EB2598D33D7216256356596D29CECD31C1BA7A7FF25CCB5BE4A453410B9D") (:digest-bit-test 32 #x02 31 #h"1205F4789155711E2542DBA1A64D226626FE3EB43BAA854752D0B59077E010FC") (:digest-bit-test 32 #x01 31 #h"CB592844121D926F1CA3AD4E1D6FB9D8E260ED6E3216361F7732E975A0E8BBF6") (:digest-bit-test 33 #x80 30 #h"DA8358584A629196115D53EB6EE0BD6F821F5E7D8297753C5EA59767B5888EB4") (:digest-bit-test 33 #x40 30 #h"E16FD8C842F53FCF9167ED4153CD33194F93BC52416883CBC70107F5A5B542F5") (:digest-bit-test 33 #x20 30 #h"3C4FE9CBE1ECF2651A542854BFE633C83322A884B715322F0046F6A1FA4A6364") (:digest-bit-test 33 #x10 30 #h"9697FABFB4CFAD42B06912B49C656B820455F42B0E1A99D050857A565BB0719E") (:digest-bit-test 33 #x08 30 #h"7C1726D8B205E09F946FC3E7A314D07C179F99F6825846635BC166C47E00AF1E") (:digest-bit-test 33 #x04 30 #h"33333D249B819A6B651045B45B87793EEBFCC3EAD2C2CBD8559F8F636942D390") (:digest-bit-test 33 #x02 30 #h"0D75EF205E037BEDC1D5462A17F2DCDBB408250A2273B9A8987963D76067CAD9") (:digest-bit-test 33 #x01 30 #h"92A91D56CB5A0D8329C902C2A61D455DC11C2ACE741443069985D8A8761F0892") (:digest-bit-test 34 #x80 29 #h"9AF21D56439B23C2C133142C9D861AF93E56A9F5066050E84D015DB3BC9DEFBA") (:digest-bit-test 34 #x40 29 #h"D8EC24EC81F44E472050EC178E2B029F8E71D965F4B30D4B6BC0CE1CFBAAFA43") (:digest-bit-test 34 #x20 29 #h"C601F7F144E0E91FE0D81004C2CB6D12003A4D28357ED171AE2695C10EAF4367") (:digest-bit-test 34 #x10 29 #h"1E474F64386EB2728D754ED431DEEE8FC28634B60369187CC67069C9BAB50856") (:digest-bit-test 34 #x08 29 #h"CD26546D8F54998BDF990406D2DC61541D271278847D6CF7C0129B27E18821F7") (:digest-bit-test 34 #x04 29 #h"589F68DCFA53A2400B5BACE56DE6B945B657D42799CE5DE97535B956A9A7E434") (:digest-bit-test 34 #x02 29 #h"7DED0DE807F13086380A18D8AFC6F91D8B27C106A3192D1A63E5EE95999D11A5") (:digest-bit-test 34 #x01 29 #h"494CF88F702C3B6E60755D34D21B752F1B2DBDBAACDDCC39981EEBAE1A8445F9") (:digest-bit-test 35 #x80 28 #h"6A98BDF7ADDEF8AEB8C318585BFC9D0DBE218ECF02B6A58FD02F05F8B09FB865") (:digest-bit-test 35 #x40 28 #h"3CBF295A61FCF0DBE7DF7D672662CBDE5EAD4D1797BDD145075D0075BF8E8C27") (:digest-bit-test 35 #x20 28 #h"1440225FDE337167D85AE4B4799CCF5D3D2DCF9F5200F5368491B76A987A424D") (:digest-bit-test 35 #x10 28 #h"97FEBBCF075BA9235E9DFB80FED98C4D208FDF1E99F6DA6427343A549FA281D0") (:digest-bit-test 35 #x08 28 #h"35F9358538FC9370A59EA87EC7C267F574E67006C099828AC510C19C2ED39B31") (:digest-bit-test 35 #x04 28 #h"81F6394551E870E956AB91C8FD6D50A84CDC53809925DC78CEE6362959B7F6E8") (:digest-bit-test 35 #x02 28 #h"7CC54262D86AFF027845EE4758DAFA40B7809FBF46960041F6AB252403A9B603") (:digest-bit-test 35 #x01 28 #h"8860B1848E82659A8F8DD96561A670004B51648B517AADC8FCC4A6823C802799") (:digest-bit-test 36 #x80 27 #h"C648B6AF1B5F45B8A3A63EE029DC9F631B0A0A196C8F6C8F99E87310FBC271A3") (:digest-bit-test 36 #x40 27 #h"28F186B361C89BE6A1A5365667D49291B4F393D0900864BA55B94A3741A48C8C") (:digest-bit-test 36 #x20 27 #h"F6435CE4D01839ECB6673D8F2E8A194A8A42CD9E925982971104ABFA00C668CB") (:digest-bit-test 36 #x10 27 #h"1F53BCB0275B1C5743DD0DF57F6ADC628F154823331CF7305889ACB2EFCC1964") (:digest-bit-test 36 #x08 27 #h"AA90D0333AE3D6B268BB37339E2B3C9EB488819494136F9BB34B55CD5A499418") (:digest-bit-test 36 #x04 27 #h"A8A9CD859CD274995D1D63A8A074486D7EF03D1F2D46C90512E10D7BCE19876B") (:digest-bit-test 36 #x02 27 #h"4F66715E94649152F5A5FE48766BAAED641E04D18099F95078207DCB9BBB247E") (:digest-bit-test 36 #x01 27 #h"0FA87652EFD33C81D12AFCD1ECEC26570B5095EA17830B3A86287151D952BA1F") (:digest-bit-test 37 #x80 26 #h"B78517D559679DD4EDE0706F7FF6DD111E73A764809D6642BADBE2DBE0879F80") (:digest-bit-test 37 #x40 26 #h"A1DB1738D7FE28AF0639A2D08D788DBA39BAFFAD8A6F99EEA4CDB395C5D97BF0") (:digest-bit-test 37 #x20 26 #h"4CF0061C7F2059A2225AFEB31397D54FA6038CAEB09C484F998A29CA6B9D6F71") (:digest-bit-test 37 #x10 26 #h"50C15DE2269A9DE0BE4B4CC549D71D28C8E62ED2889B2997C959EB7320ADB02D") (:digest-bit-test 37 #x08 26 #h"94494316271E05F1E9BD2663E53D5F424725FCBCF661D8C280C10BA948C44E57") (:digest-bit-test 37 #x04 26 #h"D02CEF06B23C7C5E2D6696488CE3C389C8D671873FE25684553B6629F0F16072") (:digest-bit-test 37 #x02 26 #h"8010AFB151BA35E1F5C0B5EA1F0A202C017332B225F47A5872E87B1E7106AFD9") (:digest-bit-test 37 #x01 26 #h"7C7E1E7D7A3C48160E90DF669E05CD638046097ECF515646EC726180476F6FDD") (:digest-bit-test 38 #x80 25 #h"F3A7AAC9F3257C72EB287BC300F31388CBC670DD756E6121F4FAA148E5E3C283") (:digest-bit-test 38 #x40 25 #h"08FDAAE9628BB9AFFC502F3A3752548338C9CB644061CDF32434FB5F129BF824") (:digest-bit-test 38 #x20 25 #h"65913DA1B10BED73812FCF578DCBAF3E7B269F42A3E17781906C09CFD3392984") (:digest-bit-test 38 #x10 25 #h"A465333C4427242A63D08044D70294AD3EDA1A9C257940F2138844C54225CA4E") (:digest-bit-test 38 #x08 25 #h"A603EC80BD955208466738CAEDBB4025506C22616D4F2CD44F575073A1B0D821") (:digest-bit-test 38 #x04 25 #h"B5BBE2C5E1A5672D4C6209FE64DD62D914711C63F383FFBFAE72DC028E57B7C1") (:digest-bit-test 38 #x02 25 #h"90FB5D3B763D607DBD27F1C9A1031C77904FFE48F7A8262C1334C5A731BF567C") (:digest-bit-test 38 #x01 25 #h"D4B41E7CE54C93E9C672635478360026E43160A1CEB97C6917DEB630A541C307") (:digest-bit-test 39 #x80 24 #h"C1E2D0385C7067249C5B9C41ECF0426A599F362CA10190FC7223A0B144F493C6") (:digest-bit-test 39 #x40 24 #h"0B45FA27060C1213323C6654D9663EF4D5402D3B99403415C15D9B8D5D0567F9") (:digest-bit-test 39 #x20 24 #h"4C0DB82FF0359478B5C97C871B14E947F62D548F16B7AF8B9EEE76A27C1B06D6") (:digest-bit-test 39 #x10 24 #h"3D9A7039B8EB82E9A264C318F3CA7C8DC7DEFF95E90BE79C40323B9472711AC8") (:digest-bit-test 39 #x08 24 #h"B73D29485284C78F56EAF2E6F72FA354556DBF473B2AB25B1A7B842C2B662692") (:digest-bit-test 39 #x04 24 #h"4F9E4F76899721A86406E6B4574EB59613751CABBEE8E2928B2FA9D3341B3981") (:digest-bit-test 39 #x02 24 #h"5994BC49A92091DCEAF14F434F7E7F66F9DBF77BDB85615E9A6D93D6858B92C5") (:digest-bit-test 39 #x01 24 #h"D7272D936F77A9BF69EA39529E9A44C2C9FF052C3E495FB085B9E4AB4B917056") (:digest-bit-test 40 #x80 23 #h"812CFCA1E2D5C0D13E2C48B589FC64401F6B85F00F03E005D486AEEDE95079AE") (:digest-bit-test 40 #x40 23 #h"126A3867926080B92F0EC0F62A8AF4F8247C5DEC4B46E152C14486F66BEBF7B0") (:digest-bit-test 40 #x20 23 #h"24ABE02E6D5255A33125BF5FDCFF2632D671C7F009A0B85B3DAB499AF735EFEE") (:digest-bit-test 40 #x10 23 #h"E8DDF8BCE2F4FAB674BA59532E88E53396ADFAE195420771FE83BD97D09EEBA6") (:digest-bit-test 40 #x08 23 #h"722278F46850DE762138E2F2C56BF60C07827F46E0AF48C7D6E7925327799B9F") (:digest-bit-test 40 #x04 23 #h"28A226B83CB5316DE65E0E4CF318A836BA0620D7B35F6AB58D18EA44FF2C52A2") (:digest-bit-test 40 #x02 23 #h"BA4426A74EAFA3EE62AC4F45923548B9C8D4C6CE956C8FBE264EEE1FA3442C34") (:digest-bit-test 40 #x01 23 #h"1919C892CF10178DDE4A38102271B31BD490EC4B40F35EDB9FD80E8E1671B0F1") (:digest-bit-test 41 #x80 22 #h"5254CFDFD49C0F6B02B0B55D92079A3609D7430BA70DC0DD816B3784D0427910") (:digest-bit-test 41 #x40 22 #h"A9236785D72393A24EF215A461FF938B2D9F3B8CB27E1A6FF63805D5B138AA24") (:digest-bit-test 41 #x20 22 #h"D78D7D639249C7CD98FD3AD882C0F98C77976824DC4D8A590D80A26148AEE507") (:digest-bit-test 41 #x10 22 #h"5B632F5763688227B5DF59059F3D891F00C63D23E5A895E929DE75D8AA83D05D") (:digest-bit-test 41 #x08 22 #h"ED269E2FF14E828DD77F018700B0A460C15CC2D4AFBF001100BE8F38D8ADAFF3") (:digest-bit-test 41 #x04 22 #h"62134F47786E53679ABEBB061CF4BE743A3AAD9108B723B8ED4BEF93CCE7D253") (:digest-bit-test 41 #x02 22 #h"C31609F406FEB281E563F0D3BF817875D11F818CB1E38D02603DB390BF66E9BE") (:digest-bit-test 41 #x01 22 #h"0C242E5FD9FA0F2F5FA576955E056419F9AD77E3EB3E03C5F151256C9B4146AB") (:digest-bit-test 42 #x80 21 #h"213DA75407E6473CFE0EB8656ED03D6DCA533ACA4FF6D3F2F97127A0ED321C73") (:digest-bit-test 42 #x40 21 #h"AD111379642FFEE68C7E03C4B4BD71D73D84DAC086C961CD22BF115FF7A0E4E8") (:digest-bit-test 42 #x20 21 #h"06DB78D12149C22D8014A669F49192B07D011A225B874BEE0125876F1DEC3374") (:digest-bit-test 42 #x10 21 #h"79B5CCAC28B1D1BBD038C6EE73057471657776F147727FB3669CB4E769C683B7") (:digest-bit-test 42 #x08 21 #h"8AC5DA288A81F71B7531F8824DCC409AFFCB7E88215EAA398D9B4EE0A2A3FAFE") (:digest-bit-test 42 #x04 21 #h"2F2D4540708C98DA1CA6F1A05DC23FE66F5C3AECDF7265F76816E2337C37D3F2") (:digest-bit-test 42 #x02 21 #h"EC035986496596EB220AE5B82F1A2AD5BB9139F80D12259D3E19D5623AAF8487") (:digest-bit-test 42 #x01 21 #h"67AF511E83F23FFAE30853CEF535AEB5CFBF8EDFC0F4C7E07EA32A921DAF1269") (:digest-bit-test 43 #x80 20 #h"7C396CBFBD27929ED330F5ACDDF20DAD26EB6DF9D56A7066CEFFC790682B0DC5") (:digest-bit-test 43 #x40 20 #h"A27224D6E741AA47A7CCED9C4586658DAF47728120D00ED04EBD719B1A5B1E71") (:digest-bit-test 43 #x20 20 #h"784B9E6816D4558A109828B534CD41C3B464B3C3265C93D79E45F1E486780079") (:digest-bit-test 43 #x10 20 #h"D77673ADFAD62C3DCB3C38A2C2EB12B7FBB69FBC721B7E1F16FCFE38BA687912") (:digest-bit-test 43 #x08 20 #h"A48E2627C92ED81CCAE51F9DCBA5B8BB7A318A2CD41A62887BF2630AB439B2D7") (:digest-bit-test 43 #x04 20 #h"475B05FC929E6726C09ED9CD9B445C4DC22BFAA7D79606F72F82133D9F527215") (:digest-bit-test 43 #x02 20 #h"4FFC835D8AACF34C1AE717151522EAFC519E31F413A969A4D58492B73E706AC8") (:digest-bit-test 43 #x01 20 #h"4DD7A0B31BC12558B65CF95432F8FC74A857DB1B0B388E4A86147E5FE0708FFF") (:digest-bit-test 44 #x80 19 #h"A911B98D9D7C6E46639356CCAA0823B6C606F2809E6B2CAEFA55297EFAF78678") (:digest-bit-test 44 #x40 19 #h"5E6D6133DF09E9367F607F9469292FF688250261E8D7BED7DB369AC7BF8E5664") (:digest-bit-test 44 #x20 19 #h"FB10D55C127E43A07528FBDB9C0F0ED0A1AA6820AEDC869C8859D2AECF366220") (:digest-bit-test 44 #x10 19 #h"DC67039743BC2554E64327EB0CCC7B3FA77E7C9896E4423D54C851699E3CB121") (:digest-bit-test 44 #x08 19 #h"1F1644FCD09BB5E4BD2B818BAF01F4D4A38AD41524EC3A5729FFDD44929AD1E9") (:digest-bit-test 44 #x04 19 #h"7D42FEE879C24591600C9EA01795C34C7AFDEABD64733F1A5A0A093286370519") (:digest-bit-test 44 #x02 19 #h"943801FBC4B5C4BD79E8D39E4097AF6F258A6BB23657E0EBFFCD07BF2C434CDD") (:digest-bit-test 44 #x01 19 #h"4E05F0C58901316E1A11CED54910AA357C0F12109F23E6D1102AA1AC249EE34A") (:digest-bit-test 45 #x80 18 #h"A4D7A763848B6FEBDD5CC4D0EEC1E969DA0C140F2EB33AE88019F4A09D6DD1FB") (:digest-bit-test 45 #x40 18 #h"F6148643902CC9E2AECA25F4885256E46AD598FFBF8E0D0E8FA2DC4D5C8FE5BF") (:digest-bit-test 45 #x20 18 #h"CFEE5E3D7955BB67BD3E80F33FB41743020EB0BD8A86F8F47662F86A0A820ED2") (:digest-bit-test 45 #x10 18 #h"1F1FCDD5C3D1E625FEB61F7EBCEDE5A93DB10D1560149025830E35F0B21FCF96") (:digest-bit-test 45 #x08 18 #h"0EB66674FB59D6C623D8604215773FF78F888A9BF456A060D24E70F748B20FD9") (:digest-bit-test 45 #x04 18 #h"A8FEEC51995C47671873A600D6ECEBC756583FA2AA08FB434D0183063B9620DB") (:digest-bit-test 45 #x02 18 #h"ED45C4E0EF73A84A36C1B0CDCC31B739F98B3BA5ECF1306AB1C59FEFD6B02CF5") (:digest-bit-test 45 #x01 18 #h"C17A382B566D1665B65F6305F34AFFB956D1C076E19694301C97F561DF9F3DEA") (:digest-bit-test 46 #x80 17 #h"1D377A06F742A950E4063095ADD6635D4FF1177A448FE9697348A8A526B858AE") (:digest-bit-test 46 #x40 17 #h"71DC2BF5E3FAEA688971561A2E55B4C33CD7F63C053136BF85BBB87252622A33") (:digest-bit-test 46 #x20 17 #h"4786FF7DE50873721127AB8BFA27D806CE281F6C3C7751B2BDF4EDFD4890731D") (:digest-bit-test 46 #x10 17 #h"F28E22B8ECCBDD26D017E78ACAE4C6965793F13ADB7B27F88DD0310C1206A0F0") (:digest-bit-test 46 #x08 17 #h"BCAC98BA4FEDFC238B064FCF828EEBACE51492F58FD3E4E199B85EDE0D001491") (:digest-bit-test 46 #x04 17 #h"229192E93F7FD0D8A2521F86DC3157D2620ED8B97F0318330B884E998BEE064D") (:digest-bit-test 46 #x02 17 #h"C6ABF4C99CF38E7ACD75C212014B7EFEE61649609B7E513263EF110B9248B177") (:digest-bit-test 46 #x01 17 #h"2FFAE8AFB20273084E0539E70735D2014D1F2DB20249A713548566761308DDA0") (:digest-bit-test 47 #x80 16 #h"AB7DF8EA59C3590468346BC31A91ACF118B36C4A40186A3D7573A39B18C63B18") (:digest-bit-test 47 #x40 16 #h"3238A57E63BECA63A8A3B7C0CE1E5B44B6360D9FD4515975B7A5E4F311A9D895") (:digest-bit-test 47 #x20 16 #h"D75AD243CED8727D6477CE620589DD14916C8362E452874F6D9AF0E04071B614") (:digest-bit-test 47 #x10 16 #h"92A8041693260B1215BDD88CE79553B59CB8154859FA6A180A560056DA3F657E") (:digest-bit-test 47 #x08 16 #h"E4513878BE62ED738445AE3C4EF5D425F2CD623333553606F32F4AE634FE35E6") (:digest-bit-test 47 #x04 16 #h"D55567F34047852F30E1AC975F46947A4FB29D4FC24047CF425FC6752335DD88") (:digest-bit-test 47 #x02 16 #h"F278DBABBA0EEB584EF3F89C5607FA7FE10EC8C7A6E2CFE600D14E456ACD6096") (:digest-bit-test 47 #x01 16 #h"DE7630EFB0AEC1EFD89DDDD9E64A7A34FF13E4B800DEEB0E3C484E87BCD603DB") (:digest-bit-test 48 #x80 15 #h"22BB5096E785BAF84A5BE874F3D2D8B145391EED10F97BCF072B17D86FE9F826") (:digest-bit-test 48 #x40 15 #h"E15A3246FD61CDE5D29F964B7814AB43CFD26715C8D5BDDE9F0812522402C6B4") (:digest-bit-test 48 #x20 15 #h"118AA5245FE682EE6BF41D7F315312AF813E52FEFBBA752672688DC079298826") (:digest-bit-test 48 #x10 15 #h"FA349B2AA4A31E8B110EE18FD7B0A09816B86FD60ED1CD51FD201195D3DB2082") (:digest-bit-test 48 #x08 15 #h"E7DA8100F1ECFF9CB0C6E5D8859D341A621B246AD4AB6E73A6F772DAEE6105B9") (:digest-bit-test 48 #x04 15 #h"00CB8E080067507DE84E2155F89AAED4D65811DEA96E1B5C3CC3B220825BBA67") (:digest-bit-test 48 #x02 15 #h"C7369912A28787EAA421384E7526E59514244343797B53382EC3666AA8890D44") (:digest-bit-test 48 #x01 15 #h"A64EE51FEE0176641631EFAFDA9B15E216AF520E34864D3D56DE61484B1B2622") (:digest-bit-test 49 #x80 14 #h"92F95054F54A680DB4F9BF202D1594F3D13E8A765D8E325D1CF617F26F52E7F3") (:digest-bit-test 49 #x40 14 #h"8FFFA25B6CFB95912CEA1A1B3A279FC1BA2E6EF3CBE306931C724317CFE857C0") (:digest-bit-test 49 #x20 14 #h"9846ECD9BFFEA6595D453973869FE2DBAABF781D36A469C5D406DD0FE4234627") (:digest-bit-test 49 #x10 14 #h"4E6410AAC382596D41DB9EA85575D5BEF3627E9FE72FCD4116FCCCFCF3F960B4") (:digest-bit-test 49 #x08 14 #h"4BDF4C2B9E79E328A356E02DCACF42C8F76FEB61952B00F7610F065F01A7F902") (:digest-bit-test 49 #x04 14 #h"046A9807CF2825F157705E8344F9537633D79231DDBEE7F6026679D852F29A9F") (:digest-bit-test 49 #x02 14 #h"1620F6DA7BF96CDF28479D1A068331996A080AC81A957BB9BC129A61658E3A53") (:digest-bit-test 49 #x01 14 #h"DE7349763400FD3875C31C6B4821ED5A7C8EA4E3F9E2849B9BBE9ABD30E8DEDD") (:digest-bit-test 50 #x80 13 #h"24E2FF048DEDF95BE439D47BDAA89130F102378404DC2D2FDD02ECE754CF3B52") (:digest-bit-test 50 #x40 13 #h"47EAE793E6E32E05F8828F48DC539EB223C70630C9F8E52144DE3F951CB0A22C") (:digest-bit-test 50 #x20 13 #h"A5387811B871DB52E76CB69D5EFF524CD42BEDDC82711729D93F4594D7C5C4A0") (:digest-bit-test 50 #x10 13 #h"3C98724C667A7AC927F286F5FFE85DC351B7FD932260D6D9CA30DB690A86CD2E") (:digest-bit-test 50 #x08 13 #h"31E44F403C68BB77EA34FD30FB91083024CDD96CD468473D729370C0994EADEF") (:digest-bit-test 50 #x04 13 #h"3C9A94B82CC7275C4608D689640EFBE5EBCB1B15238B85CFF27503C0B9CD39F3") (:digest-bit-test 50 #x02 13 #h"9FAE95E5E0609E9B4C3B925A6BEDDE8C87A9881C59550E7223A85F1E95408033") (:digest-bit-test 50 #x01 13 #h"CDA993D45935655695061A1CC07D54FC65286457D08BFAF85D0CA926D7625C7E") (:digest-bit-test 51 #x80 12 #h"5130D53891A418323E485083E56D4A7B378EF832DB3642F762BC07BB34F836C0") (:digest-bit-test 51 #x40 12 #h"537F6FD91A596BE7D2EC3C702358382986EA0B05335AA53D0CCC017571A6A30F") (:digest-bit-test 51 #x20 12 #h"FA06E97F589D953982462FB433DB100B4040A95FCE8AA76F95DDED432EFF85D6") (:digest-bit-test 51 #x10 12 #h"2EC1D1A22B088C0DEEDA7195124509ADCE973FEBFA6C71A2F0B7232CFAA9AC05") (:digest-bit-test 51 #x08 12 #h"439E9948212A4445CA75DB98E16A2AEB0A172B725B827F039426996DB514EFA9") (:digest-bit-test 51 #x04 12 #h"54AF89824EBB943E84D59FBBF2A85B027201FE70FDE45894B1290A933705EB83") (:digest-bit-test 51 #x02 12 #h"2407BEF2180CFDEF90E12343A987E51DEBDF2C3CD0C32EB2808CCDC4B9E20F42") (:digest-bit-test 51 #x01 12 #h"6CA12E85BE251EEEAECBF45547E44B19132E011441B79853166D0CFA7CF7F7E0") (:digest-bit-test 52 #x80 11 #h"508CD52057F05CE892BD3A15802ED0FA5D99A4253E573B8D617A531DF991EB5F") (:digest-bit-test 52 #x40 11 #h"FD23E6436C2398DC876CD6F46B613B0C7F0D5F7CA0E6ACF30655EAF08E9060FB") (:digest-bit-test 52 #x20 11 #h"C207FEE5574A63EC63194FF22584D7E23106065832FBCD59D449C8A20F268C55") (:digest-bit-test 52 #x10 11 #h"27ECA978EB2EF8D12D6ACBD41DFAD9D4B8E1E7F853D0649D957C178D0598E15D") (:digest-bit-test 52 #x08 11 #h"328456E7CB682226F01A3B9F3D41DB7B8CF8676EB90F9864C2047EA7FB2832E7") (:digest-bit-test 52 #x04 11 #h"B1CCDAEF68845A4729D9EF7A227AF267102C99BE23F92DA1CDA8FBCF339B2DCD") (:digest-bit-test 52 #x02 11 #h"18BFEE62ACD1D325A51FF4FC3AE60AC8777B90A7ABA99B1AE2DA250E08E949CD") (:digest-bit-test 52 #x01 11 #h"88E443D409725A1CF6EFA8C464F32B1EEEB0B947C6F49B1DE41D60EBAA543BF0") (:digest-bit-test 53 #x80 10 #h"219FFE9FD558083698B35F6720D0B23B7A0B115ABC4339DEF7EECDB1F7D97A7F") (:digest-bit-test 53 #x40 10 #h"FAA5C13273BD9DAF3CF6BBAD62D86BE9B84705AF6BA677891E6049980FAA08CE") (:digest-bit-test 53 #x20 10 #h"D387434F43051B9423F308A48AB676BC5290BC5FA95E17C3010155139FD750C6") (:digest-bit-test 53 #x10 10 #h"E0B6B8F5BC740A55386609AF476150593646820D95C71B2706BF054A9B7D3C63") (:digest-bit-test 53 #x08 10 #h"0422011DEED253417DA288C5095FDE62C96948F62E07F13B5857A358252F4BAD") (:digest-bit-test 53 #x04 10 #h"232B4C03C1635E6408BA417DC91948D82409B207F26E25A0A519600EDC7E2ADB") (:digest-bit-test 53 #x02 10 #h"C65E004EB04929F47B1E2FA7103D2F1E230C7162192054386B02DD77182E57C6") (:digest-bit-test 53 #x01 10 #h"F597DFD2EFA07D8EF7588E9DD504CEF4F898EFAD18A85619C4C04163E9D1EB0D") (:digest-bit-test 54 #x80 9 #h"D7C0E8260510ECA4A1ECBFF9DC7A1AF7ECAF59808A1210C3B3E8F2584026FDA2") (:digest-bit-test 54 #x40 9 #h"70F6D9037AAEDEF997E9B66A0490F2ABC39B8BEE5A3144E6072303CA9BB187BD") (:digest-bit-test 54 #x20 9 #h"C4A05B60568B567234EA6F20E693C6209BD7C9FBB306A39F524622B8D7F395FE") (:digest-bit-test 54 #x10 9 #h"D8EF13F300E5FA1E0E22767AE7173B0153EE135EC079E04BE4809B2432FAACCE") (:digest-bit-test 54 #x08 9 #h"55E180F827E5F06C676E484F5F2F63DFB93435878A76323C4D0C34FD88358E3F") (:digest-bit-test 54 #x04 9 #h"E40DB410675118A5EBDC75A1B14CF8F0C797128C41C2166842653A4FDC29915A") (:digest-bit-test 54 #x02 9 #h"92DD5EC0B5EE9E18FC95EA4782DC915D14DCD14FC642332CEB5762745DD8A51E") (:digest-bit-test 54 #x01 9 #h"14E1C7A1DA58A7AEE509426BA26CE7C09389E2ED9823AF5B038FD1C30E8F5CDB") (:digest-bit-test 55 #x80 8 #h"342ABA7EE53C69E50361136EE1AEF59475C96B8ED7FAEB28A17248E5714C0C5A") (:digest-bit-test 55 #x40 8 #h"BBDF07F2860D530A4B76B5AC74BCCF468382530863D6948981561F7DABA4802A") (:digest-bit-test 55 #x20 8 #h"83E7562819609C2462DDEF13D4E8F74D8F42D4B1024E17B98309FF042A65681D") (:digest-bit-test 55 #x10 8 #h"B68D6416FAEBE43D60F0FAB60783EDDF0A31FE5546E007146C38E17580C998D6") (:digest-bit-test 55 #x08 8 #h"E7345EF688EDF71B70EAC26A766A8446CD580E38B755F9C1E041505C8EEE77A9") (:digest-bit-test 55 #x04 8 #h"5C5AEF56EED653B6EE2E0D6C58A8E2A231FFD07AA6DA82EFDE73B2394F299105") (:digest-bit-test 55 #x02 8 #h"731764E8F75664B3F84347FF7EB6CFDA709CE0F265FAFB81A3BA23F9437F737C") (:digest-bit-test 55 #x01 8 #h"ECDD9540F7B23A82A2CD80445660AAD39433383BF04EA8E0BDB50B4BFCABABB5") (:digest-bit-test 56 #x80 7 #h"AFF9039F2556751264116FB612088FB3E66640FAC1F0BC71E22BCC4F64626AC5") (:digest-bit-test 56 #x40 7 #h"B1858BA85A0B5DDE048EB5E258A87682BED3C112A9C6347D288F3288845DD117") (:digest-bit-test 56 #x20 7 #h"672D871CFFAD4A59EB5069951CEB3292E19A1EC9C5D566B0A5B98C92180C4E0A") (:digest-bit-test 56 #x10 7 #h"DFBFFE8649ACE8126F08EFBB7F9FCC09584EC2A2A0E75D58327F2959492F7A09") (:digest-bit-test 56 #x08 7 #h"F48907D7DA1A4E6F47237E9EFB9BD08E4DE0CE0A73A1377ACB6069E2770FE00E") (:digest-bit-test 56 #x04 7 #h"455E6801F3BE98F5277EBD80999063C5BC804401295C8241565FB328A39536D8") (:digest-bit-test 56 #x02 7 #h"BB50CD7276C60819B494898F3B63EA5EE44EAACD43B007A98991339A93727DB1") (:digest-bit-test 56 #x01 7 #h"4BEBA5E9BB868F0BDE0B9F79D3C64F482D8FD5C320DC08565768EC0480A25593") (:digest-bit-test 57 #x80 6 #h"1FB97BD48FABDDD8E31719FF7C09DDB2353A97327A719A76B223FF33FBBC1A70") (:digest-bit-test 57 #x40 6 #h"28E5FB6347D650C09F235C9DCEE735645CD41D3B3CDD81CE7E20DB1AF66C7904") (:digest-bit-test 57 #x20 6 #h"C524EE312054C3A68B870EC7BB9407BDDA56117DA591B4E4D97E1F53D525AF6F") (:digest-bit-test 57 #x10 6 #h"6805383B4845FFA3E610AD3C01D37A2FFEE55D36C134D65225F5897DB73B902E") (:digest-bit-test 57 #x08 6 #h"333F64A1FA700F2F471A991A8314FF0E8DE994CAFCDEA0A85A42B9180D15018E") (:digest-bit-test 57 #x04 6 #h"5E432F656AF89DF2E0EB02329E5470F8BCDEBFD21B629E7816CAA2CDD396CD67") (:digest-bit-test 57 #x02 6 #h"3FE7057CF28379E226F63C28DCF99F36BB219E2E94CB2246ECF193F6B12D676A") (:digest-bit-test 57 #x01 6 #h"A9094A4844DCE0EC574C6C12361375E9F2CE70FE6316D035EFDB36B3A84B8FA6") (:digest-bit-test 58 #x80 5 #h"2C8D11CBEEFA2CB2C51DF0D952A71933634F029BA08F42F503260122B6B3A942") (:digest-bit-test 58 #x40 5 #h"3E3E3873C86CF3B12459F31ABA192E825D47716EAC4063F599FC9CDDB0D5757C") (:digest-bit-test 58 #x20 5 #h"88F2145A165655CC7A41B2FF1E736DDA4A790ED77C1948642B1A6E1053F47697") (:digest-bit-test 58 #x10 5 #h"CCCC292262D66B7B90B122ECADFFA066C9101BD19AF6E361330A831F2C3C723A") (:digest-bit-test 58 #x08 5 #h"1895A190C644D7EC155568BBA539725711ADB9F9A17941CAC6BDC78C6440FA89") (:digest-bit-test 58 #x04 5 #h"293C690603FC720BBF011E5FEBFA602974585C41FCA59B009A090A348037795A") (:digest-bit-test 58 #x02 5 #h"B8A8839CDAC5B33F4A02FFD8F39F6EBA95BDC61B349F7E096980145F969D5DFD") (:digest-bit-test 58 #x01 5 #h"FCF0D9A814A86D06F64BBDA9913851C94FF6C20270256D9EEAA2C0EEF99C3BFC") (:digest-bit-test 59 #x80 4 #h"1ECC6DDEDFC81718E0646A86E2191E614A2CC7A54E90C38B893C61DE03016C92") (:digest-bit-test 59 #x40 4 #h"C9D9359E24690864B889B99B42B81DD598F4B849DBE8FF4E63FC3BF15C9F66FE") (:digest-bit-test 59 #x20 4 #h"9184476FEB6AE7D6B199D5C8EA8CE9C8B912CB4F24E15BF881F599335C9D306E") (:digest-bit-test 59 #x10 4 #h"E5AD5363B0FC4C49A93D8B3CFC90DE19D501645108A99BC90C6EA577C5E3BA3F") (:digest-bit-test 59 #x08 4 #h"6B605BF3FBB081A3AA39019EA4A8F72558E3E747B68080AC7ABB70DEB48EAD49") (:digest-bit-test 59 #x04 4 #h"1C107AE5077037B98E56F87E51461DFA8DB7808BC32FA870F85146616DD98E2F") (:digest-bit-test 59 #x02 4 #h"3FDD8713A8C9501E3CFDEB84F9F78F2E2030A7D0A34E98F22BC6F6A1E53934DB") (:digest-bit-test 59 #x01 4 #h"A054CAF60CDB866EB03A3AA45FADFE096E2E0A0C6FAC782258FF9EFE9DFBF359") (:digest-bit-test 60 #x80 3 #h"58D962AFA1A71EBEA20D8B5521569B9D3DDE771D269AF172AC2CC08D2FC3D9F5") (:digest-bit-test 60 #x40 3 #h"82C146EDD011B9E9C5B1E2EAFB88EF586249E51FF0F58DBAEAAC7C660057B352") (:digest-bit-test 60 #x20 3 #h"30C0A2843400EA5AC96803D99ED578959440E3385877A325D5603FBE9C12EAA5") (:digest-bit-test 60 #x10 3 #h"EE7B7F22E7CFFA37AB1E12C8493A95A6F287BED0430C4C1C0910C59989BC708B") (:digest-bit-test 60 #x08 3 #h"A085B98CEF63C444EB74B4560C0F9DBB5645CF1E31451A227FDF8E72D25EEF16") (:digest-bit-test 60 #x04 3 #h"41ED994FD3222CFD5648FE9068875836C10F04B34DA1B8D2053EB4EC7E5B38AE") (:digest-bit-test 60 #x02 3 #h"F366F82B0177478C240783195F72602E8B14B8F4F683508EF88B05682D8ED539") (:digest-bit-test 60 #x01 3 #h"957329CB69DD4616DA9B2483FC83AFEA169C0B95939A930E68E913B98DE4B392") (:digest-bit-test 61 #x80 2 #h"D6D3A64A06ABAEF3A42FD53EDCABF7B48C5B32C6D71BCEC9B2655583E03E2C98") (:digest-bit-test 61 #x40 2 #h"B90E5EAEBCE454B9B709B272BE8678ED28209B984092B32CE6CAF37F2496B19D") (:digest-bit-test 61 #x20 2 #h"B75CF8AC5F8ACBC504DCA1308B12424E149CABF654765B2C0FF1658D2F8F0810") (:digest-bit-test 61 #x10 2 #h"3E9397294BAF56317BA92FEC1ECA9B30BF17FA7FB63E13A47DAEB4C1AA6977D7") (:digest-bit-test 61 #x08 2 #h"AA968B00E653CC673E3632610627D2BD84D2334E6ACB10DC45C1CDAAA110D7A8") (:digest-bit-test 61 #x04 2 #h"6E15538FDE8C96C17311F4086739E5C252B9A2ED0DC9727BEAC4D6AD2DFFD81A") (:digest-bit-test 61 #x02 2 #h"8EE86705EA4EF1129FFD437017AAE253A4A5954CD96840C03BDC52D1DB58880A") (:digest-bit-test 61 #x01 2 #h"E3D77831072D9A49EBA90285BD68C35139A51DF1F63842DD0F890EC909DEDBF2") (:digest-bit-test 62 #x80 1 #h"C288D3BF4EC0D17C05697A8677D9D796F7173987D2F982C5F72D0E602A2C1C4C") (:digest-bit-test 62 #x40 1 #h"243E5739CC3C847AFD65CB07964C2AE60033905F00C7D0E9317B256C52A327AA") (:digest-bit-test 62 #x20 1 #h"154F8FFA5A8E603549964501A51C9697B8B87BF7F38053893CC1C1F3C4817069") (:digest-bit-test 62 #x10 1 #h"CF9983A26C657C3899A6BEA4E2D4D3786AFCC99E303D40124ACE80478003B9EA") (:digest-bit-test 62 #x08 1 #h"876ABF7FF3A779AA651BE6BB6EB634E4F1A008AD167B1C6EBE416232BE5292CF") (:digest-bit-test 62 #x04 1 #h"4AEAADDD52558BB08EF7DD6C2EFDCF6FE7E2A1AD932508CC7C739E3D87F3AF3E") (:digest-bit-test 62 #x02 1 #h"C448E03A131A247C6907735D0090F118FE56D43E645B9C24ABD2592B5D758DDA") (:digest-bit-test 62 #x01 1 #h"D3817E5A0D06258B73CF6D4952C64485B004B6B0F9ADCF1A6D63E6D8AD968DBA") (:digest-bit-test 63 #x80 0 #h"ABD41900B8BB0389958B0F05B3A97D21D626EF93015E02B66272EF55BAA4FD1B") (:digest-bit-test 63 #x40 0 #h"A86652085375A2978F419118AA9DD3CC3174F469921E5C2A2E2F236F16F99560") (:digest-bit-test 63 #x20 0 #h"4D38C43A7F2AFD6F005B5E73AC44C12F96E4279BFC627DF441B3CD0FB81E041D") (:digest-bit-test 63 #x10 0 #h"9B10B02AAA22E1640B1D8938C669F8EA9CA4B55D1F0A7C484E1AFE46FA0BCBFE") (:digest-bit-test 63 #x08 0 #h"37F4EBBB6F63191FC34003C2EE3CD27476FD40BDC50C642A55F47A578BAA2B12") (:digest-bit-test 63 #x04 0 #h"517B7AF2368FE450DB775DB95CC0745D9FFA7CB26CE7D5922BA01EC50A2C7000") (:digest-bit-test 63 #x02 0 #h"BDC9BD36AC7F258351C81A3155A19EA5837B6EF164074F0189D876A5EC17F920") (:digest-bit-test 63 #x01 0 #h"90F4B39548DF55AD6187A1D20D731ECEE78C545B94AFD16F42EF7592D99CD365") ironclad_0.33.0/testing/test-vectors/sha384.testvec0000644000175000017500000020516111305364032017164 0ustar00;;; standard tests (:digest-test #a"" #h"38B060A751AC96384CD9327EB1B1E36A21FDB71114BE07434C0CC7BF63F6E1DA274EDEBFE76F65FBD51AD2F14898B95B") (:digest-test #a"a" #h"54A59B9F22B0B80880D8427E548B7C23ABD873486E1F035DCE9CD697E85175033CAA88E6D57BC35EFAE0B5AFD3145F31") (:digest-test #a"abc" #h"CB00753F45A35E8BB5A03D699AC65007272C32AB0EDED1631A8B605A43FF5BED8086072BA1E7CC2358BAECA134C825A7") (:digest-test #a"message digest" #h"473ED35167EC1F5D8E550368A3DB39BE54639F828868E9454C239FC8B52E3C61DBD0D8B4DE1390C256DCBB5D5FD99CD5") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"FEB67349DF3DB6F5924815D6C3DC133F091809213731FE5C7B5F4999E463479FF2877F5F2936FA63BB43784B12F3EBB4") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"3391FDDDFC8DC7393707A65B1B4709397CF8B1D162AF05ABFE8F450DE5F36BC6B0455A8520BC4E6F5FE95B1FE3C8452B") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"1761336E3F7CBFE51DEB137F026F89E01A448E3B1FAFA64039C1464EE8732F11A5341A6F41E0C202294736ED64DB1A84") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"B12932B0627D1C060942F5447764155655BD4DA0C9AFA6DD9B9EF53129AF1B8FB0195996D2DE9CA0DF9D821FFEE67026") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"0D6789B7F0BDCD9C88F022D6AF5B863F20E2E3C895210FDBB8DD613913F5ABA7ABA6D4A52B3B6B3ED6B61B711DD58EB8") (:digest-bit-test 0 #x40 63 #h"AC3B878B3D021A321E49663FDD146E7B51FDB92CDA54AD4FC98077B078BE8669CA5A22AE13590E951BAFE64C9055A616") (:digest-bit-test 0 #x20 63 #h"04B38810E761F7E2D872F47E94EDF22DA3B4B8DD9877144FE02D4D56386CD8861DEAEFBBE635835093240E7D4C41F776") (:digest-bit-test 0 #x10 63 #h"421A1933D4BF99B124C2016AF52F63C062283D02B4FB85D6D012BBE074AAA4F5FD0EB7D773E6AB237431A4942251730A") (:digest-bit-test 0 #x08 63 #h"966E1E0E68C21BB326269DD49E864969E003F7EA902F2D14B5820C8062E6426C5DCA70A09F5A21FA444FA1AE06206BDA") (:digest-bit-test 0 #x04 63 #h"81EF05BD7244ECC65C5BEF005931670CD77A3742466F21261A278C1EEA9B24724EE009084F751FE362086793FF3319AA") (:digest-bit-test 0 #x02 63 #h"8F47A61C62E23E5E70E00B62D17A510A702AFB402A5BE3C73B23F3A250F39312F35DAFDD92D104F339AECAB9FB807DCC") (:digest-bit-test 0 #x01 63 #h"FDAE5A152415F7D836BD8E5941B61E8B78E062E336E0A629AB416891EDA9C32153C386A14930C5B0EDD55B1290CC781A") (:digest-bit-test 1 #x80 62 #h"9B553DC40BE9E5728347E7BF078498052F6516E96AE25B496ADA2B0BAEF5829AC301C566CDFD193053F74F7A855ECD42") (:digest-bit-test 1 #x40 62 #h"E596A9D7381025092E907787CAA146C289DACC16D496EF9C86D8A754C4B43614A194E9059DD10A3B2C08865DB3BD56AA") (:digest-bit-test 1 #x20 62 #h"F47BEA73D9C332E30F0CBA95296D32ADD27B98402B73512EF8C95A0194DF4007257FB76248FEB3AD3A303A6398A09BFC") (:digest-bit-test 1 #x10 62 #h"931AB6E9C06EE26C32E09BE8C71A5630D54A47FEBDE18A7E40F79B844B164AE2E5F75154E1A6927056C22D3AEA9C813C") (:digest-bit-test 1 #x08 62 #h"FAEC0EA20617F2B5E2182B541131B39335EE482DEF1BB267D702DABFD1A73EBFF355A98E4F7200BB0FF8A1779A23EC64") (:digest-bit-test 1 #x04 62 #h"BA098168973BB02910876D16A93F56899C32AF0975FDDD7138851F28DBC73AA8E63C612704C7BF223DBAB478B855D251") (:digest-bit-test 1 #x02 62 #h"2CBA03C7A570559F0BDC9A2CBE54E2FE5081CD54EEB4CEF09517F9E20EE1D82299A67759627631283C05EEAA166B2228") (:digest-bit-test 1 #x01 62 #h"81C6BCEF2A4753FFB4ADAE459235A65118B38D523FFAA21A7EEDC07CB5A402080E29F0269C262C46AE1CFAC015C0C6C9") (:digest-bit-test 2 #x80 61 #h"7D3B507D162213366B2406174E7E9224EEE3D8D780E19C2AE1C17961377C1C89CA193EEFA3BBCE395BB10BA1E4481F91") (:digest-bit-test 2 #x40 61 #h"75A3B6B5009A6261355115448DAAE1A8D762B6F84C955FEF9784D5B7F29C9CE85FE060A1F91735AFA3C06ADD5758AB70") (:digest-bit-test 2 #x20 61 #h"28A8188AFCD4C8DB7B5A59BA64FFAF76E2AF87A859485DCB1130E957EDA07DD2B90E8DBCC04C47B8DD628D9AA3B1AC36") (:digest-bit-test 2 #x10 61 #h"848F4E21D91046829564C7721818938D13167FD62CD0E16D6E2B67A34754CF246BD76F9F065C5C3F425C5D4D1B9A2B8F") (:digest-bit-test 2 #x08 61 #h"755762D00DC98313BDE28D7632BB6117BAE73B4C1AABA9B2C92C874E7AD555EB17F0C282A5261A957E90C44546D9D89E") (:digest-bit-test 2 #x04 61 #h"4EC45CADD660E353271AD1B0ACFB47E58A52D90F415472C6F46F53A02FA29D2870334A5A1D58182075191E64944607A5") (:digest-bit-test 2 #x02 61 #h"1D8F069796623A1D767F490EDCF13AFBED983AD62919F1017CB7814606CFD02A7C36C6A5DF784A1AEB089584B87E1799") (:digest-bit-test 2 #x01 61 #h"9C94A9708CD824BD6FD11D9B17033911EF092934DB9700251E5B63C657068E096E975F40AACAE9422E9EB37C6A5B311B") (:digest-bit-test 3 #x80 60 #h"277559C7583D129BBB3F9563EE167FE7E1FE0C7C0F475332D235F7CDF493CF9DB453572E3567D27D715C3F5B360B756F") (:digest-bit-test 3 #x40 60 #h"E1C69FE8C65AFD6536003F089CBDB7E736C2533CF7E2BF809622296A1C0BC04E198282A14115E5AC326E3D12E5F071F8") (:digest-bit-test 3 #x20 60 #h"5038F268072FD858E9B20A370AF9EB56CF2E2E19878915CC44D3CA590658564AABD339932D2B42F399F1E5E73FA2C7CA") (:digest-bit-test 3 #x10 60 #h"DF977751F8743AD15EB208F28A5814E34476C1DAAFE3E077469E2DCEADC074F781A58DC8AB4725619E45AB58B07E8AC7") (:digest-bit-test 3 #x08 60 #h"940F4BB4B5A76AFC430D16AF8EF4D901F82ACF4215EC1370EE9072BFD61C53F144ECBE569F30F19663F9C7145ED34311") (:digest-bit-test 3 #x04 60 #h"079A3D16C22946B188ED874181825CA65B6D66430EC781620C9BDD8D98741873699B222AE804B32812CCE37B54720DD3") (:digest-bit-test 3 #x02 60 #h"C13874ACFAC8F296434E8473D1574269F1321B3DCA1AE14738C05B608B08B8E284B853E5B937BCAF0A07F5B4F4B64C19") (:digest-bit-test 3 #x01 60 #h"F6DEA48669AD5848BD25674CFE31D8477C82FBD015445B27126A2DE41BD832750778C113B597AFBB570816DDEFD3A658") (:digest-bit-test 4 #x80 59 #h"C2E503144B97D55901F8FA39451FCC39A69AE0A239E31D91DE9F6E3C663FDF953B65B7A1ADB770B0B9BD1423A0BDE138") (:digest-bit-test 4 #x40 59 #h"FC80751CA610189520F98DDA0E8080292E59EC3A67EB4DF7F9359A7B402D642653B810FC7C9727F7BAD06591A3BE4E45") (:digest-bit-test 4 #x20 59 #h"6CDE81FA29EA6E0998B5DDF8A1E015D72453A85B045AC10C267E1848A68620E84E8C4719D421B887CB1C9605AF637C91") (:digest-bit-test 4 #x10 59 #h"46DF52F2183DA06E131F489F1655DC0A21D40FD7BCD7AC1E6A358F9D857AC66D219AFFC261B3DC9F844ACB88EB8CA5ED") (:digest-bit-test 4 #x08 59 #h"574EB8BEA0E6186518074DB1AA78EB140685FF5D769C2D2111B6865E182EA3EFCD9F672EB79DBDF54DC0FD3C6069165A") (:digest-bit-test 4 #x04 59 #h"94325C32609E1F8EA63D9AD128607809E8129D067013803990CFDBAF410D16047D59E6CEB040710B79765B853555A42B") (:digest-bit-test 4 #x02 59 #h"7DF459B62B0EE0A00AEFB36C0B8F12526AC6F52F4E594769DFE1856447AECBCB1589137F6865DB4CA15BAB365A8C9E09") (:digest-bit-test 4 #x01 59 #h"D0A2200F3957B2BAF2D95DD707E72EDBBD072E4813C47EBF3670939B50EC313021730893966255CCB9771D517F1A1882") (:digest-bit-test 5 #x80 58 #h"D18E103D5024A2944CE24B60495CF697E8EDD6C00DC9353BA9E10B37FD2C15A1B131815545BF4F9CF63371DC549F1D0C") (:digest-bit-test 5 #x40 58 #h"E8ACF0A45AA4978883529D0D210D65193002078AD0FE0F72F29B355DE884F994860CCF8850F66D45C64C38A9374F2C7F") (:digest-bit-test 5 #x20 58 #h"9556F35790A9FC33ACD4AF43EF15036AB5A79D4CFC4FAED8BD4DBD8E122FDD96CF08814EE63879C4A18D146782FA9C3E") (:digest-bit-test 5 #x10 58 #h"D82D2895A2990B340A867E426A1F3A6FF94B2749FACD026CC2E1D108FF391C493DEC1D8DAAA8A2009BF24AB138990584") (:digest-bit-test 5 #x08 58 #h"6201C4943101F4F909D01D316CDE19FC54541BB045F3AE3886208DEC2CFE5E1C2A583EE8533CF781161F656388AE7391") (:digest-bit-test 5 #x04 58 #h"7799C8850857F762EE46D5EAE3FBB7228C838B25A5DF40ECB21E9E78F866E5009176DCFCEB921A86F4CD0DAA77EDA3B4") (:digest-bit-test 5 #x02 58 #h"DFBD42FA460B4F199040B330A16C47FD45FB527612A4A6E4E329D4236E8A4DA1B3BB8B270C6ADD7C364CD2E1CC787E05") (:digest-bit-test 5 #x01 58 #h"09087BC1F3237932F7AC5B12D4CBAD45BC177C76999A7D95F503D57BAD06D0C3FACF95EFDF32534EF40E854FF45B1E85") (:digest-bit-test 6 #x80 57 #h"1DD2629064E317DA117BFB62F36B0D68D78E61BD733DE70573A790220BAD21092535811617952B80ED3452539DECE2E1") (:digest-bit-test 6 #x40 57 #h"2592CAEE04F41E1ABE7F3426774007D32B863F07780A9D89B96BBC1A19E7E252EF60CA0173E4B4F092F5C2731EFC8B01") (:digest-bit-test 6 #x20 57 #h"6E5BBB2F1FF3F39A8A7711CD19CF471BB4B648DD865EFA06D36BB0B271169AE13B640FD4E314E4A48BA05CB45B876BA6") (:digest-bit-test 6 #x10 57 #h"95A7CB904EDF4D7D4C0815ADFE3636EE26056668B7A8632540DB7E5A6E62D0E8022183AC599AB8051AA915FC848B8A46") (:digest-bit-test 6 #x08 57 #h"8D7F3E71443532E288E511A68542490F5EAA36B19225DCCF723A9DF4D429F272BC5752CED674DC2E2A86CC96823FB6A9") (:digest-bit-test 6 #x04 57 #h"43CC96EA615AE5C54DA81691AD910E48CB83437EC9386B24CC0C2B56B7F10C522D9C4D5E6DDED2BB8D05D05581AEE857") (:digest-bit-test 6 #x02 57 #h"95E29644C51E79FD0A0EC2D8132E1B4581EC2D282FFF33C235F0F8413C2692978FD9ACED7E2909E1136F9F2B4DBD60C0") (:digest-bit-test 6 #x01 57 #h"C1871662572A550306ACB43191B6DAE38D96B7848978F0AEBC036DBE6DE087EEC5B55628BC550395905B9BAA6775EA4A") (:digest-bit-test 7 #x80 56 #h"033190F6E578016DDDB7CFA4B27D06A396C8093D01169A803323488E0E3CC642D15DD54D5211187E571DE142DB2BBD0A") (:digest-bit-test 7 #x40 56 #h"C3EFD204375A68436E427088B54E4816BC8E60711B32FDDD77FFD316065FDFEC637AC64F8E1DB4426D2085DB5CCB3198") (:digest-bit-test 7 #x20 56 #h"5EC6268E7CB91C698ACBD409379A8F40CB62937F84B71597F406B953637213F604E1FD0502FB6D1101F84D863191C045") (:digest-bit-test 7 #x10 56 #h"8449A22AE3E9E64C13122E52E6FB2C28F024E1FF5439CEE2024E8817998AA15B856A8DC38D86CF0D991DE1F6A095F53B") (:digest-bit-test 7 #x08 56 #h"FC2A1F543130F0DC8C34984B23BB62EBB9EA12C63290A5027F9AE2BA5984BCE55A235042B4913013DDA0AF31AAE7EE11") (:digest-bit-test 7 #x04 56 #h"B144BA7CCC8BCF27B066DA4C76EE43CB3A2120DEAD859D3312A8BA683018F11A9A7FED8B6B84DC61E6699614A811FC12") (:digest-bit-test 7 #x02 56 #h"0BAE1C5548ED19C7A31469B679FB4BA837001099781D427A383BADB4E4344A7D99FB9949CD43267418C4CED8183D0482") (:digest-bit-test 7 #x01 56 #h"FCCCF7EE39CF81C7E1E6B541F3EAE6E4799B85A9E83FCABF7EB7732C504ADD8BC4093B99F311EADC09495C6FE5687C88") (:digest-bit-test 8 #x80 55 #h"C3BCAB52F61F71E869619D7DEEC2B3AD8FD338D6EA47CAE4BB2A26710204A513381FDCC49046233B32AD2D01344E9F10") (:digest-bit-test 8 #x40 55 #h"ED90AF25974DE395AF7BF9CF29F6485BA969E492507C93AED17714B117210560B64CB7D045594068937BE773B35E516A") (:digest-bit-test 8 #x20 55 #h"15599F248389702F93B5E489B86C83C9B803BE31F4A845E7BE19AEE64D3AFFB0FAFD4273B87095ECD41B586F9DEB7607") (:digest-bit-test 8 #x10 55 #h"66C9E7069CDB0830E0A9CAFD5522D04AA923BF471E4265F2F40E53B6E8DE6B927593CB5246AF391E6203FFF4221C42CA") (:digest-bit-test 8 #x08 55 #h"C5DFC2C2BD3DE0796650640A7342B59A7B6E867797C2C6D51B8A8555032C02E772F33F6190341552CE2091AC8A804207") (:digest-bit-test 8 #x04 55 #h"B310277CC70BDEFA5DFA0E3A984B6F0F8C87E48C69B9F163016E9B9EEC90897B772EB1B5179026A1BD5AA93B2885E993") (:digest-bit-test 8 #x02 55 #h"0BA1D1817EFC2FF00FD4B2ACFFD68F55F9168FDB4A621E1C6FEE40C7107C18A7AEB86681E8B03244A3EF8D53C76E0582") (:digest-bit-test 8 #x01 55 #h"A3E2ECC79FE55E486911D5E0FC7A331C5826432388F032DA58A75AB0895E30C2A20C462D6A63BAD57570F0F79E658FB4") (:digest-bit-test 9 #x80 54 #h"ABE54BEEF3161F82AE3E604C4C92D2FD83460B198669AF3665FDF9D10F2DF2A8C4B2A80C4294392BB8265C7198D299F7") (:digest-bit-test 9 #x40 54 #h"1029CEFFE783E5D1BAAE7682BD5E6789BAFD80C4DD1F1E0554F899B191728677ACF88AC5F0DA7EA966BEA5F2D8D1EF7C") (:digest-bit-test 9 #x20 54 #h"7D8F7CF01D9335976700BB34D545DE80F09382DF30BABE84038740F16B566D535BD91FCED19AC09D7F3BF9EFFA0B4577") (:digest-bit-test 9 #x10 54 #h"0DECDBD9FCAC9DD56B8648D1E506041E25F0A84A22B2064DA3E3B63DFEEB19D34E0CD11B116F3141CB2784D681E0A12C") (:digest-bit-test 9 #x08 54 #h"2903A8B886387F1840ED880219E4273D2B39942ADD3930F320A3C26263C7482783D6B904D36A412482CE0CFEE517594B") (:digest-bit-test 9 #x04 54 #h"956F51ED9113163CE2CDB4A7A0AD42E200FB92E8C10B06D6F6B91FF074F0BB479F097C6BFA991EA074DC663AD6225B4B") (:digest-bit-test 9 #x02 54 #h"FD4AF6C6C6C88884DD8708BB4E32120EBAB66C179FDAEDC9506C9AF7E10A513F859190514A2BB8D497F21318C033440E") (:digest-bit-test 9 #x01 54 #h"277A846C6AB060B0544CE7BD20506CBF7932EE03B601B100BDC5AEB04F3CDB82C00A73360F85F92DBCAD01EC205C603B") (:digest-bit-test 10 #x80 53 #h"A7E4D9A48EDBD6DFC1ACDE2F7F7FFF0B073C7619689DA8A5CB7E19D529EC9C79B29E92AE7426693D14FC509724CB68EE") (:digest-bit-test 10 #x40 53 #h"86CD9B0BF788539EA79DF25993805A0A51A390DCD702576FA10452C9EE1F15C7D3800D6F06483602CED6340CD13CFE60") (:digest-bit-test 10 #x20 53 #h"BE0D1DACD77872A3FB6C15C2DC6F8707CCD60E91901851C308E2D8F3D8AF34DF25B630779B1F5CE18285F6E13F983A43") (:digest-bit-test 10 #x10 53 #h"D49A6EE8CB2FC5957CF67F6945EF5D902232800EB0BA39DBCAD57BD91E560C974C5F34447CCCE184C6CE17C931505145") (:digest-bit-test 10 #x08 53 #h"18CFE78E215AD8B31B46BE2B6FC68FA68781A8674895B220EB285EE28A494939EB0EEC1C1A305E0A37404E02C5C15392") (:digest-bit-test 10 #x04 53 #h"17F2CFA6CF8E5A01A8566EB15D6C0B186039DD03502803A995DC9B7C0099DF8D4D18E7427BF6543D9E709FE58EA13086") (:digest-bit-test 10 #x02 53 #h"3B747B8C37DFCCC0395B08CB591E8CB6572CAFD5013F1790282670C0B7D1417DB6D84206F4546A7C4D459286B3BC140D") (:digest-bit-test 10 #x01 53 #h"39CB92B34817F7707197B1FD5ED5814CA202EC92148088D4F81D530FBA4698F7A9FBC7D07C773187285B2C57AAD4517B") (:digest-bit-test 11 #x80 52 #h"BFA439B3ACDD0DF5421545126C661804984AE71DF2490622C18B155677812C3CD6E37CD88B3DD2B78161532AD9AF167B") (:digest-bit-test 11 #x40 52 #h"EA4EAF123A32E527A89A9FE68C360A2B92836E6CCB48A0DEAF242D2C88D3048732D047F7CBF2F7E1BBEECEE408E3E654") (:digest-bit-test 11 #x20 52 #h"95888D7D6D8976E37E2F786193F9F6DD8DCE0970A7DD8816EFF6CEB7BFD2B8759F2AD72CE6B4ABAC154F2CD18426CE45") (:digest-bit-test 11 #x10 52 #h"DD2610451BC9DB5C36854FB157FE7CA0A1EC2C00AE6785BA687AB466C35B2DE163BD68C1A1C3CE0B10CC5AC4B0DC81A4") (:digest-bit-test 11 #x08 52 #h"144A569ECE4294E193C86B801BCADB2DC04811351793D625C8BBCD5529B18B62B9C2147128FF73D0E0D357CA599DD50D") (:digest-bit-test 11 #x04 52 #h"B3C80BA81943F79C5BB7AFBA27EDAD957E11281C6A42FD330AC886FDDB74541D1DBC99C80AEE4920217E91E3BB81BB5C") (:digest-bit-test 11 #x02 52 #h"FA5C6CF5FA35D9088A54216CBE1E8999A3AB491C8540B9E32B7F6D1871B889F5011B8CD75839099293F35104EF644887") (:digest-bit-test 11 #x01 52 #h"42190AD68B3A0CF35FB0A9F5D9D7D925012CB0A33A9244FA5520F6DE745FA286360CB2522EA68397A98D869ACC6E8AAE") (:digest-bit-test 12 #x80 51 #h"35618BF24A8D3C2F476C9F75C60EFD18096D4EBDCA036A46C7160BE23D6C2448A7FB46B518F411B7D5344D5BFADDB21B") (:digest-bit-test 12 #x40 51 #h"8EDB921BC2EEE2BE757A3DC9434D7FA9F5BD745F2601048B400677C1E4002B203017EABE818982C5DBED75595F421146") (:digest-bit-test 12 #x20 51 #h"32DA9071F8C6C43441D1257545047501FC226B6386FB7ADEC0B7600ED304B9C7BB3AB836B563CB7988651D1E81D3ACAA") (:digest-bit-test 12 #x10 51 #h"168A98E09A07D6D259BDB8203B9BE5D69DDC6EEBCDB9D29A5AA629F614EBD00480D1BF6A930E0FFA328895E220DB27EF") (:digest-bit-test 12 #x08 51 #h"4938998ADB73D079397BF6470E37684F36E8744B250DB2495D88CD3855D1537EBAFBAFFB948BE495A4A1F26250070E97") (:digest-bit-test 12 #x04 51 #h"B66950532FDD2B495858D8BA389B409DDBCF72203167DE3738414605D6B1780664D50054D86EF40EC989F99E154363F3") (:digest-bit-test 12 #x02 51 #h"9B3E930016E3F79848EB4DA08CC94D287EC02C79CFD0C8A8A348AB1BDD244B808929B3A268233A75F7328DD741922491") (:digest-bit-test 12 #x01 51 #h"B33F56C9AF7E595993EBFF1CFB343120F6DAD1D6FDFBAFA697B4C78F7DAB8DDCAAD8CAE306AB5560219047695C7590BE") (:digest-bit-test 13 #x80 50 #h"D3E7E9297D8CC8FFE38710E8AFD0D152568230526658F3A1C94CCAD22B57F9B26504581729E87EA9D6E7FE39D7456D21") (:digest-bit-test 13 #x40 50 #h"BE4C0BB1A3C1D35DCEFA346540192C2FCA00692A5CC9024507FE216621253DE493B61D90D5336A2D9F00B560B03A77F8") (:digest-bit-test 13 #x20 50 #h"874965B3B4F744135DA88331788C478E9B591F6B3C43411C1A32B6951782EB932C4FE6715B99CF03E49EA4018941ED0A") (:digest-bit-test 13 #x10 50 #h"C7911FC620037D6E2727AD0EE2DA0C9811E940CD058565D17C327E6446ECC50AE9CC676FFA6CF320FD91C8235635595A") (:digest-bit-test 13 #x08 50 #h"E638150C7A9D93BCF1C6F1EF9E4D72B036413A31D9ACB64AB9F0247198B24767E4301CC3D1D68C91570D1D87C719D332") (:digest-bit-test 13 #x04 50 #h"72D3F9F439F7EE20E291E0429DEABA20CF6F888337B89A921D27DCC0A5114F2F1FC105D58310003C83A17F13FB64CAB2") (:digest-bit-test 13 #x02 50 #h"D54D465923769F68C134CBB9B28DAEF24B778008C38AD99BAD7DD6A75B6F2DD5124E35F3B29B547253631045230B7DCA") (:digest-bit-test 13 #x01 50 #h"367D40DD74A3AEEC62A54743DE894F8ECE52266BB6E85E61B098DD3FBCC084DE3A1C9CFAD5FB8FC1293BBA570BC2399F") (:digest-bit-test 14 #x80 49 #h"58417C295091835EC1E94AA45E6D8D8074485BD3D675CB493C6B2B636ACD952C9B54DE02DDE05A52D4E8DC2A74AAFEEA") (:digest-bit-test 14 #x40 49 #h"EBE3EC8642A0F2A727E4D00D6CFA006B00120102AD6F0E6996DBE3BD2FA4FB12FA826D5A298F5BA5FD45C9D6D68C69D6") (:digest-bit-test 14 #x20 49 #h"D069DA67FC6F9346EA88B693559D7AE956AB58D82F8A4E1F3ED122179D111BE24B01BE6D202A4410284515410415E672") (:digest-bit-test 14 #x10 49 #h"1B3469C41A01FBFEBF4CC0B3B9D0A197627A0B4DFE203C37D9B188ABADEBE183C024CBC849AA11074B37F596F44C21EC") (:digest-bit-test 14 #x08 49 #h"BB241A1F71D1BE6D5F928C3DF2C5E79FAA4E2492EE2415254FBDEB33973BFABAF5FDAD5B5B37110DA7A09BC62B69DFFA") (:digest-bit-test 14 #x04 49 #h"D85EA8F0CDAF388F9810BE1438A923D4DBF82ED283312A637D69BBFB3F629CF3D7D145C1F0C60F97CD2B8BD96A56F690") (:digest-bit-test 14 #x02 49 #h"20E6BBCD1B0A7DA50A5EDFF45C9DECED4AEA3E41AF2A9D3DC9935336D13517C8A4737E9E04376FE706007201BF640232") (:digest-bit-test 14 #x01 49 #h"7624A9FF61D2E84439682748C61EB47F235454588A4AFC082AA61565CEF6716B3522FD02127B0DE5CC71FD214F9B6E4E") (:digest-bit-test 15 #x80 48 #h"554C0812E728F8FB9F8FC58FB1A83B7062078883CC31489F86FBB1B76EC22F205332C19394B8D2D107F79240599C446C") (:digest-bit-test 15 #x40 48 #h"7E762C19778DD520D03FFBAAD8BF2233261FA5488A8E82A27C92C3902FB89A3160CD607BD2D05D7B90C747191808D9D2") (:digest-bit-test 15 #x20 48 #h"6903529146970925720181B577BF8E1E791D25ED0F3A934A9875B91E11FB5C6BA6D45A7E7F3EF33B76167D7BB5EF4873") (:digest-bit-test 15 #x10 48 #h"FFFB748F9DE35AE7A9BDF2F50C0DAC250057DBB6488DCA5F00AF0AD7D201F68E68FA29CBF1BA1783B8E37F1EAC9B01D5") (:digest-bit-test 15 #x08 48 #h"F9B60F131FDF0B0E6A543297F6CB8B4FE8E43550B1656300A22B630CF8959BE67E1DA4AC92E8725550CB5ABE9591BE53") (:digest-bit-test 15 #x04 48 #h"A795DB8BE3EE0BAD7A1C7B3A0B7A0C66C0FEB98FD3B3281ABE48B5D8B7C2A7B8D401BF622859207BAF690D251CCA837B") (:digest-bit-test 15 #x02 48 #h"7E64EC69701A668BE470C0936D77B3C8B7D2E48F7770F14C3204F0CCF0435A4569355FB789A700461B0D1D4FFEC407B2") (:digest-bit-test 15 #x01 48 #h"CF14F18908E4D10B1460275737B867ACD1E7178E3B5B26915CAC33D2DC22DB5D62E6408CCD4B206C83931AE3C1E37405") (:digest-bit-test 16 #x80 47 #h"FD1A4EC883F4124F7BB5B0A4F648CFE4E4E0F95B1306E047D31E5211F2E1736B44BD97A2C33FD2C972E69FB8DB594FF5") (:digest-bit-test 16 #x40 47 #h"87944637B04A0E21BB104D3EC0B62ED6C7F5B795BE54CDCAD8F596C16DBA8F94046312D0006362D609774C38D4C8BB0B") (:digest-bit-test 16 #x20 47 #h"F0DC195E48B6BF22DE071EC4EA5CBD5D7B9D04C61CC9E617DA45A568C87A64A92501534D8AA58235CB9CAE30C3C7FE25") (:digest-bit-test 16 #x10 47 #h"018330070BAD17AD9C1F3330893A9F2F32D329BE5FDF14CF7E1FE49BF8A236ECF1968611BFA398101908B1AE0898868A") (:digest-bit-test 16 #x08 47 #h"4DDC9D6F21DB5661DAFAABFA41974281A5564B5863D6824359C7A5A22CF9378D64EBA07CBA34351A2AE2584010DA2878") (:digest-bit-test 16 #x04 47 #h"BF7F6DD1982F380EA9E9E6A041E38AFB76C6453F11C576883A57272C3A8FFA5180A94A05C2678B2644622E33A361383C") (:digest-bit-test 16 #x02 47 #h"B789C84D3FCA2E3B1D0F729477BAFDB08E505C5F793812AAEFDF0360347B723C14B17DABAC598105B4DBE2B798D8399B") (:digest-bit-test 16 #x01 47 #h"8908FAD1D0CE850D7D41EF9FF5B92B105CC8FA615ACE428F0CB04A39B43F5057657E7FCD9913772E7CD674F01FCA78B0") (:digest-bit-test 17 #x80 46 #h"CDC5F6D7AAE9A06F86CF9E9887CB2AB88A5234AF884F0F6F917F1CAD60AD839CEA615C5DF6361A4845941955EBA77EF5") (:digest-bit-test 17 #x40 46 #h"D33E2BCA1F370D36C88FC6E0E4B8A93B3CF79280425FDD1BD6683A066C7C7C2B28FE74F681440C8C4243D117ECD764C8") (:digest-bit-test 17 #x20 46 #h"3A97F2680558330DF966810750116070632769E31089DCF45A27E316CCE61D24A451EB86C5A3B5B4B24697A982E894A2") (:digest-bit-test 17 #x10 46 #h"69A7619A91AF892471D1813E7708D3D7E8BA6975445D3BF8574A56DEB5006181C540D474CFA155D0D4C4E7A056319C99") (:digest-bit-test 17 #x08 46 #h"2D91235731E3C366A00252C8500145AC7A94B3A6384C9FD65B8A06A58771296A96677E9E838E3E436C8998B80AB241C5") (:digest-bit-test 17 #x04 46 #h"A4C56C6A063F7CC465EE061C430BE9609C1FB90ED45EB8A5517880E19D07149F0947BEBC3B692577B2A79C2258BDCA94") (:digest-bit-test 17 #x02 46 #h"E59922C9A00C7C15700A2184111EB2D4511D7FC110876255F468F2074A84B40F34C664BE023FB43C0CD9D2603D970F69") (:digest-bit-test 17 #x01 46 #h"230C843CB337DC125451F7456A7AA3C9060D904333359417EE820A1CA7FC6146356B4CDBBF8353B115E261C1807585A4") (:digest-bit-test 18 #x80 45 #h"3E20812E62FE9EF4505FB0056AAFB3C3C8E51CA684A929BF1073691B45425294BEEAA9C81F4B666B56DF4C9C8D37BBB4") (:digest-bit-test 18 #x40 45 #h"869C52727FA93F15E052F7E599DE312BC835559A61DF8D895E6CCDC48C849A305855B7B07B7F29BDA41ECBE0EC6522C7") (:digest-bit-test 18 #x20 45 #h"DB5F181C42CE58BA11D90E476B58AAD346D22C89BBE290B8704107F033947DFD68E195F073C39A232AF0356D79AB891C") (:digest-bit-test 18 #x10 45 #h"C4D299F480C15CD2542F445B358043DBEB66ED7DC2E7FC54AD676168CC95075D9F6B4448C3B209C2E2AC7252D5ABEA25") (:digest-bit-test 18 #x08 45 #h"0EB7355A9DE04274CEC8B3147A25D170D79A53667AAB25A08901D055600CDA2995A9E20190A186CF0DEA3CE6FB10B672") (:digest-bit-test 18 #x04 45 #h"2BA5462DF62F166790CC4539AD73BE811C6FB7AD73985A5D256ECE03EC6A53D3B4D63AC5CF08A29702DF535D8B9FEB60") (:digest-bit-test 18 #x02 45 #h"21A830E15A1AFD4C4EDB970F3F9F3B65A3B9A1D14998917CC791411F3F9A8B4765C77FDD000A6C5125113227FCFB8852") (:digest-bit-test 18 #x01 45 #h"5576C6E9A09D8116280F9C4C93CCBB81100A10E14D1A71CE05A5CE4A0E810D7862ED4809BB28720B19DDBAF4EF9AA13D") (:digest-bit-test 19 #x80 44 #h"49D42DD62993A317193C86466C5BB732BFC2AF052D98FDA113E16E7DED6842CBEA2AE6CE92A50A75A37347DAFE3FC874") (:digest-bit-test 19 #x40 44 #h"147A5F21DFFB094F3A4B61E39CD91B711085DA4246B56B8BA1A42C18AED13C83E5A2FEC7B94933BC0BB3CC3E2C5B196B") (:digest-bit-test 19 #x20 44 #h"9BF7DF9FD9D7B7F6C9EC950C29DE535EACCBBFC15AF28226281C0E7E9391FFD4BE7D72A95BA2B9264E6D3B1F4CDFCC5D") (:digest-bit-test 19 #x10 44 #h"68BB1E88530E9EE98C3938921FFB5DBFF04E554E62943B833EA9C5A67D323CC2870C45971630E8068EB19252C25EE74A") (:digest-bit-test 19 #x08 44 #h"CF51BB48536AB5E9380041D6AF7AFEE83014435E285EAE8AC7DE6C12D157F62A71F51AD34516F27573FFEAC4044A9C92") (:digest-bit-test 19 #x04 44 #h"0F254CF656386DF7D3643881F9633160C244074F6E206ADA0516F2A2D25EFF32933301AB0B36B294B0AC546594432459") (:digest-bit-test 19 #x02 44 #h"293C1F3DD88376A4EAD1DB73BC0B70F123CB1CFFD170ADB10EA8592AD7C9108C3B21388B07BDE44E111AE0682515A57C") (:digest-bit-test 19 #x01 44 #h"D09837366FD98E827E35EAE6A31A69FC6B64054D33F8DA243030C34DF4945C8E72EA6DA22EF8727270A1CC3B71792B0B") (:digest-bit-test 20 #x80 43 #h"4E7A2E0CB1C15D5700B4E34785A97AE9E3A148530337E69E0091110AC0A9A0478F42221398D3CF1ED5EFE383E735454A") (:digest-bit-test 20 #x40 43 #h"EC38ECF25F839D8850C87F39FA7B4749AD4179EAB3912909FB87957D9B74B60826B1006C3E0BDFB997F55F121762F3B6") (:digest-bit-test 20 #x20 43 #h"AD75EF283456DB25104A7500B29EB24D76FAF68A8061DB239A9495CD6CAD8477CCFB41BDFFA7990395643E741ADAE907") (:digest-bit-test 20 #x10 43 #h"CBC6EF0F51C47FD8940661A8D5DF50ACC6F2313B8A09D34FC75B349AEDE077989ABF364F4431F067D1401FD7C75C108A") (:digest-bit-test 20 #x08 43 #h"8F0B19CD2372825305FF7DBC9DD283BD306A1EF722A44D05E626FCB30976AA7AE5148C3ABFA86DFB6A6CAFE8556C9EED") (:digest-bit-test 20 #x04 43 #h"55C2152E041035492A1666166F7798CAA510943B192C408CCA912A032F2C8DE8D669EA6DC9D748CF6352C6E121984BE6") (:digest-bit-test 20 #x02 43 #h"2EDF8207FEC96937484F73EE76CB20849F8A02EA0C08B73F0A123D63E4739CB9D20FE08B19C10EF90B9B2D25CF4A290D") (:digest-bit-test 20 #x01 43 #h"8146696610DE87ABD409927897C615D23A479F1E58BED5A71B99617EAA24E5EF91D5DEC7551F50A9B3C171F23937FD8B") (:digest-bit-test 21 #x80 42 #h"7509CB3162DB506C3135B921CD8B1C82AD18579D29141F082A1B9CED6C4BB0CC8A5FCCC7A8A53B9D5F5E61F0342CE850") (:digest-bit-test 21 #x40 42 #h"7D2C0CB1E583314668195CEAEDED199E19E59BAF0BB0EB835D560F3FA8484C2CD0D41AE15303CE55D1526A937A504AE5") (:digest-bit-test 21 #x20 42 #h"851FBCA88B82AB3CB94B557D335C7CE5CCFCC5E0D1F649981674BC145F798590FAFBF87247342C2EF7012028D1341663") (:digest-bit-test 21 #x10 42 #h"03CD6429D1FD999A4EEF456C9A948B168A00E878FFC9D2F63F3C5EE233A34B7FBFE143F5E8BC46174F341FFFCF6EC89A") (:digest-bit-test 21 #x08 42 #h"969D02C4FDC6B868E003B95D93A20595F1FFB6EF648DF5BFDCD27C12734226EFB93D05C539385E6B74AE264D2D83FA1C") (:digest-bit-test 21 #x04 42 #h"28D3C86569C7C91AEB12739D08A7F9591D9CC7571B7FF47FCD694645C286A7452DA483F6586817EA81AD7AC471C95881") (:digest-bit-test 21 #x02 42 #h"CA2CAEE7113488FCEB255D9ADC32FAE28DE15F7753FD34CAD4A47A64B05E0978331AE7D154D0979836F7FDC1BCF707D3") (:digest-bit-test 21 #x01 42 #h"6399A015FCB3231587EB13076CFD8EBDFC33017BCFB4930F1565DF72F2898C0FC3A641FFFA13C70689F2ADA7F7567EA6") (:digest-bit-test 22 #x80 41 #h"E994D46E4536757B060B833C6323B8D931CD5EA9ACF1FFDC34215F7E75B928D8916A8FFCBBA5E1698CC8F7D2689C686A") (:digest-bit-test 22 #x40 41 #h"31E9AF9441AABFE1982B7B7A08487DC80C620122051B7D0CEA0697F2D222D1A56AE35928CD35F0308F93893C985A2248") (:digest-bit-test 22 #x20 41 #h"08CB2EF217D8B1B3E2BCEB7FA728527B9E2B96534B8E5472DAD96462C32BC223427C2A451E8925FD8E55830E82B12D0F") (:digest-bit-test 22 #x10 41 #h"AE2963A63AE9E5ED8BA8E1ED4A8F487844C9E0D07666B1051FBACC05046E0E4DB620896755246F98DE8E6C286773C89F") (:digest-bit-test 22 #x08 41 #h"8B4A8AC5C0322B0BBA8C05BA32E57C8F0EBE8909C49059F09DF99FAC39553B3F9A2A15779A84FBAC6258C2E8AE297369") (:digest-bit-test 22 #x04 41 #h"9C12B6BDD27590E7817A0CDAFA744260D86CEEC2E219213132BC3D84589BB663544E748A7C562FC498B991273174D39F") (:digest-bit-test 22 #x02 41 #h"22AA798F6836A1301C8D526D2C9B667B0A00BAB2FA2E83968C098717DF21E29701804177B49B83CE7FD5B19E42DB9506") (:digest-bit-test 22 #x01 41 #h"D2CDD8592FCCE340C44526795CF3A3EF16BC1559130086D8A5C55A8F1E5D86D4C91403B94C0ADF57697B44DF3540241B") (:digest-bit-test 23 #x80 40 #h"D92E6EB0AF143615C1FA68C41EC858EE45EDA399067BECB34331067B77C8EB8C3C7D55C0FBA16FE993652084B977B23C") (:digest-bit-test 23 #x40 40 #h"B6223073C3B6F21841471343FE5AD54C45FAE5BC9FE24D77D3130628F5133F6F0414AFC9D62ABEEDC1B13E3A49E280FA") (:digest-bit-test 23 #x20 40 #h"CDA27A1D79004D856DCC8FAFAE9BE81AD0B2A009B50DA8BEC6DECEC57FA5C87761C92B92280A65AC67B637BBB72C9791") (:digest-bit-test 23 #x10 40 #h"09C2EE18140C453A737AC902E977849696E6C19767BC93E272BB4514666D9281A1823B30C2254F9658257C96048B5BA3") (:digest-bit-test 23 #x08 40 #h"18DCAFFBB6D249CA8C352E763D4252A5CC8767172B8B2898CEC58352F850A88272B66E01DD76D775B12B342150D7B749") (:digest-bit-test 23 #x04 40 #h"5B54219D6D74F137DF918D5847CE7EFF3A1C3D3B87D1488CC9CDC487EB142EFEA2219679DFB14B76AA9750D1AA53B39B") (:digest-bit-test 23 #x02 40 #h"D48A3BCC3FF12940EE0367932911D014BF396F6440BB4B79996B0803E54587CE83B7130E7E12DCDAF709E6CDCB3C36DC") (:digest-bit-test 23 #x01 40 #h"1636633E1C88AEC817544E739B90E0F9F415DAB4AC53DFA06AADDC8483A28605E47EFACC44C6AFAF37F1E708C3C7EE64") (:digest-bit-test 24 #x80 39 #h"1912241718B9B4A9B422E84D8C497C9EF67E4CD2A733524AE75838783B1D63291883E558150E558AD6FAEC46C76777F5") (:digest-bit-test 24 #x40 39 #h"400F077EB2066E3F69EA9B30902879D41D1088AC4AD1FA248C592F02346D279447921D0D4A373419922E787390A586BA") (:digest-bit-test 24 #x20 39 #h"3148E1A6BECC6BF8E83242A614843DB1FDAB0EE9145A0431DFA17DA234637086A1B0FE8548241008348A471CCEC0034E") (:digest-bit-test 24 #x10 39 #h"2E0A446A3F1DB55764F5668DAAD236D7BD4AEB4020A3E7154D9E03DB48FF18B12673C517646080EF9FB510447E333EA6") (:digest-bit-test 24 #x08 39 #h"6C92316BBA85B053C677F58922EB7A55AD81F59B177513112748408F91D4444D3DEB5DD14D8CF262ABC3A96309736936") (:digest-bit-test 24 #x04 39 #h"11C160BACC2C7CACFD6F2A77FCD20494FA79558F9F2D283069C75CB844001F23C707A5F04666040FEF9BBAFB7299E7EA") (:digest-bit-test 24 #x02 39 #h"615E550243265F1CF5799516964229C51AFFB4E97151A12D5C937470EE2D0A15352EEE109A560E60D87B907A91901CFB") (:digest-bit-test 24 #x01 39 #h"D19A6C2B37534CC87869F1E1F7B5AF2AAFE7FAD05A675A484DF2B9EE8D275A557B3852630BDFA06642A6D94A466DB691") (:digest-bit-test 25 #x80 38 #h"9196FD39C7E1FFA6B43A921681CBDC9DD508388B7A26A77BEFA04347D124E7AE52D7EC225DDBA29F89433A039F5D2D65") (:digest-bit-test 25 #x40 38 #h"0FB900A08F051902780E08B70801AAA6DAFED20C1F0E5E5E6E051ABF433FF01CFEC8253A5F51D70292315DD01835C127") (:digest-bit-test 25 #x20 38 #h"CD94E4B6592D720DA45B50622FD22F7C1686509FA2122122E5F2AE44F40366FEC333CCA4D137E35A958055277FAD0829") (:digest-bit-test 25 #x10 38 #h"C8FCA181168D7415E234DF39B3BD888578A5BC976AA9B27EC058C78A57A5512C900F98A20C344CCF04E0435645AAB673") (:digest-bit-test 25 #x08 38 #h"EC9DD4BC45A00BE68E9B0C9DF97EE670FB67FB5D840F1D084FDE57FA3DC32192393CDB40FBEAA9E1E22115324825D21E") (:digest-bit-test 25 #x04 38 #h"70EB717FCCEB68B9146D280CC006F3D2988EA37E8372042D83BFDF9243F9359E7C2517E98B6962F39DEC7487DFAB1F03") (:digest-bit-test 25 #x02 38 #h"F0897128AE8D180E02AB35836F7058CF484C514848E604751F2C6A2E82AD77CDCA0B8296A8837CD4C8E2D3749F1D131C") (:digest-bit-test 25 #x01 38 #h"F5BA897BC3D9F4EF8D5436DE3533EE79144BC8216BCFBBF7CED91036F2BB1C94CC9B11AD194558EBE6618321E37CD217") (:digest-bit-test 26 #x80 37 #h"26E7E983C6A6BC2936BCE5C4A1EADC1484643DE5099EBD2CCA202CCB1273A328AA6FF243373BAFB068AC430C13EB6BDC") (:digest-bit-test 26 #x40 37 #h"A22B7FC9560288660DC7FD148C5569F39EB8A13CD94258F5210F0E6D25132FF13B369E8B37F61D77C04CB8098472E8A4") (:digest-bit-test 26 #x20 37 #h"6C854E196DD5FB33A3491C80F92717656E69A6D1CFFEDC3AF95AC38F135486A087A748919C423ABA4386AB6AA0948AD4") (:digest-bit-test 26 #x10 37 #h"450C392B8CEF739B31B27D0F8460C3157BE9C80F0709C75A5CC336C9F394AF6022C05BE75557B6D968AF4662B81D9D5C") (:digest-bit-test 26 #x08 37 #h"4F08AD5DC0CD7C1E09660772A996D99D5219075F2EC7808E8F6A6D747B1A2DF8355D4F90B942D8E5A9DA176018783F67") (:digest-bit-test 26 #x04 37 #h"F4F8CE4CA8A6E03493415C3FEAA764E8F61C3E918CE3A3C459F9511A5CB7289DA4493E12FCE153ED6A7A75389EF87E71") (:digest-bit-test 26 #x02 37 #h"576EC4850D0E0911B17DEA5ADDFFDD539EEB79D8D9A7CBF0156CE867E70394280298F993A9699EC8FBF0536AD4331E28") (:digest-bit-test 26 #x01 37 #h"4F72CF4D2230CD944CF3CD28D33297B56ADCB1E701C65897B829376E8596EB00F51882AFCE6A569E3A22DE7220032611") (:digest-bit-test 27 #x80 36 #h"FBC92A26972FBF866084DF62496F8677412E862A2E3854B8AFDFF01AB705FAE48D791169E476E2149EEC56C1B6F91DCD") (:digest-bit-test 27 #x40 36 #h"28D808A8A7916623964B8890F1F70FFBE996CE1EF6EF4D208BD8A33440ABE348D9DBED11E034A5D722683F52DAF28A1C") (:digest-bit-test 27 #x20 36 #h"65794965009CE130167E401AF91AFFF32CEC9CE46D4AF776B83271EE287231E6A1E0EA3601ECA308596035A994E73757") (:digest-bit-test 27 #x10 36 #h"C7DEDE39881F92FF6ACD42FAA51CFBA95D51391FD1F484788B9149676C7A215938E53C6C4348BA12A10BF769A21D5045") (:digest-bit-test 27 #x08 36 #h"99614EB2F2E0C6333823214236E711C46449753B4D48979724037542C313AB9E05A3E780E417A1E4F228D3DB0B3A8383") (:digest-bit-test 27 #x04 36 #h"E91A4C58528186B2D45FEA27ECFF36922254BAD7C8E2640A1945C5B4092FC07A093D5CF47AC45819F862EDAE8149302C") (:digest-bit-test 27 #x02 36 #h"60022A8C7535F93E052229F235DBC2794C283FBADDED8E160E7CC089BB8A135B9AABF41312C45C9BDC153B99998453AB") (:digest-bit-test 27 #x01 36 #h"FCCBDCFD9B4703A4D17A3AB46B878A8297B76E1348ED7AC7F500BDC6D2EB20561B12A01F25C7428755E14CB9499D52FA") (:digest-bit-test 28 #x80 35 #h"BE6D2E3EAF33EEAEF34FAF27D04BC29F70E968205FAB32DEA4B23B5198EAB031610396D275707CAD8081DDC420644842") (:digest-bit-test 28 #x40 35 #h"72D791CB3E89AEC36590D8B226815F6857A6C970D968FF01759370E0177F928B6E0860FC89D8512B57F8D73AED8C8A8B") (:digest-bit-test 28 #x20 35 #h"45B5BECA1299845D70BA9B8718F540530BEFBAD767813B5DE629685ACFD1E3DB0FF84A555CD5616AE714E0D122074B2A") (:digest-bit-test 28 #x10 35 #h"F11CBDFC79ECCD482E78AB5982F81AEA5C91593B1A026AB9C4B46D3A25279C36B26E55A91AC4055B00738C084EA531D7") (:digest-bit-test 28 #x08 35 #h"BFF1695D161CCECC71EC68D23506D9E4A4CDDD0403822F333EEE4A4C4A3C17C834570AF6B88AAB68EA663EB959A239A2") (:digest-bit-test 28 #x04 35 #h"50A408326365F178E2410C9CF29FF3550D0A76F3C41A396FE685A595306EAD2AF743DDCD0635FBAB4360E1488F874D89") (:digest-bit-test 28 #x02 35 #h"E941B019398FD772571F5C569D84B8A25CECD22A3990F596EB64D0FE1439AB63341F78EBF4126FFF1A41A96D3BB9CC6B") (:digest-bit-test 28 #x01 35 #h"386C762335D409A7A679E232AD564B0E60CAADA990A83DE2812C5C34EA5AE0AD8C566253260ECC0AA371FF63AD164929") (:digest-bit-test 29 #x80 34 #h"8CCA1F5B6DEA6B721DCC1C72A96746CCD625C1348961A4D72D3E40068668938764760BD9C7491D590208D6C966D685D5") (:digest-bit-test 29 #x40 34 #h"11010F8578FE58CA36883E4B3D85211C911559A7CD6958BFAA98920C3FD82790522DDA76DB32769FEC20C934ACC865E5") (:digest-bit-test 29 #x20 34 #h"3271C480145A685ECDC38D5CAAB8912F66EAD3B1729052475AC4ABAC1FB4B211DDD21E93CBC4773162B2159C1E552CF6") (:digest-bit-test 29 #x10 34 #h"AD1330E7479E08FE21D64E100CD2B0A642A970A3B514A15B4B124E0ACEEA7656B8F87BFD634A131EBFF89EF9730B9889") (:digest-bit-test 29 #x08 34 #h"3BBBD0FA79AE4C63E5CCE85EFA1CA857F790A117C224816F8B24E81FF43CF5C4432B114D573D8218B902AE9521C952C4") (:digest-bit-test 29 #x04 34 #h"A7490BDFC2DCEE81B5D1AB4EF322775F02D10FCAFEE0E61567E052A8E778F74F97380C2A45DB33ABEFDF81ABF64A455A") (:digest-bit-test 29 #x02 34 #h"F00E6AE888A33BF184C52A18A1677F0D0400BBA818D14BCC53D67B577E52F8DC2F72B3E03A525355C7FEFC781E6CB01B") (:digest-bit-test 29 #x01 34 #h"A55BE9AE54CA0A6ACA5EEFCCBEB8B5E64D170E3A61D1FB0D049859FE44F9D8C23313CD935C49A6F0862D782A77885A67") (:digest-bit-test 30 #x80 33 #h"EE5909BC21DECE3CB019A6BBCCFCA058B3E601461ACACC7E3C2A0DF76EFB99E932BEEA69E7B8AD212CC001711D9A3B7D") (:digest-bit-test 30 #x40 33 #h"DDC204008F0A566616FF6841CAB8AACA935C8172B0AC9722D89930C56B824D8A539FD6CFE21155DA2DDD07BF01FC839C") (:digest-bit-test 30 #x20 33 #h"9CEB62A6E96B43049E5D3EBD2FCBDABC8348F206CAAEE34C64CFFF657428779A0B5F0C4DCD8B6B63CCAE002449C3A9E3") (:digest-bit-test 30 #x10 33 #h"A7C068893B6D043EAEA92405844893EF3F8D48F21FBE67C714835D699CCCAE592857BCB50B1A3C7BA88800CC16ABF2CB") (:digest-bit-test 30 #x08 33 #h"79D82A57819BF95985091FDB8139F2461C906497A3F7006FC210C862B72B774F9636DC15888701D00CC70D8520A451A8") (:digest-bit-test 30 #x04 33 #h"34F61A7EF1FE5893A43DA42D8EA61C8C70A728AD83C373D84836BE16F4DD9627EBD3DAD85FB6E34146FDFF48037A3C0F") (:digest-bit-test 30 #x02 33 #h"7238D2043F7082481F9B85BF4D6FA84FDDF24C0DFF49F5EB2CE367968823E3E22CA55193620ED2A3ECE9C293010BB347") (:digest-bit-test 30 #x01 33 #h"A2A3E2F314D88A97A2AABF1EC22ED93539DA578FF28480B4F55550B36F0518AEB172956ED7CE7ED406121E81CE3B9DD7") (:digest-bit-test 31 #x80 32 #h"B2CF365BD9D01DA2F330B710B082DCFD4EC2962B7D7C33EBA1AF3D487CD5F82A8B753BF51F6C3478A200B124912364C5") (:digest-bit-test 31 #x40 32 #h"992E225F6BDB7A8B1DED390C01E0F77026A631E594E10D97ECE6C8565219751EE996290D322F5F211FF413D352479F9D") (:digest-bit-test 31 #x20 32 #h"14CB8F7C0E0A40C99991A38F4F629AFE47E59BCBF162B734C814E319B306A7C67F69884C8FD9E49A4821759541B334E5") (:digest-bit-test 31 #x10 32 #h"C97DC6E221BD58084674602C92867A1B9D4C3F7BC76306A579AE3C8BCD48E91F94DE46E52D1DBBA085FA3772BCBC3D8D") (:digest-bit-test 31 #x08 32 #h"A3F3E424A209F93B936A3A0AAF46F20C5150149B98EFA807F412D4B8FD4A1242C0DA3DD53ADFDD1D9C7F731D0F1DA910") (:digest-bit-test 31 #x04 32 #h"DEB6C496FE0C04B1D8F3F67C5BAA05E8065CAC85E2D142F21597A938CA2A859EF3A0A077A46C93D762133F7A535150AB") (:digest-bit-test 31 #x02 32 #h"0BB196F917D02296A49DC3F8EDCF35539251CEF64188C8FB7F55B4CB151DF87CBD0BD5498AE632D94B995C56BFABED99") (:digest-bit-test 31 #x01 32 #h"B81DB1716E2D8E6283D6F46584A58F8E890F7D75DCD16C5F1F43E6FFF1AC22FA65DCD13AF72B8329494CD82E4B78ABA9") (:digest-bit-test 32 #x80 31 #h"74555775BA3B99796E08D828250F6644FBB3C2E4C6BD5CAEC66E1385E4512E385D3B6B0DDBB1920364FE1FD21B88E711") (:digest-bit-test 32 #x40 31 #h"B8F2437A15203A47C1769A446F4A2FF761CFC9F1E40F2156AFAB24DEF7C34F63248A71023F5BCA7436010E417EACC8C4") (:digest-bit-test 32 #x20 31 #h"C0B60FC5D64406322B9F1BE17F7B03193B55A8240C4B13E34F27381E4E2C9C9A9E7F4AF6C7E88C9207E7CD055362FA5E") (:digest-bit-test 32 #x10 31 #h"DA6FBFE26016DCF3F0C12B2E55CEFF92536D72FAD8112EBA0236834432FA28AA4D8D17FA6FFB331E0E082F0BB30E5CE3") (:digest-bit-test 32 #x08 31 #h"35D0F700A8DE91341904E694341234D181177010FCE83A7E16627050AAD67D1E67ED347172AB1A95F6B6873A6341FE99") (:digest-bit-test 32 #x04 31 #h"A3A2F221F1810FF13E4F81EDE8639749430CEAA657FA2AA63A529A62E881D4C0AA1B06CC336099A5691D1F1BF3FD56F7") (:digest-bit-test 32 #x02 31 #h"E07441CD154D8FA7A942A030B10EE1BD268CB698F7F7A4ACC48F857AF02F18467C25AE88799BF0C345B81D767F208AF7") (:digest-bit-test 32 #x01 31 #h"078218080C1599B4A3775D9E94465A2AB7E0F9F7EEAC7FBBD4237E4590BFA28DF54C9768F207E33DA6FEA3E3D30BF037") (:digest-bit-test 33 #x80 30 #h"612BDCC9E67062C1F5C9E61D2ADE3AB2BBF8BE4516F91C78018D4C24F5916F9CDF316940D8FD06186AD527811BDCF4FE") (:digest-bit-test 33 #x40 30 #h"F080E798C4F74104C5FEC696E3C7C63AC051198BFD9490EC1BEE6E449371A86DBA5625046E72FF093CFF2538ED46D19B") (:digest-bit-test 33 #x20 30 #h"2FF42A947A5AF54B78CB8FE112923E8DEE28DF232A4CB269516C6D0A0C43A7062025F6E362BDDBA143B864027F09C407") (:digest-bit-test 33 #x10 30 #h"2C497217BC2E64A1720B9A5A312AC37B6AF20A2DFC75E0EF66CD454A887025F78C14E99A1413834F85A5A8BBE0D90664") (:digest-bit-test 33 #x08 30 #h"500893C49A36771E7B30D2D25A050EBC89A0C3E8D2FE7AAD84DB5BF2BBC4C13735E14169E0BA6D120A2723C98D2EEF67") (:digest-bit-test 33 #x04 30 #h"E6E58B87BBE66E8EA7502A867EA236E9BB1A4EF6850680761AFA602B766FA71B74089599722A29FA094A491A5D7B5962") (:digest-bit-test 33 #x02 30 #h"A5603BA7F4C3A2ADD3045B217D842B0DD59D667D44702E83589CA45C3C773D3397D501D2615CB8BCDFC6EA00A97F12EF") (:digest-bit-test 33 #x01 30 #h"5EF891115FB11406B70694311C0A591750E252FBD80A488317A06626D77C3DF82F1C83B97D36BC26D82513EC8D977E37") (:digest-bit-test 34 #x80 29 #h"440DAFBE831CACD9F162921D8B0C551C2D00154901A2C1995448E9507D7508FB9EF07E1DB289A7CC6712464FAD4FB358") (:digest-bit-test 34 #x40 29 #h"D40145D4722512F16BC9B276A6F0C64468ADA1E4D9DCEC49B5A2675C682587CCAC4CF87B3979471FA5935F828934C7F3") (:digest-bit-test 34 #x20 29 #h"FF7665A96ADB0659D051CB23740ECD4FD826789CF18B32785DE9B80FDF3BA27377407A669B71004F53D375C32EA76635") (:digest-bit-test 34 #x10 29 #h"89361350A5B0BD6C2B51984BBD83C9AFC96670BAC5B8C45729BD7E488C77E63F88F8B725B9BBA40E658CF775AE16CAD4") (:digest-bit-test 34 #x08 29 #h"5727CDBE5119D01137BD6184482DFE7B970C267076FADC99582D6DBB3ED8A83E088DF359C2B1CDC34FA5C41271450E22") (:digest-bit-test 34 #x04 29 #h"8B87D467220A1AB2621C1DD3A5E60832DD16E800409BC3DD7C7B35A9DBF53EC828425433734FCDCA42A6A09A90217C3A") (:digest-bit-test 34 #x02 29 #h"11091A30FE45402A85562C2CBE26A2822CD26BB9FB5A09A0D102690956E1BF679F86BC4D70AF9286327B047474CB61EF") (:digest-bit-test 34 #x01 29 #h"783E03D6491A1E112D5582B3EC7C4B48F5FDFE858148324E61D28152BD65F37150B60FC4686B82F68E83B9144D7BE9BE") (:digest-bit-test 35 #x80 28 #h"83232AF71354636B05794AFFC980CF381E84B49406BDC9838E6516B382BD8D91D24C567B246F5BCD8252F6B373FD7E9B") (:digest-bit-test 35 #x40 28 #h"8FF2E60EE6B0164DF17760E616FF9BEEEA644C5338678C422A1F0B1E6AA5E1349271798E5CEEAB34C0F9FB5BB18B2C81") (:digest-bit-test 35 #x20 28 #h"8155DA4CBAD65A0B3C309430FD4F8753967CB6F913A34758E27A2E33C3126B567FBBB7C878AE0439CA4ACB7A12CB5542") (:digest-bit-test 35 #x10 28 #h"477B55343660C3722941A8678C650BCC2053495F4A148A06919BE28CCA0020F8D6319488C46E80268EFA8D2F14ED66EC") (:digest-bit-test 35 #x08 28 #h"2D99867CC8D6F8561AEF5CD2B699F88776F37428D68D3557C4315F5A9BEDC7225623D8D902AD8CFF007DC07D56970F63") (:digest-bit-test 35 #x04 28 #h"F379813278A6DD7EADCF94353BE109625E4C0375DAC4F20CA98679B3361EDDC1399710ADCA7226F267AEC07DC8F1953C") (:digest-bit-test 35 #x02 28 #h"B7EFF71C84C69DF9B8D5096AA665D401B0C2EE9EE1C1607EE464E03256BDEFB7E449058CB217406DC98F35B890AA767F") (:digest-bit-test 35 #x01 28 #h"126BE561BC35366149F8C2F1AA7C776B318BE836D5406938CBE1601755203E112829516D8343BDC252B0AAF1092E42A4") (:digest-bit-test 36 #x80 27 #h"2ECB27FB077CC72E7DBCBA8FBDD6022DBEFAAE32BB2C708E30168822ACB8113A72D00D6B2B8D9385DC68CC308027E3E6") (:digest-bit-test 36 #x40 27 #h"D951831B1AC4536377FD2EAFCA56C84C6522D1B721D25231DBEFB61692AD485D78D007D33AC1F737200CD61C3333DA0C") (:digest-bit-test 36 #x20 27 #h"4C55BBF56B5B46FD313FA1CC06C01FABA8C0C993B5CDC2F905E91B4BDE42D98D958C5868E2E9EE57B917002F27B1B140") (:digest-bit-test 36 #x10 27 #h"C50A5578A633AAF0C3E181F75A5FB3509A3DB36276FEEABAC596F3771BF4BFEDE50025DDD04851A4B5C6107968EA5143") (:digest-bit-test 36 #x08 27 #h"E8CBDAE58730BF1AA308FE34CEAB8CB39A06B9465B613C04C52A441F2FEA9D7509F1FFE1097DFA9E8EEE05DA81C16635") (:digest-bit-test 36 #x04 27 #h"AC1F19E516B55DE55DCC759CE590407EC45820F4024241A946CE04C96BCD2E344B0863B9E4D2C78F9509CA121E5F8D7C") (:digest-bit-test 36 #x02 27 #h"D534EE54141D498BD4101FF07338DBC2AEA6D24B943757DF2BBAF0EAFC1C5C2476759FF97405AE59DE4DF53652553A86") (:digest-bit-test 36 #x01 27 #h"010078223C945810A0EEA3E385D74F28C41C687196C913EBD1C3D2B98119C9A274B8C2DAC5C6E654E9E4A5EA7CC2FF26") (:digest-bit-test 37 #x80 26 #h"034BEEC78BF968FFA05A9A61267587D176517C60861E791836B5EFE90F12C0BF0243C70CF2B2278D68246D763CA644D8") (:digest-bit-test 37 #x40 26 #h"E29ED6E06FD5F83056007437B10B2FDEE03188F3EA878AC5C5B5A05AFEBD31EAD6A831EDC131AE8EB9E7FA9A01C32B0A") (:digest-bit-test 37 #x20 26 #h"3A3127B1852355AA00F2434726D7B086B13D138C5DCD5D4E60334155FE28349E479856D5334927985B3ADAC59EB44E4C") (:digest-bit-test 37 #x10 26 #h"75CF3BB7F5DB697668B4AB8FAAD44F5C4C285CFA65864A0E3C74B5F2A67A4AD4DF8F2100C2445A180B44AA37B3CC97AA") (:digest-bit-test 37 #x08 26 #h"97BEBD4C6150287122FE715EDDEEF001665C50BF9397340E6915B4B5C8F87588826D2B8B32F3F2D9E3007A112EAD8DB7") (:digest-bit-test 37 #x04 26 #h"2548EDE855A2E8B7004BFCE313DFE70C6ADB7F2552629388329078062D58FC8938A230359157042699CC3C33E3114F63") (:digest-bit-test 37 #x02 26 #h"64C8AB032ECC0393F94F164883E9AEEE7443977D11E301B20F59C6CB7F45C59EC967F4D9B861A82B5C3BF852B588E024") (:digest-bit-test 37 #x01 26 #h"A9376170784FD04221BE829604E052FD0F0A960FF9F8CDCFC790E351174A7A389C5B590FF92EC30BA91F24D6C9EF3016") (:digest-bit-test 38 #x80 25 #h"03210B9C0100379229352511ED6218A30D52BF73D5CCCB2A89A0B4342A9D6CE8C315366062F78964C9EECF5C1C44E83E") (:digest-bit-test 38 #x40 25 #h"CFDE1721468C0420B64BB0592DB23A67E7510773EFC50F3874C09B7715B5545BFB6ECE467C1C6B4614AE0A5FEE198D1F") (:digest-bit-test 38 #x20 25 #h"4574BEA451828121E5BF8503F5F9582C086A3F0312D3C7A86910CAEF4CDE23565B0A59A4FEDA9973BA0D366E2818763F") (:digest-bit-test 38 #x10 25 #h"2CFF950C54FC24BDE335D75E8363A888BEE704EF226F8A7F7EFCC189DA28D927CD3D0D951D27460EE9D6322B8107EF0B") (:digest-bit-test 38 #x08 25 #h"8D92E33BB02A89CF87CDE7F7F374271AC7D7C6168C8DE3AD3252C92CB065669DC50F3AE8E869FA38E28719E0273A3200") (:digest-bit-test 38 #x04 25 #h"E864A0A28D6FF702ED84F461EBC75BD9A9C01E6DD042DB875E62597625AED23A643A5624853C1C31B97BFA565FFD8348") (:digest-bit-test 38 #x02 25 #h"4E23C54DF650F9E82355ACAC18AD545D36A879F153ADFE2B3786D3510ABC39E303D4B8EEE3163D8169AB2B950C2DB417") (:digest-bit-test 38 #x01 25 #h"EB4B1E6809CAC6665B0D9A20AC4FEC040A87D271731EDCA0C10C6ABD567640037AB0BC95A120ED92D023FFF39284133D") (:digest-bit-test 39 #x80 24 #h"DD381ADCCF1EC251567FF6C4660C676979DF327EA349EF8A92C1F0B81F9AF9305297AFA99AF7BD614DC47435218A5672") (:digest-bit-test 39 #x40 24 #h"CF1C76C9D4E0A87A69C45E1A295FA5EDB2731285341E8AFB4DD0A43392566FDC2BC329A9FE9F6F8DDDBFCE588145B3FE") (:digest-bit-test 39 #x20 24 #h"F43BD5C49058956A5C004F2511604A28A6B62960A35F0544D4537412541A76F4FBD93CD95F5854E818015F7B692507CC") (:digest-bit-test 39 #x10 24 #h"701EB4E39BA91D3BF3D29E22EC03A7C075454EB78C0AA3A4942FC5766B0C0A4B634BA77D1BEAB897D73A77CF4A75E4DC") (:digest-bit-test 39 #x08 24 #h"E0C193C9ADC50C569096458BD27412BED0CC1D73D946C12D211B5774DF894F683384F6634F21E8E006395A901BDF57D3") (:digest-bit-test 39 #x04 24 #h"4661D32533CEB76725A0769ADF333C68D020AE274FF733F655B03E4A5A0CC2A238C7F35AB16AFCA31306824D8BA95950") (:digest-bit-test 39 #x02 24 #h"8BAE9DFE9D1F28F01CE5EA8BE7471D16E87AABBEDD8C550880791E2D92A8CCD34A825AD8933B7DFF8A96159D49D09289") (:digest-bit-test 39 #x01 24 #h"2DC118A122010FAEC8808EDD7EAE179D3FCCE9301BF8427E0705FC5A7701ABA44E60F41B37A6BB0765EE3639A46448C1") (:digest-bit-test 40 #x80 23 #h"BE9684F44AE57AA6963C6B7F9EE07E922DECAA6E9181B7EFE4DF1B29AA5B92B21E36159BBE5B282D7F63544E26AD5144") (:digest-bit-test 40 #x40 23 #h"A7728E8A72D6EB59049B00524B2A116A9871B54559C9F2E19127AA2D6A2390AEBA0661F76D355E4D557B90406891120D") (:digest-bit-test 40 #x20 23 #h"98A73AF6484CDC29ACC43A32E663C7887B90AAE78A58EC189E2E20E185B6D47730697330DD8BFAD4BA1AD386001DCF0C") (:digest-bit-test 40 #x10 23 #h"3F1032C0C53BE887FDFA9CB2E006C7B68F2E939330237BB9E1FCC66A23BA28AD881808794D5F78568C35E9186DB514E5") (:digest-bit-test 40 #x08 23 #h"398CC2AE7FA21F86FB21540CA878FA4DF9E4E8BBB95E33864933F4AB7AEEC38771C1485B9DBBCA4D98D641DE92BFB44C") (:digest-bit-test 40 #x04 23 #h"5D8332B879A1EDB87FE1318497A264EA486EEB24FA693F81A6C5E05DD66A232EF5DE6D40E7D88DB8515A5FBFB5E466BB") (:digest-bit-test 40 #x02 23 #h"9C0600738C2969F77530119DEB281293767F16C47935B2B8127D619449841864F0943A16F09CA49C5F9761BDEAD0D320") (:digest-bit-test 40 #x01 23 #h"A5EE4E27749AA796CC82ECD5331D674F23499EA1DB93441D00754388211A0BC55363263BCEBC5B9EF9A50BFAD8B05211") (:digest-bit-test 41 #x80 22 #h"6D50AFCEE5E8E096B74A87B07DA83764384B2817C9445A6B9A1457B19F0D8CAA71B51CCC0C4D75E68D2DC0C0A3DE7554") (:digest-bit-test 41 #x40 22 #h"EDE7F1F6DAA383EB41D594D4D139F1FD39AB9A7A6FEB000B846EFA31F27744202C2E4EF62094E6BBABE1FF62A130D474") (:digest-bit-test 41 #x20 22 #h"83016F42788961BF80B08BB3BA5BAF29C0F09E01417F4BB19E73ECDBDA27E72281A24A50764CAB2DFCEF1897929F9037") (:digest-bit-test 41 #x10 22 #h"E637FF999562E727F3D08A5C5C64492EB7629C01BB9DE83C8FB5ECF92084C373C57D72B74B6D34D27717F84A0EA9FC32") (:digest-bit-test 41 #x08 22 #h"9E07928334BA96D475CCCEE11285DCD557ED75998BDBE3DB26D227E0EA46A537F69EC90071B44DE428865A4AAA680E4B") (:digest-bit-test 41 #x04 22 #h"8930EC88C0B729AAA5519F4B6C4D7D0EF842AD762443B1F30C26D2E71D13AA29F9139C047ACEC8EDEC7DBF491766F3BD") (:digest-bit-test 41 #x02 22 #h"EDBA0883F9C966F3CCF2E93906B1AEF29236121E07FAEE5F5C0E733747F7709945466541E1CAFC4E20E4BD2D1CE6C627") (:digest-bit-test 41 #x01 22 #h"2322B96C2618BE56639B97424EE56F3E18275D0BC14727F61600F2721BB343DFF72169ABFBB56272629D6775DED3475A") (:digest-bit-test 42 #x80 21 #h"9CA604ACB2B65E34276B3EC7757E9934EC9631DCF84926A0C04E4960153801AF4767AA22E0E4205ACE8587A9C4528E97") (:digest-bit-test 42 #x40 21 #h"5C06A745E00F95FA2A37101911ABFB01E164B52801D32795146F5FAE4E99968989A88077C7AFEB101512047264DEC0F5") (:digest-bit-test 42 #x20 21 #h"6A0F8D195FD68A1352C26F5AC8E046982E8D9FA2929D65F1086ED49B3D1A734C94F448162D67DB56865991BFC0F0566B") (:digest-bit-test 42 #x10 21 #h"0D01873EC2DB1E0335E5BC2577561D26E2BCC0F95D46B309D2EF058B19EC734F1976C8538EFDAB42FDF3CDE7CD2FCE8E") (:digest-bit-test 42 #x08 21 #h"CC037818A9E0A90420E2987284C8F0BB5ACF2BEA0FC2237C005A233C0028F9F7C6E9BD2A9E3818D40A3FC999ACABC0BF") (:digest-bit-test 42 #x04 21 #h"0EC6364854FA7D8D246494688DBD7153C11CF3BC76C5FE217B68A61AFD189FFABBF8C18FAE7E29CE46E4E2E97A09AE7D") (:digest-bit-test 42 #x02 21 #h"C15FA778AD05178B4C4292EB5088EC53E11FF43124C5FAB6CE0D36B1CC38032E20EF14BD1E1E443D7479457AEAA2F46E") (:digest-bit-test 42 #x01 21 #h"0B493260B9D501965EAEC41E4C342DD6FAA4545DA901BBBF97A7C923565AD78BF7AC59D06320914E2A4DC1CBD59F21EC") (:digest-bit-test 43 #x80 20 #h"67C741DA991799D8AFD5EA93589C874D4496B3285747884A12BE6BA124A306D72D1B5A91F726C2CD43B039FB3A667D33") (:digest-bit-test 43 #x40 20 #h"DF6E31152C9CB031735B82455771917D588321E4A92F350EB99C628EF3F915F99898A733C4CF234D16C5701D693F7EF1") (:digest-bit-test 43 #x20 20 #h"0542DC5BEDA73FBFC1399DB1BF428ED122C9EDE3535B0FE073F929B1A435DF1AE3180F6510216FCF7818212A2A38BCAE") (:digest-bit-test 43 #x10 20 #h"4DAAD1F4A91ABBA2ED1DE373195E1BA9C479466E257F2CC2824CD6E796C3B6F6E14192DD7DD9E83361A72DCF2A07F13F") (:digest-bit-test 43 #x08 20 #h"6A6D21E8FF50507E055D0FC2A3FD6DB08AB85CF96597A8DA8831778C4536F4B6A09EE35184735195DE1A88A87FF65713") (:digest-bit-test 43 #x04 20 #h"F0434999CF98C3842D7C7E42E78B9E3ED8789249908EEAB6E681752FA82ADB85A21027F224E8C19924C3E77316448FB0") (:digest-bit-test 43 #x02 20 #h"4BB67E8E9759F56CE86583B3E918C33B4A65A98883A169460F5509D1A4A7339597D9BBED663804600AA3023A636662FB") (:digest-bit-test 43 #x01 20 #h"AA2DDEC9E11B1BE707CCD1355B5D17D3E70B7A21C1DD4FFEA56E9763B3D85FAC5DF655F7B02417AC6214A792FF35BE33") (:digest-bit-test 44 #x80 19 #h"3D861AA0B8B487827A6764B197C0F9144C248480CD96CF9335F120B7A0ACF37BED4F1B5930EC7389A6A08723B7AEDCC7") (:digest-bit-test 44 #x40 19 #h"5F1B2D8F5B4DCFFE658AE90E77359981B1094D9C86A0C20E4AC79A7FBC9F868A2108A816AA24C71867D2F4AE2C27799C") (:digest-bit-test 44 #x20 19 #h"DD16679C632D8A454108F6FD728F74030F7A87E46FA5B34047FF1EF283FF46147367EDCC0238C23891263612D906643E") (:digest-bit-test 44 #x10 19 #h"886BC746F25B2425C2BF086BC51B6BCA673FA6D0F287D49ACFADB33A841E5A5A4E7447C718A78E7AF06805B9BB9A57F5") (:digest-bit-test 44 #x08 19 #h"4C5D65BB63B1B2E5C6814D5F20FA6C90F68F9655EFC544780F7E3AAC063F33DB755F7D569EDD6403147BAE4D0C960E5A") (:digest-bit-test 44 #x04 19 #h"0C02D11248DDAA99F3D4EB064D7DC09CCEB30099B6842DE7B5E9A50E568CBD912969CAC9CB949F8A22DB096A1E7305A1") (:digest-bit-test 44 #x02 19 #h"FC55C2BCCA197AD028D40D95E1D402A81BECB45E1B4C22704245CDF9DBB8023800721CBF2162AEC8F03EF2AA6ED797E3") (:digest-bit-test 44 #x01 19 #h"9A7BE8491349E5B000E5908348BAB7A8D316D609025358BAF8FD806EEB82829CFE7FBF7200479D88C58E256005B249A7") (:digest-bit-test 45 #x80 18 #h"4834E49EE4F21BC45C6E10A4C7A5FA0833BA6506D64CB97098ECC21CAAA82F4CA178D79C77DF8CB4F32B4A114952701C") (:digest-bit-test 45 #x40 18 #h"0352D5F1848C26A712092B41FE6081E2DA2A4227D4F1DD6CE033F3981947F3CD36132DFD7975784AA37AC6C775E8825A") (:digest-bit-test 45 #x20 18 #h"088AB2DDF21214C02C86735BCF7647D27F2111992D108BC9C74321F9F656FBD053F57A9C61C1CCB14C913A85FFA449AA") (:digest-bit-test 45 #x10 18 #h"54171A7DB384E37F983EA01C67C44C9F731066F7A43525EAC3DE40452DC9C8237A1145AE41D2E87A054F7B2292F469BE") (:digest-bit-test 45 #x08 18 #h"3D204CA07C7D13DDF3827B50006E8E689E1B712D667169ECA8A0F3E3B7CB62B46B37C073056855A10CF41756DD8C0762") (:digest-bit-test 45 #x04 18 #h"4FD3DB3A545E46BD4311DD0BBFBC02662E6A9E7FD67BD696F99B0F3BFD40C15B65415A47BABCA9EE1CC058CB3AD52F1F") (:digest-bit-test 45 #x02 18 #h"3D7847DFE482E726D3F5C2580D22FC016EC32BAA71FA53779A095954AF9E9FEDD9E67AE8515E8BF3D16012A3CCAC5EE2") (:digest-bit-test 45 #x01 18 #h"CC99F99CADB3F6CF48AE4944B7B91E4664896023C61BBF9DCE9938DD3E5ADB12718DFBBDDB79822E28253849EE6FA97F") (:digest-bit-test 46 #x80 17 #h"3524A85ECC69FDB93267047EF3603C0AE5398285D1FEEF8C073193C4CD8A07708ABE8CD106C830B33777A7922ED7D15C") (:digest-bit-test 46 #x40 17 #h"B625A7DBB7154D3F42C547C0A7B7FC13C33150BA7B79A54ACC29F305BFEF2A0DF6AF12065F05E22BD48865A5516BFBD6") (:digest-bit-test 46 #x20 17 #h"145393989FCF1EB63F174C2A2DEF1CF8DF510FE2F978F67DB3C0E73B54D0F0DBBF270F41489C75E513F9B6DBABBFA5B1") (:digest-bit-test 46 #x10 17 #h"9FE8A2B456FA71A80BFCD411074A2FDAC4583BC8435D600D49660935AE1466AC8EBC48A41F1AC44C7010319A93F505CC") (:digest-bit-test 46 #x08 17 #h"0023DE5B34B0B18D28CDEA959A5DB27891ABE454A4524DEE6ED480AB0C9328590DB814327625861D316715E0E6AF09A8") (:digest-bit-test 46 #x04 17 #h"5540381C0B6E274860CFA0C62D7D08A4EEB0ACE1D947A0EB779E44B4C8E85AE2DAF4BD58E89DAC92BFBFE091214E51BC") (:digest-bit-test 46 #x02 17 #h"95610A9B07793CD636C69BF2BABFFAB268A64F88CD5CF16A31FFEE5287D5FD5A34A3C0A2F5BF851375803A3FA8105300") (:digest-bit-test 46 #x01 17 #h"8106E1A3F019AE544C06B03FA85550A9002F8AAFA7A6E129B6A3834C5E0100AAEFCFFDFBE7A2CF13C478A3B732183CF7") (:digest-bit-test 47 #x80 16 #h"8DD90479FD9AFBD0560A53EA53E8BC8DC27E15E7124DB3FFC5E96291C8D201C6554D0DF8401066D46A6192D21311661E") (:digest-bit-test 47 #x40 16 #h"D39682E7F2B962A4ED037D36476692CD20A4E564A6DC1F09D56AED0128E0B366495800E6AEE5EF65DC1F674CA39126FC") (:digest-bit-test 47 #x20 16 #h"A765087DBCF2C432D9CA2FF0F195CC57674781B7A29CE9B3F5C083B858D4B10721477C6FE3E23C8B5AD4314FC2C26154") (:digest-bit-test 47 #x10 16 #h"09F7F699912A07054670B53E365DD33AA8875F39D07102376D8BC37B71DE92A8F30D47C8FE3B1BB47ECF893D02568DA7") (:digest-bit-test 47 #x08 16 #h"CA2BAA34B112ACEB6A60F04C93A57E6B9874E532958E60BFF1C5D9B497E3F074FEE3C3304E4A6228F4167F14277EBB54") (:digest-bit-test 47 #x04 16 #h"BCA4B985440D8E404336291A046433ED93DAC0767C4F28A422D678B45B19F6D84AB1FE5C727AED50F8F591FA657E1984") (:digest-bit-test 47 #x02 16 #h"D27A63E9E6C9C1A5CAAC850FEC0199EE9C1490EAE9C0755BF511BF84ADD041FB6349167BB0BC90CB1488BCB2F599290B") (:digest-bit-test 47 #x01 16 #h"F5DCBDB99DA87C664E913D7982EC37F43750E2EC436D427F64873FCF660ECD4BBBD54D78447071204AC6569A3B75BC66") (:digest-bit-test 48 #x80 15 #h"BA0813D1F978904FFF6A7870910D96F319A1544E70622415907C256A6FDDC612C52C395FC84122D7014C42EC5372CB6E") (:digest-bit-test 48 #x40 15 #h"43FB213F16E94A77517D1A9471438535A4F85A53C60F83570DFB144C5D269C7238559FCB60D4B955B24B27A58F3BA9FE") (:digest-bit-test 48 #x20 15 #h"A173C2CD000055AA58BD6DB2BC5256B53F05FBCBA8E2AF65197FBD7DD35D7B22E78E3426E48247D362A0A2CC45E60AE2") (:digest-bit-test 48 #x10 15 #h"7810594BDD848B582CEC4B265FA249856C991CF91205578742607EFD635246257A938BD881D2133E478334BBABFC4167") (:digest-bit-test 48 #x08 15 #h"DCAAB5466C2227017666669F793A7A39931A7CC50AAC5B172EEDB016413C6F4C787B57F65C415BF50B344D31ED3B1281") (:digest-bit-test 48 #x04 15 #h"5086A7CC1C093DBA1D874A2A0B9B5D5B539BA625C04EC71C2986D773398E538299ED066A0C599BA164C4F1228827E6F5") (:digest-bit-test 48 #x02 15 #h"50CFD3D1CDF5B7F6FC4D100F7E444F82C0792A087E974DE8A55928131B54049BB082321CA82621467E7AC427558C5967") (:digest-bit-test 48 #x01 15 #h"1AAE3CF64D7DBDE3E5EB62110455892A3FA6E9BB3AE22A7D4D838540C95DBDCA4A690D870C7CC99A1DEF222EF84B8B3F") (:digest-bit-test 49 #x80 14 #h"8B174247D6EDE400AE069E7BE87818C4D4889109049C7A2EA487F74359113B5B0FFCEBA63B24B9AB0C5BCE5747777654") (:digest-bit-test 49 #x40 14 #h"4287A2F3877879B402F9F0BE1E5057F9B89CC6DA24D8F6435ED42E5FD22879A0968DF6F4001D759C75CCCF865602B8C8") (:digest-bit-test 49 #x20 14 #h"CBF33109D97559306770448310FDE6D057BDD0CFFF5C23DCA07EB7D1F11E503B0B22FD05819D2C7F94B46DD0894C751E") (:digest-bit-test 49 #x10 14 #h"22259F225FACCE005577210671437EF88A3964A97B10531EB6474CF68002C93F1FF1799A6993FE61CB1562C029FF3F98") (:digest-bit-test 49 #x08 14 #h"E04C7DB7AA2ECF35FAB2D97F8D99A6D5BAFEDC23F283898A23C2FE52968637E080A2660BCCC351C5B3574D7CD0DD422B") (:digest-bit-test 49 #x04 14 #h"C457378405F0BAA157D57D303809E738B43F4EEF66F78F058B76A5F86BE2C84B4DB81ECFC33915F89167BB3F73A61DBD") (:digest-bit-test 49 #x02 14 #h"B7A3BEACE7813DD9B76788A6480AF15316C09E7605E4C5EAA68CC289B8EB3D0A0823C31BFD3CF466ADF52F0ED3C9F6FF") (:digest-bit-test 49 #x01 14 #h"A6329F067B60BD6878D8A756A8F52A1DC85BC0F058D8C267A2501455526FF43549FC61E18028B992B6A5B2A7B0318DEF") (:digest-bit-test 50 #x80 13 #h"13814178CA5BD077727D53C61D14953F3F7E6C4AA68B54601A7D5BFB4C9EFD9558EEC7D0C39084482E46CB6644FC8D53") (:digest-bit-test 50 #x40 13 #h"34C5153B8F2A00F3CE1F4024255203FF9D3229130A6C57EC6E2D1B3AC98562C00061AF94DEC8B9ABF0A257EE20A696FD") (:digest-bit-test 50 #x20 13 #h"B13862BDF3882041F842E56D626CF04F9805D8E2A9496F27F5B714729C1964791C7095B00C381F73F1912D988C60723E") (:digest-bit-test 50 #x10 13 #h"A51FF0F7378EE7FC4903D3486C8E73BA65A93B78A1758FCF654DFE84322F8CEC128D1D5C734AE10C3BB5682ED462BE6C") (:digest-bit-test 50 #x08 13 #h"0E888907F90A23938D9A9A6A221C73811C7FA3637ACF42404F3AD8DE82A6A94294335BB76331B863B98AB342E7D49E2B") (:digest-bit-test 50 #x04 13 #h"ED62B053E02EF638BD2C3462B550E58FE62439D8460183488DB7A7D3616E1A417260B1808E0D7929B0894AA510BB80FE") (:digest-bit-test 50 #x02 13 #h"4DE2D4970BC611FEA19D1E2C062D520789DEFA3CA8A7F55C38828AE0BF276790B9DF94394D3F5D91742F91C73002FD56") (:digest-bit-test 50 #x01 13 #h"ECC7E7745F7D1FC04D460A7029F619BD9D8DDE3D617D8B3BDC28FF79C1C59F68D57743B59EA094FFA3FD9AF09BAACE15") (:digest-bit-test 51 #x80 12 #h"B4B30628AF039C32BBFAA467BD2673760FA1459F4E4AB716DAE1632ABC6669BE7086D1CB2DE8A13B5CECB8A38FB6AF1A") (:digest-bit-test 51 #x40 12 #h"6CC8A64F78BB9868FD0A2C2B19F62BC0B27C70986B8C8B5C1EF32B019FA2B769C553D608D96E64C22EFB970C44C78382") (:digest-bit-test 51 #x20 12 #h"6957BBCD8089FFD602BAF45E512D1E78006CA22C18DA412CC54E98300044EAA65E0463595C47BD19D0561249BB9A8A12") (:digest-bit-test 51 #x10 12 #h"322277ADF32EB2C4D197CACB3F3389C701B167C56E7AA21CA4A1DC64AEBDC34A53A653CADCB23D48C9CD5E880FFA2F9F") (:digest-bit-test 51 #x08 12 #h"BB7C9B978F81039AC7B0CA5959568802F9C2DFC33539DD2E51374EF6554A2623AD31B7DE8004E13783A4CD338657571D") (:digest-bit-test 51 #x04 12 #h"A496DC4DBD18294C115E4DBF449F94B8B7FB356C845DEB329B982DB825FC38E04184D0E560F037752A3162A6D7C5DCEC") (:digest-bit-test 51 #x02 12 #h"E40F2C75955951AFC2974D0CD90CF16F414EE433761722BACED10BBEE90AE4556E61F8F39F6533174BCCBDA1CE57539A") (:digest-bit-test 51 #x01 12 #h"4D32CB337BAE63D17C2F5869368380A605A48122175EE3E11A98C727DD3BA11C59A981E65994DF10453B4B273E6155F4") (:digest-bit-test 52 #x80 11 #h"F644CF3E8B9CD02BE65344DDD6BBC1516F317D2B1505138FED83C1747ED7F04F285488714C334EFE9E6EA14B66CD5C25") (:digest-bit-test 52 #x40 11 #h"88479CE6E5DF7E0F7A14BEC5C1600B68D7320D0D5EB458DE642398E29B97AFB85CF647FE91E055FD0152A35EBF30F815") (:digest-bit-test 52 #x20 11 #h"707450731916C0A04CDED54FD24813975E6F1A5E9BC2EB57C781A5EF0F9C5341A1DE7B9AB74EA8A1A63385EDF32C1609") (:digest-bit-test 52 #x10 11 #h"DD679F5F7CC77A40A29842D287F86D1E3BB2FAD04DBAEBC41C556EBA27D3428157145599947A69753D59155059BCE6F6") (:digest-bit-test 52 #x08 11 #h"C9296E9C4C9145BB898BC173392F1355CEEF3A070D9A50D44ACC765C13B95D9055AB9A61C328D6E38DD4205428C25754") (:digest-bit-test 52 #x04 11 #h"11FA9CCCCA68E54EAD6AF9C258876684D5727F7FBC0B3E63FA110693AD3DAE3FE37B1B7AECC89CEC32977BF43BDE70BA") (:digest-bit-test 52 #x02 11 #h"D3F0769DE606FBED3C2EBC0D787FB296A894B2AF810CC077EBED65A73D0BEF91E92B9D902EBA22A1DF935F7D5F3CDABD") (:digest-bit-test 52 #x01 11 #h"83197CDEE728B0229B5BA6C3373914DDEABC5C63BEED4328BE72AC651F64454F4537EF3A6E62E4D2216C9B4163DED986") (:digest-bit-test 53 #x80 10 #h"A75B7837A61EBFD77D066A45178692091AA1F9E8E6C61441376CA9E7F860C951074851DA7F0E53CEBFB638C9F41AF984") (:digest-bit-test 53 #x40 10 #h"A6D693737A8F54B16A9F35C950366CD428572BDEA60A52BE054C8EFD88FC6ACA57699D752C46E1F2E623563A5F3B97BB") (:digest-bit-test 53 #x20 10 #h"8E8FE798AA1F256DAB978914FB21DC96967F35F15DC6711D5BC3715CAA532765F60AA28C21BDC47EA9648B5C0743ADE1") (:digest-bit-test 53 #x10 10 #h"9AFD64BA476BC37F7DAEE4F0114137DFABCD95C553A1EFEE015C438475585DE24569126941B6667E249E0DB7118FC98F") (:digest-bit-test 53 #x08 10 #h"DCEF65C874358661B52CD70EF8092629C418E6CC954AF19BD23214628063F939D2ADD6E43FD921D85729E1A5BCEE7FF9") (:digest-bit-test 53 #x04 10 #h"4EC7C8424716EA9E414933FB68F52ADE7DE8302B2546B347225FE9F72E4FA81F914C608957E196E2589E1EED9FE20B6F") (:digest-bit-test 53 #x02 10 #h"8BAC0A7868E8560FC0879C35F358AC34B1B684238EC72FDF27BA205A4B13897EE09FBB2895745FF33D914471AC8D9C6F") (:digest-bit-test 53 #x01 10 #h"0053982116564E2F1E8438A92FF57DBD9C2D70AA90DB36E105ED979403D74B1B0CEF736D7C77A146834361ECC587D3B4") (:digest-bit-test 54 #x80 9 #h"A669C89F3181C9EB13E29AA485D5375D34E2E25E44513F07F3BEBE15A7681D0299BFF83272F817B7FCBC05027801F012") (:digest-bit-test 54 #x40 9 #h"272A311819FDDE907AED8D5DACB983EC19467DFF86BFCAAD234E9662A3C8FE810AFA6A6F0FBAF51BF2F6B992B5AAA9B7") (:digest-bit-test 54 #x20 9 #h"BC0988D2BE2560E8429D91C88ABA0FC57B02AA4299A4EC2682F7EF8EF98AF6D4677E8FBE90EEAD841C372510F5674755") (:digest-bit-test 54 #x10 9 #h"BA5231986DD760572FFD6EBD5D6ACB225975638D36ADF68075039789D2196AF4D517379AA36EFAFBF530919BAB821FD5") (:digest-bit-test 54 #x08 9 #h"BB698D6C708DBF23AF90E1E64C55BC402064B2BE9E101ED19B42FD4A2F18DAD4CE94BF32C5ADCF6CEF7C48438DBED481") (:digest-bit-test 54 #x04 9 #h"4B5E97687C779E700EF9F35F5679F8BD23D7229C208C95F9FA43AA553F0A3CDE071076507FBA8FABDC7A1008BC54B28A") (:digest-bit-test 54 #x02 9 #h"7EFA7BBC978249E7BC00366DB5BDE54C59ECEC639CA2320114C876010F6D5259E0E8BCF3EFD5D2797D91622D133EA604") (:digest-bit-test 54 #x01 9 #h"25F54B43F6B9B065E8F01C757B634C90203B9A9421725148E26AE47E5E0FD51687AF95C7650EA36F79914BFD050DD9E6") (:digest-bit-test 55 #x80 8 #h"623B047E102DC3D342F63F7DCDA53F84CD2FE0E14D9186F6AAD545A91129797B018040BB677E157213B1EF3F55C22806") (:digest-bit-test 55 #x40 8 #h"1AAA34084B2EB1A4C94C75C2A2D3CF4E500870FA382B7ABE15B28A510BB9510F807E41B54726CF81B667B2ECC4F29602") (:digest-bit-test 55 #x20 8 #h"89E3B3B7762E71E426A571EB0A68567509729FEFD41CC916C7BB951BFD027D0D7B738CC58F0FA6B3E88E586741ACC50E") (:digest-bit-test 55 #x10 8 #h"1A56C67C0A385CBE6FCD347A039E3D1C11FF486D461501F0002447B3866EFDC1A6088AA3E436F4952296645959CD59AF") (:digest-bit-test 55 #x08 8 #h"28BF6AE8C3E22444F5BFE7439D9466A4633BA9C54EBAC9BD171812A7DC7AC96DD73E3797006B484B15B51FAB53729E45") (:digest-bit-test 55 #x04 8 #h"66F647BF25F559B48C815CC0C40A25C42390F93C2BE9D029B7E44AB5659C11237A5A00F02188245760C536B7DFB764A0") (:digest-bit-test 55 #x02 8 #h"10E64C44370BD7B8747D21FD6468FC249E87537DD0D9A16D31209E796E0E863D2D43F162704F8DF6B08D667F036A5346") (:digest-bit-test 55 #x01 8 #h"975BBA8E0490DE5FB0A9EBEA0441F539772926EED07D64F57D2ADC4BB92126805882961059066D6C7156C825E45B7498") (:digest-bit-test 56 #x80 7 #h"3FEA5D9B115909A5648DBD760A8F26BFB9403F600E8279F291FACCF757CA34A2A54855EC8FAC18A4BB5434548A089575") (:digest-bit-test 56 #x40 7 #h"0417C112DCA43BD56643162920779D28FCF1E1B0BD436C51FB47EECBB58AD70A9939E87933CD6DEFC592D5226139BDD2") (:digest-bit-test 56 #x20 7 #h"6287798C81995979BA110B39913CA58E112AA9D380409FAB68347D5A631054252B072E9A088BDD156653729EFCAEB1FE") (:digest-bit-test 56 #x10 7 #h"A2940C2762AC6B1CBD53DD6498BE9908D2A20B97AAF6A61E783D63CEE30929EB70D71234DAA7987085D9C0151015CE29") (:digest-bit-test 56 #x08 7 #h"CC1E2E7EBDEDA0680124FE3106C0CE5864BAB294C64F18FDD7033975A14BB8252A8949D609882A452143A62673ED67CD") (:digest-bit-test 56 #x04 7 #h"10EADFE26630DF7DA028C669373410BAFB69842394569662495BFD6CB00B907E4D378A7EF7211705902AD59CBFEE91FA") (:digest-bit-test 56 #x02 7 #h"A18673D5D56599D06D676522524648880070F59FC5CE6396D624CA5A994904E97E135BA6794BDA96DD979EB63F36B724") (:digest-bit-test 56 #x01 7 #h"88E2EF4BE630032B1070A74343556A9533DEB30D80D118BA7E10E4FD768800BFBB84793DFCC42F293191EA2F6E088841") (:digest-bit-test 57 #x80 6 #h"FBF28B63779A82B08BC56C0F64AF384DC53F0E91571F657F21EAA0B1DC9291A4CEE0E10511A59CE91C7CFFD304958EA6") (:digest-bit-test 57 #x40 6 #h"1D2579E0A8B4346E99D7782078EB6492786CCE7DBBF07D2922D627FCB5DC3E10CE692CAE3CC3E4960A71C9323704AF67") (:digest-bit-test 57 #x20 6 #h"D6AB1B4CFA6558B975826A70EA613DA689698096A043D4A1D7641663AD83C794B5A991822EAEDEB9AC2915F1F6C27B36") (:digest-bit-test 57 #x10 6 #h"479AEF93493200E4901EBBED9329A2F7886158839E967F446BECFB104DD6C99358347B55690C054E203C30F43D604A09") (:digest-bit-test 57 #x08 6 #h"4BBDB2B3CB057503FC5FF106E60E359ABCF43AFCF8E9151A2A338423D44D981DAA0D205A36E8550466EEEC07DEAAB64B") (:digest-bit-test 57 #x04 6 #h"A4FEF59249DF38ABE07039EA73C13CEDD965CD6CFF1CFA76FE4607564FDD4D00BB0125F28B993D521CD2B78F832871EB") (:digest-bit-test 57 #x02 6 #h"22123850FA79D76B380D3ECE62D761C94315D4D3250B55EB621FE096ED56DB8C77D275C37EB4520E8E7F479EE8742477") (:digest-bit-test 57 #x01 6 #h"4AA443F1DAFD0995A8FCC15129319B353A40B7912F8AE0DA76F0749DCE62B3D09655A165763F524C1B58D9D1B9E61C5B") (:digest-bit-test 58 #x80 5 #h"6E50E0C1B5A5B58AE348EA9620A60E1252364116F479A8076CF210AF0146B859649B5C9BF20BFF3253DDE90ABA611D22") (:digest-bit-test 58 #x40 5 #h"28ABF78C68F2BD9F2FFBA49A16974161F490E6E7FE010B3E8C6D8F1988C63A62B3D75450EDDEDD37E6486E8F92309AE1") (:digest-bit-test 58 #x20 5 #h"D95B843B96A7550A76E22335EA3A7484135950973D02184B425EE6866DC33A5BEA8F0A46898DC5DB21703F78E0D4D34B") (:digest-bit-test 58 #x10 5 #h"96C4D77996BFDBC1FF5AA0EA47C899E4B32CE3E1D178110CCBB73656988DDEBE7880EB7AE5138D0F2A3AFAB175A44422") (:digest-bit-test 58 #x08 5 #h"2F4576F45A8B0F7E9D86EE78CC7741D3BF9E0CEDA15BFF898D0E65AC9FAC06C4CBCD403980424463F85D5A70AAE2A5A6") (:digest-bit-test 58 #x04 5 #h"56468AB2C83BF07C2B7AF251E3BA4FBFBE0DF602501250F0326F2CFBC787CF77A3C87D81B6BB63840F570D53E60607BC") (:digest-bit-test 58 #x02 5 #h"44F9CB73FB751020D44A5967192777782231CB65B4B07CBEAFF78412F0CEB32E3D2C587E8A28948A94858BF8F7060263") (:digest-bit-test 58 #x01 5 #h"DDC2C285173F55FD0C155F1D09A76B032A93021BF41D817EE56380A99A094548D27187CD0C769C44B85B381E603DF242") (:digest-bit-test 59 #x80 4 #h"7981A30EAF3B919264879C2B74F4BB8BB7BAC8E5087B2E04500AE0F72E37BD586E6DE46F2F380030D6B1D638B9C5D809") (:digest-bit-test 59 #x40 4 #h"CD5D50179F7468AD7B798DA40A850C9FB434302ADCCC36E8BE94F9462B78B14CFFC23E28E8006975693B273830556A65") (:digest-bit-test 59 #x20 4 #h"FD67D2CDB061559E6687854107F27D752382606DB6C810557D1D4B348CCCA48B34F8D240E954ADBD2A3BF564CE9BBC02") (:digest-bit-test 59 #x10 4 #h"609A0B3D153C0499A3F3BA63A724CBFA49A00BF049E4B66ACC65D8642D935AAEC2E3EFC5EDF2EF0DA9E265A451BD8886") (:digest-bit-test 59 #x08 4 #h"D22FC8317545E2C58FB27FB222331C46FB4300C8D9CFD4610AB55CD90C8C0ADEF86762AA074B0DA495898297DBD14103") (:digest-bit-test 59 #x04 4 #h"14F14D5D4AE77F93A80748C8E79E16C1904ADBEB4A9811EC609DF9B0273819E0AC345ABEEB5F29E282FD628F2E74FA9F") (:digest-bit-test 59 #x02 4 #h"453C7F938A64901FDE8DF00D0BD1CABE019EB371687CA0007541866F03C89C0C7900E1B2EF8920F97A58111B727F35A7") (:digest-bit-test 59 #x01 4 #h"43C55F1CB0DDF2B85322AAE37FC3786C150461DAEBB2FD5AEE0E4BDBD4C365E436B39210707AAD021EA9050264E691AE") (:digest-bit-test 60 #x80 3 #h"62B0CE31A3E3B66B413A57A0E9AE4DD9108662D233403FA3DCD2A6135E0D9B95A5509FD72EEA90D33E193A97CA917A9B") (:digest-bit-test 60 #x40 3 #h"458D5A649CC1830173976105C00B16511776113BD8226AC3673AFFD5161B7C25BD2D11BA10497D7EC0D7EF853B18E569") (:digest-bit-test 60 #x20 3 #h"C6BA434EB837888A7D4C6122FEF3D652C0A166E1CF9F4965364FCC5583DF30EC3D2B604B3C122D4E5DBDA837D2A60D4F") (:digest-bit-test 60 #x10 3 #h"A947BC35EB6B1F21E3C5DDBA72E1B2D64CE5A6C467D2B82B055BF356C024241D1DBC1CF63791C3F5430C144C26867F45") (:digest-bit-test 60 #x08 3 #h"98846750A274934B855C6359FDAF9CBCBC409C8AC610B64A71448B1AAEFA4358E73A529740F870F99B5A0CD7886E6FB9") (:digest-bit-test 60 #x04 3 #h"BBDC13A658F07861B4C7D0F6DA3A908385C953B07AD540AC35D404769026BEA2C82F47AF9083D55F04182C51F4400510") (:digest-bit-test 60 #x02 3 #h"D0C366A3D84DDA8DA01F88DF12B6CD6D2C73E6148CC6A9E180DA4181B33F56DE8C6344F9BF2EC0931721277AD0038B4B") (:digest-bit-test 60 #x01 3 #h"9943983F279FD61D9815FCD2CBFC38718F1126AC49B03520FF9A9F3EED8DB929085E54C3F97067032CC75D06AD06C8DB") (:digest-bit-test 61 #x80 2 #h"C7FF6160DC30E9C666D8C51A802005DCF3C5826B355A9EBEE7CCA819798DB933D327093EBBEA4CA34845FC36B763AABA") (:digest-bit-test 61 #x40 2 #h"AC542B077B0B54A37DDBBC2DCFF28C0A6DA52FC3F0020FA4FCB49A38F3B212A19C3ACD5A7811865DEE4CF4EB33CC9846") (:digest-bit-test 61 #x20 2 #h"971A82F3325130DE0DF116B45C8AE2B3DE7CA28E5FEE75F55E02D7466D8F503A8864785576BE059D96387C01DEB0C601") (:digest-bit-test 61 #x10 2 #h"11AF2743D9D26A35ACFEA0E9D0FAAF20CEA70A17846882E38EAF7B655BEFB69FA8079EBF77272FCF7FE53767C3DC17F0") (:digest-bit-test 61 #x08 2 #h"1FD68463A66BAE15E59A1847FFA4712C4EEEB98B43463A78401F0551E6B6F467D4577AD1D36CE4D6884FD8E994932D9C") (:digest-bit-test 61 #x04 2 #h"13B401050A3578925B886FA8DA78ECB5D01907393E8DD857FE61E4332D264DFA633B7323DF7B5C0AA3D441A06B92E33E") (:digest-bit-test 61 #x02 2 #h"856F1C67FC6E64EACDAF0EDDE8C5A1213640242754E80F1F2C22B44AC081E2D447A3270A8B3443C731B5AB84DB594DB0") (:digest-bit-test 61 #x01 2 #h"F0679E97D14E708E91E5B0DD23E881B0CA00C59AF517652C4C5D64921CCB77657DECB38A8974049CB35A99919B8036D3") (:digest-bit-test 62 #x80 1 #h"2E0F72DB4F315E84977756126EAA3718AFA293CE60DDB6F671E726BAD17FCC409489C20509B208421C83BAD13E92FF06") (:digest-bit-test 62 #x40 1 #h"2D221439F7B4FEAA8315FE160121DD0170202D25671EF7D2BF5DEA604203AEE3FCB217ADB7F867A77D37119729C29CBC") (:digest-bit-test 62 #x20 1 #h"672846E82DAD7A2C1E18F4F84F698987FB877BDECADB7B64B1EE7C24A0ADC51BCE8A1AF39A5F219B43DD5111862A2A64") (:digest-bit-test 62 #x10 1 #h"33DD69CC0B341F9081C69AF81BBC924DBC2A2127E1BABAF8BB231DF619DDA5A4F8B31FAC293BB1BAF76B5C77175B4746") (:digest-bit-test 62 #x08 1 #h"641740439ED80545B1AE070891D7D98994C5B773B741C6D4C1A36B775B398E865D99FF99B292A21C8EEC629826CDEBE4") (:digest-bit-test 62 #x04 1 #h"6748B53EE8C5A94428B99F784E95C567DEAE07A507A53374E311D8178424714E1BE696A9F87490CF5E30DBDD8A2672CB") (:digest-bit-test 62 #x02 1 #h"5916D5001F36E15D3B9C2DF8081D1F87359ACE5AB200D342E50883D0CFF3DB51F92392DB4B761E9F4B3F3B0B060FACD8") (:digest-bit-test 62 #x01 1 #h"1C5BCCF7AA8C7DA0CC04676BB9DB3100FEE2011D5CFC4A28EA2BF29D0AA4B7617D778EBBD1F18BB11FC9EA231FB41173") (:digest-bit-test 63 #x80 0 #h"66C356AEBD0DE7EFE15284EF7F3900AC1150070E7C40A0670D653080E6E1C0561F05E43B5B54DC25AB3C02D1ECDAE794") (:digest-bit-test 63 #x40 0 #h"3C92A17985D747B5247BF751F703942BE94EABB774F821FD52F3850E7E720A90E7EBD53DF372CFE616137EE64381F51A") (:digest-bit-test 63 #x20 0 #h"76C8558DB248D60C5E47389BA1A11D285568AAEA4777DF43CB003B76BFFB8708AF8EA498A595D57B7A75C528355DF105") (:digest-bit-test 63 #x10 0 #h"36B3A1107C5C6478B7925B947CF5E3B45E15C4A2B0BC90924132BA365134C02762D2FF4CD0F04DA0EDB32383B2DBB801") (:digest-bit-test 63 #x08 0 #h"A9AEED8CAD8D2C60F32F94966AE67C7E79E6FEB60688A0EE790CE57B6555C2896534DCD2E23BBC9A1390EE2016D10C3C") (:digest-bit-test 63 #x04 0 #h"2C1C3B6CDBF71D2F199DCF28E54C3C64A400F6B257804DC238E851D6F826255873247EE18EE8C97124FB2A070FE2B973") (:digest-bit-test 63 #x02 0 #h"28496C250B56EFF5E650103B6487F95470B6FDABD2BA411847F636DEA7A7878693AF633915DA2EB1CD0CD8EA1DAA19A2") (:digest-bit-test 63 #x01 0 #h"A81AC80022B3315A5251A341A9F5243FF9CA833C3AAF519282C64C6D3078901D8BFE6959D0E3453EB52CFA7AA2CCF296") ironclad_0.33.0/testing/test-vectors/sha512.testvec0000644000175000017500000024556111305364032017165 0ustar00;;; standard tests (:digest-test #a"" #h"CF83E1357EEFB8BDF1542850D66D8007D620E4050B5715DC83F4A921D36CE9CE47D0D13C5D85F2B0FF8318D2877EEC2F63B931BD47417A81A538327AF927DA3E") (:digest-test #a"a" #h"1F40FC92DA241694750979EE6CF582F2D5D7D28E18335DE05ABC54D0560E0F5302860C652BF08D560252AA5E74210546F369FBBBCE8C12CFC7957B2652FE9A75") (:digest-test #a"abc" #h"DDAF35A193617ABACC417349AE20413112E6FA4E89A97EA20A9EEEE64B55D39A2192992A274FC1A836BA3C23A3FEEBBD454D4423643CE80E2A9AC94FA54CA49F") (:digest-test #a"message digest" #h"107DBF389D9E9F71A3A95F6C055B9251BC5268C2BE16D6C13492EA45B0199F3309E16455AB1E96118E8A905D5597B72038DDB372A89826046DE66687BB420E7C") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"4DBFF86CC2CA1BAE1E16468A05CB9881C97F1753BCE3619034898FAA1AABE429955A1BF8EC483D7421FE3C1646613A59ED5441FB0F321389F77F48A879C7B1F1") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"204A8FC6DDA82F0A0CED7BEB8E08A41657C16EF468B228A8279BE331A703C33596FD15C13B1B07F9AA1D3BEA57789CA031AD85C7A71DD70354EC631238CA3445") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"1E07BE23C26A86EA37EA810C8EC7809352515A970E9253C26F536CFC7A9996C45C8370583E0A78FA4A90041D71A4CEAB7423F19C71B9D5A3E01249F0BEBD5894") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"72EC1EF1124A45B047E8B7C75A932195135BB61DE24EC0D1914042246E0AEC3A2354E093D76F3048B456764346900CB130D2A4FD5DD16ABB5E30BCB850DEE843") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"5655ABFC8D7999F5A95B943442B6FB92C95187FBDFC245CE31C18A53E9B51A5B05B6B6C21686081AC6F8F2C308B9E9321A32B94C89F73E6FFBA35201B02FB986") (:digest-bit-test 0 #x40 63 #h"42BC8579EDB78B98EDCCD0258D701982EDA188B2C1F1F8109608CFD7235EF87F265EC4323F17433716C0B092AFCB30575CFFF4086F4EDED11EE44CE2ECB5474D") (:digest-bit-test 0 #x20 63 #h"5EC5411C25765EDB2925147F8D8186BBB565B62F67E1414D7DA69320D82747A33D9FEB2838BBF559C93BD42C5900AA921A7CAE294AAE01D2240B6809C80F9795") (:digest-bit-test 0 #x10 63 #h"00F5F5F323776140B2F03997C53DBB8B8CE8E65A06CB23C77B74170AE0C43E842A23E41397D75767D77BDB339C41ADEBC98B817728ED322B70E0DA9FE5AEC843") (:digest-bit-test 0 #x08 63 #h"E6733FCCBF0AADFE888017FE3B2436212F17E14B9E1EBC37FB37AF749F3B790B0A457979F06A7D90AED913C2B05D98E99FB56D329748B89D1E4450F339674F4F") (:digest-bit-test 0 #x04 63 #h"C5D6A596875568541FE92E61E308A38D8B2F0B7BD7FA34C3E49A32A85DFD3BA6552F5269A8EDCDBD46300018E627E09D8E62983E1B899A69B9496811C643F5D7") (:digest-bit-test 0 #x02 63 #h"A4CDA617DFDA4AEAE967B26721EF0525E839B64B9C11EF9E5750925D59E46F89F956392A2BED94FC136586AF97F4D703E5C0B4C678E4AD4C047602DE42337A1B") (:digest-bit-test 0 #x01 63 #h"FE8C073EEEAFABF2F6DF1E6A8DD833FB1356C89ACA150FF8C9FD37FE050073E249EC7D9C329762921D06AB0496C59B331E0A754E2DFE18366BC185885A26917C") (:digest-bit-test 1 #x80 62 #h"D6B10118E80D2EF70B798EE0612695E8BE83694FF03DF99D673A9C8F320FD1DB910482C48CBE2829685617E03B70A831CACBF9D4708B70F5EC44244AC52EDBF8") (:digest-bit-test 1 #x40 62 #h"9CEF1643E18DAB9560B7FBDCEC81BEF22D8EAED1219287E14A6F19B436BEB751E3F52ABBF23694CE62118245A595CF88918B7C7F6D5BB728FDB728C7AB9DFA85") (:digest-bit-test 1 #x20 62 #h"ABC0EEB7411221A9B5D6029DD0A84A3B7F736A7229F85478B23A4816E432BDDE3B14B2DF5AE47FD374AB824DFEDD9BC7B0F0547D64BA847A2727F185D82B2970") (:digest-bit-test 1 #x10 62 #h"BC3787FCD453BA8A6A2F3680633B48A1674F6BB7E06B0AC825ACBF3B5B252B43313B247C73CD09B8D6BE3F7B39FF2550AF9AA94D3E27A84C211F59A2CA87FF08") (:digest-bit-test 1 #x08 62 #h"0CD70245E99F61E326F4CAFDD77E0F7C481487C44445315972804F0E0A57EC1AD3819303B7C13984349F7DA5EE4E9230B849C5595AF7E0538237469F34F92FD2") (:digest-bit-test 1 #x04 62 #h"592934C289ECF5FBD8C0B8C9CADA466B13A07E9AB984EB4811C7C423F8B7C7C9AEB1D96933C20DB220947E43FA40D2F0754286E397A7BDB7AEE97918A6260873") (:digest-bit-test 1 #x02 62 #h"4443368DE2561E0B7F4030557E080066A39147360F7AE8967160B275929644EDA7DB275F2778FEF3AC3EC28060C29171803E0A8D39B0CF65A0CBB18FBCD3986D") (:digest-bit-test 1 #x01 62 #h"8963E44F2213058498D116E114690E241BF39250984FCB4D2FCA692C4FDA26F636ACFE0054A4CEDFA1A40F6442593CBE8E6884AC8D5D0D81A83AB8FB2BD74289") (:digest-bit-test 2 #x80 61 #h"194432B1086B73704F526F7106E6CFD807F715085BC9E6518DCE4036BEF5CE1C53494EE37AFEE8D21577DFE9FAC8535659DB43336FBD842F784C98FD856D3F45") (:digest-bit-test 2 #x40 61 #h"69332268608686EC7228FB03597020D104CAE3EEFF2FFDFF129A7A375DA660D2CB0A0C549861358583C6DD9B7E72FE306873ECA1416B106EE8F5E334B46CF105") (:digest-bit-test 2 #x20 61 #h"24E867E1B0024AA1D0C7323BB833E3C5E9109CC4CDC1AC000148AC18810A1B1F3B7DDC548D003905DC8C707524CFC5DB5177167A6060757578BE969B5A3AADC0") (:digest-bit-test 2 #x10 61 #h"F22BE2E5255BFA586765BB11F3BA6117089439F5B99290780716D783FD68A833785676A8CDFA7E8C465CE41FB861C7CACA06BCF61AD14749586D5874066DFC45") (:digest-bit-test 2 #x08 61 #h"20C9ABAD1627ABE0036E607EA823FB5298FCFB85CD5A6446FC98D7AFA5189634D7D4A9B80707A344CACC9D9A07803A139230F8A75439E2E4A7B0B73781CE1039") (:digest-bit-test 2 #x04 61 #h"635D9888A45B4534495E0185D272B485CC2EFED1EC4260A0CFF84DE8CF0CC1FF06E5A98001172938667335FE2543472793E617DA4AC1C75960FFCE4DA56BD69F") (:digest-bit-test 2 #x02 61 #h"1DEADE855339AF4F4DD676DD127B871964D6D6B9693D38029F56A6FB824DF6FD3AAA3EDABA05B729BDD62BD603E1A1E4C32C24073670C0C72CAF8AD1126D095C") (:digest-bit-test 2 #x01 61 #h"F13C5A443AD5A55ADCC4ABC00F2A508A0D49C163346D434BE5CD63F79B9E4AFCE06D8A2BFBE8A4695ADB0E6884F43E05B494A7EC7ECF1E2EAD3BEA220698D107") (:digest-bit-test 3 #x80 60 #h"1DB013A5FC42EE92FDC4B1C845A7EB01E7177EB7293F9D313929506440CC0DA7743C2D09C271823CB4746FAE46DD51E8D77F5573D8C3766458961648E0D5775C") (:digest-bit-test 3 #x40 60 #h"A55266D73830BFEA4BB8B1B95135E6CC6A66A8DC5B6E984F9D9BB4F480316985936086F7933AB30BA83E5F2634A9FFD3CB452C8A0A7B2B3715D995FA9FCE74B0") (:digest-bit-test 3 #x20 60 #h"31301EEBC89F3E2EE284F04BF425989DA7831C0E547B178961633F825F725E9C0284BB64CAA3D3623CCC6BFBB737DF56B9B7AC754B555DCD5156B4FF0429F3AF") (:digest-bit-test 3 #x10 60 #h"433608282DEE28AE46D61B1941C520B613F4D5366B91E915102A1B41EE75FC84D75AEC43C6CC68BCC7E6C093C44414A2D5E42747FCD1C70DC1AEA3548A6B3B5C") (:digest-bit-test 3 #x08 60 #h"58722A82A78F3DC59ADE9AB4DFFBBF5EB10E8F49920A3C7B06A2591717EA41915425B5877EC857A34F5B53EC9A36AAFC930A4D9D4EA3BC361749A5F3BA6FA9A8") (:digest-bit-test 3 #x04 60 #h"8C324E7E3399AD0F8669FBBAF53516B56E64892FFFD5ED6811D47436512A9F9289D17BE00D9F43C2B96903C91B435CAEF80037DB8C5AEC551D6FD61E4FA4FF0D") (:digest-bit-test 3 #x02 60 #h"B9E916471A2957524B58D5472082693C5F64E86C5C02ECCA2BA1EB02B45A00164059D2D5CBB994F656768920A2C288DCFDE029CF401B560B1D6A5753A0441C39") (:digest-bit-test 3 #x01 60 #h"CE8410C84A93A870FD5B81403A249E089556A2AF0B2C653F195F3AE7FA6C883F7AA2440131758A7273ECB9BE3FF64FB8C1EDCBF9A4A8A1BA6E167D75401A1BC5") (:digest-bit-test 4 #x80 59 #h"BC098731773B0DA621D6A35C618C690FEA84BCFE8E4F86B0B501C44C8F13C6042E724A38F9819B05E06CA9341DB83DC3086C0F0C3C862F5920A956509608485B") (:digest-bit-test 4 #x40 59 #h"46FA6EB4402E7815F8DA0A804C9421ED8BFD4D2E59ADE80CF17F468F5CC7363E6E3BFC7F0F3EC9323F09472916CD258629B3743EE3ADCF4B4F5FD8DD263D2B34") (:digest-bit-test 4 #x20 59 #h"3D043283FD431452CB224777FD0FC906E76088824DA62E0CB1F499E54B0989AE1840ED861102BA68B59D083B752CAA8152FCEEADD814813494721EC844E4EC16") (:digest-bit-test 4 #x10 59 #h"AF369E97A0DC14B668153141DE82EA1AE39F6DE2749EFCE089D306C6B2CAB84188D601210DD3843D879E8E7ED24EA0213702FA622CB0F972BB9FDC48E50DF565") (:digest-bit-test 4 #x08 59 #h"517877D377E43763FB43AACC84E2276842ABEFBCD7EC903A327C3154640A461D6EBA6AA5147BC7E66A9A36196F19E7CFE6D4F9C8E81F07A896B04656F2858D48") (:digest-bit-test 4 #x04 59 #h"D491E34BC9C7DA141AAB286CD807DA593AE6A6864A6953C05E233D564E18D73A851BD02D9969C615C9FC8E2805307A2D6450ED65845052ADB5A6FACDA7DFE67B") (:digest-bit-test 4 #x02 59 #h"4037A8CD2C57CED0F9C7FA1D91919736650AB81BE3236CE17684FABC88E81C643476A26491A9EFBFEEA1C8C78CDAAC851E0383924D5DD5FF537CB384C8670199") (:digest-bit-test 4 #x01 59 #h"6AA5657BD67860E4D151C2F6AEEF87DDA1409FF708010902631A9CABA4BBAF4FBD4822E18A06FF26C586B0FB385A770A4A2643F0010998D89B8FD8812AA907C0") (:digest-bit-test 5 #x80 58 #h"BE9D7E52060D4CE12F3BCD2B727BF91B8FD86F20417079529A93044D5FD51D86D6B427519ED726DE9E70663E35CAB07CDF4DA576B470C9C2EF8886580D5BC9E7") (:digest-bit-test 5 #x40 58 #h"F59F82AB4D7B8A20EAB4878F42E6E0F4D70B7CC74B1AEF8477747BF3184782AD95AD7F4EFE691FA1B2B80C3462DAB427E79827409182DF8BCE82124F2EFFB721") (:digest-bit-test 5 #x20 58 #h"54AC5E35F00B7FEF9470CD01839DDFD2E9418C0C7C39A85FA3768D4DA5525116D62C18BD37428966DE14C7278F80EDF45395FD5723E9ABDFBCCC9A72F96471E5") (:digest-bit-test 5 #x10 58 #h"B91B4550D9A0E98AD3532BC3FACFC8716C59B0114E298143D9FC3AA0EF4DCB0FD48D29C0B134A2281384250C3D94E724412FDBB8EB0B6D181436DA064CB8AE82") (:digest-bit-test 5 #x08 58 #h"D252A80DA8A021D8E4454D76D20A60CBF5D8CDC3D113CC81D2252C4482451F2911B3F1EE328C3FD46D9C19E637539861C60E3DF68AC43F01DF6F3F719B038E03") (:digest-bit-test 5 #x04 58 #h"6A139183DCAF8E19560592E816A534256E68CFD0AA7B23EC5CA25DE41ECA95575C5083A81213172E06A0BBB267D3236EFFDFA209D6577B78EFDA1D32281C2458") (:digest-bit-test 5 #x02 58 #h"C6BB247DF5AB4BF9F75C84584C6232218C806776D79851890D1CE3DD8CF6F8BFD30F41649F55E3E235D631D220A93AF78604CB44E86B1C8C03662716A1B0BE43") (:digest-bit-test 5 #x01 58 #h"4546E1966C6E8BABE90BAAC91893BAC1F7D52115129846470F62EC72AB0FB567FD6BC12BF33A6BDA3D32601B782D7FDF5909FE0B3CA9B7520386C28428DEEC58") (:digest-bit-test 6 #x80 57 #h"4CEE07B1CF7D1BC622CA0F6E9F8C2270ADEF6B7533D1B41562B0869ED44A31FC9F5850729F252D34679EDA80D907578393DF463CF599673AA50647EE0BF9590A") (:digest-bit-test 6 #x40 57 #h"5F45812F394BA485FF54A3ABE6D0DE2833026A53494540BF3B96EF447E8304942C252887A6E99CDC1946E842A02EB3B65DC472F047039582E5E277E428378E32") (:digest-bit-test 6 #x20 57 #h"EAC178B95C05B87F17F74C2F962B2F2A21EAFB2D74C42B5FDFEB629CAAC2C48303729045083D294F49BD34F6163076C19C2BAC5760532DE769580651F7DAF313") (:digest-bit-test 6 #x10 57 #h"E96936FC0C80DFC0A450970EE7677054D4B3B96E02845C76F61DE391CF4656A94CF82372F64D399C06AC205A7E9DFFC8D8226F5F1D50D08B090A74351320EF05") (:digest-bit-test 6 #x08 57 #h"A9F06016E170C5A698E60BC9F5C18D7D250F9E21AD482FCBC5ADC980F8FED369E811A96A3CD14749C55A6C470B20479B3714214FAEFD7C9843533B8577BE1939") (:digest-bit-test 6 #x04 57 #h"8704CDF09A0AFA5C2435982D9DDDA32CA8806F93D2B42785F108FC531FA1B9380BD5EF1371957FA9E7A4BACC43A7C30A635D33826A65D4E3F357F513F47EFE91") (:digest-bit-test 6 #x02 57 #h"29FAFC3B92EE32C91A8D44DBB088E34AD0D80FE80C29ECF73EC7405C253E76FECEC89B00953492718B3B9E50697A5049F878918F601E65710AD3781E6C6503E6") (:digest-bit-test 6 #x01 57 #h"583E692DB24C8249E33E8C39AAD66855BDDB461C444F174D5E05228C1DA300B6585CEAACDCAD148F884F3805D39471BB331DCDFE8F1AADDECCDA1C99366F5291") (:digest-bit-test 7 #x80 56 #h"4C30BDC3CC0B05AABABCF2767BA55FD361D7CF57C31D8293F3EA8C913AA8E5489AE69AF017FCF2079ECFA3E04A76454F6D5409488DC546B499D57AF1B480082A") (:digest-bit-test 7 #x40 56 #h"B70B73528934979D67121DE12B037ABC0E9A5220EE070BF0D96A93F7D6A927292B27137E289786F486A7B3598F5237115006AF28F89B95EFC1B4CBA9C088CEE6") (:digest-bit-test 7 #x20 56 #h"7E72545E0028BAF6935E84E63027C02B2A88F51A3B44BDBE49E6A6BD9545D090362836781A0BFB10491EF5D1000E93F7D59ECF939C5E8ED6223BFE78F95E0E03") (:digest-bit-test 7 #x10 56 #h"178B2D6722D2A84E67C1E300056D280351126B056E495EE167C466F7DD19F087948D5BD260F77C1630B33AF5F9F17E4317C2C25C20A2A31B60843CA54B93E82A") (:digest-bit-test 7 #x08 56 #h"1A292525015EC06194E8FBF533E2AA9FC79E186C2A59423A9AE69A567001D3CDF21FFCC85F1DFFDE5CAE11F0F52560D9F41FB68E614F33AB0DE71F3D3F9B4435") (:digest-bit-test 7 #x04 56 #h"6A547ED7C565B308309721F6F717EECD2DF3A919F9FDBB509B1EB2A9A138473FBB1AB9948270E8665CE3337C8279A44DC06A1E5E43C7E1852D42F1E24092E9B4") (:digest-bit-test 7 #x02 56 #h"DF9F52F0716BC3E1B538AC289B216A1039718402C143A070F1E3C024CDCCF9DCD95E23820EFFB51F44B67A02354FC1823BFB5C03D57125DC6934D160893C854F") (:digest-bit-test 7 #x01 56 #h"317E8E4A988383231CE409E458C146887D387025D4F0978DF9F90188DCF8F6932F2261341251FEAB5FB785EA749B919F45485E65B683C023DB4071CBA71AB966") (:digest-bit-test 8 #x80 55 #h"F792B79EA61E9C68D3F9286EA564C2902EB8D502BD031ABD080E815249A56684F14FB27DFDA4C95E5D54FD609C2696CB47AC78323EACEF27961A410A0ED0681D") (:digest-bit-test 8 #x40 55 #h"6A71C349BEAA6CABFC78FE081D106D4B5E71374DE108421F7A6908CE3612DAFFDCB01B36A8FF0FDDF72794687CABFA53A0EEF68C6C0B9696B3D5FDA7B238940E") (:digest-bit-test 8 #x20 55 #h"5E95CD17205856FB1BBA0AC2B218E6D7D2E24E68263D6D2DF804574EEA0A6A343D421B2BC01B7A0A3EFD97EBB2F24FD1AFC6FC35E0289581E6755CAD6BE4267C") (:digest-bit-test 8 #x10 55 #h"6118BB66961F2EA6D06E4DD15FC716D65E5310D40F1F1F154EC75C566E6DABE03D6F7215468AD20071166DF291C48723E0DF49D12743525162E6849D36C6FD97") (:digest-bit-test 8 #x08 55 #h"A3DF1AA8271255AD932E6E481F0BD6F15651EFDEA063EEB1322DE2565D5D71E4F8035D8D0A41B56DCB9C5E20D7D04EED3D6AB35CC546AAB3A15EA62AABD40C92") (:digest-bit-test 8 #x04 55 #h"0D758704675058AD73E2EBA2846E49B1654C4745A95A84BE227972E49C96B494FB894C9E7ED94BFD28DC53A710B0ADE9F38BE1C307FF459EF295C736B25B6104") (:digest-bit-test 8 #x02 55 #h"6F1BD76ACC8D7B653646DBFD8CFAE6611AF1B5ABF53EB55A9592D98499E2CC64B73FB2CC978001991697568C42AC04CCA72929EE6013CE29F5A4F8558180FCF3") (:digest-bit-test 8 #x01 55 #h"10F9B83FEA4BAEA2E10F5A0DEA4039A5AEA83101C8B6C41D8FDA31475692E74A8BD2D98F027E68A3A7F53EFFB7D81424B06689DCC594541D0AE90B175234110A") (:digest-bit-test 9 #x80 54 #h"A80F20F7120E27F4F37CF3C4F093D43E98095547CF4F2506398A72C64855149C87A4E45A893C12107BBFAF0EB9EE9CC60FEB0D50E03CBCE2DC22EBB33C54F93F") (:digest-bit-test 9 #x40 54 #h"079C824A9EFCE435F3F46CF78E24800ED06A0E203E6C4952042F4E0B8D737400A1CE940AA45D15161531132E9DBAFB7C5489C0DD88A8BA25892559FB6333248C") (:digest-bit-test 9 #x20 54 #h"836F9D9AE1AFE1EAB3C2CF6A21C710CEE17A7BF4D2DA5CE85EE238CC88158B1800B9B328B2004FF92F8A4354EA6329EF9B6DBE63914F067D9B878535B5B338F9") (:digest-bit-test 9 #x10 54 #h"0E9BC0DE2570AA4E99FDF4B45738FC266A9CBEB6B63C21CE357A5B71F013560454319F05645DB89D194FA2CC9BE4A227FB3319D76498C26E9D2A054875026CC0") (:digest-bit-test 9 #x08 54 #h"137EB7957C2536FBE2E7B527EED8AFE6B880B98F1EB5BD6A1E4F22FC0C9E2D4C717C387415B8324B522E8CB1B6523EF3E485EE319CC76024D5330E33D479C70F") (:digest-bit-test 9 #x04 54 #h"A8017E56C70DC97118FCDCC4BB72B1ECFB856E7B8FDB9EAE4BA959EED1A3F96B2415CF2913C471430318BEB4F53D74C1859BB433AF1C44E1328E7D62F867C905") (:digest-bit-test 9 #x02 54 #h"96A7C5D1B56B4FAEF12A9D1F86ABE023EFC08376984AD5D37FEC2139E18080DA72394D3BDFAC9C03507DD2D236E6526A5A2EAF51868583B3562C6B0BB72C0C0D") (:digest-bit-test 9 #x01 54 #h"B4F7072B8D5417FEE6C1A536C7165F99768DC4EBE66945D33B41DB8C08DEB9C19665F8D367546C00599808F64D4E377BE2408C5E49B4950E4F155FA017F79FBC") (:digest-bit-test 10 #x80 53 #h"13F2075AD9DDD24B9E8284DFFA009705D957AE70DFB19885A875956F851C36AD8105AA35076DBF007BE385FE21253B68B2DC82C1B7783892CAB7986586283EA5") (:digest-bit-test 10 #x40 53 #h"84B9ABE00BFBE335508C463A671D720E18156D0FB63A9958556AE97546575CC6CA693CBD29071B658ED08E192CBF210FB4EDA6D4DECBC79C173A38ECEFA46E7A") (:digest-bit-test 10 #x20 53 #h"754C8292018BDF7F870BECC30E3D16594AA39A350A83110C549FEDBC0D0C8644AFDE23C29975FBE759BE64DFB0A2FE9D0F77E70E9EC099DE1E9ADF5FB8A16DCF") (:digest-bit-test 10 #x10 53 #h"62B96F76FE675C9A2DC6F64CB6E345C5E7F05BB873EAF2B5405CC798324E906A56969DA6F349E952E928615E7007015AA5DA3F916646AEECF30096BB3F36DCEB") (:digest-bit-test 10 #x08 53 #h"DD4A53ECA26C4450CD44E3040F3674F735710AFDFD43A06BF3A1CAD05FA5EC93CCBAE5F6FF2B9D2D13B6D7AA20232C096C1D5736C5BAB04E368FCCEABF3C37D9") (:digest-bit-test 10 #x04 53 #h"B5B553B0C346C777B4482E1BD1573351AEC8A4DC7026E6BC89A752CE82A2DA1D0C355F13D056147E1D1F3128AB36D79898A4C56822730259F6D7C378FE6239FE") (:digest-bit-test 10 #x02 53 #h"F96060F3BEA7DB387931A4062C451F877E3482DD5B8944392170F519D2D0187D40D89BCB4DCE3B5474E410BB89D57DB0F97214C886D6644E47125BDFFA403C39") (:digest-bit-test 10 #x01 53 #h"410EA01380D0FBEAD1E9BAA17EC04AB382708FFCE3CD2FE173DD421A25C075F0B8676E05A93AB327C0504131CF733F8B759501FB30793C1093079D8FEF44A0A7") (:digest-bit-test 11 #x80 52 #h"C70C3524311A799EB7B8B420A8EB53C3BC434B7A89A237F6E78D25E058C48B52BB148A484677D98DDCD33E577993FC757D646D83CDCAF7BE779E37575784A990") (:digest-bit-test 11 #x40 52 #h"37373C2AB013AD9CA686E11C603C90ED1DDFE004810D94BEFCF7E5DF800C7135B345668FBF0753211B1903BD4EE5EC9BFE8298F62034AC470C4B46AAC82C17A9") (:digest-bit-test 11 #x20 52 #h"1596CA087099718556E858681B2F0463A211ECE912C0B04E1234AD57479FBEBABC1281F5CBC1DB24C84E3A1A2B71B2FE924E7C520AF4ABB94EFF2D4848765E90") (:digest-bit-test 11 #x10 52 #h"962DFB2E0223EFBB224CABC43AEF0CD9971CE28FE4202127E0958620C3CB0E829B8439F764D581A46ADA9D5C61DCE11122913AAF9BCF82CE9E4F95259D96BEF5") (:digest-bit-test 11 #x08 52 #h"1E730B2913A1C3AC1934010FEB40A9A20C541A96EF48732CEF04AC1F934E0105AE6C7364C2A551CD1004D2B74C369F44E93CE893712E1F7D2D390CA87D13D7DE") (:digest-bit-test 11 #x04 52 #h"93B0AE3E59EB59038AE8304D1CF32118B004BB4390E48BB3249C5EAAB63BF9B605FFC57EBA052BEE28DF02372AEB950C0DEC0BF696565E3A78BCCDBE998431C4") (:digest-bit-test 11 #x02 52 #h"334BB60DC640E1081AAAFB7586776DB5617B1A9D4EF43752447FC649E374A4967239FD0C80BC9AADC952073762F3CAE96919A052E5303C7D05080B180D63EF18") (:digest-bit-test 11 #x01 52 #h"54D0E5CF1B472DADD16D6F0B9244789C6E3EB8313EA954381CC91DA0E353E46D488FD9C14FFE82C6F331906DABDF14BB26C9D7DA438D46ACF016967E308A50C5") (:digest-bit-test 12 #x80 51 #h"E2E96713B1F99AA5AE71A43CBB8F309917B7E7D297A0261A22D962FDD2C70652BCA72B25566BF19936F1F931A21712BA2264599DA3F583715F389ED43F5582B4") (:digest-bit-test 12 #x40 51 #h"F7621D95261388DAAA9E6770185FAEE5CF37404867139F8E9FF34DA87416BD92CE1BB6BDC3A8D8B9E86878ADBA0D618B4B6DA12A0DAA201736DCD65ED365626D") (:digest-bit-test 12 #x20 51 #h"03DAECB7B974DC832705B804B99C297F6B5ADFEA275F883A7105A0F2B843ED48A3CBC84C46CBD91B8F5E94C8E6BCCBFE5E973AB0DC09360E1CB58615499F1974") (:digest-bit-test 12 #x10 51 #h"DC277A4EB33219E36BCB71AEA23D661B2F528A2B5AB764F1D544E78F91964768BE2919C851F634D2559B2D1FB262777279DD25DC771B625340A3C97B441CCA38") (:digest-bit-test 12 #x08 51 #h"B8545F65329F09CBF558825835D66410AED2D419408128E7E1D3A0928E66896A789A8BACA18948ED53AD10329B3F840FBC029A2D67FA0401808571AC1D57A8A0") (:digest-bit-test 12 #x04 51 #h"DA205D221492E719972FE8EEF6C7B4C2112B2E5E1E9436639A47AAEF5F501B98F99264C04FB6B144D093E877AEFA7CD651777AD630562F00C3C3CDED5E3FE453") (:digest-bit-test 12 #x02 51 #h"F56A942AF828B650ABE35EE8CB0A4EFE348414C53C2CD4A825D901B15D59DD6A23F94C1E905944F0B577F28CC3FB5A47A37DBB82933A0672C4768D4B002FD452") (:digest-bit-test 12 #x01 51 #h"C02984FFB17C5DC20A18C25C0DDA9DDFD5AB6212DAA7266B5FD5C83864435C7C4E647A10E78F442F428814EA8E37B976FC1E6156FB084ACA92B2B0C4B586A835") (:digest-bit-test 13 #x80 50 #h"863412258D0B27CB635B7681236114FB6419A3A855001474F3365AA19FDDDC187530E29ADD8E5E336832E081EA5C3501B8FF23F4FA95DA40237E44074C942827") (:digest-bit-test 13 #x40 50 #h"8565D9494D0359FD1397FFB7A059B312F13078F8D65D2A7B0F634331A7A5A02B5696D6F08600769519E90868A0E6CAD35CE1A2D62F1FE43A06A923DDBE69FE79") (:digest-bit-test 13 #x20 50 #h"906AACF549DC26DE9389777D95AE8142370AC05D4E396D90B2C1A7B3AC46EEF722598AB82220C9FEB9F23B656424F2AB371F00F37EAF55321FF1DCFEF02CA195") (:digest-bit-test 13 #x10 50 #h"59588B098D7AFB9391A3938E075CC3E9E2480D4A9DA74C19D6BB335309B2C240A2D7EA1D44903288E640433C0E68DE9B805134140E7FE8130027E49D94D2245E") (:digest-bit-test 13 #x08 50 #h"68772602DDBEDAF865945081BC520EF82701FC3E5D3BEAEAABAECAFAF858626EDD65FAD14EC87379D0E71F3AB96A5E7235CF0E3E0C3217D2F19A19974F3A7E4F") (:digest-bit-test 13 #x04 50 #h"6554FFEA31DC3DFA4F03F386D222AE79A82D018D65DF5DB05EDB61097EA1CB60B510EDCF3FBCE210E7D710546720281E3B1BCDF7DAAEFB780A18C94D896954CE") (:digest-bit-test 13 #x02 50 #h"DD490D8A2DC613770345E214B3B393F36982026DE99E969283590BD3733F77E17F1B9CAB65C53192E84D8CF8BE6BF4AD882D3C75D197B6CE1CDB30C36A76C91E") (:digest-bit-test 13 #x01 50 #h"341AF3110642F4FDAEDB78F3271DEB0805BD168004FE4A40D636A348B2B6929F06C4D6954B3C18DE9483E24B0C25D321B7FFFE2B4AC64FF5FB6AB60A19A3F84B") (:digest-bit-test 14 #x80 49 #h"AF57ED6DC403831BA733440C6F0FDA0966FD8574B23543163FFD2A5E9C80965A50DBB88B8D205FCAFF4C3CEA946A28B7224517A0A9E19A3C325AA416E9723500") (:digest-bit-test 14 #x40 49 #h"91AA140B77AA4F4E7F982E8797B915073C4352D51B78E0DD61CFB093E03A6A8AAFBDEF4ED90DC1FDDC612E153E55510690A9AD0F16B56DFE7C005083F1E02AE1") (:digest-bit-test 14 #x20 49 #h"6352DE86D04E0F0D029AF15A1704211AD6C555C479016A97ECD2F82867EEF3F4171B53094A5ADAC0A10FB2BC2B349025032EE8C54E6AF6A0D9416FE3F527D908") (:digest-bit-test 14 #x10 49 #h"4EF7AABB010DD69F5DF3C30B517F5FD1F493847C6A24BD07E8DD87F6777305AAA3EF20964CC5B8381A04C5704C62C3EFA827A5F5C51A88D92918779DD7C1AFAB") (:digest-bit-test 14 #x08 49 #h"F5B916BD19D3015EA7215730183915516F2B80BD2CDEE7178033E9228FF55A9CDA9554EEC39D98221A6651909FB28DB63105CF8B1970820F8E4CCB8DE3FE7344") (:digest-bit-test 14 #x04 49 #h"D7BD194724B350AA3D6B81B8137226A46FCD4616A1697C075D2CB06E9227C58BF892A77C0FE5DACAB5BC409023ECC84B0256DD1C9E66E8AB83ADC2E02F0367D9") (:digest-bit-test 14 #x02 49 #h"5E7699798204C49D9E17CC4AE6DF5A5276AAAE80D85192895112FAB1F881BBB72D21476CA879AA782CBCD1176F82C88B3F560621B5A634CC6CF99D0DA8519A30") (:digest-bit-test 14 #x01 49 #h"745EB4EC72890DD2BE3647E27D193893EA70F77F35EB16CD8AC04DB9D11465C2A1E017E3C2D2995BD6035E50F7718A68AA933CB48D9E94EC4FF55F7EC3923947") (:digest-bit-test 15 #x80 48 #h"B03C3EF9CE7EE74D408F743A760F1A245F69C38B91D5CE505030347F5500BFA323A3410270AAE397AC412272D444ED37A7801B042622E4E5DF426EF080CBBAB1") (:digest-bit-test 15 #x40 48 #h"86376FB303CA23D58DB3CB4CF2C56DA01F71E31D2852B5BCD000F47708EB6617E176E6B6F03B9E7412B3FB4047C43FC78ED67E3A5C8896108B28E452274D9533") (:digest-bit-test 15 #x20 48 #h"C836ABA578A8F92080E0AC9276935EB5D95DE1EC7BC11CEE38EFB1B96E08CBD4F88163083D4E2F3E3DCF740A1C9BA87567E8C47BC2DB565898D381606D1B11EB") (:digest-bit-test 15 #x10 48 #h"B96F19DF4F89D25E022E722B1E4DD82F562A7E27EF7885AA77C2DC66737743B7E7BA30F651F801B23C7CA13729637D3AEBB797A13A1CB3C38F0801D1A2C02BE9") (:digest-bit-test 15 #x08 48 #h"849F2F8CCE9EA8F5DB7F7F7B433ED87203EE7BCFE5EA9FA3BF469624F0FCE5CB2F7EB8436114F4CB923C8C74CC53658C45A6AD74C06D55E04D5CF29FC8BA6C36") (:digest-bit-test 15 #x04 48 #h"A9914B46FC89FB8126A584BEEAEE96A93B1AF44CF920DE0BB3F4579BC968D10E32E4F8A5CAB3238F6F816F9E86867D56DE2B28D49A4D7D0B8B3A76FCC5A16052") (:digest-bit-test 15 #x02 48 #h"87776D0B3B2C0AF07E5B031C1F54465EEC75081EE184840E95385F36E9158A204B0E579F0B82CD5CDF4589DB760C3CE75293A56CFA47BD8E335F39FABE2DD84E") (:digest-bit-test 15 #x01 48 #h"9279549873C35821887EFEE9B5E0678A2E9E65A2FDDDA959673E56CD1F364F19A716B587C96EA3D01B64702255BE0ED59133A9EC3AB0D01AEA0751804676DEC9") (:digest-bit-test 16 #x80 47 #h"BF9D283496CE68D57BE0BA7F9621BE6F811938F4455226F0D8E31A2CA5064DA184F953C81E9AA997D551C6051BA1201BBE0508570F900556B4E32CCD2CBFA3F4") (:digest-bit-test 16 #x40 47 #h"FA23021EBBF748CA7743971D7462B2592D3DD5FEBAF84AAB55387DA6C1B11CDC8AF8B3DB6278BD1789CC4D05D4A880ABAF9A3612705624B33F766BD241736254") (:digest-bit-test 16 #x20 47 #h"29289ACBD507DA466BE75A7F3A8F7BB202A75F585CF80799CA815FBD9D3FE10212B0F185AD5194B1E167030BD71D2E3499DBD959C51BFD85010644BE7F717337") (:digest-bit-test 16 #x10 47 #h"1E53BE33EFA614DCAD5A81758A5BE9D08AC56A291670418E481383512187E45EBF47EF44F48B3BDB4F254CF9A26AB829897D39C5EEABBAAC9612DE2A45C01477") (:digest-bit-test 16 #x08 47 #h"1369D9004942C009ED238C617DA999CBBED78F889264FA1A8B2FDC33AE8B9D79B824C82BA72758E3ECDCD304F68B3C54A6FAF39B0CC892048FA7D2DCF2E190AB") (:digest-bit-test 16 #x04 47 #h"D3BD4B8A3F606E7D30DFABF4FEE280EB3283A0E181D3044E2ACB7E743F5F06B48572B72411FA2302C60386442272A22E56CB5A77A5833B441D3019ECBC67E4D1") (:digest-bit-test 16 #x02 47 #h"FA1D2C8BC2B9EDCA939B067994439029386316D8C6E7E6DEAED213CCF9C3A63577146C72EC1118506084A88C41EA1EE06B9EF02262E65E5C1ACA2834D434C9C0") (:digest-bit-test 16 #x01 47 #h"9477454A6AAE17F710D47636B328EA43219E8118729535F0B1D97E7E956F13AE54340D95D64DA120F555D92F690967E918F70A12BD34C1C1A3406D3CEB3CE926") (:digest-bit-test 17 #x80 46 #h"E4BF4EF2A69D366BC71E4EE013F6D30DBB5AC3B5139BC62AEF7CBEA74ED074556FF0A87294B797CB1956D9E90BA49DA627549FF9DA2763E0E0EDDED3DE575499") (:digest-bit-test 17 #x40 46 #h"21ED29152608DF4394E558B17215E8428E97D1D6EFDFCB1C650EBD3DB31F0C8E747DF738A2DFE996B25C512F48EF759CC81D83A9192611CC505C4000E89AF285") (:digest-bit-test 17 #x20 46 #h"30C8F1666BAF5B56AEFB259481B9C366A25734018E4764F0EE902D1015AE4EC7EBEECC1D1D15FDACBD8BFF3CDFA36D082A6E8481A53D3BC3FB011906E127BFA0") (:digest-bit-test 17 #x10 46 #h"25296D54C91266655B46A980E0FFE1DD2EC4AF32AA9BCD0C5206EAFE0496D87868323B0812587C3DB12E248B25D828BE519F95031C09D14B2189DB6DA18109C2") (:digest-bit-test 17 #x08 46 #h"DBD71BC5D9FB9BFE9C7DDB0A7B416ABA3FAD1B2896F57DDF97DE7395E465CE1326428A3A508E0C542678CF97A20A329996BF7320062CB1B3E6C7D3D97548D7FE") (:digest-bit-test 17 #x04 46 #h"F81B5DF074C34F3F379C8DAD0D4417D0397B17B15B71845514E5691A3F71134ACCC7A369CAF984A57D42237FD60A8BD5F95F1D1EBE6DAB4166912246D760ED22") (:digest-bit-test 17 #x02 46 #h"76CC936B0FD7F0103D6877811F66BC86C86ACB5B017CDBAA56ADC0DBF80ED2313072EE2BD8611664267E1275B450625CEF58D1D11ACEFE95FA0F8D42A0C0C7A2") (:digest-bit-test 17 #x01 46 #h"D8694515228A6AB322CA9C6301EF27A715C2297ECFFBB5F96E3A21759E93F2499E3BB2BCF01071A370DDF314F89404F0B9060FEF581605CE4CDD888C112316C8") (:digest-bit-test 18 #x80 45 #h"8626044B39BA1B0E500BA00DAE208DDAF9D8FE39C8C8AD7699542C6DEC20AC6F1CD5D93F43C0393A1518B837E85BCF014C4CD6B518949F3FBE6A088F8D0B7028") (:digest-bit-test 18 #x40 45 #h"61E5B0AE280CDA970119902A76FD53AC9549C4374EEBD19A20B60F9AA31B6313C542115E9C48A7B851DA8AFD4D620A34F5623E05CBCCDD8C6F44F0B56144437B") (:digest-bit-test 18 #x20 45 #h"F89F5ECB6B754D94C98F99A0F8251667BB9509DCAD9766E951D143DCC9F7428DFA2DE59736EAD010988BAB92ECAE04AEAE00464FBC26B833B0EE58416DF3FD90") (:digest-bit-test 18 #x10 45 #h"DD840D389C0ECA2727AD8F4D7F25ED53803BF2D28B68BE7BD856F0F3F39F8BABE75122C08571332493BABD756804CEE5434F34FB6B65F1D20A61CDD854551185") (:digest-bit-test 18 #x08 45 #h"EAC4A4A3A9B65A1D405FB084FBB3ED8E85D9257E1B6A4421818EC821174B9EBAA65E1E7F5FE21E0DB067A0F1A6CE4EC053565D3FB05B8433BA4252C600B50E6C") (:digest-bit-test 18 #x04 45 #h"73E3108981D23EB265200FF4B4143CDED0F154DD87C167AF64871001034DC4AF2FFEDEE89EA3DCCB0A65A0D43C62258736B3DA1CCC7A1B38F05CB3F61DA689FA") (:digest-bit-test 18 #x02 45 #h"6057DC6FD91691E8179ED34A9418368DBE63922D01DE336DFBBC38FC97969EC50A4F9747CB052CD1C5F67E42906E12945FC326A3E25F3B9FB77F11EB99A4EB44") (:digest-bit-test 18 #x01 45 #h"81610EDE3101E07BC04D19A1C49EF9D55B5AE5F015BE2F8B0F56B74652EB0E2D2DA0630849A4D1AF75A36540D5F83F40C4EABE47883AA5604C4A30A4A5203C3E") (:digest-bit-test 19 #x80 44 #h"2F4C76C7058641DAA9F0AE886B37B5442E0E85CFC420C01B6B6B219B7CA6E152660EA641A734725DE618D68AF634F0309144D52CC30B05BD165A3FBE041C5285") (:digest-bit-test 19 #x40 44 #h"CC835A85D20FCFE069BDD4ADCF58D1222A2AD82E940CED91A159B445E294BFF787339DC2C4B8153BD275ABFA921E89A05DDC794D31F5DE81DB58BBE047E8EF49") (:digest-bit-test 19 #x20 44 #h"D0B19DE7DA4A139744F21780C59D00209073C662DA7182AEAE0EE5BB3087281CD222E7FBC6C4E1C27C95DFE3F53A6EC34EFBD23BEA49D9F6F96B516A520E5C91") (:digest-bit-test 19 #x10 44 #h"520F4C20064A82E585A7642E29A397AA65680310ED7B46A5CED1D28FC1D12093D24CF0E052A0F7F827A093821F0CFA8E425FA6E856CC723BC9D33E76E99826F9") (:digest-bit-test 19 #x08 44 #h"9BD10A14A255272A05C51011D5612F8DEBD0849568F625575F864C82B501AC39014063BE6BA46D49F8F82B35A6F91D32E1913A7CB0D4876869E5BE568EFACBA3") (:digest-bit-test 19 #x04 44 #h"8DD7DC36620A756A16121E20E3DB1A6ED2819BBAEE6C26D57ECDE2D06B07D459E078B181755FC82996E5E6486F0D7A03BD2AAC9E19C003CFC0C723905D45CCF8") (:digest-bit-test 19 #x02 44 #h"08AFA05C9C3D69E8A5EA467AEAE281D5ED841389CF6047CB031AC99EDF315C30AA15D5A19DC1C830C82EDFD931D94688ACD420B0031216721987FC102AF8AF4C") (:digest-bit-test 19 #x01 44 #h"2BAFCDE165557C3D4A90AF9EDFA7F1B1A200BA9B29F8CE107548548F4C0378AEE9696D96C613B63815FF7E473AB9CAC5E997E49ED92BB7DC4DC4AA34EB90E693") (:digest-bit-test 20 #x80 43 #h"C02A79C4AAF5F1D3D788E341804C10E2CA00591BEA76DF8C8EF0EC24002E4E263AECC063B027B09023F9F0239E0FC381F3888C8CE79A174A965C3164A9352A25") (:digest-bit-test 20 #x40 43 #h"941F813A91744E63FCF63E12D8C7D23933E39BBEF6362BFEE1ED22B59DB8D6D0B299D5C0D0BD6F0B2C4D85FC5C408D530D80A436543FC7523CCB8A5A21450D2D") (:digest-bit-test 20 #x20 43 #h"539508801260ECB9B69208A4D7D4FF94F084D4EDB22F8A093544876E3446921B051BF90DC8AC14C3063E8BC83EC156AB4BA981AF48C9D1AAD93CD1C168F4F76C") (:digest-bit-test 20 #x10 43 #h"B0D7D3F695F635F0AA703C6CAE9CDEF8DB1978DD94308261640570B7668959E881E485381BBCDBD11FDCAC43B1361B6F9E034C49AA4508F36750A9A8AB89D60B") (:digest-bit-test 20 #x08 43 #h"04AE947B794826670295C2934673CF106DCAC1F1A7FF1D072189CA89D8674B39B581473DEFEDA6482C67D4DCB43E152A4A58C8BD706AC23C9483BE52A4CA7886") (:digest-bit-test 20 #x04 43 #h"CCB6BD383EFE67AB7AFA1A56BE6409E2B97E64202E098C86B52CC6A549E71BFC08FB6702E0BCB2D477D8E3A25888B26597CD1830C97F3DB3EE421E8DA9A078C8") (:digest-bit-test 20 #x02 43 #h"ED3AAABD8312218E061D254A9C5735FD2FC9AB94A73116AB5D17E3016A029481591F52564B375E2521F024CA78F645E21CBAD2AC2D26415DBC3BCB78F57918E3") (:digest-bit-test 20 #x01 43 #h"DF5C4986627C34136316AA1BC29E5313F6C6C6DAD34A6285059E5A78E8781EE45D02BD671F9C2AD67E392BF1DB3CB2576E34BB14535E7AAE11E08B829AB664D3") (:digest-bit-test 21 #x80 42 #h"DB84D3900FF2022D8EA2375B0353C7B4C703421F0DF300FFB8A341256148F7BB47EA125641ECD7E8A4FDCC36E5234333260AC00E9D0DAE203708C97C55B557F0") (:digest-bit-test 21 #x40 42 #h"E344499C150BDA67358B7B4C2BAB307DED1E983A1F0266D21D36F11FCFBFC844E6971D22086C1154CB14567F087B158EE84E095A72D0870462A9D2EB86F59672") (:digest-bit-test 21 #x20 42 #h"E3ACE0D37FEB6C91212B2E9BB657E93EE49CA8AF8389E4506F8419E77AD250D65FB30599D4F8CB6AFFA4BDF86051F283218E3516AC9F203B78486646834A86EF") (:digest-bit-test 21 #x10 42 #h"C9615A28F980C8F5A47F2FF5A3822486D5410278941FED3F5D32F148173D1427DE050CCBEA98A2F4953C94B205FC5E1A4FECBA2BF0FC9E7CB4060C36FC433DB6") (:digest-bit-test 21 #x08 42 #h"EA634E6810D84B85C1310C10E51BEB849B347761A8CE694FD3459177D97DF21D9007F83B640DD4359A347CD531C3E1FB215B5FFA147A81A8770FECBBABA417C7") (:digest-bit-test 21 #x04 42 #h"4AB000F08F3207FD45D324FCD9B08AE6A2CD468B5B7C16A1300A33674635A545084AE309AABE11CE9DC7A8101E9BFFF2D58B7491204C4CE660F20CF8CD399FEF") (:digest-bit-test 21 #x02 42 #h"7CB620C04B06D2D4822273E39997A69F920EFB023D0AE1E8EF7F58341E4E2F3E61DF103E9F7DC7352BF83D660FC289A19BA106A41F403A7F8E315515410671FC") (:digest-bit-test 21 #x01 42 #h"28D14C2C318179E3CFE7443AF4B68095DA59257B92E6F1D583D2547FAEE8AB67FEE97498C7C86DD878C0E1B6CFF0A29AF0877537485576004A011989C94DA5F4") (:digest-bit-test 22 #x80 41 #h"50640B82534C91E26837A6FD897554A2A57D8FA0704E7B30A1500814DC0BED065F5BCB2A1889F9E51E1C2057CB6C47E75D3F9A05CEAC49B1AC4DE5F1D378E931") (:digest-bit-test 22 #x40 41 #h"1621B5851F3BBDAB79826C396E90046D7A186BA2BCEF025E741A8D9B88A235E56047BCE2362C8DB708250E13AD32C05A40BE5AA67F623C66A4D5AE057A741604") (:digest-bit-test 22 #x20 41 #h"F9F29A2243F87621820A91DD4012FC7CB4A69EED87B8CD51694721DC77671805A794E4A5F0B7150ED8C40DB726BE6D21A06011847AE747C020EAE982D248EAA9") (:digest-bit-test 22 #x10 41 #h"946ADA93FAADB9EE82AB31A84ACA89AA2291C50F8136F964C393E0CCBF61426FA2A15C371CB8C7FDAD8A74794EACCE58927862D4014BF0801A691DA4BE67C3E0") (:digest-bit-test 22 #x08 41 #h"E672C1D573D9C0CE68EC43D8978B31C6749C74B11F8AEA20416C25EE6704028F4B064846F646AE96D2BE19A5E22FC1DF0FB370555D75DE8659C9D1E5B9E31593") (:digest-bit-test 22 #x04 41 #h"5827A6609BC59E41537F03CC553977217A511F5F290AC4868CC44F13B931E42035A601E9518A411440F3BB2636528F0176F5451106DF9D70D6B647AEB2288515") (:digest-bit-test 22 #x02 41 #h"4229814073DCC716404769BB0B6513907957FB20B9D7065D38E5B0A2BC9D6C4F91A5E28362EE5C715A88FA64D2AF6F4D9444405D8F43740A269A5041B5915E46") (:digest-bit-test 22 #x01 41 #h"EDE334FE9CD0A10EF50213AC4AD476A743A794D53679638B0A0F82BD685D5536D092B4889268B6BF4BFED30C7D4D61168714E71DAA8CC2B2297ED0EEBA39AFF2") (:digest-bit-test 23 #x80 40 #h"0CCF05B3063E82AC3D80FF5CE4A2577B5AAC448EA33A41A8E4AF02A32407BBECAABEE027E77B3E8823B67995F9D3E605D40F4163CF749BE0F01BD5C12F565121") (:digest-bit-test 23 #x40 40 #h"7A4FC6055A2DC9F6B1573D93FB324AE8ADD73419AD6889675C2EB2DE33BABE623BC0B68DE7E90CA0710EA999107E609714D389C293AB110232812C61543CDDB5") (:digest-bit-test 23 #x20 40 #h"115189494BB34B5E938F0D4DBDEB156787BFC9840CCE1435FB849DC679D591A1893D006E741898639BD59B924E71118460C178BED113A41F69F8B8488EA453C0") (:digest-bit-test 23 #x10 40 #h"783C39338C56B775469C09764D2E7F6D6A3C019DF15D9F9896CD4ED897022A5031CF4608457C03A230E3657D910AB164B7577F7BDDF31913126E5B3BD780B677") (:digest-bit-test 23 #x08 40 #h"E8F01A9600E4774D83087135E4A433B9331F9603AD0B6ACDA7C2CB49B50B1E7A134E53EAEE9D3CFBDC409BC661C76EC78C8D231337F6A5C4BA880641AC01F5FC") (:digest-bit-test 23 #x04 40 #h"E8845C959980E1AA7E32BE77BA0065DD0D78543986452E97A71C27CBAA53001311F6C9AAA08A81C9EC4D5B5AC1895E58902C5093B0DDB9D4062BF95CF2C1B398") (:digest-bit-test 23 #x02 40 #h"9DF0E3E6909F9C71F9E3BC6CCFA8DA8B67E3CDEC918AC41C5172A737AD07A8A856C5A5C93A933F758804479DD0FF72BAC4463B8A1319DFBCE1F30F83826AC562") (:digest-bit-test 23 #x01 40 #h"55E12EAE38C674EF1B8B118698E0A59F7CA0B327D3C7A1F58A334B4F771F8D73285FC033C8DA3D5564223D2715785C3E617EBEC90C4A5085BB8884CB92E38CB3") (:digest-bit-test 24 #x80 39 #h"020C67F9979C4495892DC0C8ABAD9C7C4857DFB45F5E4E7CF771E1FDBA8845360743C13E278FCD167B419EA6F34C49605A2F3471C6E5133147F721DAA953F07C") (:digest-bit-test 24 #x40 39 #h"1421D557FC4CE230E31B7D5EF77AA2AB0D5DCF4353673E6EB25ACE94BCE3692F1D8332C9C8CAEFF9940B1FB10D7B859147E695B1F986274FED017569222BF785") (:digest-bit-test 24 #x20 39 #h"2000610D0BF5027F6C51F7D8ADC88EFCE5E40E597AB2ED8628885D2431CA43E12B49643C108620C81847B384762BDDAB69108F33A931E2E8E866C62B656C8EAB") (:digest-bit-test 24 #x10 39 #h"7184848F9FF009747E6061D0A06B6E50E71B292231676CA83B892057B9C2B866DE22B92349C0D752E0C8AF9DEB557CC099855CD8D98164776643DB70330FE241") (:digest-bit-test 24 #x08 39 #h"89D3574AD5ED03886A4A0C8DD38D33BC70C9ED33ADFBEDFE8F0F1117CA09BCD9EAA9E17CD30E3747283097F8E928908EB5B133704EC98D01113373BEAA102171") (:digest-bit-test 24 #x04 39 #h"1F38E3A4B1399022D1B820662ED8E6E2CAF0AC57C64FA550261E81DD15109E8F0243591AFE45AF535C5115E671FAE7B6E6C1FF5ADBD4251D1C61B603ED65BD4A") (:digest-bit-test 24 #x02 39 #h"534927869F795E0C3F3C1998FA321B129F2D6131A1162D7CA97BBD04E60588C47703D025660499079AEFABD64D8B57320D2F7F5EE192EC61F26AA1B5BE1C3C77") (:digest-bit-test 24 #x01 39 #h"7A90DCE1F0FD3CD6DCF6181529CB3963E7B236608B59473DD46AEEC028B65912E0EF38414C3160803926C2CF866782B81FB817D579D5273F6C8AD14AA44055A6") (:digest-bit-test 25 #x80 38 #h"18676B78C52778F05146108A283883395519934D3EDEE2881CCA84463C3C70543A44EB61877EBDE36C148325E50AA678957EA1E7227063C4CB1715FCA199ACF0") (:digest-bit-test 25 #x40 38 #h"C1F19DD2DA72B0FD70810F3187CA1C93890711EA1CDCE8E9195E639BA1F744C1F1EC60C23BB699E81B59F7C7986D1F4AFACEEE62CDD38CD8B7778801D0771FF7") (:digest-bit-test 25 #x20 38 #h"B972F1BB739BFFD97100007E3207CBB1ABBD42F77EDD79BCE380683553990208795B584778129A79D57A853A88D33521D9E93773E0B9DFE9A0A484BA5AC4FE2D") (:digest-bit-test 25 #x10 38 #h"666FADB30C739E193CD2D5F136B6FF3086120460AD55FFCDA1FB6A3345A9A3DE75DD281496A4FCBF198BD65BBAC95B9B7F3389A3AC4493571B1E783491CD5269") (:digest-bit-test 25 #x08 38 #h"DD69E6BBE29D7680A5A2AF9EE6BDE582E5E3F78FA073DA85D35B12494D668949DF96D6F4EEEA11DE4BA1A9E8683B084AA587A399995DD06A4E48CAF69EAFB3E6") (:digest-bit-test 25 #x04 38 #h"A647E76A134C82BCEC42B041B2684AD2BECB1787302F0AC40D2AE8DD9B79234DCB4EB806DB62D911EB6111703F3900F7FB34F5286C4DAE8182966CB6E4E655D9") (:digest-bit-test 25 #x02 38 #h"53DD1AEFA4EFE5666B6A2350816FFA350C91A9476AD07C782ED05CEB9AFDF5823264A7A54BA9F715F0511AE10FF7BCADFF3957FFA10261C7497A03230D436E77") (:digest-bit-test 25 #x01 38 #h"CBBD9BD537F1BB8D0780FD990E80CB9BCA7715677E1E47A0DF663D2B2BEE9282F3A62D6F5ED98D68B5C837F83E5A14CC555C8501F0AED8852E81903F528CFD07") (:digest-bit-test 26 #x80 37 #h"6AC0BCDA220041BB80C572113B10AB6007E4EF589B33889570448FDD4F5E7E9C54B07AB8243E8520B0CDA19C544A220F13A9537EC344673121F5AC6CD8F4CFE5") (:digest-bit-test 26 #x40 37 #h"D31980804A1844CEC16A6DE8339290E9D4C296CF5B36B6ABB19845C03DF4029D87DE62F0A40BDADF59D4D91AF7FFF9BA8B43213CFE89F2F3706D4C88225795CB") (:digest-bit-test 26 #x20 37 #h"9B2AD85D3F626AD317BF90BF585B876A489E8DF473EFA6F636BB1A51460053D4732FB0AE8BF398F469EDBD6EAF018AD8346A1B4CD659728BA3C79988A3F093CA") (:digest-bit-test 26 #x10 37 #h"9A2E0D4F9448814DC53F2BE24B56F67839038D6F58D43AA43FD08FB05F0187A02DA270215C76762816B1CEAE415B62AC1DFFB2C929B609E764056D86F9173871") (:digest-bit-test 26 #x08 37 #h"2F2993ACF833085E95D021E5BF776436CE219B8996A83F181073A3BE0627D01471571E8AD29A2D6E752253F3637F0BD627FC1FEA7C401EF2F6C9E5EC0AD19FA0") (:digest-bit-test 26 #x04 37 #h"30BCF6D1A8B16E38AD61CF939B0808FE70788A16FA5CC7707B641DD0594450F269DA63069666D40C0658B2BAEE114422D76558A1A8820D35B48A399127222058") (:digest-bit-test 26 #x02 37 #h"3961A0980D06498AFDCF3C5F2F1DA34C1C915E7BEE6B7EEC04CDBD6F69D933B8527B5ACCB2CCFFB9D9B1C151E332CC56698C7D70C5FBA555AB4DAB162140A21A") (:digest-bit-test 26 #x01 37 #h"99D02F69F7379A111517F87F3E067B06B5F3F7538E566CC0F0F4AD8A5327CE9F9E29CCC13FE7030706D76DE2AB5BF5052E72B584ECE04347F90CA8027DC2832F") (:digest-bit-test 27 #x80 36 #h"E3AD6789688CEB7007891B79F070E99C3ABB061C8E130E1374B533115916B3F7A511B800E66662108C5379D3E419F8AD99CD13E478F2936AC6F2E904501C5F21") (:digest-bit-test 27 #x40 36 #h"6D17640EE441DA68ACB3F9FB91A4273570703308B121782CCFAF17A3E483AD9F7AB49DD13494A63D5F59B46C5CD3583B28BCFF2BEB674869A5624BD83F39F0AF") (:digest-bit-test 27 #x20 36 #h"E2357529BE9EF391905B0E1939C36A6E1F334493016FD5C5656A58C59B580C763EAAB979C1DE713ED3A1B69EDBB03FCD88A1F6C53C244DD1F644EC316A87158C") (:digest-bit-test 27 #x10 36 #h"C672703E2614B3588D8337D1D37BABBB6F48B3C9389F98FA72C97369584D8D506983278E2BA6D5EE192B7627A3B7D4BF06AEBC7ACCA24DCE45E07D534E783FD1") (:digest-bit-test 27 #x08 36 #h"ED99B57DFA96F5DD990B68D954EAA0F0C290D73FF2B5E2E0E3110FFB96894AFE9FC5B8AE0E65C24B9FF16A0075736193A36215B5081B03FEA7C7476F5F4F59EC") (:digest-bit-test 27 #x04 36 #h"7B72E1B4F06C82CBB7D500EBFEEB7CF584E9010CD365686511DEC11973E6E1769EABC1F7133513710137B1AFC990084501DBED7C0264683E17E626075C166A03") (:digest-bit-test 27 #x02 36 #h"95ED7C4E95BB1536ECCB34318E25542FD95E033833A2956216CCF923A12E303DFE6FC916975E4CE86A896914F41F53647778D6CBFD7CC408E4242592D27B1BE1") (:digest-bit-test 27 #x01 36 #h"9E0FF43B594615A9AD43B239F1E94218D01D6BDD0403F45301BA209CD9840368709FAC1D9D3A363D7193A890E2F021784A7A921A9759A751B0271D4327FE4776") (:digest-bit-test 28 #x80 35 #h"560778B9613DBDD24106114517163483643E7A5734DA32231A228B55C06EB3C397370582858A30E5DA613E48F1E8AEB8E205B7CB524286B4FE767C7AEE90B557") (:digest-bit-test 28 #x40 35 #h"B60FB3521C78006CEBFA4A4E606B7A108FE2D4F89CEC47DA20B55CFF57A03592596E2D21055140CD3C9FDC1719821DF10C5EC500A0BDF553D1A821F39FBD2C19") (:digest-bit-test 28 #x20 35 #h"66A83B676B57AFDBC5779BC863260D8B2E68F77774A61E37B1FEDD2E9BAF3C4DD9B1E69B6C4EAA099A8B3ED7A09898E956D5B06E77DD2DA67656BA7F388FD80B") (:digest-bit-test 28 #x10 35 #h"A660821F3D40C636B4997104A60346D75A757F45C319C2E5716F468927AD4BDC697473B4D1FE79060F36F7A3B58BC14DD964DCC9E53A9282CF2095D1827D21F2") (:digest-bit-test 28 #x08 35 #h"F5FC42A9C48A80DB60EEB9C903E5720C3E54CE96B6805A35B83C67FE25D9970E8097189126C3C74C94933BADD1F4A10E85528DA088D822AD5C0FE9AAC1E00C7D") (:digest-bit-test 28 #x04 35 #h"28601C5D8B0044C417DBFF69AACA39E811CAAA9F50D53EAEA70DB24D09D7D5299B437E337E279AC88F9A9FED25DD06EDF951283044F334A757ED34105345D2E1") (:digest-bit-test 28 #x02 35 #h"3AF963AD344CB3B46586DAE63209C42324ED11909E12272E924E844D8EA87FFD12410D90474BF8E957D98EB14D29621658B2F583363E3DB66CEEED3CEEB67A8F") (:digest-bit-test 28 #x01 35 #h"651201A70D0E756F09639FBC38E164474502DFEC83D09CE5A4148B662DEC51CEC104273FB14EB4F36D108900C1264739F8C4CFB0EEB0BF7713F75C11784F21A0") (:digest-bit-test 29 #x80 34 #h"538379668E896CC6A9DADD64DDCBA2C8B73FAF06A2B79433122C9A23FB550FF910A868C026E8947659510F1CA5D36DCFD7F8A07AB155E7A79ED80F39EE69C253") (:digest-bit-test 29 #x40 34 #h"A68C495595E166B08D0FA814F59DC4CDD1FF9E2F2E894BBDBA4E0F3362B3D0FCB7C0B28A344D57FE69C68EA916077293E411B88911D554AAD2A5CAC73897F3B2") (:digest-bit-test 29 #x20 34 #h"F8FF158CC6DFD8E1259B9A3BF4F10C2E014BAC088888E50B4B60FEE692D64BA254C4AAEA40943FEAADE0BB5EFFE9E134FB8B63FD7CA55F699A6827ECD78ECDEB") (:digest-bit-test 29 #x10 34 #h"ADFE4026071205645CC69DA028B85C7C4E70D7DE257DD8D82E61593355B80FDFA9812D639FD943C12EB9818B8A2643348D0577BE283E6C0E80B42656F1BD2600") (:digest-bit-test 29 #x08 34 #h"90E7939D6F8E95880EB01988CEC9FAF67A1A4AB1667D7D12D02A535BAAFC80DCD4B6A20084A1F72F009B6EAE0831A846777BE5421DF23FCDE7C6AEC86BC281F6") (:digest-bit-test 29 #x04 34 #h"F1BCA7377431A4CB4CD79B6A6460FE6E3ACACBE3E29B163FB77C7B8AEA3802E8AB8A4ECFD00901412122F20BCCD35B9CC05F3AD2DF04A9856901654575BE5442") (:digest-bit-test 29 #x02 34 #h"E975983DC5AC21F69ABABACBF40738B7DA536920BF0ED25FDDE6ED7D28F007581CC09975CC4F2DBCDD522C2105310C8F9263E938194BBCA4E405188E72A01966") (:digest-bit-test 29 #x01 34 #h"ED3E0CD2894A5E943C7B698655F549FAF68A439D56BA4E2D6403D85185C7E6595DA97720907ABC26E91DD51837F5735E1B3EDFA9741A4926A38E0BA7300653C3") (:digest-bit-test 30 #x80 33 #h"F7CEC4A9E0252374C837ECB68D7FCEE8CD5EA23D53F5088C893D52930F902DDB11A9FED83B553620A0E862B574CEEF7C0ECD3D3E75685FCB04C2F64EC54B7FE7") (:digest-bit-test 30 #x40 33 #h"5188DAB78097E4D296525E6E35ECD16FF6BE006C8B9C0F19112974200FFB5E2B7AE8AD01467BC76C810B0EB7D8EFDFE36556F72867190A8A8E5C0EEE116204EB") (:digest-bit-test 30 #x20 33 #h"BEA24AFB3394CA03ED732675B9F3450F38D6165CCD0EE1C3C6125111E8D3B77509924BBF53B0996293BD5031B41959B69CD1F66387C4E23D4283B5C84CBA2F2A") (:digest-bit-test 30 #x10 33 #h"DFB1363DB6C8ABD19A4C851CBE89732E2AF9B538D66A8B10CDC9D993C0DB9B27B0DDC085A10166A457D1CBE4772CEFD286CB30A27F14554D9FC6D88AD4421200") (:digest-bit-test 30 #x08 33 #h"F1364B858C3DFF933F477E013FE1F40E847E0645C57B48855096458FF0E780B723342F9EF87420CAE71CFA34BB1691E5A8AFA6ED4B8DD93A4F89DA6F0E11346B") (:digest-bit-test 30 #x04 33 #h"BDBE42E735DEF1E451833FF821AC0D8081EA87B938C5B7ED01590D2912F37F4D46A790E95EC89402D3101DE582615E3700D210901B2AD17F6BC7A49CE060E322") (:digest-bit-test 30 #x02 33 #h"E8CCF97A589BB31DAE88676F8EDA621355FAB1DB2D084F36453FED3A30D0CEACCB18BFC94666744EA34DD9085672C7DB26118665DDFFD9AEACCC7CB96B686696") (:digest-bit-test 30 #x01 33 #h"BAECB62A117ED0ECC0943F7736AC5D84878841BF16B330A7FAF4BB8F0E06E882CBA096BAC89B176A57DC0F7728FAA6399366B5BFFBCC8106C9701FB30DF12240") (:digest-bit-test 31 #x80 32 #h"3E36BD7B2EA5D151FFE5B923F974FF9D57210AC5A665A98585062C3A6D144F24A39C12CD0B3780AD60F2450219E70539802F77F428E0EDA74658F314581231E1") (:digest-bit-test 31 #x40 32 #h"D5E9791255AF3140F624E9321FB2FF58ED474025C9649D8174D772CEB3D280AD51814E6972BB30AB2EB2DC947B545E6F88E88703E3B15EE1DC18AB1C9ADE8447") (:digest-bit-test 31 #x20 32 #h"34B0C0C1A4B1C71E47E698F206B91988582F94A8A6B1899D9ECF36FA840DF48C21330721E387C79861A2FFFA59B5C17F956334F02C735CCDCCBFCF2681DF7EEA") (:digest-bit-test 31 #x10 32 #h"D72EDD4D8F6CAE53D58C8F7FB9F57FF85AE089EBC9F4BBAC7731F9280A623A195ABFD0585A438B8AE4ADDFE28C6B9FDE810AB0672E0F79E49C143DFB4ABDAA7D") (:digest-bit-test 31 #x08 32 #h"1271C935B74C65D8256A006588A87F3E88A96BC3F3A46F6BD3D28AD88EE277C97111FAE9D9F85E266B60D5F2D93EB1C4113BDC2C9245B5E2C7B13B9FE72028CA") (:digest-bit-test 31 #x04 32 #h"922D331D43BAEE3C676CF77C2A3C8694DF405CB4B1F829DA3F55A1C0F72CA851421378BD99CACB217489D398F9AF3700D098F0E090CDC9D2ED989D1FFE03D6E9") (:digest-bit-test 31 #x02 32 #h"509466380D493302589C8EDE504E6C3829A51DE3ED81F16B75A4F340852F4B8362B6F61DF2DE62239052244A8A6AB9D41E053041A3B4AC78F6F3C6939B243972") (:digest-bit-test 31 #x01 32 #h"F845424CB18D078E876D2C9D0138CBD43947207D21EF8BE517975DD12B5A34A03D6928C64057B39929C409CC0E7427D45B641658BABC81608A8C748477FC44D3") (:digest-bit-test 32 #x80 31 #h"03B39ED2E0D4B87327120948B318B13F9D33ED5423FEF2EC846F88924BF64F779E0AA6B5A19FEA70C8131F8036170F24B9EBBF3771F732C35D0D1A5563A7F869") (:digest-bit-test 32 #x40 31 #h"6DCE005462914A3F58B575E3DCC5C83FEF78AABC826060B86CE95798B2721D63077D583CB4E8DE89F215ACFF526D4212B009E295F9FB1614A149C9032060499C") (:digest-bit-test 32 #x20 31 #h"661BFDE91A3B1427BF0CB28D5294CE42FBA3073921531948F40719F2EBE9CF4F22A182344020056481208331C870A47F3E57993B5F2C708C50BD33D2D0438398") (:digest-bit-test 32 #x10 31 #h"7F36A9CF03E309A379D425D133BB51F692E95050F76E829D5067C78E53C1F4667A29F8E3D89E4998ECB094C1985DED5919D63E28651DF632AFA2234332AE5A3D") (:digest-bit-test 32 #x08 31 #h"110802FA5735C7450B943FB7CBC77565569E922E260E9A18D7ACD138A79136E425EBF4087D6A5C5270D7F8A0F0944E129A98E8EFEEB6F43953FEA57FB636954F") (:digest-bit-test 32 #x04 31 #h"2AFCBBBE3733B8D14FBDBFDC5DB7267DB593007B133A96F1ED5C452A2FEB5F73848A1223C857511465C89497C5BF75840241D08F7A92306EB4AC4D55857336B4") (:digest-bit-test 32 #x02 31 #h"A4AEA742E243156104FA254E0390A0196CE68F5498551AFD4A991377F839C0ADFADACFD7D101D9F99FC7FF188F2A8CE7FAC928D9D60B45BF09AEE2B47EB180C3") (:digest-bit-test 32 #x01 31 #h"123AA69922B31CD78125D1641174174D9E15D690B0D2096E3787966B33A8557C1B815046077A0FEF9080974DEEF352CB4ACB86033F5368CBB5E6201B181EB8D9") (:digest-bit-test 33 #x80 30 #h"3933E0E7BD7C47F4C4F223990DFFE6C5CC87107FDB9EE04584B1D0C3785042C4C026202A5769F1CCAADAD693B9D0862A75BFD6631329240EC02FF57E50A3D1C4") (:digest-bit-test 33 #x40 30 #h"23A144E2AB693BCEF72F373DF55C56A8BF567760AA7D11DBD165FAEA101571A9DAC4522611EC5143261BCC1F25647CF39168EE9CBAC83D29EE8E6C4344402B04") (:digest-bit-test 33 #x20 30 #h"816099EDB83B5B3B4C86FDA5E4010F350CF4CED65944054CEA983622A44A6BDB45BF9AEA4792471562AC4961D687658989F1829920732408181E4FD37BC6FFF9") (:digest-bit-test 33 #x10 30 #h"9774689DF45B887BDF632A12B01CE7AF4004EFFDA95C7FB9CA429FEAEAFBEBB7B557B3A521B16CD18ECDEF25D015BC919F17680CFFE98ED194267ECBC5500962") (:digest-bit-test 33 #x08 30 #h"C725F2C08C726BF6AFE50CA53AE802A4D6401AD9436533F8C0544DB89E9810AD005C84D0834B63E2BD93591C657EBDCBF88A7034AD8E1C2D9BDC7866348E78BA") (:digest-bit-test 33 #x04 30 #h"BDA6A619D0666268B7E582F0D6409FFB93A421DA0429C0E9CFA530FCFD918329DDF84C21AEC346C8A982588765BDE8AE96BBF098808535EF57E97227F69DFF75") (:digest-bit-test 33 #x02 30 #h"8240D5FA3AF5A4C6CC7021FBDA7E1ABF520C6470905733474EFEBF5821207E5B6B52CDC41CC6CB62F3F29261657CF07F4993A8ACA58AC67A05E2B697097C17CF") (:digest-bit-test 33 #x01 30 #h"30E8E64BD59277A7868AAF6B57863CAC877260333569D1C81B4B398C936D0610E9310F78D6A71AE4153886DE4B6FB1093444D308D5F1C6A4B9E10ED77CF93151") (:digest-bit-test 34 #x80 29 #h"6810FD47DF39E199307F50F05D3057297DF45A000BE2D2C38792A8111B93C43464C96FE098E1EB1935AE918AD7F4A3AF8844193556EC025A223F8E604BC53212") (:digest-bit-test 34 #x40 29 #h"AD8FCC70A791BC171854083F16FD284B5FDF3A2549827FFBE97C8141092CCA0BD6822A6E8412A4515BCB12117AAFD07669EC731E179BD2C1B5414709A101F69F") (:digest-bit-test 34 #x20 29 #h"EF023C0A80296F26C99A629CE82F3CA8A07772BCE5FBD6ACB600CD55A8603AB94E8F59CE2FA21F2557C4BD16FDC15788844E3A3F434FA50D267D42BC60E396F8") (:digest-bit-test 34 #x10 29 #h"32F2C3A8C7257E76748EBFBBD523E0560853C261CD77D4FD106964CD36924E53F67D6C9C52BFBE2A95A8E320D8459B88228F280FD8196C1D1854BC0D65188A58") (:digest-bit-test 34 #x08 29 #h"1293FDBA821B8B56C975C2AA5C4B796265B8E1109DAB75CBDD7337B28E574368501EA648E39E84B3C0D82DB60DEC8CB7B4218DA581909A7C8125464C60F33C00") (:digest-bit-test 34 #x04 29 #h"BC02E71307DE22CD71332E73CA8CC5BC1853D64469F612EA1B697116DDEC1752F5836FEB24274CBB7B656587FC7B8817DA5468E68BE0484FFE10F94BC756F5FC") (:digest-bit-test 34 #x02 29 #h"DD27D897161576C5B8976F1D73E074112D6D2830193A343FE081F906C6223FC1FF6F812BA45BA59DE8B661C60DF53771CA2EAA9E37E0453BFF8761DF6A6182CE") (:digest-bit-test 34 #x01 29 #h"3AEB6210D247C531C7E7BAE1514B5AAA482069420BBD0B7C6B0AAC4B73D4BB69961034B9ED4E50160FC063BCEC8A9DD59A1B8E5132490AAFB29CEB37DB4B0A9E") (:digest-bit-test 35 #x80 28 #h"06AE800A3BB4DE7C8C88874D56D6C768F307AB495C092520F344B0F0EAF4CE9C83BB4CCEA3165B99C97FFF9B873071E5BC2AEE60AC94A532C16F8656EF2C0A83") (:digest-bit-test 35 #x40 28 #h"82825E40A4DAE5B2B699E078D35D3A4AF013CCE8B1ED8B649294540B91DF798E407E2AA4647EB802C0C23F2377C31C30DCDFF35B6E959E6E41E5089E07CB755D") (:digest-bit-test 35 #x20 28 #h"7927FA65FDA2F1A8930DA458E6E6F5343E00BE0C89B9BBAF6A8E88013E429B5DD83EE1257DF5820CC9639CFAD9BC82E50F5691F3C48F26C2F2206D1217C0A2A8") (:digest-bit-test 35 #x10 28 #h"16ADB8AD40F8E7DE816365B95E8698345D1720F8C2B4EF81808C273E8CEA77A03A86B3F96E0633C6238BC77A0947BCD0A943544CAFA554517D8D598B010A2244") (:digest-bit-test 35 #x08 28 #h"CD22D9FE3B3A892F33290B161D38784C5F8CEB440479ED5908C3C0AA768BE14586791D51BA181C40248ED6008FAF8CD3A7EFEE4EA5A84D1FD5584A150434336B") (:digest-bit-test 35 #x04 28 #h"26AED50E42229330774E1AE38F7E09EE70C5F2A18CBAE88715B30B4DFFF8B1B0D018BDE6AD4D7F56DFB716A0B7EECD123AC9727A5B3322580735F61A928B2F05") (:digest-bit-test 35 #x02 28 #h"4838DFAC9D9A21C0BDD1613EF95B0B1F2E7D9475D9F4AA1D725F5B625F3259CAF18C673A985ADE85A17093889F60C4B08E2435D73C993948FCA9A4CC232912F1") (:digest-bit-test 35 #x01 28 #h"010E43662BB66F53285961E42D720008319229E70FBC62B15F81E2BD18A85762469FE219C20C02D7400FC984129B69EB0FA5FEAE0F76A98AD3212E84180C6D88") (:digest-bit-test 36 #x80 27 #h"808F71EA00AAAC17E95FCC100A6E84064F0072DF4D12630AA26A103DF625F8BB0441FD78978247DCA480F5ECCA6C96BE394D9C2BDF9B95F874CFF840000B61EE") (:digest-bit-test 36 #x40 27 #h"92A2D3BE40C1B803F99CD5B4ED7E756EABE4179A851C3440A73BCCB2B16F89F8D807610C475244680313A6AF14DF70D2189C5989B57429BE11CB2D222DF14057") (:digest-bit-test 36 #x20 27 #h"F9B22C20F13C9B6EA2275D62A5751B363F78248C4484B55B757C05A106905B85CE57AD9389AC8285E8ADFE5207CE31B78B87C5A820EC3010891FE8493B43825C") (:digest-bit-test 36 #x10 27 #h"61F6E044E81F5F54A56058EEC1677775C6E6D893E9CAA93F3D30FB3244D64115D1381F9DF3DA737DC8EB48ACE931F2FAD5CBD7102989EAF2EED9CCC23A1F63AF") (:digest-bit-test 36 #x08 27 #h"568A3D054D65B3AE2DACA496D471C0725CC619151F340933B29DB81F6E0B70A2A5C40E1C0768D13C89050AC3CAA1388C38466AEF2CB2D24C6BF10E74AB9BCD58") (:digest-bit-test 36 #x04 27 #h"BF7F5E5B4F5EA434C3EA7C16D4BFA3343A69C198904DE4891FC75E6E6B292369F5181BA2C11830B948BBAA200E2C9D2502695E845FF5A4AC0A7FB4FABB473640") (:digest-bit-test 36 #x02 27 #h"8A372DB7A84BFCA7B852C46FA0DA43483D020B1651CFABF664807BF8F776BD047D6DA4917F48DD268B20052730ED3110000B6DB674C9482A58F2FADF0766B2DB") (:digest-bit-test 36 #x01 27 #h"A3F18DF2ECF5CC88F465A044540E222C37D8C1E24B9C72B8D261B92DEAF6747C6CC16258E226E59A3155621663BF75C2EBB302A5CD6E087FED2C92CAE819211A") (:digest-bit-test 37 #x80 26 #h"359FB88A771416F50984CE7759182C0C80783E0BAC3A4ACCDA26973029ED75E2111FC6D1FC2057D4BBF2F16AD488E79BF030CBCBA3A9B03BA9163B5956FFEB82") (:digest-bit-test 37 #x40 26 #h"D04F94ABF2D14F82FAEB370EEB4B1BAF3DF7C558FE899ABD981FEF47BA9891802B12F9F877D5A0C291ADD33C39A355E725EA25E41ECE871CD201654BE3B12885") (:digest-bit-test 37 #x20 26 #h"7E9031FAB344F0BA03EB8E3C6C33B454B7F0F32691588A6126339663F404D63585F9C7A89D25F174A32267CB8188EEF6E3277DE9F00CFAA5567CD01C430FD2C7") (:digest-bit-test 37 #x10 26 #h"143DB1BA514B8BF6D6FC4425C67A8855F2578337E8E2067427E678958BE791D5DD5B7492A98E87B25F8798A9D3A11EE096D7C81F2AC225FD5DF0583AD51E4070") (:digest-bit-test 37 #x08 26 #h"4FF920C525841F3DCCDE2784C98CB005A0CDEE6C8D8F3CA2CBE2A9354EE3FF58F95923B5C9F6DBD8F2E7DFBD582EAC71284392762429880F28625581249C693C") (:digest-bit-test 37 #x04 26 #h"CA5BAA6CE7D209E69653052607AC2ADF2B73F4A37DA29C16E6BA983A3BBC2F4AE0422723EDA865F7C986E964FDCBD60C1C314466594B61D05C83E7886D47BF2E") (:digest-bit-test 37 #x02 26 #h"8E82DB8B7417258899A1E5B1526154D6DCF7806267FF749A36FDE0D99FBE3BAC9CBFE680A9705543C30C5A0DE45F0951A6DD1B5E051F09AD9ED366E498BB59E1") (:digest-bit-test 37 #x01 26 #h"7BB4BA5ED40799D088E3829849355CEF0D17275B202B27FD4B8C907ECEA165FA42DAA8F94114BE35BBF1B65759E43CCCB4E17814735B211E19565A3A5B986F60") (:digest-bit-test 38 #x80 25 #h"8770783577432080341374C2A150997C3A54994D6D45A3905DB66645D0B6B806A528018E1DBE8A94A10BE4E3E032789FED305021AA1E32B8609495024910294E") (:digest-bit-test 38 #x40 25 #h"F6EC3145BEFF1BE7B6FADE06B527FB4CF5E0D22EECF0886FA1E3C288CD8031D37595C4F583DB590409FFA8DD6AD03B2F6EE04F923BE3E83ABB80CE1399E2DE33") (:digest-bit-test 38 #x20 25 #h"C5645A9E5F801B15AEFD7D9AF2DC04BFA723AE44117938AAAD4D63AA568E3AEDE1D844825E25FC1962681650DD67383008CBC701C29F7F813E367326CA52F37A") (:digest-bit-test 38 #x10 25 #h"D0F55556457E41A94C3CC899CF36ACDFD32E1C13D83394086FEA5A7EF11C2A33ADE4A6BE1EC5B37F09C3F1E6F02195D49A748D4DEB85BA762E2DF16F5856550D") (:digest-bit-test 38 #x08 25 #h"98D77048E06452442A0E4B36D7422D7DBEEC4A3CA8251AF2FF17FFBF6E3B03EDF065CE4C7B7BDC7F0CC3322A78DA3D47EFFC51601263C9A326EEFA7F51736BA7") (:digest-bit-test 38 #x04 25 #h"D13D5B346311D40AE6CDCEF42702C3A50D22ACD47D78E65370DB7BCB3C3F4C7F6FE911B75F7FD99B3462F5A6BCF86037A90BD0FB5BB36B7CB9FD1468D7549C6C") (:digest-bit-test 38 #x02 25 #h"0A304F3BFEE8E91FC4025D4AA71F86EF692F4184254FADB41F1AD57933C00FB2DEB9B85882D6B0665482C4B35194B2C12E847B299C1F297EDADE4C55AFF67BCE") (:digest-bit-test 38 #x01 25 #h"4CDA7E6FB4333854AB1BF7F24260FAFBE9DEE8E519C2037218B3CF9459C9EDB9F0255A7D36C175339D82DE9228758495DF8426FD112ECA5D8159F0C376C26474") (:digest-bit-test 39 #x80 24 #h"023ACB8D8DEE56EBD1D821E62B96FE4683ED42636E09B13EBC0ED90E2890507AA727B800B3FE782C97880DD9C64ACB2C6D0268E5AF4479203A9D652F86C1687F") (:digest-bit-test 39 #x40 24 #h"4CB9DB72A825D912BCC66CDA0A77A481A710DF9B47989A917F68A7D7EE3146C67B766CC376152F26FA245CC98F55169B4806F6B1E8614474691FC062D539170F") (:digest-bit-test 39 #x20 24 #h"C4900970C21B19D74B48C6622F109A7B64ED6B9C3F74F10796B55F67B1D205308776770DE6C47279A28EEE20A53229975810BCC1F6A842748811C7A8EC392F91") (:digest-bit-test 39 #x10 24 #h"DE90F962685A13A53C4107EA579DD2BBF74BB9767C3F728C392A7E98A1EAA8EA3CC963F0260C40AD17F298E665267AA250832D25320DEAF0AE551ABC904BAE3C") (:digest-bit-test 39 #x08 24 #h"03710A30DCAE0E79D7A3126FEE4EDFAC6AB29D6459DB8E422DD355033988FE110590999125C427CAF89FCFDC78C6C53EECB173FE74EC446A536D9408689AAE6D") (:digest-bit-test 39 #x04 24 #h"B86545AD9127F37D2D0C28B1510B2107383F349FB9F743508178766E012F4EE663DD38B0C4ED57F155A8BC2D23FFE6E7C97C601CFD49685604A9B1442F1178A3") (:digest-bit-test 39 #x02 24 #h"6D7961EA4261F57EB2C0A72021AB821BCABDA1099FFF6A89E01D025BBEDE6230977384FB4A9A890CB22F96EA8746E9F4642511A44FD6ACE7BA5146438CCAEE23") (:digest-bit-test 39 #x01 24 #h"6F0F9D54F5A3F7B25AC7ABF00847533D5B58A056962ECF9AF454F9C7E2CC1DD1A179B520AC2841421AD5680BBF065CF9F903D90D958422DBDB372B43967B6F05") (:digest-bit-test 40 #x80 23 #h"4592812E77D0D2DEF9823A2B44E2B7CD59DE717B6D76913D10EFAA658D94AAE59B1D80792F678383536307376ED3F88917E36F6EC9C73C137724BD64164519D2") (:digest-bit-test 40 #x40 23 #h"14E25880F7E4BCE75E90C413191D36330025085E5CB8EC2D05CC35A2620DB01A306966B9FABB4A0B36F2AFBE739EA6B1170B0D17A9D83372730793891B4FF174") (:digest-bit-test 40 #x20 23 #h"80325D985D0A2E2FCD8191F99AE2EA13D1AF137DA729CBC32E46B292BC56F825DD79307607C7D15F2B9E8ECB7B89C0C805BC009D89B107836156181C880235DC") (:digest-bit-test 40 #x10 23 #h"62D9C22B5078CC2A6EB1BC0A033FC1BF1F365F88DC1643A4130436EA753E5BAD7D2B742FDB6D5ADBB0876A0AC85F0AF311CA54C27ECDD06B5709901922FCD166") (:digest-bit-test 40 #x08 23 #h"3256DE63A6D8D09702E0C003BE551FECC7697F7D2784B021C86966E19AECD9538F34AED8DE1FF8D64B00FD00C699153B678018C170CBDC9176D33DE24AAC0907") (:digest-bit-test 40 #x04 23 #h"E62B4DF19831FC08E6F5FD6C948FD00B5F79CB0811931FD9137AA0E918863CB3696748CCF14AC5A625180A27B29C7A0352892ACBF2D0A83757E4B51342012A93") (:digest-bit-test 40 #x02 23 #h"5AAC65EA249592893F3548453B80E77D59E615A28E2BB2A5DE952512B6A0C5F1A923884AD104B6EF0C4988952EBD3159D62C197494EE699411361FBE41B764A3") (:digest-bit-test 40 #x01 23 #h"E5BAD469FD3C36D045F87A59D140518EC0C7EA635CA1882A55CFBD20DC36218695811716E1DD9D0E5D3A4C02002621B49DFF5F03CDAFFF30FF276B8C35B7C575") (:digest-bit-test 41 #x80 22 #h"459B5FDD6F8E4BBC20D62BA739B9C044D310BB77B8C7CA8F573F36768FF252B4E941ECB5B80A54254735C9BF5AE3B65E51A1C1F3916CB000902ACFE4789B76F6") (:digest-bit-test 41 #x40 22 #h"5EC9ABB919B3EC3ADFD92C2B25C335E679798B30E97EEF990BBE41EE82DE525AA90878B4736CB2751A59175082E3022B64EEFC7205D02193A0B7D40D54BC7CC8") (:digest-bit-test 41 #x20 22 #h"1BDF647A2356F71AE0C75E142B563F78F6E9164E7CC424C69C78AF0F9E75241D6D07D0D8ED4DB931D9E78A6BBA0CB78C8AF954D9534D279A4CD82581ACA702BF") (:digest-bit-test 41 #x10 22 #h"AFB80FAB79D3898EAE8EEF0A108E9AFC2D7E7CECC189E7247A78D2FD59FF07E3DB54069A5501961331D64731F05812F789C16D486C0D26A61585F422668F7C6A") (:digest-bit-test 41 #x08 22 #h"86427AA9995665FD0A210D5E6B73A9593892588E97CB94AF76BEEB9E3765C81811A7364E4B19249C15B9FF5F89F14E777B7F5A0FABE331A10657994093A516F4") (:digest-bit-test 41 #x04 22 #h"63CF6C788D35AA6193790E929FF87591F44CE501C23DF008E040A3CC0D51BD143F695291CA950BA752428F8C8966C370609CB735EAACF8B4C1109C1BE5EAE9EC") (:digest-bit-test 41 #x02 22 #h"45AD9E5609A91189076EC6E84A0B99655F82E7B727212076F1B6FEA4260F3291E6041A4587F779C2E59DBDDC5C2A2B30C5F29CF6BCA2B85FA2E63CBB8724E004") (:digest-bit-test 41 #x01 22 #h"F245C5E1AAC7A29028DA7AC5EFCB549CEA0190E2FD4F053545742A3BADD6D3C0707AFB5F6191A8F9CF9D6771012A3C9FA5546DAE47671833532A57AD5E5132A4") (:digest-bit-test 42 #x80 21 #h"2D7B4FD37FF55C715C4C264734DE406EA432DB59FD495EBED685CFF78ED4A16AF5BDFEC782ED94EE62D29A8F5B25969D592030E5F7418D38B96F7275140FA80E") (:digest-bit-test 42 #x40 21 #h"50C566D5CA58A71A7267F866DCC80612C90FEB28F39516007A6D1B21D4DC15C5AC559D859AD6BD4029B88283EE5A789EEFBAFE8BAF7DBB3A8650730A707517D9") (:digest-bit-test 42 #x20 21 #h"B9DFD2AAE638139CC9C055D915335479D459FE0641DCAE5177CF135DE11C9A6B381E422BAFB068E248B7E218A6A5D9F55D7537C4C614E3F868CA0F9E694381B4") (:digest-bit-test 42 #x10 21 #h"52352C822E33883CDD16E9B0C1B5A49327AFA81E1EB1EDFF187A9AD49E2628CE7815F2941049F4F575FCE303AAAFC5ACF0CEAB9B0A4926AB3A7131E061EE1C52") (:digest-bit-test 42 #x08 21 #h"13B418100123E8D6628C3ECE9C5B167F7A4AED3BEDE4A0E8D712B93509A5932A2C98F9FB704BBE2BF455625C26232671C7F7A6D22F00E210FF32314824AFE5CD") (:digest-bit-test 42 #x04 21 #h"5DD49A571E93A6513B1B8481A7FC509434623A37EB0B566B968B4EBA7F7C6D48207F908240D8F80C6A5BA32AE96513CC44DCD553304EAB751FEE2F9B8B921332") (:digest-bit-test 42 #x02 21 #h"98DFF0FB7D2A8C99E2F2E87052B4EF8E2E5CADEBCE95233364346DEF1718BA94C293CF00974686ECDAF6CD1D82EF2620CE3C56E887152F17B1F6A13E797CBBE2") (:digest-bit-test 42 #x01 21 #h"25C7B4079F4470094A9848DE534F0B5AB0A664F1B3E04C3855FAE97C5332DBBE8061E66FB1F1CFFE43C34AEDAD6FB864F5452EC69B1BE1118EA98A166B18168F") (:digest-bit-test 43 #x80 20 #h"3E71973A31A0DC523423FC6C2F860E2B8CB23FDAF3C4BB1BE90CC2777159892536F269FBA9C18DDE7ED4921237531465DDDEBBA8962A8C602192216BB299C1A5") (:digest-bit-test 43 #x40 20 #h"1F8A99C1B2FD7315EB2B2E0DE7ED2BF4778075A68ACCF02DC73944B4CEB9D3B20CFB2EC9CB3880590150F486C47A6D7D461949E80220E76277CF44EED927AF94") (:digest-bit-test 43 #x20 20 #h"3994B22859029B3F951284426AC4475110539AA63FBA198D7AAB12BEEBD324FAD540B1B0C5AF544D9823606683DC5D3AA7168D95FF8C1DE319B5064DC8B6AADB") (:digest-bit-test 43 #x10 20 #h"2FC4414496AB27813DFDDD1C73570F029E97B30023363DB038E4C646BD44984C1CFF47FBC09988E025C1772B3EE87C28BC60555BA47BA465B80E5785B83401C7") (:digest-bit-test 43 #x08 20 #h"0275E439DBEA83F0E2302EFA85E8C2C0536DF9BC119C5C5A88137FFD7626092311B69322E24C0F9EF47CA0EC0C8B4DD0901AF0F3280E3347D9E8D17267D28666") (:digest-bit-test 43 #x04 20 #h"35424D0982B4F6969D86F28721601A84DBAA6164EA2BE4AE5FD9FB979C7313D633AE1F137D957C2DC8AC3EA1F3408978EA8C5D30764FB2D6830CB0894B9BA9B6") (:digest-bit-test 43 #x02 20 #h"619DA0A308EDB6F7F173153F1DCAD3BD80B6CB5A6C7E6E3D2DF8EE418DA57F5A1789E77E1B3C0E4B5ABE55E4CC4FF5A94AF0FBE79430CB4EFECFDAEFF45BF8FB") (:digest-bit-test 43 #x01 20 #h"0C66AE0ACA6BB894981CAACAFF43AC9D52418C0A0BD789D4ED4BDE3452CE8FD02DDBD98D31E35579B7C141F6CCDC57D6447008BF00DAEC74A47E48D29237693D") (:digest-bit-test 44 #x80 19 #h"B6BD5F12B706BB5EA25B400254BB3BECA27F78985C4781210A9CFBCE8885D16D73771BC452200279F363C1854FBD80A1BAF7DEA2E5C1A07F5002D8B063EFF851") (:digest-bit-test 44 #x40 19 #h"150F019272CBB162AAE2377C5D222CC8947FE0E05EC5789C8622111DDD262DBC0D25D3CBFBAF60EA6E0352CFECFB650401AD8BBD142A6F3F67B45B18DDA45C6A") (:digest-bit-test 44 #x20 19 #h"2D06BEE37EF1C73A3C9CC0DC733668B6937BDF6C89704A8B70FF1ECAA389980B8F04119613E3084EA98DDED46544B10EF413C877EC647A9E7784122CDD56B5FD") (:digest-bit-test 44 #x10 19 #h"F4DD7A139D562AE9C7376B71C2C1E0E9FC653B4A1CFF50C71CD7EEB4C3076E53FDC253E0BCE8D48A149FA725195BE70AA9ED8BD10FFD5CC244320F70547DA67D") (:digest-bit-test 44 #x08 19 #h"AD9E3A8CDE3C16E899950F53E0E8C8D857F597E4FCDDA25C50B0055717EA96E694112F28649EBD398E7E9666602F60669E03FFBD6A48CF08026D8B6E10A90104") (:digest-bit-test 44 #x04 19 #h"06801E37DB9BE9A5A419340C978B45882AB8FB4F586C1CD03C6C38F2C84CA7EF0AB344D2B10DFB74CAC8758787790D070F3288A68EEE58FB74F173571096BA66") (:digest-bit-test 44 #x02 19 #h"15506BB0E4531FAC6BEA11DC8C23D29AED71EB6AE860B657F7C8D5CBBBAD3456FD892AB56511EDBCB42DEEC156029D874297FC91A31D98104027C26F0E75F913") (:digest-bit-test 44 #x01 19 #h"7CDA9C57D588097D30F7EAA5DD5BE5A7CE8F66FCE8B4096FBB01FECA3A8056E57232AE9A7486AA7FCD12B552B5DA3227FDCA631ECD5D086BA06B94437F20FCE8") (:digest-bit-test 45 #x80 18 #h"DBEF8036DEF9F9BA9C5F58AFE2612BF88B5FB68D972648ACE85B0E2AF5B8AEEDD7C3E8285690E9E7D1B64C5593CBEF8D52D947B2E4455E3ED29C410565761C4A") (:digest-bit-test 45 #x40 18 #h"218B947B6F2F44610A62F7F7406354A69A0A178EC1751B6B641827CEDA677E481E1453649D340BCB07203BA418FDFFF954CFBC59E6F19526D4108F70B8DBF976") (:digest-bit-test 45 #x20 18 #h"8C0D3B87DB9E41CE42BE01CA21597E36F4DFB63B6F89C2A7BD7352F04469F8C4FF32BB1F4033F1D6982226050C2A4A6AC10C1B281683DCA5DC5C42660A76CB15") (:digest-bit-test 45 #x10 18 #h"E0E517CAA1BA9DCEA2A44AA0F8306FC4E91B2A927189F06715315AB142DFB27ED7BFB67C66C295960ADC754C98618A13137114894DD5DD3B23FAC71C891ADE56") (:digest-bit-test 45 #x08 18 #h"51E9F37D978DEA7B2C4BC2D7F8A09D9E9818DCE72A03ACBB539983C9BAD4B83CF45874E616C6AFD9B1B6E5AF45C6F9014F3437695F8487D03732329F2E49723F") (:digest-bit-test 45 #x04 18 #h"2A04A78682BAD0AC8F06B623FBF432E2CD0F75AF9D3D146240311613F3BCBA3AE6E4E1A85C90014495B2375175D7E26E5A31076C1E1DAD4E181630D9771B218C") (:digest-bit-test 45 #x02 18 #h"CB40FBF4ED2AA384E08809CA0C5A73797A19F39E732DA1673D28AC8C7135314A21CF14CADFB69D05CCB19B606A4D4C8DEB812D3389403EAE7F546732CC9AA5DE") (:digest-bit-test 45 #x01 18 #h"5FCFD715F12A3999C8195E7808B28A45A6C20EFFF687708B267900185E6B1F2C15F3EBDE611D736A65EB2DF7FBB6C533FA86EDD4497EF2404503F30FCD8027EA") (:digest-bit-test 46 #x80 17 #h"6299A4C4A6871B4D286320BDFE9CB2EA15F26FD6D184EA1C1FA059D46C38339EB3F0B4CA21E948B59EEC4563EB8E113CF714EEFCC4B99CCAB3671BB2D0AF400F") (:digest-bit-test 46 #x40 17 #h"2B9DD11B4274F1586CA120F0D0CBAEAD764EAAD348A272D81DE2B0EFB0B67147A01B42C06B0BACFA6E531632C17B90CB0F510B84C4C1EFB0C2EEB3ED177C7E0A") (:digest-bit-test 46 #x20 17 #h"E95099B3B28DA32BD23B42911C296B7130B953DA429747139D4225FD9F235070C7C0F5330B20F25239F594F2F81D0B88376DD7AC7EACE8F782035AACB1D5B3A3") (:digest-bit-test 46 #x10 17 #h"DD4A01A6A22702FE05F3AC072179A20A060E788B2ED0041583999D381C49F9A1D749DFF8F535591572DD2543B88D7486B53919EF6D1BAD7EFB1C19FDCA10D16F") (:digest-bit-test 46 #x08 17 #h"3F65B4E31AE4744671F766BE821A7BB16677AA6579E41D4A9D5DEA6CDC70FA91CA93D43724BD99800424A343B1FD2688A2487E381857B61AFB4737C3A6F162E1") (:digest-bit-test 46 #x04 17 #h"F5645936710779494F6F9B108926E0ABADBF88CCD67DB1D99F187C9AA5D7AB3E7640AA6A3186E2963C467AF4417BC9CBA64257B391C5D9B7682D791473500F39") (:digest-bit-test 46 #x02 17 #h"24D84F2C7FBBD77D532A2C07AABBE7F8773AB23AF7EFC6054179302374161E6D8205BF54F5B48F785F14AF61793ABE613263E33DE49996BC23120A3B78789BE2") (:digest-bit-test 46 #x01 17 #h"1EF01FF3B151D117CE54968AFEC0C99DC9985FB64577E57E52BF526E6883E4AC4A055315373106729911DCC95D927A0572201F4D7394473DC5FC136C49EA2856") (:digest-bit-test 47 #x80 16 #h"CF9B2454FE6F41CF6A4D404BE741F0145B9E6E4F8834D9FA9974ADB2D3CFC0A0190F78FD4D6977E1D12420D75887A353CD97AA7267AC7D2CC234886D801CDDFB") (:digest-bit-test 47 #x40 16 #h"1952CE415BC9050B7E38752CEA731A125E60E4FCA70AA6A0CC335A33512D79DD1A744388A1507B63B679B08DD1F0FCB81B869EEE46E5CF35F53F4755EB5BA307") (:digest-bit-test 47 #x20 16 #h"989DD0DCF0D6CFD444D9A1D2320C3B4BF3AD487AF53829E7A40DCEA795349DDF554588CB911D4DA66EEA14713B696F7D4B065EB22D0A6A96BAFCB7C7AD91FD61") (:digest-bit-test 47 #x10 16 #h"713FDF6618B8D4FFACD13C94ACA119CD8D8C34C3D7586800F51288E004CB28DD7734DF80CDA02E808DE3F254B36CC313AE30B8EEEF1B7CBC22BB21AD44DE9AEB") (:digest-bit-test 47 #x08 16 #h"A8EAB2B02C2F62FCA254C6E633B031E22A58843070E8222C1D92A74716200F1D58D33C2D250EA161FD2E19D7892F84E04679F0D04216C89335EC2984A5CEA37A") (:digest-bit-test 47 #x04 16 #h"279EFABF4EB34A64F47310840C4BBC8A9129C76CE4CBC8AE6AED15180E09122527ACD9763D4CB81E6F4DE9F88A9914DAD5C727C2375C6AE4A8EDDBFE7AE2482D") (:digest-bit-test 47 #x02 16 #h"B64EB8C73590E7D0945EB8B8FCB8B68893CC84E87C4B1F518381E9C5828D373A3206AC3BEFB4EF238A66D0101B420A85B6D5C2BB45A89AB71186DB8D4295AA0E") (:digest-bit-test 47 #x01 16 #h"3901D66A817310CFC0CD8B4E71C60D0C44EC9925397B787BBF1EAC49B1261E74D898FB2BA896C67E00128C98EB332C459FC1C256F5A70AC0EDBB1EC1144C265D") (:digest-bit-test 48 #x80 15 #h"752E22A33D8850B48D47606F857F0E600925674F8383D1DBB82550CE8CA6AB863605CD9B2CAF61E1A204E067DFA09CDF8E17615C19B8621C68BCCC47FA4ECB94") (:digest-bit-test 48 #x40 15 #h"C2FE7A0E317C5D16991F37254DCACD039ABEA30C3D3098756F1A5DF32F981BC5089FF31C0AC8B4812F12CE0DD41F1A6A6173D15B73375AA133B143BD76F1DE4D") (:digest-bit-test 48 #x20 15 #h"9E2586367A849925B31F33FAF46C61F1035D8FE55D7DAB4B3521DFCD57B224913CA21B7E82286FA371AD3E8B8E1E5A63A40DA521FD040EB813CAADAD7E1558EA") (:digest-bit-test 48 #x10 15 #h"052C635B337B2772F84C5EE212ADCC61A339871E9CC207B48178C4B9FA32BFA0550895A1005F9D0CF3064A0F03BBCCEA47EBF267CC5CBD431C28D5AC3C0F828C") (:digest-bit-test 48 #x08 15 #h"B6075C572FA983BFEF068BFD6C1A93A68A7224850514EC04E7A03AC01CA24FE92929E714B9C99190E7BF92EB0B2D7C015E05EC8B362F8F55CF18BA0C1E478153") (:digest-bit-test 48 #x04 15 #h"F2DBC1692F671D7DA945917597460DE8721B13BEBEE79AB6B68787B85D7D91EC75CC32DF5D1CECC258C72967CBC472C3DB86D90B710C162DDBC4E938AA0D37E0") (:digest-bit-test 48 #x02 15 #h"02D39920EE7EBC3D9081AAD2124A9FFEE1EE165CD89ABBC9E00C1450EE11F84EC4949BF1A1AD66B8D05E7BDAB2A505CC131C636AEA5495D8288CB7E7641EE559") (:digest-bit-test 48 #x01 15 #h"DDCA558DC8AC4043925BB49AADE3FBE54013125800AD6319A92932D7DCA986A555E568434398C455E4434D614EAAC415B7B0640176F1BE5436C6BF2A9C9E3600") (:digest-bit-test 49 #x80 14 #h"B5CD32E369C9F13C00A87A93B02D959D48027B91CDAB279B900E8983DD98D9574EA97F568F27C4F62716633CC4405A9390AE2172F21574E809ECBFED1FF9E752") (:digest-bit-test 49 #x40 14 #h"BF33D153FA1E72AF4F96A1E61F98555D6138C3322CC7DC94505123E2309D475C4E55AB8D9E9A40DC2F4CB049124FA44BBB4EB596F3F17F9B49E7130310DFAA26") (:digest-bit-test 49 #x20 14 #h"A2038C5F4631FE26A8F3A47A07127E7CF4DCAB4CE571DCFA107BDEF0E442C49998C8415F850AEDB729F5ED53800BF6B96A7196AC673BEAF9906322A5564BD0F6") (:digest-bit-test 49 #x10 14 #h"6D41069DAC1F9AF57815A6CED30B80AC2D58D6BCB6657538CBEB7E58B8BC69552574E22C25BB954E5B97AE3BF366B68BD37A9F2FB61437F4C24B9150A4B79190") (:digest-bit-test 49 #x08 14 #h"A68F882E78EB8FFD3AA8269CDDF22CEDCF79413F1E88279D966A7DB13DF1B7788BB3114364A4B0E46A27F426E771320A6224061507105309F5A092602974FE24") (:digest-bit-test 49 #x04 14 #h"75749813B8CEA722B399D81696F45E5F8738F6F38CAC3C771AEDB3A708F4B5B0E6CDDAE4343A2B83537BF25B3495B3C7045D544C30F99099ECFB9763933B6D8D") (:digest-bit-test 49 #x02 14 #h"3526ADE009678CF578804100C5D9E9ACF50D0AD03CFB71EA7D63D4F85419655A7D41C7FCACCEDA96D454F904B3A21F201E4F2392C414FF9AF68B39F8DE0FAAFE") (:digest-bit-test 49 #x01 14 #h"FDF47B4DF0EFB94CBD2A2BA59FBD6DA7F364DB67C5638CD025505A1D1FF0F3FBBBC952D6E592CDAE2469CE6E6A22E8597C8BE2F79C25FE9ED643CE2B5D3DAECA") (:digest-bit-test 50 #x80 13 #h"EA69CB755DD17AC2E7F7CD27714B37386356A4F2BE6E51565EB51A717D0D56C60DDFF7F919239204A6DA6AD38173234377F6C351BBD152E799010D4BBC35053A") (:digest-bit-test 50 #x40 13 #h"DB8632568DE4BD9624A1F185E997E10025E727E8912C03CFB3D928680241210A09D07CF196F05D54799E206438997121D84E3485BC5CF66580C9E8540A852A5F") (:digest-bit-test 50 #x20 13 #h"9AFB864F0940D70921079B1BDA3E5624966846CC1BDA9297ED026D3100FA87B1D087DA41489CD053F6F7378A37134D2451627A7CD9AD4D3505018315BB9484AB") (:digest-bit-test 50 #x10 13 #h"8E9A112F139B7FF5233EF9A4DF0729FC09A32C50F0FE5013F9A73DC8F4456FE0A1DB5C77DB61933F7614412E4ADE6CF3158E6E3D7B732111B2C6940739B10EDC") (:digest-bit-test 50 #x08 13 #h"D7D65A65CC2DA7A5343782C9F6F13DE7017C65DC561023EEC11A834F0D02E9019A9305C04F21A1146096CC98B7AF5D5F8E36284F763E687E260CE57341405854") (:digest-bit-test 50 #x04 13 #h"13BAAF4DAB74DE595A9A5493C528506CDD932CFE68280291B70979775917DD22E52817CA18FCD48E3B477EC3422EA27181BAED8C47B2DFDFE27F75027017C604") (:digest-bit-test 50 #x02 13 #h"7D6E7DF03BF600629A0681859B02C99143A79AD3A3BD6DC04AF01B4070CF2FC2AD9B604CE8A8BB497F00DB42167514467DDFE22EF29A7034274AC086A80EC79A") (:digest-bit-test 50 #x01 13 #h"01D997D331141B04496C0CE717FD859ADB0D6438A66B9BF99CBD9EB207579B5868B0E17B144D7F7619D75D176F4B13C58C0F942911AA5DE8BA8B09B243F2F23F") (:digest-bit-test 51 #x80 12 #h"A61F82618D0D29FBA5156575E8F0B20E03C1FD16DABD2133BC526539079805056B82DF8665201367F2EEDA7752F8F6DB953ACFE85C4DE2BCC9C475F906DBF2F6") (:digest-bit-test 51 #x40 12 #h"9559485A18DEC0F980F13104320348843FE37A1D08D9E1357B909FAF3D2CD819200D058C5DBA1409F91F02F3DBB98D8839FA2A80720E2BC4BBAE73F57F16151A") (:digest-bit-test 51 #x20 12 #h"A0AF2155C0D5CE99AF7E16A66CB1293D15FAFFAA05347ACA8393496E3BDA9DD50C2D305494BB66C1ADD835992C252AAB43F73025293BE6D3521FE5D9A70ED91A") (:digest-bit-test 51 #x10 12 #h"09EA8D8D5D67F0A3E55C3DAAFCD1A7E3815774572FE95735882A04F2D4385EAD319ED4E4C895CF49D3F0F5AC3D3504F4AE9CD4F1291CBC92301312940655E349") (:digest-bit-test 51 #x08 12 #h"0BFC0D95940237BF56F2EF88B261DF5B974CD4E1A6CF0E03508BFAADF64E44D576CADCDC5B808035B88F3E57AEDF17F455935B4B7F6F316EB62D57906DE724A3") (:digest-bit-test 51 #x04 12 #h"6D79900DA08455D212585241A24AAC3041833E6FDA8437E15E0FFAF3BB43F3624CFC164452ADF8D150E4747F4E3A1328DC00D104A0BAF987860FAD70E1C533B4") (:digest-bit-test 51 #x02 12 #h"A1A2A33950F959CC23A95B64CB4BEF739BF830D76FE1E556956E47074C08C8056929D4D9CAD347FC813246AAA484EC10251FD88E8261EC803F5AD8E75F7FEDF3") (:digest-bit-test 51 #x01 12 #h"9CC796AC88E7062CBD8712AF259E1B3918ED095A08E211929EF7D3491EC7822664A80C278377EDAC610A2EF4E91ED4345C5813560C5B516378C5C89B47B4909E") (:digest-bit-test 52 #x80 11 #h"81A93507AE364F2AE37801D4E3579B73B2AB5012F60C9BBA1B8BE2AAB83A24DE9487688916D00B86FDC1CF57CD5A2611F3FC4B1F90B5B446883A67285F9E286C") (:digest-bit-test 52 #x40 11 #h"4EEBF40A53ED39C20FBC31117C9A13B1B4DC154F1B9450EADF8E8E2E10430272F8624EF961B595CE79E6957DFEB8828EDA501BC341A036DAD43E01590CEEF98F") (:digest-bit-test 52 #x20 11 #h"FD3F2D35F8E384BF2993E9BD52E012322359F0AD8141D28B8BBD6FBE51C48E73BB9FE5886C2960AB0F23C384766630394AD76160A837A757CA20C1EEF559B4DD") (:digest-bit-test 52 #x10 11 #h"C67764739E829373E435F5C9F6F8D188C9B4A7BE566F4F940C2B9A93133612CAA4C135F316C8199A1C082B736B4D9DDE597873BEEECB268E683E8EC7BE8A9162") (:digest-bit-test 52 #x08 11 #h"7FA05C132D736A84D42783060AB946F80784EDC86E1B47E7F96BDBC159080255DEAC0F4FE406F74B45638002765B075DC642497A696FEBF3FAFE3D9D19D19870") (:digest-bit-test 52 #x04 11 #h"2328CB5E6C25DABAADD8441DF688EDBEF4885E481427C8145CAB136D8F517AB264A8E8F4BD058F90B9E7FE3779422E8DFD0B8D6EC060D46EB614DF3E8A1F8A88") (:digest-bit-test 52 #x02 11 #h"9A70D2543E2D3FA2EF0E780E1FEC260F4774372CDF1D046884650B1D142A3E111ADDD4543D2BB82C89A26D25BA89E064E05A41628C9EC2CABA6BAA62368EF816") (:digest-bit-test 52 #x01 11 #h"4BC233CD3F172D549C8999BB689DBEB038C5217D196A33C269760570AFDD99D0B955D3D511AA389E2F80FC7D65FE1856716F923ACABA6B570D6B02530A2C7E20") (:digest-bit-test 53 #x80 10 #h"D158507C1517FA18CD7807A96302AA63FD58AB2998C5DAE604BDA37322C57550103D5835E6C590E0A80ABDB23E4D68E382880EB2CE19F39E90996FE49025E462") (:digest-bit-test 53 #x40 10 #h"D96F87D7110E2B8CEB26CEB899B64B574F20FA700F85FAA198C1E87D5190C7EBB1BEEA24C503AACC955FB37E6A3926D3CB3E341CA42C55F430E9AF7080054A5C") (:digest-bit-test 53 #x20 10 #h"CB22B185FBB00D2E2DD43858A0C822ADDEDD1F865FE1E806F6B3B38853B08339576922A40785A153C1AECFAAEEE892AB23233440EBDE854EA0A11BF11F67F939") (:digest-bit-test 53 #x10 10 #h"8BEEBCA773EBE8662DABDCA3B1159B6FA50996AEC276FC622619C958CEBDB0421D9ED7414F80E577D4CEF087662FA16DE19A87EB22E7536B38752AE31DE8A486") (:digest-bit-test 53 #x08 10 #h"8CB59041478EA74A9925255F718A74DCDD5CFCFA7F849E40B4AD9E97EF3C12A93E0D587C6153AE883ACAC31D0E960B36E14E806673C21CE058EE44E580BF89C2") (:digest-bit-test 53 #x04 10 #h"10C573278BA7AEE3239A43A3DADB3ECA5CB1CCE5C910812D45F8E90BB247CD33615750207526E6B44B95FC2679F135A5D3A0E5FEC2E6F29A6E23EDB3EA824CE7") (:digest-bit-test 53 #x02 10 #h"E051B4720BCAC15353EE9E90A1EB8FF0DEFF003D08B46C37C46BB42DCE7B5D1ECECFA3DDC1DBE4823E48028245890D1A9BC2827DC0ACC2F00CBAEECB8FA8DED5") (:digest-bit-test 53 #x01 10 #h"2FC9874816CB8A3D3DF4081AD5A669A76C7B36D92DAF1FAC18ED7D90304FAAE7AE3C3BD2C4501A4133D0183E2D149D952EEE7D1AEB2C473B3139E3FAAB60984B") (:digest-bit-test 54 #x80 9 #h"F68C393F1863FB7872E7E8134B3A220FA82CF80BB7FD9605AAF5E39F5CA24A8C5B2A3112213D7ED334E46EF96548477AFD78536B54974ACF6759859213A2EB13") (:digest-bit-test 54 #x40 9 #h"44740CEC92333F52C1EDAAD6F8C1F94F78BB62BBB0E5B6B89E9D707C708572892C53319B1C8702B32476E7C4E1EDA37910E04C46DEFCFDF5DC0516B25318475A") (:digest-bit-test 54 #x20 9 #h"D97D7146AB94433AA7E9DB65D8B5088314659B8F901F288968720232B91B2D8BCF548C66D41694717A892D0B7B8DB1DD933B5D2BD88FCFEA87CFBF11570F3ED1") (:digest-bit-test 54 #x10 9 #h"8DEE46170F240A4C170F3F13C941FA753619EDF81341FA099672CB7BE230D3352FBD1692E4D377A8529DBEE2044072F1EDFE08EE1D36E02DA62AEF9BEF962B79") (:digest-bit-test 54 #x08 9 #h"FD36A395C71A8F0C23FF8C7F75B01787A2EB4C51C26A927AAD4E3272A02EABE70CFFBBD0D083E529386DC68213D6EB99819B8E1786DF9943C3F17F9549721FD6") (:digest-bit-test 54 #x04 9 #h"B4FB4206130AA5C4441319576EB8921371244B9BFDB8E1673CDE0BFACB822F36ED1F3E8CD0BA5A3B2D63EA4C8B104671967AAFC4D22857C90BE91E439554C43C") (:digest-bit-test 54 #x02 9 #h"851CCAD13EBC7BD5EC536FC293CC8C4EE39A1E255F50714307B9E696A2144D3C168FDCE58C882E4DE426F0C68319493923B9B0825E7DC70536E0F623F847AE08") (:digest-bit-test 54 #x01 9 #h"A08D8549F9B4B10D2FE0C752B6C34E92E2BAD4EB0AFE42E0021667AE6DABDBCA15B92D7AD59DFECDEA3B3F6F039B975B5711D90002BAEDFAD78A2F2B8A5516B6") (:digest-bit-test 55 #x80 8 #h"2F4CC04DD38D72ECD1FB3904580F2FF8E9D6863A877333B0598FAE24D85670E1963832CF6B2AEA8E73FC9F4F782A3AFA4A07F489CAEE091122B2C58B59917435") (:digest-bit-test 55 #x40 8 #h"3B7631CF56C1AFF70C2B088575782B35DD4332D10488E13D0F719A2727D6DB6B3AAAAFD92011B59C3F2C6846620A8D0BF49FB2D4804FD5DC32E33D117C1EBF66") (:digest-bit-test 55 #x20 8 #h"F333F6A1DBC56B73156562E0E9BD571AFBCAA4AD69B1C0A7CB2FBED45106F8C8DFA4C184A475F88B2002E9E31C57840A148BB7D12D267E6C55CDB566BE74D816") (:digest-bit-test 55 #x10 8 #h"4EA38C2D2536A05B83C310AB036966CD407983FA9506F840DA3332F5082E15BF88AAADCDBA00383EE05502A9F8945D489A9407A93574A6B856CA217153053997") (:digest-bit-test 55 #x08 8 #h"2D05C9DE322326BDAF96BAFA893E4026BF7FB9F5D62325A68DFA3B0FC9488BC42B04591E8719EA26A2AECE75B0690F9EC833A2827080C50941691D0EEFDB1EC5") (:digest-bit-test 55 #x04 8 #h"F7BBA4664D418305EB0945A9270618C39FC33AF1DF56D010E2D6A9E1AAC994EC8E5D81AB14D0598F563B450CEEAD416F857B08C86822B34A901ADEA8B7AAF992") (:digest-bit-test 55 #x02 8 #h"8C6FA6625D34DEF8AE6E852947E963C679AA2406D85850B7F53450990B047F99FDB2C4C24F8EF9725102605D41C41408DA23E4C9E8E19F100974402F3E92F4D8") (:digest-bit-test 55 #x01 8 #h"343CD009F39973072A563866F8F4681590A7BCFAE041DEAD5FBD7E128FE61529C5636BACDE3D0BF30DFB55F8A613D4536D0DCD590BE479C95B604972F7B806A2") (:digest-bit-test 56 #x80 7 #h"B61B70AD156AA68FE1E63363421B60CCB8E0E6D85C0F0884CA4EADCAEA60FB04BF9B96B3759BF4790A3BD2D6CAAD48DA3F99615C47461D15993CD4F174FE6A1B") (:digest-bit-test 56 #x40 7 #h"6097C70A7662980088D9D0254BA0CE48ED5788FA2F48E8FEE465AF05D8A775F62AE460210C86BDB35CA65985BE92974223F5CC0DB53838CD7F1F8345845B0480") (:digest-bit-test 56 #x20 7 #h"28C0E325105ADDDA3D15D3AEF4BFB0D9320C5992DAD052221D0B75DE8BDB2CC03E5326E373AD003550C2AFE046D2E916FF4E6315F356FFB24DCF99880E935ABF") (:digest-bit-test 56 #x10 7 #h"34C81C1B3992F305468ED2CD97A2B45DADB05865DBC1F68019625D57B3803E9548B95E4EC6D03739FDB1573EC4FBD27F5A5543E04ABC2823F6BE91D37C8ABA4A") (:digest-bit-test 56 #x08 7 #h"8AE6C50179F727C1738CD1877083A140B25AA629D4CC1EBD82E0F6567539FEAF4E874B02D2F215BA9463CB1A226D0152DD8BC9C7991A059B4E25B0D7D6D982DF") (:digest-bit-test 56 #x04 7 #h"E55207D274825B0FFBB3F2F7FC9434C11E52FC0A704380E4208072FD0CB7E169C683F5A67D6B34C1335A565C65CE74D70F7779F1FF859E4D4F3BA4EBDA4A05D4") (:digest-bit-test 56 #x02 7 #h"CE44520AC7BE9B162DD0DD9A2F1E9869B7CDE670435E5A8BE3992F0AB21E25000BB23BD23DB9C91741E8F8471562D6697C806654B11C1A96D944D7A3F6203A49") (:digest-bit-test 56 #x01 7 #h"7EEFF2C0786CECE0A0442948663A8F3952C756E7020AC19A050E8668108BF062A0D2F61AF38E7E53F825781F5F6F80662CD3676FC82EF4E0ABB8F01368749ED5") (:digest-bit-test 57 #x80 6 #h"D58737DB6CAACEE54FEA2B2731C9F20350987A8D0C5F60D6D3086EFC81D4DF9DCF9B6836F6A89B8A6197628A18CE92CC68000DF8CFA6F16374A5624CEC0FE857") (:digest-bit-test 57 #x40 6 #h"0D2F1495390183D84C0A5D68515B48CFBEB62027E3970FA41380D8F99C5B6C58FA18756FE6CD5EA60A79271285223456B87A9192B1E5778C9BFC0B7E4964DFBE") (:digest-bit-test 57 #x20 6 #h"0E46D3DA58447C267CEFB8EF3EA8EA754893E1FA570A16E5CF825BE20B45501D9D7FC42D42F2A3D784050E1866C7B6B3B778DCFE5DADC59199EF70D07C772824") (:digest-bit-test 57 #x10 6 #h"D3FFBB932B17C5BEA745BE0CDE5138EB1144E5DEB8850C7A34B68207FB5E4B88B210E54E0BD79B7E8FFD1C007A8CAA56FA2FB806A6B1B0EEE9EBBE46DA34FEA4") (:digest-bit-test 57 #x08 6 #h"EB45091BEB7E8D0C702D11DBFA4664B0070884169D385AEC6A031CB28EF3A778B55261FBF118D746FE4AC23E808E4F11B3B2E67ECFDB1EDF8EC35BD756F9BA5C") (:digest-bit-test 57 #x04 6 #h"5370930568308D50394DA5D1B88F8F294881B81C7C2566D622EB1506DBD8BCA9E978B78E2F16C1F0F4B17AB2BE880000F020A1A9A2E1BBB449A1B57F1D96DD5B") (:digest-bit-test 57 #x02 6 #h"CA88E9181BF0764C25E5C161289F1B8B7A04CF631D155DFD0FF87F9E71BD9B2E0D3B80041FEFE1A0667CAC959145CD5202CBB15CD1DB746C6798ADA14384C0BC") (:digest-bit-test 57 #x01 6 #h"DD7BC2B4815D133621DEC056EE17AB1AE1B069D437FC3D229BC077A7513785F22910CA62AE695F47F3F6B5EA1D0321F514AA0AC4D094E14CB043002A6858D485") (:digest-bit-test 58 #x80 5 #h"A094F2A798063958830A1131A6BCCC47DE68FDEEE32E2CA2C66F86B8F89900516BF979580FE91C43DE080DF67D1E77F730D078C6A7F18CBDB7BD0BE173AD0389") (:digest-bit-test 58 #x40 5 #h"4E60423EB5B7AA985D56DEF9A11E3353AE67133F1B3587C1A41F1A21877C7161C79926EACADC7290C30A8B9426A21698F95FB58E21F3BC2A40BC2375CC0E5235") (:digest-bit-test 58 #x20 5 #h"D7D1E0B7830BD4CB240CC6E075E4BDA039EA670BBECDD50AF103DFAF8A67063A5C4CE3593871E9FAED3A6A85334FE925F13AFE32CC81A85CAB00A797C191506F") (:digest-bit-test 58 #x10 5 #h"DD98D17AE17295F1CE155FA905AF08B15611E60DE7B88F20E5F7D9662EBB8B6C0C10D5866BF06514B61EA931908323527939ABE4F04A5C1F4A07B246770D265B") (:digest-bit-test 58 #x08 5 #h"77FF15E968645D3BCE6529AE792695FA9D707E33724C60DEE76B26BED3C48969605D8E264E3BDA22F0AFA1D34BB6428F745E67DC9BEBCCEFAC21E4F03B97727A") (:digest-bit-test 58 #x04 5 #h"36BA8F0D0B5DEF0A208AAC91DDA52D6EE568B85B6CE635783DDC7CB1497494E949BE9C3E01A291CACD0D95F167A8BBE97F20B7F2F314D2D7389A5BA50898C4D9") (:digest-bit-test 58 #x02 5 #h"66B40FED2160CE54385D591B20C57B0BD6B8356F456F65B73A0988A5C56EF1D76AD8596C07DC98C1CEC4F8227B418222F7DE631BD4BD6A145F4506FAB4DA8286") (:digest-bit-test 58 #x01 5 #h"15683EC859B4E8E7E250FB52B213D9C79800B0E1906F0B4C74BCEEFE499D591144AD67EBBBFB65F64CAF6A289FB893DE8D90A347CEF3FA58E940603087C128A8") (:digest-bit-test 59 #x80 4 #h"4FECC42F6D9D206E3BC47E11C292835239B93EBE8453C097F4F0C24CB0966BADDF21095BCE26A0399E88719067E1A71D2D578A745D31D90761E1D02F2AAD152D") (:digest-bit-test 59 #x40 4 #h"5EC9EA77D1AFDA51405C5D3010C09BA0053A425B33EF0825156758AFBDDD803C7128B418FBAF56E40F31DE2BDB2BA802D9F36FAF3A4E5DD6BD37287FCF4F88B2") (:digest-bit-test 59 #x20 4 #h"B42342C0969EAE8C3881CE80B601516EBE5FEA463CAA6B24D0CCAA66462D9EC91DE32B7230558D8913EFFF44C568885F226B70B1341EB025C6ACC2478B0B673B") (:digest-bit-test 59 #x10 4 #h"0F94ED73EEB5EE9913161F1E35A0941B0FC397BB08FAABC01F62127CD14612F44AD999E15E21B08F9E7ABADE213FCFC03A635A94D51CC6DEC3119EF15BF3E90C") (:digest-bit-test 59 #x08 4 #h"CEBEE3823964A072E7268CC01D6A0CF5963C4A2FB35B849D2AE5E6F162C05D569E60CA32B8B084A0A853DDF9AD9D8AB0AE9FD7189B8B7ACB90BB841F68F694FD") (:digest-bit-test 59 #x04 4 #h"A7238DBF7668B0BD94D8A990625FA4FEB58197CCD313BD7B914653CBDEB069A927DDE3EAC45180E2EDE6CCF36EDD6894CE57681A11B149E00B36A15E0610BBEA") (:digest-bit-test 59 #x02 4 #h"516CFE773620C66828CE60B63D658656D2C05E438AB630AB67181D4718CF146372B82C6A28048E59DE419E92B224F58FE5B7A9390F914FEBB5153C2EBAB3E0BC") (:digest-bit-test 59 #x01 4 #h"79EF809A330347C7EF7910750A739E92A94CF05E3A81A68C090E85CBCE8763B10472206966394E8BF9E8D934DBF1CCC8C171F32C8152C17A45BC6B0283C1A9AD") (:digest-bit-test 60 #x80 3 #h"DC98E4A347C69F7CB06C3CBC60D44C1B5278B5EE16D1C6950B7444F44FE517F9AC284EC808738D01086270FE24C78957C4CB073DEAB3B015588983B86CAE4E33") (:digest-bit-test 60 #x40 3 #h"840C65EF0ED3CAF5351396C2B3349D72EAFACB53BC483778FE209B94A5248BC62090BF6E5E19D200DA20A76ED31DDA39E5F21FF506289279277D483DB12BA6F7") (:digest-bit-test 60 #x20 3 #h"44B8FB2C2BA4C20D140A954D76251E82D6BDF446C96A89908673E8E7226EB8E108614FFC4E282BA7DE021FDCF58BA6774196615073F213F9EDE25B316FA044FB") (:digest-bit-test 60 #x10 3 #h"B88818996D0A75B65054BBDFBBC24273E1123291D58B0347AF2764EA4323B2D48335AC8C5D0B4AEDCFC4E8C4DCFC80B3ED3707EE17ADDD0F301296FA28C49A21") (:digest-bit-test 60 #x08 3 #h"BFC8806B7DD38F0D2A45C3425F6F6AD2E31DD61BB19ED51258164AADEB218FBEA76F5C6900F37D8976E0EBDA4AEA22E75F44C98F990C34F1CA60042246F62E36") (:digest-bit-test 60 #x04 3 #h"CC0D6B8C5B0D6FD469025640E0F21DAAE7C0591129CF170D2E76C18DB3129747A6B2C22D5581A606FE749F2AD108433426225F24F47A89D41C32F00F6DD08ABC") (:digest-bit-test 60 #x02 3 #h"7DFD9A3F16171369C535E0DE475E1BC82A5D13FD34AD5CD3D472035B40450EAFA749DC37DA62F7F23C0957BBB932ADDC94330BB1B59BC461243E8CC7E39FA6B0") (:digest-bit-test 60 #x01 3 #h"CCCE96F690D865A220A7C8130BD24CE5016BF46BD6A4C9D882534E7067C0C97772DE316C829CBD00F68FFE5784244E0C209DE0E0AF278B5377F398A3B6C32FE5") (:digest-bit-test 61 #x80 2 #h"C7B8A88D353F919FCC3B666FB8AC8D8FB24542486C15A0E461ADE1713E317E962C72DB43DD941BB1482BEABB7B130076FAE47565D9A11146F02BB81ED3E09CD5") (:digest-bit-test 61 #x40 2 #h"123882AEF7A198D7BB5095FA2FB1822700DA042AE4D161C05298A0C3718964529FE964A96E627C06EA014C4D2ED28A190CE8745254D6C86F9374704C7FC0985D") (:digest-bit-test 61 #x20 2 #h"94221E6CC44720A69A73B875ADAC569FA2159B1C3038A962BAF12CF4B5F64715A21A96D9AA4B7AF2763C5B35E4318C68A1EA19A5AFCA98D02BE6B1B99871F8C3") (:digest-bit-test 61 #x10 2 #h"CAF89DF4AD3C01277237BB3888D308C69D553CC95D3A81ED88BE55835CEC786342AA58E076E4ABF40FC2E32D7B334D8E363F6EDBB629C6C6FD6E751A2BA86CE5") (:digest-bit-test 61 #x08 2 #h"35042B3DB2FD94E5441B4C31C8B4E8B2ABAAA8D5EF3EBDEF45F77799052D7AD5689AC997B3582D023AFE09246DC796B25A57D21AC29023A2C6D7CC6D3FD8450C") (:digest-bit-test 61 #x04 2 #h"FDF49B72D5AFB44388B5B28EBF7DA56CBC0E52F8B638B7F70FF8DF8916A2CD8BD1363A776BD4FC3CEC4126DC3725E9889C127BF222F1889875739C77CFF0C283") (:digest-bit-test 61 #x02 2 #h"53E0CF24892C07E2647034267B78202F439A27A48320CD29F3CC381F31DCCA4C561C6551479964BB66E3092ADCFF46BFC680E62D3C6B5FD90CB94C666EEABAE9") (:digest-bit-test 61 #x01 2 #h"271DC9151D8DECEADC97B1ECCD5F4CBE2357BA4C20BAC6800431269A32B6715144EE8B8EC9191473FF390C04E78C6DE6F0A8CBA9EE18100559F415B17DFFBB97") (:digest-bit-test 62 #x80 1 #h"5254D3F778D35A1A08B090E7C54E7ADAC5F0560B0000D141FEF386E76221632662C4028C4ACE4B6267998D5C9078204CFC58C19A320C54AEAE45BFBAA7A28520") (:digest-bit-test 62 #x40 1 #h"7495E8F64EDAE4CD0E58726379CFF623A981CAF800A99BC33618E53C79EBD5866C258DBA46EAD1AB20F111076BC2AF12F1ECCA509020F32B3EAC6ACD72B346E7") (:digest-bit-test 62 #x20 1 #h"AC6671FB607C0841E06412D64C7417FC560691DE7640D1B422843FDD74E4CA4CF5E6A2691FD7E8B690F3052E01F7E0E54B9CBD1E6421007FD918C2C87BA393F5") (:digest-bit-test 62 #x10 1 #h"CA0BAD33E1B7A2C227789460766B66E2173D149FA58801089F1AF7E2DF3E4980EFA4EA27606FFF2FB20DC2B331B866FD50938C1F012110A3777F7AE54FB333CF") (:digest-bit-test 62 #x08 1 #h"2047DD721D2E159BD0698B756DC09A4E4B70CD965BBC60D25BCAF9B6AE6671C215BFD53F1130734DB5B0E23A093EB31E19D79E073A074A1D3CEA8274ACBAC5F1") (:digest-bit-test 62 #x04 1 #h"4C455263B5077C0168BAE0B20DB9545FA6575964DF7C4CDBC893F322DD90D1D1F89F3C8BC85CD56D7170A01A371F2C39A90A6714E7F20F81F9C6022AA75E8419") (:digest-bit-test 62 #x02 1 #h"C7B4ED422B58C3150229612E096FE9DC9498728468477C9DCAC3691D7657B1EC13BDA8005BE91F3A5622A12C87E0497DAF626C58B83B83AEF0741F019DCDFFCB") (:digest-bit-test 62 #x01 1 #h"ED6BD216362CA0DBF651E40AD73D4DA07211CA4BB324505D4C3E531031B63019F8F6B1819715F8F4CAC091AD636A33EAC2677C81EFD7185F382D1C1FF88EA22E") (:digest-bit-test 63 #x80 0 #h"0813B60406C753F8C2C0A843BC4BE0EDDF77DCB5AC16075BA04CEA4A321F3CC5697182A501EFD3F9FD72BD448A0573C310A10D223B5E43C4F2B3FA9E0480637E") (:digest-bit-test 63 #x40 0 #h"D7AFFBC1CC58536AEFF876AF9EB9A4884CAEE57EDAD98BA4AFC44AFE55D735D7419EE13109965E56A5A1FC76D225E2EC484F7C3303B91B16E0E41B1B95E98D4D") (:digest-bit-test 63 #x20 0 #h"A3302F92B5CB0A103DF25FA8AA375EDB2F4AC323E1AC8D12C6BCC5467C8837D86C97DDDD114A2E30D245CBA0B9D3772645A64A29A447B1F656FECB026F32FEAA") (:digest-bit-test 63 #x10 0 #h"241EE38D4511ACE1E7BB519083FA550C7955F961E83C7C7490AB521EF2117FE33B2D1A59134EAAE2CC5D41B4F9A7DDEB8D1C05D1387B9C647798F89F2B211757") (:digest-bit-test 63 #x08 0 #h"B6A4A828466F3F4FBC707DF1ED1321E7A6728B1DCECAA24375A5950D0FB60B59D86C0C02678907C35C62D2BD65019BC80240E25BA3CC01A2338299E13F23154E") (:digest-bit-test 63 #x04 0 #h"4895EBBD90CFDBF45D6CACF29DC6A5EE8BE1BE3A396F871ED8D60B89C37FFDD64ECAC08A43A9F5010254832D9AAE0B594B2FE2546531A2E76FF3E1DD1BA254D3") (:digest-bit-test 63 #x02 0 #h"D966D0EB0C6EE7235DC135B8DD86F128CEE6F83A81CC1FD54DF358D421154DFC94B82CFE69777E73C68CCD5B60D597A2432A1BC2238021B0A4F73ACE8E9D96BD") (:digest-bit-test 63 #x01 0 #h"3A621DA1125ED4AA186EDC9E26F0E5560504CE8BC7C309AFE5D3002E38B338B5ACBDDCC1CA253B088BA69B69478A94F03014D22A98E9B31D67894426E30F3511") ironclad_0.33.0/testing/test-vectors/ripemd-128.testvec0000644000175000017500000000127211305364032017737 0ustar00(:digest-test #a"" #h"cdf26213a150dc3ecb610f18f6b38b46") (:digest-test #a"a" #h"86be7afa339d0fc7cfc785e72f578d33") (:digest-test #a"abc" #h"c14a12199c66e4ba84636b0f69144c77") (:digest-test #a"message digest" #h"9e327b3d6e523062afc1132d7df9d1b8") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"fd2aa607f71dc8f510714922b371834e") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"a1aa0689d0fafa2ddc22e88b49133a06") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"d1e959eb179c911faea4624c60c5c702") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"3f45ef194732c2dbb2c4a2c769795fa3") ironclad_0.33.0/testing/test-vectors/ripemd-160.testvec0000644000175000017500000000137211305364032017734 0ustar00(:digest-test #a"" #h"9c1185a5c5e9fc54612808977ee8f548b2258d31") (:digest-test #a"a" #h"0bdc9d2d256b3ee9daae347be6f4dc835a467ffe") (:digest-test #a"abc" #h"8eb208f7e05d987a9b044a8e98c6b087f15a0bfc") (:digest-test #a"message digest" #h"5d0689ef49d2fae572b881b123a85ffa21595f36") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"f71c27109c692c1b56bbdceb5b9d2865b3708dbc") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"12a053384a9c0c88e405a06c27dcf49ada62eb2b") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"b0e20b6e3116640286ed3a87a5713079b21f5189") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"9b752e45573d4b39f4dbd3323cab82bf63326bfb") ironclad_0.33.0/testing/test-vectors/tiger.testvec0000644000175000017500000012436111305364032017266 0ustar00;;; standard tests (:digest-test #a"" #h"3293AC630C13F0245F92BBB1766E16167A4E58492DDE73F3") (:digest-test #a"a" #h"77BEFBEF2E7EF8AB2EC8F93BF587A7FC613E247F5F247809") (:digest-test #a"abc" #h"2AAB1484E8C158F2BFB8C5FF41B57A525129131C957B5F93") (:digest-test #a"message digest" #h"D981F8CB78201A950DCF3048751E441C517FCA1AA55A29F6") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"1714A472EEE57D30040412BFCC55032A0B11602FF37BEEE9") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"0F7BF9A19B9C58F2B7610DF7E84F0AC3A71C631E7B53F78E") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"8DCEA680A17583EE502BA38A3C368651890FFBCCDC49A8CC") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"1C14795529FD9F207A958F84C52F11E887FA0CABDFD91BFD") ;;; bit-level tests from NESSIE (http://www.cryptonessie.org/) (:digest-bit-test 0 #x80 63 #h"B99F2BEFF1E64861ECB3D91B04C9BA4BE6FC0FE7CE9653F3") (:digest-bit-test 0 #x40 63 #h"FBDD470EE15111676B477532D293019EB182CE9EF17C0B59") (:digest-bit-test 0 #x20 63 #h"D68BC840B64746A212810784CAB2BBDFCC49FDC743AFF5D4") (:digest-bit-test 0 #x10 63 #h"D6B280F151C286E2B8A78B3C80F181E192BEEC0A339F0453") (:digest-bit-test 0 #x08 63 #h"02FDBD79A641FDB807DD80699019BC97DA69D692104FBFCB") (:digest-bit-test 0 #x04 63 #h"E30F39FBB7BB8C191E2CD9A970EC806EA64825E4CCE782D7") (:digest-bit-test 0 #x02 63 #h"0521BC64D5C188320CB9AE9D2A89BE291352F77C3E44772B") (:digest-bit-test 0 #x01 63 #h"60224F0B05145D00FB3C09E78522FE17FB7C64AC90AF4BE0") (:digest-bit-test 1 #x80 62 #h"3104BE53E8A19ED90BB03DA1FC5FBD052EE7D80B4AB31AF2") (:digest-bit-test 1 #x40 62 #h"ECE34E9D1BBA44EBAAF18254812DA74E1B250D874049471F") (:digest-bit-test 1 #x20 62 #h"7FBEF692D8F3DB59912960E1C4F255D65CFA93E64CDA00B3") (:digest-bit-test 1 #x10 62 #h"180C2B906440036CB48ED7DBD670CDD06054734CA9E3E531") (:digest-bit-test 1 #x08 62 #h"EC1C85F1C4361CCC979FA94565CE47BA766B26C03E0155ED") (:digest-bit-test 1 #x04 62 #h"0CB103FE2F16046BCF473C0EF5F30510094B327A811303AC") (:digest-bit-test 1 #x02 62 #h"35E499F9FCCE1B0CFE442FE493333763C8E5F956A255DDBE") (:digest-bit-test 1 #x01 62 #h"E8CFB0B7651DCF73891553FE1AD3DC0F1BF5CA89E2243771") (:digest-bit-test 2 #x80 61 #h"9F375EFC406EDB4DC7008C6ADF57CE7BC6072BD39593651A") (:digest-bit-test 2 #x40 61 #h"C40960EE520A3F6E38938C4D774695FAB9AA99ED98724686") (:digest-bit-test 2 #x20 61 #h"C925142A228B90DC4EEE8D740480095B72EEF71717AF230D") (:digest-bit-test 2 #x10 61 #h"49F67D2EE9E5E07754EB3FB587A5DFC9A5A5F1AF952ABB90") (:digest-bit-test 2 #x08 61 #h"8EA4A53FB597B8612B751B25B4D67A3211BD9B55810830FB") (:digest-bit-test 2 #x04 61 #h"7F8A9779678C20D7B26126CE54CF40D586D639038E0D898A") (:digest-bit-test 2 #x02 61 #h"45B2D2247DF2BE8762F7C2BFB1D282DB99686B8C61F12DC2") (:digest-bit-test 2 #x01 61 #h"5AF3F43A65A123F25318B108322F1422FBDD4E2088B3FCC5") (:digest-bit-test 3 #x80 60 #h"255BA44E43BB186AC95A8BA873F27C17D4209A7CDA0743E8") (:digest-bit-test 3 #x40 60 #h"6CC1C5FE50A6A3E1A8C9151E529627B7825E797CA2996763") (:digest-bit-test 3 #x20 60 #h"4C8E2574514F1908500775D706E66CB5E098A07763CB29A8") (:digest-bit-test 3 #x10 60 #h"80E15B5D7DD082786B73BFA7C11ABE846CC08992D82082EF") (:digest-bit-test 3 #x08 60 #h"9AAEDC20A2B5C9B3AC1FEAB011E0BC63C3F14A77716745B4") (:digest-bit-test 3 #x04 60 #h"20FDDFC28496F4B7C474D1DC0D2556B71A0BBE0008FBCA74") (:digest-bit-test 3 #x02 60 #h"6C5437A6A7ACD3882300183FBE7B474CB7C0E45DF4BF126E") (:digest-bit-test 3 #x01 60 #h"3220E4DE2B99FD792057CA379EC8E0FB9277B2B0AFCAF7E1") (:digest-bit-test 4 #x80 59 #h"5605262344AED0F46F6AA94AAE288A936B3783D7B0C96EBB") (:digest-bit-test 4 #x40 59 #h"79FE05ED00EA9FBE5C5A411B7BE9D0AB7E95FCAC4944FB5A") (:digest-bit-test 4 #x20 59 #h"5632B77A86B06F60FB38F6F8D7B8ACB076610CDB17C45F3B") (:digest-bit-test 4 #x10 59 #h"6F1C90B7CE7D352A1EAF908EAAEB69DE70CFEA924FA1F322") (:digest-bit-test 4 #x08 59 #h"B0582D1882AC0B5C534293ABB751072EACFCBCCD7760B739") (:digest-bit-test 4 #x04 59 #h"D56CC1F5522E00EF7F25DA7C524CFBEF639E04ED232FDA74") (:digest-bit-test 4 #x02 59 #h"FDD3E72BD41951FF6CA729207F9EE320F277C240C5ABA6CE") (:digest-bit-test 4 #x01 59 #h"25C341EFBF8E0197DD7AA0D098BE9C262EA24A5ABF1956DC") (:digest-bit-test 5 #x80 58 #h"3D8E11219C1F4A655DE818DD5BAE94724292D1FC1F2C0451") (:digest-bit-test 5 #x40 58 #h"78D0C2AEAAB13E6957111303BCE092987F38B125654AEB06") (:digest-bit-test 5 #x20 58 #h"76CE1A38D5408FCF5C60F231F8624D22EBE4F3C2A77833CA") (:digest-bit-test 5 #x10 58 #h"A1478F92ACD8AFBF1383F566E8074249C576C6C01573C816") (:digest-bit-test 5 #x08 58 #h"EEF978C6730A5A51E0C67CA0CD591718F48E586924DACAC3") (:digest-bit-test 5 #x04 58 #h"D244E12581769DF1260AD3B9BADFEAACAEC10F08D0BC20B8") (:digest-bit-test 5 #x02 58 #h"6C88A229FF9769C257AE208427684E2BD2F2616FB11DC61E") (:digest-bit-test 5 #x01 58 #h"F9AA7D877F5B192A751D6956225FBB166E70BB5373EA03B5") (:digest-bit-test 6 #x80 57 #h"8E5FC1110E41E417B771F4860BD7180A8771EC8BE3F51371") (:digest-bit-test 6 #x40 57 #h"16A04075744A70693EDC2823E6D3F53F8BD7DA82F61C988A") (:digest-bit-test 6 #x20 57 #h"DAA5DCE2246AA0B16DFCB5A6DE1148A4667CF130CB0FE57A") (:digest-bit-test 6 #x10 57 #h"7935C3EAC77062032E4DA41CFE266DB7B1CEAD6A92F36531") (:digest-bit-test 6 #x08 57 #h"12FAFE2DD9FE0F928585DBFFDF2FC940329F4CA2C428FFA2") (:digest-bit-test 6 #x04 57 #h"B5AF46B22173E04EC7C73D201D230E76AFF7E25E7C64C9A1") (:digest-bit-test 6 #x02 57 #h"04A39346609CC870A34BFE4BC381391E5096EECC0420CBE0") (:digest-bit-test 6 #x01 57 #h"8E30346B3CF6A33A5DF960349E79E318A559177A10132AE5") (:digest-bit-test 7 #x80 56 #h"E010FE9A2A139AF552D7A22D5D04D59ABE9F26099565B139") (:digest-bit-test 7 #x40 56 #h"7E3A17F0489C5D1CF249BDFD6D839D17797E5F91655061DF") (:digest-bit-test 7 #x20 56 #h"DB0EDCB6F326FFC5EC6C23A9B23630110BCF3EF1623090C7") (:digest-bit-test 7 #x10 56 #h"0E878D8D2984F9A638DFF1A309EA4B436D24FA40B3BC5F4D") (:digest-bit-test 7 #x08 56 #h"AE09F204A5E6EEA22BADD0042D00D48E60643343C951C79D") (:digest-bit-test 7 #x04 56 #h"5411134E8112EBD21A89CA726D6C3293BAF1522031BFED57") (:digest-bit-test 7 #x02 56 #h"1CC1D5B8489F213F6A0519811867CA70AAB68B93768B2EAB") (:digest-bit-test 7 #x01 56 #h"A16D7299661CC6978AE949CF9F607E286913CA0615E12CEB") (:digest-bit-test 8 #x80 55 #h"9A2A8EE8963BE88DF83D5761D490FFB0450E9C450542CB08") (:digest-bit-test 8 #x40 55 #h"FAC9C5FB38BF7CE0902DC3E447D3D4D6DD369DBE94A8AB67") (:digest-bit-test 8 #x20 55 #h"C430CAA3FD05B674624BB549B3A565C9F1A93D8E4AE429E0") (:digest-bit-test 8 #x10 55 #h"D03C16013ACB204439B0B84C5EC0507C07EAD360114BB6D7") (:digest-bit-test 8 #x08 55 #h"44F6F5EFA89F2302B9E4B6710EFA1BD79F2589575F57B7A0") (:digest-bit-test 8 #x04 55 #h"C392AF0E93D619A0FAAC3FC2EE960DE9464DF3F3B87728D6") (:digest-bit-test 8 #x02 55 #h"BF1C5CF1B59A39C9EFD3D46F9144E7E7CC75F53C83BE87AB") (:digest-bit-test 8 #x01 55 #h"F4DEAFA84B6859F0B32D04DA3CF8DED931870EB8EBA086B6") (:digest-bit-test 9 #x80 54 #h"68B3511E9A930CC1E465DDADD3813E79E5235690E279A53A") (:digest-bit-test 9 #x40 54 #h"D98B1C76BF4216804783DD2A082F5722AE7049717AC6BEE4") (:digest-bit-test 9 #x20 54 #h"8FE146611B75E5E6527F0E2516F09090FABE1AE0F51D9965") (:digest-bit-test 9 #x10 54 #h"B6F4518C9B5A082BA4951EEFEE8991D2605395D04FFD9784") (:digest-bit-test 9 #x08 54 #h"0C4C268E0243354A31C576B053FCECCD320D864892DD4452") (:digest-bit-test 9 #x04 54 #h"4FCBCA86DAAD5EE31427339F45DB698C56F4EF5977C62346") (:digest-bit-test 9 #x02 54 #h"D63400C91F46CEB1F73427A1DD61920E5D98250CD7B21D61") (:digest-bit-test 9 #x01 54 #h"2002BE33AA6783F40109E747E27231C652FC90B304F91218") (:digest-bit-test 10 #x80 53 #h"A8FEDBD8A393C41857EA09B457FDB42078049B3F269C1431") (:digest-bit-test 10 #x40 53 #h"D2C06B7D56774863AB6F3A9F8FFD79FB56FF130906B16596") (:digest-bit-test 10 #x20 53 #h"5D8339715D342E8DDCB7CF18F4878D2221BB05FC4B2563BD") (:digest-bit-test 10 #x10 53 #h"06DEF00E4151BBFA011D87096B16C09A955B1059EBA03393") (:digest-bit-test 10 #x08 53 #h"36386BE0645E7577BFF63BAAC50532912EBB7026B120E472") (:digest-bit-test 10 #x04 53 #h"8E4CAC8FE8C09463A5726B0FD3335A09E8971B498CCFC14E") (:digest-bit-test 10 #x02 53 #h"45EA2AE4AD4B1E0C6958FABC69939E1A19300E28946638E8") (:digest-bit-test 10 #x01 53 #h"7C97246A7834ECF7074DCAD08A8B4BF3E8A68157889B97E4") (:digest-bit-test 11 #x80 52 #h"0F040C8CB0C777EE04086DDEAC53751D037FC41A62DF3D64") (:digest-bit-test 11 #x40 52 #h"011A9D0417A070DA0D425E835F03C68D0BD8762A7174C0A6") (:digest-bit-test 11 #x20 52 #h"76B90E3049F98281369B0ACD1D2193EF2F63A25F75D9FEA1") (:digest-bit-test 11 #x10 52 #h"733DBC18BB0821CD1B33210BD9018F2EAF405E0A281328B4") (:digest-bit-test 11 #x08 52 #h"4C3B42FEA3DA2B23AE3C723B22522AECC84BB1D5CD2F9E51") (:digest-bit-test 11 #x04 52 #h"77396616E87FDEEBDB6276B30422B04C2098F85F0085371D") (:digest-bit-test 11 #x02 52 #h"6BD882666B2089F5A3904F91E26B34263BEF463456486ECA") (:digest-bit-test 11 #x01 52 #h"1AA8BC49C40EEADA030EE802C336D83D75C3EEECDF365AB2") (:digest-bit-test 12 #x80 51 #h"6E9615A0291AEB33D37FFF3BDDAF628178009820457F0737") (:digest-bit-test 12 #x40 51 #h"F78CB6642756E3253A46FC55E5C852B5D209CB886F1953D4") (:digest-bit-test 12 #x20 51 #h"3D900B55C9CD9E821512415B734B06A28B8EFB0488F9EB4E") (:digest-bit-test 12 #x10 51 #h"1D534936BE6E2831E83661E0568B170EF52712899E2F8A8C") (:digest-bit-test 12 #x08 51 #h"68D08DCA280F71F6E33FE81F56BF5D98BB498B720F8294F4") (:digest-bit-test 12 #x04 51 #h"D4D1339C8797918AEB4000CE0B75EB741EEA852B7E5FEF35") (:digest-bit-test 12 #x02 51 #h"F6204099D4C1B7F82BF0A1364A6322C3578A46F354A68622") (:digest-bit-test 12 #x01 51 #h"FC94F4DFB37B4674843E0CD9DAFDE149D89667915DEFAEFA") (:digest-bit-test 13 #x80 50 #h"F64C25ED176B388E022A3AA4622975F1CEC7A9A359D1D28A") (:digest-bit-test 13 #x40 50 #h"CE3230D5A7B57E82F92D8A36485B0EF70B3A8430391907F8") (:digest-bit-test 13 #x20 50 #h"D9AC7B94226A60FC7D99CD796FD5B6EA36AE798047E1B53D") (:digest-bit-test 13 #x10 50 #h"8A9F12D8D9DF81E43E9DC038FBA927A3A0A0D6FA43749D2D") (:digest-bit-test 13 #x08 50 #h"CCAE282196A07B02E896FDDBC71616298BBBC436BED3D424") (:digest-bit-test 13 #x04 50 #h"09503A7A95B31206D16FC3A3A6730CB379F413C255B0916A") (:digest-bit-test 13 #x02 50 #h"0D799B12AF89A92E0E91237F37236BA484B5192B468F92B4") (:digest-bit-test 13 #x01 50 #h"04A3597758A82EE3EAA34F5B0FB1198A1177B3B3B8DD583C") (:digest-bit-test 14 #x80 49 #h"BAC0B8BE5A41BB8186CABAD7A32F17559DB8579D2A32ED35") (:digest-bit-test 14 #x40 49 #h"96B5AD3931A54DF4C0754FFD17E2ED27EEDBA480D7DEC700") (:digest-bit-test 14 #x20 49 #h"4A3E600FE13F444B31E03CFA0863F9E316F83F68F16D509D") (:digest-bit-test 14 #x10 49 #h"B5DA026AE3BFBFAC6D2AB00A16ECFBA40130E1817E26E6FD") (:digest-bit-test 14 #x08 49 #h"635799A28E0E31EF6DA157BE71327548E1EBBE93D39A40CE") (:digest-bit-test 14 #x04 49 #h"00A7C94AC7D6DA73AF3537816D7535F6501C81E9D0B70C30") (:digest-bit-test 14 #x02 49 #h"CEA02CEB43D209ABA6217234278931ECB509813A516C8770") (:digest-bit-test 14 #x01 49 #h"460F8608C1CE8A7ED701C8D46D800E5097DD421321A595BF") (:digest-bit-test 15 #x80 48 #h"595B7A837EA74AE2A9C2A4DD9915C684E4003A78C908EB34") (:digest-bit-test 15 #x40 48 #h"40A34377B74D9C7404E69898DA030F47C7B4F5125379799C") (:digest-bit-test 15 #x20 48 #h"011A1626ACDE5490D40D6D3B212E4296DBCFAA310C0D0A7D") (:digest-bit-test 15 #x10 48 #h"0C38A676E739B11BF2B5F305DFC38C1194B67D5BD9ABDD3B") (:digest-bit-test 15 #x08 48 #h"B2BDB49CBB6A27D90DC43CAEF626531E3794B02A4B557363") (:digest-bit-test 15 #x04 48 #h"925F73F9BF011425B3C855EB93FF2B3702994957C90A6E71") (:digest-bit-test 15 #x02 48 #h"C5438E4F6F20FA52579EA70DBE976E8ED0CD0CA79F0FF667") (:digest-bit-test 15 #x01 48 #h"9C19CE6E144C81EDBEFA42762CCE7687D82D90C80E6E4DD7") (:digest-bit-test 16 #x80 47 #h"F6F514983734179B56A2DB5810D2FEF9FBAAE792DF757EE6") (:digest-bit-test 16 #x40 47 #h"47EA4D78437E145E56490DD5C47788BEC899AB249A782AF1") (:digest-bit-test 16 #x20 47 #h"751FCB36A8B567673E9571B4F359CB7452913DE68458233B") (:digest-bit-test 16 #x10 47 #h"6B86FAA0426879F9C1A6F4A9F26FF19DADCD0BA2C34273F2") (:digest-bit-test 16 #x08 47 #h"8ABD32BED2814C6428812B67CB7228BF02AC80EC80C5771C") (:digest-bit-test 16 #x04 47 #h"026EE4B31888E474E20F1627B30475FFEE90BAFA2E214CE2") (:digest-bit-test 16 #x02 47 #h"6EA00649517124D6598C2CBB109B8F8AC445771A9550263D") (:digest-bit-test 16 #x01 47 #h"9029BD1306510D7BFCEF39B7E3E6F3A62993A810141919A4") (:digest-bit-test 17 #x80 46 #h"802BE35C1D0356AA8D7E7830C1426AA9789CF9B1B75C7145") (:digest-bit-test 17 #x40 46 #h"78D1FE031819E727172B1FB5A0EC87AC33C494C1E37C222E") (:digest-bit-test 17 #x20 46 #h"E87A76683F7B6D8CA2B47C8C41F346764053D8841FBE610E") (:digest-bit-test 17 #x10 46 #h"E3E18819D97CD24E6C82AF5212876375134D9401E1CFB25B") (:digest-bit-test 17 #x08 46 #h"528D81D4D77B3C9360D1CCB3D8D906FAD4BAEEB8C417AF8E") (:digest-bit-test 17 #x04 46 #h"940509DDE91065297F51C95D6D61196BCADDFFBFE43A0490") (:digest-bit-test 17 #x02 46 #h"1F745AD4161EE006A4260D7249E0B68B0453B01819EB2A14") (:digest-bit-test 17 #x01 46 #h"B1AA443FAA0B47E51A307ECAC7FAF07CA8732E715513C738") (:digest-bit-test 18 #x80 45 #h"CB30A43A2DE29002ECE22BD0CA7FA5C40E0F1EE3C9784249") (:digest-bit-test 18 #x40 45 #h"A5B6D8400303E5118489CE082241808027945C143D1200AC") (:digest-bit-test 18 #x20 45 #h"FFB82281B7B2CDFF2E83440CFEC036D03C26BD5133AA56C8") (:digest-bit-test 18 #x10 45 #h"08F21816D77A3D5F7DFFFC5477C4EB78AF660D7C32B1B6F0") (:digest-bit-test 18 #x08 45 #h"286FC4EA0BA3EE25CA28CD635DA1077BA00B7BBE1D319C9C") (:digest-bit-test 18 #x04 45 #h"ABD221DECE666C1E0ADE89ED127001B1AE8B37A3249BC237") (:digest-bit-test 18 #x02 45 #h"EFD037EAD7168C5B48E18DBB0BFE94E7A7337ED9F9DC0B60") (:digest-bit-test 18 #x01 45 #h"17A915BB90D878000A07BBF2F7C29605541CCBB2BA33BA9B") (:digest-bit-test 19 #x80 44 #h"EDBA011909174DACC7276FB748DA3D72037688E09B471CDB") (:digest-bit-test 19 #x40 44 #h"18646AB2DFAC64E3D1B8298F9DA48F8ACD3EC8E9B6C091D2") (:digest-bit-test 19 #x20 44 #h"5BB55C940C48C5F173356ED2F76F135BB33C49C6FF401CE8") (:digest-bit-test 19 #x10 44 #h"444CCFDECBBCAAC55FD538C84FECE4AD05E1F86CA2183046") (:digest-bit-test 19 #x08 44 #h"0DD2986EBE58B62051C5F8558B33B2150E2162273A21D2D6") (:digest-bit-test 19 #x04 44 #h"BBD0BE785D950FEE7272A6A42E20EEF9FCC96DA0862A9D4F") (:digest-bit-test 19 #x02 44 #h"C6EE3736BED22F09A3082957D5D2D9939E926DE56B23E540") (:digest-bit-test 19 #x01 44 #h"F272AA5CC30126CA15ACF94904EA44A28068BD3B3ED74BDB") (:digest-bit-test 20 #x80 43 #h"24713F450026D6D9717475558F33A84CEC5B8EC74367A1F4") (:digest-bit-test 20 #x40 43 #h"021A9ECFC35A18BC91568F76A06EA7B6F068B1B45E725F2C") (:digest-bit-test 20 #x20 43 #h"54027E9B61191C3ADE350615D809EC6A4BF7FE926946F93B") (:digest-bit-test 20 #x10 43 #h"27C362B26734609E760ED30E492273A2EC0786CECE1B62F7") (:digest-bit-test 20 #x08 43 #h"C56A7C83A9F780DBFC564564D60B110894B3462BF202B31B") (:digest-bit-test 20 #x04 43 #h"E46DAE97BF1D1433B91E7C4B30A3D11189BD1959F363C8AA") (:digest-bit-test 20 #x02 43 #h"DFFFD3EE84CE33EDBD6CCBDF9FDBC4C6CD9F6C3663AB3124") (:digest-bit-test 20 #x01 43 #h"CA9D313C0A9D62198C2528B856627BC9C70DD1C6523AA09D") (:digest-bit-test 21 #x80 42 #h"DAB676CBA9ABC9799E4416E703CD4C89348F3513D93BCE58") (:digest-bit-test 21 #x40 42 #h"383C379EE484CB248AF0008F339F2B76C25DB122ABE46C2B") (:digest-bit-test 21 #x20 42 #h"466C5466009BFF5B4D9639CC2DDFFBEC31663189A11A3F06") (:digest-bit-test 21 #x10 42 #h"5C2457FB54624D291D0223FDCA7CE3EAFB85B6D492408A9D") (:digest-bit-test 21 #x08 42 #h"FE593DC31045C782EC6B52216FC64B35FD33EE3904BA9966") (:digest-bit-test 21 #x04 42 #h"D7174534437E6168C2EF60B0EA9DC61ADD8098C0694539EF") (:digest-bit-test 21 #x02 42 #h"75FDFFFAF4F1D44DD610CEDDB215E16593340EDE583C875A") (:digest-bit-test 21 #x01 42 #h"36EAA91B577FB20178B0F06FBF369D07FBCE8445BB36774D") (:digest-bit-test 22 #x80 41 #h"9068E188528160BC3B2C2036B4B6140BFCBC98A031847132") (:digest-bit-test 22 #x40 41 #h"42E86596DB6EA0724CE131CC379F5A3F37646C87026DFB87") (:digest-bit-test 22 #x20 41 #h"733642DD7D4F08A2303B7517974AC6D9E6EC65FBED56CB05") (:digest-bit-test 22 #x10 41 #h"92ABCE48F750C364C5FC649E3E2168E5BE83F6176A2DC552") (:digest-bit-test 22 #x08 41 #h"BB841126EBD38F36A63FDA47FD5971DFF6D9CF0432811535") (:digest-bit-test 22 #x04 41 #h"1A5F8B7F34376121B1BA35FB19DD2DE6A1FFE55D22703940") (:digest-bit-test 22 #x02 41 #h"A4705AA774708F6D6AEABD6B527C973DD3B955E144812BC5") (:digest-bit-test 22 #x01 41 #h"ADA04C7993477041403A144C15BBFEE889A6F835B9F968DF") (:digest-bit-test 23 #x80 40 #h"2F4179071804EC9280CD2EA6E265AD77633F5196CF8EDB32") (:digest-bit-test 23 #x40 40 #h"4378BD6082B465ADB4007CBDC5F764C402ADCBEE4347C08F") (:digest-bit-test 23 #x20 40 #h"F75B2A3267B96CA1EE4191B99CE78B079333F10EF184D91A") (:digest-bit-test 23 #x10 40 #h"C3891913D02202A3DFD2BFE70EDB992275744136452C566F") (:digest-bit-test 23 #x08 40 #h"07B465A5110B6F1D8CC50B4716A5B5CE9985CD0A7A857EAE") (:digest-bit-test 23 #x04 40 #h"AA3E818EDB7190F12AD58D9A4A9DAB53209AEE83F5B3C554") (:digest-bit-test 23 #x02 40 #h"C570CAD73E05B2F8283A26726F07BAA339EE78ED7CA42F62") (:digest-bit-test 23 #x01 40 #h"B48EC775851C9AE303F05AC8E51E62FF169C175792C2627A") (:digest-bit-test 24 #x80 39 #h"1E3047A18CCBA9F21D1E58F90FC2F8100D94227E29DF84A0") (:digest-bit-test 24 #x40 39 #h"5CA88D9C7D388BCF7877FE0F8CDD5EC767DEC73783B60195") (:digest-bit-test 24 #x20 39 #h"F0AFF7784660E13949EEBC8A817DB227D7DC2248EB0F659B") (:digest-bit-test 24 #x10 39 #h"9B5D9AB548CE2CB1B4F121B5BCACB724A02A655E56650014") (:digest-bit-test 24 #x08 39 #h"DA5D70AC87DB9AB9A19D7E79FA3820B9A6855F148A662E9E") (:digest-bit-test 24 #x04 39 #h"0DA0AA0A4187C2AC05B220AB88498FC244FCEF7FCC59692A") (:digest-bit-test 24 #x02 39 #h"DEFC6E4E0FF252A652CAD76C06429D7D902F80D0C132EC2C") (:digest-bit-test 24 #x01 39 #h"FB8EA1191F9272038017D3D10B0F901514490B119C3C086F") (:digest-bit-test 25 #x80 38 #h"A0F433C8EF9F86EC52989CC77B999EA02827EA0D57F00766") (:digest-bit-test 25 #x40 38 #h"73C51E27F033BDCF09E29C19740AC05676C7DA219C83F019") (:digest-bit-test 25 #x20 38 #h"C1A41E1999A6E7ED8D2407005608A44999C0918F009F12BB") (:digest-bit-test 25 #x10 38 #h"C1DE2FB59A6A6CC45D3E1A9A502F0327E4E0582692882E01") (:digest-bit-test 25 #x08 38 #h"FA371922F657875B03268090C91EF8A7D968486EFCBE853D") (:digest-bit-test 25 #x04 38 #h"D7786FFE8F9411E982D591C63A364483A733A005D8DD4F52") (:digest-bit-test 25 #x02 38 #h"EA71A84A2AE43700E2D6CBF9705809F38EB01E3AA3500981") (:digest-bit-test 25 #x01 38 #h"AEE84693BEA5105467DFFF30E694772F31148CCECA362D0B") (:digest-bit-test 26 #x80 37 #h"02C9565A480DFE315479D62BFFFF915768411199596D0067") (:digest-bit-test 26 #x40 37 #h"0EA5DA49521F8C298EB3A65B157D3B0E42E0BDA0EED10EB3") (:digest-bit-test 26 #x20 37 #h"A8F8E5533E0025DDF4421EA099D9C553736B86626649BFAC") (:digest-bit-test 26 #x10 37 #h"76D357BCB224F3B59DD6286A3EA0D4C2D09699E68ED7D4E3") (:digest-bit-test 26 #x08 37 #h"202794850A8B2A8D611473C84F18835F322D32E04214502F") (:digest-bit-test 26 #x04 37 #h"1BED2B5DAA818E27EACA9EA5BC6B5D88FF7605CBC529C423") (:digest-bit-test 26 #x02 37 #h"6FCEF79BBB8B556D597071E6E86815575C36955DB95FF0C9") (:digest-bit-test 26 #x01 37 #h"5C76AF9054B56A78EE4BAE2F69E54EB4A4DCCA9251EC323F") (:digest-bit-test 27 #x80 36 #h"8645904A860B9227CC2EBE31269BCB033D12626D4E7B1E07") (:digest-bit-test 27 #x40 36 #h"5CCAA2D96A4B90DD33CA1A8F63D9A32785FCE91FE9D261FE") (:digest-bit-test 27 #x20 36 #h"644AEF13CA34442715AF3B71F6F40863B9FE5B68D9AEA69D") (:digest-bit-test 27 #x10 36 #h"BB8F2FCECA6DBE2233D94CC9617C0C924251503E15ECBEFD") (:digest-bit-test 27 #x08 36 #h"C0CE5B9858DCAC7C2A7FD41EAD46C1D1F4A55C612EB87095") (:digest-bit-test 27 #x04 36 #h"C3209B535B1893D292F24AA705A54AC6893F5C34DFC0B89B") (:digest-bit-test 27 #x02 36 #h"4A9362D913330BE01F8AA9A40621CF2BAE0AEE998182BFD8") (:digest-bit-test 27 #x01 36 #h"6757B6725238FDF3AA6E92CE05242DC7A138F55A8A2B8CDF") (:digest-bit-test 28 #x80 35 #h"9C1EFCC39E943DB17478F55C2E8F5AABE665A257A74E7CC7") (:digest-bit-test 28 #x40 35 #h"9E48EA08AF2BC00367D950D2A0BE14D0F26B71FBF3997B10") (:digest-bit-test 28 #x20 35 #h"A6BBD6177AF40DDDCCF8CC8B8218833B8A89D6BE122E12AA") (:digest-bit-test 28 #x10 35 #h"F7BAE51827F6C16F31508A28D362DE9BA4984E47C88DC037") (:digest-bit-test 28 #x08 35 #h"65DD7FF5BB8CE8D5F84480BF5A0E35127CD736A1CDE7BC12") (:digest-bit-test 28 #x04 35 #h"E8531E2C7329ED60B7246E6246B1FEE13B1B70F1A119CE54") (:digest-bit-test 28 #x02 35 #h"7B26F57EF6D56F8966AFB3AF6C9BCE1C1948396CE4FFB1F2") (:digest-bit-test 28 #x01 35 #h"D6EFC3AD5E62E9055C414D01E11E0EC9374B5F4486AF92D9") (:digest-bit-test 29 #x80 34 #h"B4000A22B7ECE2B3BC2695A2E98A9F4FC981DE2F44A80CA3") (:digest-bit-test 29 #x40 34 #h"30F506642345E45D1116318D8F9849A640B13C27291F5B83") (:digest-bit-test 29 #x20 34 #h"E02C8DBAAA96F301081E0F6F6FF3163D11B0340C5154E06D") (:digest-bit-test 29 #x10 34 #h"4D176A285408CA3E69FAA2F90B980CD10BED31F3B7C31F15") (:digest-bit-test 29 #x08 34 #h"8BBECF1AAD25FDC805039E0B0AE53C72B2D598400FAD8A0F") (:digest-bit-test 29 #x04 34 #h"68213C2CB2C200AE8E130125F0DA1A81AF46DEA7A32564B0") (:digest-bit-test 29 #x02 34 #h"B65CAE529F4F5640EC8E61D7B18DCABF5C42D09D16638E02") (:digest-bit-test 29 #x01 34 #h"6D9BDF35483F61B8B41DF2BB3DAB479CE960916A91768BA9") (:digest-bit-test 30 #x80 33 #h"C7065FCFBD627402B557D08EE245E4B792079CBA32E7E956") (:digest-bit-test 30 #x40 33 #h"FA7CAC5FC22F2AF0FF1E052D28817A65966B2B0C1C2F8792") (:digest-bit-test 30 #x20 33 #h"204A233E044B2C07EBBD2C529A8D578A07B21BB674EE4D64") (:digest-bit-test 30 #x10 33 #h"5D64C8D0554606505D54BDF395D6608AE15D23144284C05F") (:digest-bit-test 30 #x08 33 #h"C90A9B1D92220CA0F3F4A8E65155FE0E1D152C89213E96D9") (:digest-bit-test 30 #x04 33 #h"3C8673A6ED62C5FFC880D24A000053ED7042329424181DFF") (:digest-bit-test 30 #x02 33 #h"732D68C9AAEF89D27676A87AEA0F975BC31E9B7184AABE49") (:digest-bit-test 30 #x01 33 #h"61D3540EF01107CBEDCA147F615B0DA929474344FA8DAB0D") (:digest-bit-test 31 #x80 32 #h"FBF56E336FF510ADA9A801F84E4792FD8E9B1C3B44B4D666") (:digest-bit-test 31 #x40 32 #h"FD5EB3F4BF2E475CA451C856B2F576FCE1CAC3B700348176") (:digest-bit-test 31 #x20 32 #h"E5D6F6AF3BB3D2D22975AB500DA24B5783E651C1AFADBCC1") (:digest-bit-test 31 #x10 32 #h"22C7EFD25977630807C1D0FD7DC220FF426D589BEBF3F818") (:digest-bit-test 31 #x08 32 #h"38C0B8ED87706F4A7C2DC5EADCD01C72193261CF37C196EF") (:digest-bit-test 31 #x04 32 #h"CAA17EB9893A85EBE650736A0B56FDCC9DDF6916707D1B99") (:digest-bit-test 31 #x02 32 #h"1FC43409C387A59F2702D1120CA69AE1EB8BCC072AEBCC89") (:digest-bit-test 31 #x01 32 #h"9D5CAD387705F97F784279C85B5C09D3A8216C3151BB8BB5") (:digest-bit-test 32 #x80 31 #h"DC1EBB94F3E0E6703DAA5715A7E826554DB9EDE756B2EED2") (:digest-bit-test 32 #x40 31 #h"5E626E0FBB4CAE926AC717EC009CAEE23B5CD3062359E20A") (:digest-bit-test 32 #x20 31 #h"F348BF048DB8D98D0BD0666B520AB255B12CA6047B3166AF") (:digest-bit-test 32 #x10 31 #h"8F929C79DDE5DE2794998170EFCABCE511637A29810ABF47") (:digest-bit-test 32 #x08 31 #h"FE4661EE9DD9FD928D2AF9B5898EAEAB617E88369457DD67") (:digest-bit-test 32 #x04 31 #h"6E0C9BCE677EA50439E02731B301300511643AC1FE00125D") (:digest-bit-test 32 #x02 31 #h"4589434D3BE9D44EF45DF1ED91AA97D812ED55DD869B9067") (:digest-bit-test 32 #x01 31 #h"0C0DC9DAAD3351B7CE17F8D1F6DBDA62F91FCF6C93019C45") (:digest-bit-test 33 #x80 30 #h"07FD597941C0A30A137256D65E5D2430EBA2C6EF24979E00") (:digest-bit-test 33 #x40 30 #h"EEFC74ECC53C334768D59EEB02B49A462A976CAD32FA9F4C") (:digest-bit-test 33 #x20 30 #h"292EE351E25622EF85A07C0C161FC0FBC09229C176998D35") (:digest-bit-test 33 #x10 30 #h"7ED81D7B5AD71E60F04E388D2E29E044EE253D701D213ED1") (:digest-bit-test 33 #x08 30 #h"56A2F7E6F85975BFCE0705A124AE4CBF7C3015690304521D") (:digest-bit-test 33 #x04 30 #h"B07EA50183596A2430F3DEC13F96845D1070A3D32F5EC066") (:digest-bit-test 33 #x02 30 #h"526F6BBF1EBE525ECF7EFBE693A06B746307726F2011529C") (:digest-bit-test 33 #x01 30 #h"89EBE9219A9AC412BEC88BA321030B4AAA257B6410F7719B") (:digest-bit-test 34 #x80 29 #h"ABD5FE2E6DA870D5B894B35E72E41D590A01E40303524335") (:digest-bit-test 34 #x40 29 #h"1E3D537D9580A74F2D7FC71EE241923AB3848D11A1A5644C") (:digest-bit-test 34 #x20 29 #h"F580664AB99A6B50BFA21019261D91B3A1238FB129B0797A") (:digest-bit-test 34 #x10 29 #h"2DB79D2513802F939D4608E4FFE38D1CD5FFE7B667CE3EEC") (:digest-bit-test 34 #x08 29 #h"13B1F534DACAC2836C67B4B410151AE550AFF9C977B6A3D5") (:digest-bit-test 34 #x04 29 #h"86ABFE6988DFE9D6C9A884942946BE74115987EA3C6AF477") (:digest-bit-test 34 #x02 29 #h"9FB58A6C6822D1F7BF3AC52BD210132FD6DD1E823D3CE95C") (:digest-bit-test 34 #x01 29 #h"1F5E0C29EBE8A28B934E7932C0D120F2F01CFA87DC089E0C") (:digest-bit-test 35 #x80 28 #h"BEA84869592DF1FD12127F891CA9DAFEE767226868F878DB") (:digest-bit-test 35 #x40 28 #h"6FC0DF95D191F492399AFC32C4F536F43C14E189DA93396C") (:digest-bit-test 35 #x20 28 #h"33E9415EA0EDB2BAC1DD210B9CC2F5D7F46B5B07C5EFCC3F") (:digest-bit-test 35 #x10 28 #h"CD933BE80058AFBBC9FFD6590CA2F53B3696E7F86CBDE8CD") (:digest-bit-test 35 #x08 28 #h"15F89B44FF00A4CB930233FADB49A824F0AB540636A0E8A5") (:digest-bit-test 35 #x04 28 #h"33C345BFFA20C8F0B92AC6F3F063E477F1CDA525C35E68AB") (:digest-bit-test 35 #x02 28 #h"617EE74C600A5B9D5C591984222DC000642FA97ECAF6948F") (:digest-bit-test 35 #x01 28 #h"E50FF576A78A5FF73038F307740FFB190F405AAF65909C7B") (:digest-bit-test 36 #x80 27 #h"10F16B3B9BE9762F603DC156A2626D0A92C49D6788433292") (:digest-bit-test 36 #x40 27 #h"65C75607C3085EE0DF99AC88FCB71FEEA3E95D1995027B90") (:digest-bit-test 36 #x20 27 #h"A95A236CEAA6FE6A33DBD6B2FF2CC61DCD06B576D34D8BF9") (:digest-bit-test 36 #x10 27 #h"94701D90637F543B83AC736D448D915AB56ACF688AA2A9BF") (:digest-bit-test 36 #x08 27 #h"C005D8C2069CB7F291C7214165383ECC418999FADF197ED3") (:digest-bit-test 36 #x04 27 #h"F02715BA20879FE16CA382F3F33B35DA09273F524A832CE0") (:digest-bit-test 36 #x02 27 #h"925F4C6B45F07D01F1033AE426E554FE30AD5664F89EB521") (:digest-bit-test 36 #x01 27 #h"DA89E876647B2B17B726DABF0620B5791B8D910CB9E7323D") (:digest-bit-test 37 #x80 26 #h"A3817AEC34558CE5C4554B4BB652D52E0FB834D66173B40A") (:digest-bit-test 37 #x40 26 #h"EC4599DB388F66C10AF7C24987AAAB6D02CF431602C321D3") (:digest-bit-test 37 #x20 26 #h"D7BBCCC448440CD6BFF93D8CA1DC309BE47E51C823B85EBB") (:digest-bit-test 37 #x10 26 #h"2CAB4F11BE0BB64B4F16F707DF30F465A279C6972FBCD7D9") (:digest-bit-test 37 #x08 26 #h"12E4D1EF75CBCA5369EB440776F117EDA8B536A35C26F139") (:digest-bit-test 37 #x04 26 #h"17444B27596CBC519FBC8F2B90D68D05BCF51608ACC3D304") (:digest-bit-test 37 #x02 26 #h"D76A8B2E986EB16CD6121CED58295F0CF5EB02DEB60F98CC") (:digest-bit-test 37 #x01 26 #h"164E3829B70E59570D2A5B24A0F1C67A974DFFF1EF5BF2EA") (:digest-bit-test 38 #x80 25 #h"0EE8B5DD7E5A285EBE11965B574517B949C3487937453B2B") (:digest-bit-test 38 #x40 25 #h"E3639D864D20ECB48D8C2B8F892D97A7FECF83937C48C2DC") (:digest-bit-test 38 #x20 25 #h"4434C996B25FE43CA24746396E50C157139C57787675CE17") (:digest-bit-test 38 #x10 25 #h"6D1693269BBA7630B6C083EA6D8AA16F0512F07C214251A9") (:digest-bit-test 38 #x08 25 #h"A1D5C7ABDDF9FA51FB5C9AE0008FA953EA83063C93E49319") (:digest-bit-test 38 #x04 25 #h"9BAC4A7FFF14B34F32F10EB2B6A3A61A13C255DB176D6FCB") (:digest-bit-test 38 #x02 25 #h"C6BD779EE2F9FF6A4ACCDA2E33FD0C62D641733E414D5B36") (:digest-bit-test 38 #x01 25 #h"F0D656506DE265EC28F1781DACB76D1C7575DC55C15A40DC") (:digest-bit-test 39 #x80 24 #h"0E95FD14633037441CD9AFE78391FFE73AAFEFE532B8F7D6") (:digest-bit-test 39 #x40 24 #h"AFA01B52D549FF4C8B6DC71BBA6CFA27E8EA03046B95F6EF") (:digest-bit-test 39 #x20 24 #h"9E63417D3DF651A3353FB6573FFAED9DF4ABD7F68AAAA051") (:digest-bit-test 39 #x10 24 #h"CE51254F812107B91727838B619D5C4F17FC2C3C9A95233A") (:digest-bit-test 39 #x08 24 #h"89F63C422BB85635F432D4A6DC9F940D79E0B5E111A24F4E") (:digest-bit-test 39 #x04 24 #h"999534C4B3B25F32FFF05B893F4E26CF8F1819FCB5B908C1") (:digest-bit-test 39 #x02 24 #h"7FAACB92FEFD12045C77B4180EA95EE7E1775703E7BB4C3E") (:digest-bit-test 39 #x01 24 #h"2BFEAD2B7E1C6BB0F47AEFB9909E3ED961EFB39A29794515") (:digest-bit-test 40 #x80 23 #h"A52AE6D0221773E42FB042B7830D28A73A590562C38C802B") (:digest-bit-test 40 #x40 23 #h"5B3007DFB62B78955620A0F17F58B6FE55B360C0F7A9F4C3") (:digest-bit-test 40 #x20 23 #h"77883951F130BA75FED13621DC61BB766E475DB7751B0D3B") (:digest-bit-test 40 #x10 23 #h"297DEB90367720058318C994C0382B83D182110797A29A53") (:digest-bit-test 40 #x08 23 #h"0BA968080D4608C3BFBE43682CBBD63F246F866AB0A0070C") (:digest-bit-test 40 #x04 23 #h"328F20CDFFD905862A11F70B6FDB4803133CCE8ABB8D2B73") (:digest-bit-test 40 #x02 23 #h"74AC023139CF3557F49E2F8A674AD0857AEEB9EBA3C1985C") (:digest-bit-test 40 #x01 23 #h"BD588F19DC358DC37450A6689E4D7DA413206159F3DD2A4D") (:digest-bit-test 41 #x80 22 #h"DB626F5040AF44803156FF86860A1367B1B644B021C15460") (:digest-bit-test 41 #x40 22 #h"ADE8785F2F65B67ED1740F8693C5A1CB3BFEE9E3B211B83D") (:digest-bit-test 41 #x20 22 #h"D08599E7444393A3C5FF2493E1B6647B297708919163E05B") (:digest-bit-test 41 #x10 22 #h"8AA57D3CCCB899CC92A44ACE801F54A13E60A45BFDFE7D30") (:digest-bit-test 41 #x08 22 #h"3415A0699A0D14DBBBB2280A9C8E3C91B954B769CE606362") (:digest-bit-test 41 #x04 22 #h"EAD03B5ACC5C86FC8672AE14330BF93A9489A5017D3B9354") (:digest-bit-test 41 #x02 22 #h"7ABE3B7FD5804A23B937C0EF5ADD8869188BF842F68D21F5") (:digest-bit-test 41 #x01 22 #h"739004F8FC7577D0BA954187F300E441F4A99F62E0F3C367") (:digest-bit-test 42 #x80 21 #h"30D99CB386570F45B8F0EB75868E8EA9EC7DBB04C26D8FEA") (:digest-bit-test 42 #x40 21 #h"7278F6E780965FB5C02AC4AC24BD2020D2439623EEB901C8") (:digest-bit-test 42 #x20 21 #h"93E7E84B803152CE17491B9B9DC6502041DA4D56C636B4A7") (:digest-bit-test 42 #x10 21 #h"32D63F3C642173BDE55C2A7E8BB6C942420C309DB2E7210A") (:digest-bit-test 42 #x08 21 #h"CECC92727AAEE2FA74B90AA728F0D3F0FC5E8A42DF283713") (:digest-bit-test 42 #x04 21 #h"51437CED5761BC3FCF29FDE5877675B5DCCABC85BC2279B8") (:digest-bit-test 42 #x02 21 #h"F6A494D7241543CBFE2BB3C68F2DA9FD9915BF0A14BF82F4") (:digest-bit-test 42 #x01 21 #h"DD8BE4ED5FFCF836C977352ECD2CF689BD94F9CF0EB66EB4") (:digest-bit-test 43 #x80 20 #h"1EF1B22652B07E0039DC257B30E88A2FA5D3FC64C79C741C") (:digest-bit-test 43 #x40 20 #h"775E4B0447AFD1C960320C042EF2AB6C879088956435872E") (:digest-bit-test 43 #x20 20 #h"A40FB52C188AAC639CF9ECE72B978C812CA7991997CCC3D0") (:digest-bit-test 43 #x10 20 #h"F6F305D3ACA46CEFDA5FCF420B49C9C13F14C3247E4214AB") (:digest-bit-test 43 #x08 20 #h"2A5611447591A609BEDB9B99AF030D1548C25C1090FB7252") (:digest-bit-test 43 #x04 20 #h"6BB8BF7CF510DF644EA1771146EC6E943E26598734BB2022") (:digest-bit-test 43 #x02 20 #h"8508F80824415D97E468B19EA305B0473A915B996DC83A31") (:digest-bit-test 43 #x01 20 #h"8814EE7A02164290EB431E70D50490DC2313BD30EB479857") (:digest-bit-test 44 #x80 19 #h"EFD4A311C5F5093AB23F2C775577EEEE230643A75F7938C6") (:digest-bit-test 44 #x40 19 #h"6FA980DE170E4708F4F59BA46DE0EA340BC61C540B0D12BD") (:digest-bit-test 44 #x20 19 #h"C699821C7E342804278CA77879FFB9332F274530C673385F") (:digest-bit-test 44 #x10 19 #h"FCFA7BA4FE1736CA672914AC98905FCF235CB82F10BE9981") (:digest-bit-test 44 #x08 19 #h"BB1DC4CAA892B46D15C44125DEDF64C63EC4DE5B807F93DF") (:digest-bit-test 44 #x04 19 #h"520F25FEEC8D698D31C164D291A54B906564A75B7B693239") (:digest-bit-test 44 #x02 19 #h"772CB58B4086454862B813AB25EA5E33BE530D3DF48F8BD5") (:digest-bit-test 44 #x01 19 #h"CBDBBF709ADE1701ABDA7A258528D675B505678E6B643FDD") (:digest-bit-test 45 #x80 18 #h"A16CEC411677F88C1F751442BCDBC9F013AA1F4E829CFCA8") (:digest-bit-test 45 #x40 18 #h"9DA04A1EF52DDF86660B9EA7D8AF385BBE6369B10AF2F3B3") (:digest-bit-test 45 #x20 18 #h"049F7036F40FB51260E4B8CB0696EA03D375B401CED3E2C7") (:digest-bit-test 45 #x10 18 #h"EEB8208784C4C65DA497729C948063BD9F51FE5C026CBC8B") (:digest-bit-test 45 #x08 18 #h"F39BA71DFAD235C2E0CC8BBAE4CD8D5D1EEE9247086ECAEE") (:digest-bit-test 45 #x04 18 #h"8372D7953F7697BE48661E3718196082B06EB448EDF3D839") (:digest-bit-test 45 #x02 18 #h"D41785ADE9E2FFCAA5B9D44613CD23CD9C3A519CD9C89BED") (:digest-bit-test 45 #x01 18 #h"620D6396A467CB957740B85D5D51E53279DF78D56D6CE8B6") (:digest-bit-test 46 #x80 17 #h"89905029EF0112631ED9DFDEB63BA26235B822022B686D59") (:digest-bit-test 46 #x40 17 #h"51AD7F7D9611ED7C24A84525832A2F8CFAB80F907C02533E") (:digest-bit-test 46 #x20 17 #h"C645E4CF66DA4B343FC0E9221B4616E8CAE1E65E50195E64") (:digest-bit-test 46 #x10 17 #h"38EB1AAA6CEBBE8A21EBBB9C0976D29F4089EE47ED1D1F4E") (:digest-bit-test 46 #x08 17 #h"EDF66F50CD0F54FB3094E3412E28177A53B1CE56D0FDE4E8") (:digest-bit-test 46 #x04 17 #h"11CD219A1E03532D2D4D61F1563C2AAA8A1586736FEB5CA0") (:digest-bit-test 46 #x02 17 #h"01D50B226A3517A3DCE79495FE1410E7AB6FEEAF8FA24BB7") (:digest-bit-test 46 #x01 17 #h"F981D517F259B363A945D2D19447378649E597A37641B911") (:digest-bit-test 47 #x80 16 #h"B36A8BB7E4018ADB5DC72B4961501F9A5AD5931F5E97A6D6") (:digest-bit-test 47 #x40 16 #h"D78D1E9D4682A0777A6EC0D8C2F165CAB925966650937F89") (:digest-bit-test 47 #x20 16 #h"2F6D9783D5BF5976DCC31C7F00B9FCD04B6C16BE92417C9B") (:digest-bit-test 47 #x10 16 #h"22B9F7C41FCE5A4638D6E6C61265B58D18C2D5FBBE33E9F4") (:digest-bit-test 47 #x08 16 #h"37B7BA6658F835D817CB114D06C197D23C47708352EAC551") (:digest-bit-test 47 #x04 16 #h"D8E97C4A5F14A1F595C041D0ED59C4D4631E7AB673484824") (:digest-bit-test 47 #x02 16 #h"AC782146178A613B3FEA97DBF2018A6C7E1EE3789BBE2A51") (:digest-bit-test 47 #x01 16 #h"11FD098F69CA3BE809474769C7DC6664A37AA26358A1EF08") (:digest-bit-test 48 #x80 15 #h"93856CBBE6404B2EF9D4240556810833C73D6D049FCA47BB") (:digest-bit-test 48 #x40 15 #h"C8466665EA45CE4CFD88F819D5C639777640B84D3D60C4BF") (:digest-bit-test 48 #x20 15 #h"9B4834F18ED69D519D497AD84204BCB9D749F122A86206F1") (:digest-bit-test 48 #x10 15 #h"7571A4B267EB04E445803700DB6A72242E1DE16B1677C410") (:digest-bit-test 48 #x08 15 #h"2A6518AF7D1C26F81852CABD90366371783BE49E94BEA42F") (:digest-bit-test 48 #x04 15 #h"AEBDEE389CEE275743FD1DFE10716DA734049874700D55C1") (:digest-bit-test 48 #x02 15 #h"8EF1808D19882CCB413F4B432918984BFE61D3419999642E") (:digest-bit-test 48 #x01 15 #h"26B8CC222AA5C53969D3DB6DA64743B71063AE978E1F5899") (:digest-bit-test 49 #x80 14 #h"2B8FA32B543ED0E1A8EED1165806602675D21D4A330AACD5") (:digest-bit-test 49 #x40 14 #h"7BBD8EB068F2EFB116AC6EF6FE80BFB0E8023702D17EFA6E") (:digest-bit-test 49 #x20 14 #h"344265DD1FEEE145A37F268EF0877581998CF323CFECECCA") (:digest-bit-test 49 #x10 14 #h"9B606437205BD1DB249D3566D7AEE9D289C9CFD0D57FD058") (:digest-bit-test 49 #x08 14 #h"C28D239C59BD76719345840E7C491748FAE7FCBC5EEA6C51") (:digest-bit-test 49 #x04 14 #h"BD1EFD0CFD6283ACD2A95B1DAE33ACC47A14D21AE3A74DF1") (:digest-bit-test 49 #x02 14 #h"B0EEE8E5A9256A73A98B641F3D29092D2F1F1B75509F5455") (:digest-bit-test 49 #x01 14 #h"C46B3EB0F3B3C6D61CF0E5A263D4499A91D68055B1EB4996") (:digest-bit-test 50 #x80 13 #h"C14215E03D57E2D109D88F48500F0D2332A819F1716D8885") (:digest-bit-test 50 #x40 13 #h"DD38ABA719EEB2B7B78DD4455AB2DF07A5DA8608BC8250EC") (:digest-bit-test 50 #x20 13 #h"1175351A36F8F2769BA8A206185C10B241189FA4D6220C83") (:digest-bit-test 50 #x10 13 #h"208DC327BC1BE3B55EFDEFEF89776DA5EA979CA479CC970C") (:digest-bit-test 50 #x08 13 #h"AD80043313C929A421495430561C49F0613C195D3578B518") (:digest-bit-test 50 #x04 13 #h"8384691A0DCADD919AB610D69A4C478A582525D5C48B7F17") (:digest-bit-test 50 #x02 13 #h"2FF93D872E9E6AE1783C0EF5B1AB9510050F0276563BA02F") (:digest-bit-test 50 #x01 13 #h"D3C7B2D23986E191D95B19810843B63360578024F3272DA9") (:digest-bit-test 51 #x80 12 #h"29F56FA57392FF312289DF4A88C718FA56D2C3357FE6D0D8") (:digest-bit-test 51 #x40 12 #h"175884C528D5584EF0E0AAB61660EB9684242F00F6911A24") (:digest-bit-test 51 #x20 12 #h"F5D5EE0BFBF2186BD6CE3C63A9E19852EFF62D39E8215068") (:digest-bit-test 51 #x10 12 #h"6712197F2D9E424139C93292E9B684A11579BAD5546A9F99") (:digest-bit-test 51 #x08 12 #h"EDAFE550B5634A040E23A008DD3B15C476907B3CD596725B") (:digest-bit-test 51 #x04 12 #h"230EC8B2DDCE48BB1ED8928509CE6659981DB303813C7031") (:digest-bit-test 51 #x02 12 #h"02371A2CA23F8781DCCBA0672C979EBF0EA8F17F4CAAB443") (:digest-bit-test 51 #x01 12 #h"E0EFB4CE4025CD25C760F9E822F954D6B38319E71ABED25E") (:digest-bit-test 52 #x80 11 #h"2030785CC6D18999182F7B6A9BCA9F72F86829F89B306C37") (:digest-bit-test 52 #x40 11 #h"3490EBCD433D9FDA74EAAD97469345846E190540C6D82642") (:digest-bit-test 52 #x20 11 #h"A9C3E5AB60F1666619A899B8F3AC2370A5BF2298B99BADBB") (:digest-bit-test 52 #x10 11 #h"804320365682196340806665DC55299041D3BD85728BA0F2") (:digest-bit-test 52 #x08 11 #h"53A2DF8B0C83C7120BE2A9608F1B5A4528BEFEC9D7970487") (:digest-bit-test 52 #x04 11 #h"2BCD607D529B39E1429F0C54B94ED78F826389086C7739C8") (:digest-bit-test 52 #x02 11 #h"0C466A6ACFA584D239367547536323A32715D0DBB5867B0E") (:digest-bit-test 52 #x01 11 #h"2FC3EA605A33AC26E78D8CA19F98CE7B5827E62961D89212") (:digest-bit-test 53 #x80 10 #h"8761107DC3785DBF710BBBEDE5FEABAB6F175A5ECFA961B3") (:digest-bit-test 53 #x40 10 #h"F123F30881EC794674403328E3CE7C80BC95DAC12D7B360B") (:digest-bit-test 53 #x20 10 #h"341C9DADB601F2781F6ABEB933B73AAD103A81E8D96F6730") (:digest-bit-test 53 #x10 10 #h"38E53597534CCF0E60DA817C62924453E193D61861043244") (:digest-bit-test 53 #x08 10 #h"3DF84CC5EDC3D732948BE841302B9AB708F5AF33DC537A31") (:digest-bit-test 53 #x04 10 #h"B546891818224B14E90827757DE18BABD71449E57F8FCFF1") (:digest-bit-test 53 #x02 10 #h"A7D6E7A48C1C14CD8DC58D7EFCD4FC8D407F15A1D4AA41D5") (:digest-bit-test 53 #x01 10 #h"0B178B35A97C06D9D4D2A5838AA867BFDBDB36D674AF33D0") (:digest-bit-test 54 #x80 9 #h"8C22DFD72E5ECBA3D0E0B54985D01223032939E7B7B33697") (:digest-bit-test 54 #x40 9 #h"A52E67BE70E116BDF6EB61EF225DB94DF06966203DFA2E31") (:digest-bit-test 54 #x20 9 #h"4AB1B7BAD46AF64C8B6203A8889CF56A079F18F688790896") (:digest-bit-test 54 #x10 9 #h"65D1A4BF8DBA94C9752913A4C15FCFB7F18CCF257D48DED6") (:digest-bit-test 54 #x08 9 #h"090CFB92322D482D9D8AAFF716F10FDB491BE0FAF50C784F") (:digest-bit-test 54 #x04 9 #h"94F1F66FB01D719F04D36CA30287F7E534DC31B0D91CE1FE") (:digest-bit-test 54 #x02 9 #h"D8689D811424A59B870F84D11BFA1D202BF57896154405B6") (:digest-bit-test 54 #x01 9 #h"D7F2171F5B7523C54B4D1A81BB6048C99CED1E15087A9C49") (:digest-bit-test 55 #x80 8 #h"94DC8F6AAAD2A07CA81191B613291EB06EEC66A1B628F9CC") (:digest-bit-test 55 #x40 8 #h"534D75114EB28DFE082BBA4285ED30E55CBE4864278FF182") (:digest-bit-test 55 #x20 8 #h"F5971C8523421B68BC3D9FCA5ADC5D2C76CD0C3797232950") (:digest-bit-test 55 #x10 8 #h"D274B834360952A27265C12C2B70623CDCB69C4815B8AD9E") (:digest-bit-test 55 #x08 8 #h"D25074898E465F024B7D5AA542575176B885998694BFF162") (:digest-bit-test 55 #x04 8 #h"100B09B1A2778E07F0DEE2E6DFB28D032FA35D7EBAB2E87A") (:digest-bit-test 55 #x02 8 #h"96FE586BD7D472FFA884C5724561D517C1126957FB190096") (:digest-bit-test 55 #x01 8 #h"45EE36AF320341688173D7C41A7615BCCD0A431F834EFD18") (:digest-bit-test 56 #x80 7 #h"F73847AEB45D714CC5756DBDEE00A9E580EF91101AC8FE64") (:digest-bit-test 56 #x40 7 #h"30A56E8B8CDAD753A854A1BE4B61DB04F303B6CFD0D76522") (:digest-bit-test 56 #x20 7 #h"1BADACF65A1F790B448DF08A100E66CDB8B404DDC7865016") (:digest-bit-test 56 #x10 7 #h"D0DA13AA2AFC006A97C537541B505B96CE798BDDC07B9D6D") (:digest-bit-test 56 #x08 7 #h"FB4170AA2DBAA3844FD8485D4325BE987E2E589B58AB3B80") (:digest-bit-test 56 #x04 7 #h"50A0FE8090A0AA2EA503CD40DBE894004852584FDE11E3E2") (:digest-bit-test 56 #x02 7 #h"F6311445087C56C3CA179EF211FD32762134EDC910D9270B") (:digest-bit-test 56 #x01 7 #h"A292F008A7BDF88E61FF866269A6D6F6AC9A81F706D57C27") (:digest-bit-test 57 #x80 6 #h"700C29CF917F3634215C58B9B3B9C147FC0AEA52C05B2841") (:digest-bit-test 57 #x40 6 #h"2071C5313B0EA39ECC258AC29ED6E6CA8E0511C726A528A9") (:digest-bit-test 57 #x20 6 #h"AC6F08712123FF72E9C04D1C5C343BC2A356DBEE9223B8E8") (:digest-bit-test 57 #x10 6 #h"01F46A7935579B7A7F5CDD00B5E7F1D62C37726F4216DC1D") (:digest-bit-test 57 #x08 6 #h"820320BBB243E30FE35395FBFAF46A5C8C0CA41E4B48A80B") (:digest-bit-test 57 #x04 6 #h"4B3365B4AF9E0C1AB703F297ECB82F9DB6ED44819DBC72F8") (:digest-bit-test 57 #x02 6 #h"DF69D9A819C4E27ED1B7D66678FDEBD8BBD1747F892D2B55") (:digest-bit-test 57 #x01 6 #h"C0F17FAF958767C65EBA2F68EE245205CB1BB73290AACAB6") (:digest-bit-test 58 #x80 5 #h"D62C3EBC661115CDE4F4BD646D745ADB7225304D2712837D") (:digest-bit-test 58 #x40 5 #h"37E9A837E07B12281F4740D8353DD6008A077F6EF51978B9") (:digest-bit-test 58 #x20 5 #h"9826470A5ABEE6EE66BB799C9A9206703174AB77AA6223A4") (:digest-bit-test 58 #x10 5 #h"506C60EAC24C18D955364759BD8CD522157AD658C7B1652E") (:digest-bit-test 58 #x08 5 #h"110923F8A4E154057211F273FDAF0F565AAD0A0962C4E08D") (:digest-bit-test 58 #x04 5 #h"30CE0B97A6578CE2398BF04E63F78B2CAB5DC97A140426CE") (:digest-bit-test 58 #x02 5 #h"3AE75A6039177B44B18B2C02EE148388F93E6EB96A989D3D") (:digest-bit-test 58 #x01 5 #h"0DE8D7C180C5FB4E90ECF4165EECEDE97316170B7B00D681") (:digest-bit-test 59 #x80 4 #h"A1BA31195FF34A411C5D9A72A84C83C7BD7C6C777FC7DA4A") (:digest-bit-test 59 #x40 4 #h"1D7295FE7B297D4B752159B7DD71483D53C7799FF82054E4") (:digest-bit-test 59 #x20 4 #h"F0210F4416BE56B157EDC9A76684D1F1653EFA6B7D06079B") (:digest-bit-test 59 #x10 4 #h"311229D7C5AADF9CAA0DF39E441D4E119D0B3887194B9751") (:digest-bit-test 59 #x08 4 #h"7E5E875547284EE4952C250DA3BB4E3BBE59086FA638CAAE") (:digest-bit-test 59 #x04 4 #h"890371D12AF03062698C2F4F5F2D7272DF652EE99C4233B3") (:digest-bit-test 59 #x02 4 #h"BD3F48F09AB50132242F762A61904E945CD3628A925A8B82") (:digest-bit-test 59 #x01 4 #h"6401C4DDCDD7441581AFF57D13C1198FC2347D886D319FDA") (:digest-bit-test 60 #x80 3 #h"2446A367AABBDEBA9EFD1F8CAA9805EC1A9B45200A90E2C1") (:digest-bit-test 60 #x40 3 #h"37C1C64324D78E1F7549E6169FA66D492184F3A5A524810F") (:digest-bit-test 60 #x20 3 #h"91A620E120AB9C4949C6D3E27A856F079F76DA00D56C3A22") (:digest-bit-test 60 #x10 3 #h"575C19C550408D8454650AF1739812870E371BA8F34B6861") (:digest-bit-test 60 #x08 3 #h"5AB6FF5B263ACFAB2013C3068C03A82979EA6DB287A3ECDD") (:digest-bit-test 60 #x04 3 #h"BB40E88E5DA7D4B12356124D9ED74BA5283C502FC68B5A1B") (:digest-bit-test 60 #x02 3 #h"CFEC678B1CD75F4249D536C9399F11C12CE9938EE8CADCFF") (:digest-bit-test 60 #x01 3 #h"8A26E3715E0471DD3616A9E505F4C73722BB42FB233BF641") (:digest-bit-test 61 #x80 2 #h"ED38E1AA4B73AF6024471252F8102E77ECBF4BC315DB1C31") (:digest-bit-test 61 #x40 2 #h"4D5E37A37AFC8C7DBBC25AF2C6670ED2DAFB56B5376E2550") (:digest-bit-test 61 #x20 2 #h"958603BDA98C29A87AEDB0C1C8F559D161EA4FCBE9EED392") (:digest-bit-test 61 #x10 2 #h"A7F58251627E2C4C82ED1AFADB2FFF3B3483CDC279117E1E") (:digest-bit-test 61 #x08 2 #h"4B003F86DA13C24E10041F934DC02EAA9E86C4200550DE8F") (:digest-bit-test 61 #x04 2 #h"6139AB107BCD192E8419E869F77738D2624BA81FD774828F") (:digest-bit-test 61 #x02 2 #h"15E286064681AB50343CDFD1E178F6DAD9071E3727997DA1") (:digest-bit-test 61 #x01 2 #h"95A26E99BFFBB5D0027B380688D3E5C567454F4F2F283C41") (:digest-bit-test 62 #x80 1 #h"45326511C3070AD878172A7DA38D17ED65D17BFFB0298058") (:digest-bit-test 62 #x40 1 #h"C127E412181EF4734360466A38245409E44B2B208FFF4D67") (:digest-bit-test 62 #x20 1 #h"4C9A55B7BC50B8D7343F1FF351F13A89CA53E8AD2F056559") (:digest-bit-test 62 #x10 1 #h"9B93DF18074112C26FBEB1EA277070EF4D5A1778376DC12C") (:digest-bit-test 62 #x08 1 #h"79CE5EFD59A9A0ADBC3661F278B3C540A0332A9E8FA30E07") (:digest-bit-test 62 #x04 1 #h"886F0AD49176EAF30EA422CDA7D1061AF2D62DA67C672407") (:digest-bit-test 62 #x02 1 #h"54C7674DC49D49E63DD7296241C3F2F0B022BCC0451400F0") (:digest-bit-test 62 #x01 1 #h"9DFC07C61179B9DEEA1D452D3073C2A12CB0342EC8FA25C1") (:digest-bit-test 63 #x80 0 #h"E9C6E911956A0D7C3958F4E0252A4DF98FAE33AFC834EA10") (:digest-bit-test 63 #x40 0 #h"9DB1556485B4C5C67FC532C4C6937AFA3A889FDB09B055A7") (:digest-bit-test 63 #x20 0 #h"5875A1A391DEDD84155F3805A81EF68AD288A9E77DEB4324") (:digest-bit-test 63 #x10 0 #h"5DA3FCD577895036D0AB8D6BC654C59E76C0312C81F3A374") (:digest-bit-test 63 #x08 0 #h"3DB3B9731E66FEF6039A2723C7CD7814F2A5F8ED20807361") (:digest-bit-test 63 #x04 0 #h"C784C70B8F431D8AEA3F5ADF2BA55AB4BEC9C580558CD0BD") (:digest-bit-test 63 #x02 0 #h"B256AA37A7DA84F3599B338E2B853B92ECBA5FDE6901B620") (:digest-bit-test 63 #x01 0 #h"1CDEC1D10BD749090B1F491A4FC8E2F8B150D64F3215CE8F") ironclad_0.33.0/testing/test-vectors/whirlpool.testvec0000644000175000017500000000267011305364032020171 0ustar00;;; iso-test-vectors (:digest-test #a"" #h"19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A73E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3") (:digest-test #a"a" #h"8ACA2602792AEC6F11A67206531FB7D7F0DFF59413145E6973C45001D0087B42D11BC645413AEFF63A42391A39145A591A92200D560195E53B478584FDAE231A") (:digest-test #a"abc" #h"4E2448A4C6F486BB16B6562C73B4020BF3043E3A731BCE721AE1B303D97E6D4C7181EEBDB6C57E277D0E34957114CBD6C797FC9D95D8B582D225292076D4EEF5") (:digest-test #a"message digest" #h"378C84A4126E2DC6E56DCC7458377AAC838D00032230F53CE1F5700C0FFB4D3B8421557659EF55C106B4B52AC5A4AAA692ED920052838F3362E86DBD37A8903E") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"F1D754662636FFE92C82EBB9212A484A8D38631EAD4238F5442EE13B8054E41B08BF2A9251C30B6A0B8AAE86177AB4A6F68F673E7207865D5D9819A3DBA4EB3B") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"DC37E008CF9EE69BF11F00ED9ABA26901DD7C28CDEC066CC6AF42E40F82F3A1E08EBA26629129D8FB7CB57211B9281A65517CC879D7B962142C65F5A7AF01467") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"466EF18BABB0154D25B9D38A6414F5C08784372BCCB204D6549C4AFADB6014294D5BD8DF2A6C44E538CD047B2681A51A2C60481E88C5A20B2C2A80CF3A9A083B") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijk" #h"2A987EA40F917061F5D6F0A0E4644F488A7A5A52DEEE656207C562F988E95C6916BDC8031BC5BE1B7B947639FE050B56939BAAA0ADFF9AE6745B7B181C3BE3FD") ironclad_0.33.0/testing/test-vectors/hmac.testvec0000644000175000017500000001375711305364032017072 0ustar00;;; tests from RFC 2104 (:hmac-test :md5 #h"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" #h"4869205468657265" #h"9294727A3638BB1C13F48EF8158BFC9D") (:hmac-test :md5 #h"4a656665" #h"7768617420646f2079612077616e7420666f72206e6f7468696e673f" #h"750c783e6ab0b503eaa86e310a5db738") (:hmac-test :md5 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" #h"56be34521d144c88dbb8c733f0e8b3f6") ;;; tests from RFC 4231 ;;; HMAC-SHA-224 (:hmac-test :sha224 #h"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" #h"4869205468657265" #h"896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22") (:hmac-test :sha224 #h"4a656665" #h"7768617420646f2079612077616e7420666f72206e6f7468696e673f" #h"a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44") (:hmac-test :sha224 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" #h"7fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea") (:hmac-test :sha224 #h"0102030405060708090a0b0c0d0e0f10111213141516171819" #h"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd" #h"6c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a") (:hmac-test :sha224 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374" #h"95e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e") ;;; HMAC-SHA-256 (:hmac-test :sha256 #h"4a656665" #h"7768617420646f2079612077616e7420666f72206e6f7468696e673f" #h"5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843") (:hmac-test :sha256 #h"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" #h"4869205468657265" #h"b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7") (:hmac-test :sha256 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" #h"773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe") (:hmac-test :sha256 #h"0102030405060708090a0b0c0d0e0f10111213141516171819" #h"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd" #h"82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b") (:hmac-test :sha256 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374" #h"60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54") ;;; HMAC-SHA-384 (:hmac-test :sha384 #h"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" #h"4869205468657265" #h"afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59cfaea9ea9076ede7f4af152e8b2fa9cb6") (:hmac-test :sha384 #h"4a656665" #h"7768617420646f2079612077616e7420666f72206e6f7468696e673f" #h"af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649") (:hmac-test :sha384 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" #h"88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b2a5ab39dc13814b94e3ab6e101a34f27") (:hmac-test :sha384 #h"0102030405060708090a0b0c0d0e0f10111213141516171819" #h"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd" #h"3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e6801dd23c4a7d679ccf8a386c674cffb") (:hmac-test :sha384 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374" #h"4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c60c2ef6ab4030fe8296248df163f44952") ;;; HMAC-SHA-512 (:hmac-test :sha512 #h"4a656665" #h"7768617420646f2079612077616e7420666f72206e6f7468696e673f" #h"164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737") (:hmac-test :sha512 #h"0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b" #h"4869205468657265" #h"87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854") (:hmac-test :sha512 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" #h"fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb") (:hmac-test :sha512 #h"0102030405060708090a0b0c0d0e0f10111213141516171819" #h"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd" #h"b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd") (:hmac-test :sha512 #h"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #h"54657374205573696e67204c6172676572205468616e20426c6f636b2d53697a65204b6579202d2048617368204b6579204669727374" #h"80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f3526b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598") ironclad_0.33.0/testing/test-vectors/cmac.testvec0000644000175000017500000000624011305364032017052 0ustar00;;;; cmac.lisp -- tests from NIST 800-38B ;;; AES-128 (:cmac-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"" #h"bb1d6929e95937287fa37d129b756746") (:cmac-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"6bc1bee22e409f96e93d7e117393172a" #h"070a16b46b4d4144f79bdd9dd04a287c") (:cmac-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411" #h"dfa66747de9ae63030ca32611497c827") (:cmac-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"51f0bebf7e3b9d92fc49741779363cfe") ;;; AES-192 (:cmac-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"" #h"d17ddf46adaacde531cac483de7a9367") (:cmac-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"6bc1bee22e409f96e93d7e117393172a" #h"9e99a7bf31e710900662f65e617c5184") (:cmac-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411" #h"8a1de5be2eb31aad089a82e6ee908b0e") (:cmac-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"a1d5df0eed790f794d77589659f39a11") ;;; AES-256 (:cmac-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"" #h"028962f61b7bf89efc6b551f4667d983") (:cmac-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"6bc1bee22e409f96e93d7e117393172a" #h"28a7023f452e8f82bd4bf28d8c37c35c") (:cmac-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411" #h"aaf3d8f1de5640c232f5b169b9c911e6") (:cmac-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"e1992190549f6ed5696a2c056c315410") ;;; 3DES (triple key) (:cmac-test :3des #h"8aa83bf8cbda10620bc1bf19fbb6cd58bc313d4a371ca8b5" #h"" #h"b7a688e122ffaf95") (:cmac-test :3des #h"8aa83bf8cbda10620bc1bf19fbb6cd58bc313d4a371ca8b5" #h"6bc1bee22e409f96" #h"8e8f293136283797") (:cmac-test :3des #h"8aa83bf8cbda10620bc1bf19fbb6cd58bc313d4a371ca8b5" #h"6bc1bee22e409f96e93d7e117393172aae2d8a57" #h"743ddbe0ce2dc2ed") (:cmac-test :3des #h"8aa83bf8cbda10620bc1bf19fbb6cd58bc313d4a371ca8b5" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51" #h"33e6b1092400eae5") ;;; 3DES (double key) (:cmac-test :3des #h"4cf15134a2850dd58a3d10ba80570d384cf15134a2850dd5" #h"" #h"bd2ebf9a3ba00361") (:cmac-test :3des #h"4cf15134a2850dd58a3d10ba80570d384cf15134a2850dd5" #h"6bc1bee22e409f96" #h"4ff2ab813c53ce83") (:cmac-test :3des #h"4cf15134a2850dd58a3d10ba80570d384cf15134a2850dd5" #h"6bc1bee22e409f96e93d7e117393172aae2d8a57" #h"62dd1b471902bd4e") (:cmac-test :3des #h"4cf15134a2850dd58a3d10ba80570d384cf15134a2850dd5" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e51" #h"31b1e431dabc4eb8") ironclad_0.33.0/testing/test-vectors/tree-hash.testvec0000644000175000017500000000231311350513353020026 0ustar00;;; standard tests ;; See corresponding tests in binascii/tests/base32.testvec (:digest-test #a"" #h"5D9ED00A030E638BDB753A6A24FB900E5A63B8E73E6C25B6") (:digest-bit-test 0 0 0 #h"AABBCCA084ACECD0511D1F6232A17BFAEFA441B2982E5548") (:digest-test #.(make-array '(1024) :element-type '(unsigned-byte 8) :initial-element 65) #h"5FBD0E62AD016D596B77D1D28883B94FED78ECBAF4640914") (:digest-test #.(make-array '(1025) :element-type '(unsigned-byte 8) :initial-element 65) #h"7E591C1CD8F2E6121FDBCD8071BA279626B771642D10A3DB") (:digest-test #a"abc" #h"0487CA26443F59CFBC780F3CA0CE509C8C352C27C5DCCA20") (:digest-test #a"message digest" #h"C339BD324EBF6085A0FA5F26D77B44DBB7DB60D690649704") (:digest-test #a"abcdefghijklmnopqrstuvwxyz" #h"5B0ED06AB8773DD7EA2371A71D097EBA8F96A357E0854C77") (:digest-test #a"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" #h"A9E27D4684D9E49D49A09A7803DA15B258E5DDE0923870E9") (:digest-test #a"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" #h"997FC234BF6175678C9BEB35B6C655525115622C9AEC03DA") (:digest-test #a"12345678901234567890123456789012345678901234567890123456789012345678901234567890" #h"685420361A70DB395782FE1252ED31057EB54CA879E0D0A7") ironclad_0.33.0/testing/test-vectors/null.testvec0000644000175000017500000000041411305364032017116 0ustar00(:ecb-mode-test #h"00" #h"1234567887654321" #h"1234567887654321") (:ecb-mode-test #h"0000" #h"1234567887654321" #h"1234567887654321") (:ecb-mode-test #h"01" #h"1234567887654321" #h"1335577986644220") (:ecb-mode-test #h"0102" #h"1234567887654321" #h"1336577a86674223") ironclad_0.33.0/testing/test-vectors/aes.testvec0000644000175000017500000015407711305364032016733 0ustar00;;;; aes-test-vectors.lisp -- standard tests from ecb_tbl.txt (:ecb-mode-test #h"00010203050607080A0B0C0D0F101112" #h"506812A45F08C889B97F5980038B8359" #h"D8F532538289EF7D06B506A4FD5BE9C9") (:ecb-mode-test #h"14151617191A1B1C1E1F202123242526" #h"5C6D71CA30DE8B8B00549984D2EC7D4B" #h"59AB30F4D4EE6E4FF9907EF65B1FB68C") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A" #h"53F3F4C64F8616E4E7C56199F48F21F6" #h"BF1ED2FCB2AF3FD41443B56D85025CB1") (:ecb-mode-test #h"3C3D3E3F41424344464748494B4C4D4E" #h"A1EB65A3487165FB0F1C27FF9959F703" #h"7316632D5C32233EDCB0780560EAE8B2") (:ecb-mode-test #h"50515253555657585A5B5C5D5F606162" #h"3553ECF0B1739558B08E350A98A39BFA" #h"408C073E3E2538072B72625E68B8364B") (:ecb-mode-test #h"64656667696A6B6C6E6F707173747576" #h"67429969490B9711AE2B01DC497AFDE8" #h"E1F94DFA776597BEACA262F2F6366FEA") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A" #h"93385C1F2AEC8BED192F5A8E161DD508" #h"F29E986C6A1C27D7B29FFD7EE92B75F1") (:ecb-mode-test #h"8C8D8E8F91929394969798999B9C9D9E" #h"B5BF946BE19BEB8DB3983B5F4C6E8DDB" #h"131C886A57F8C2E713ABA6955E2B55B5") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2" #h"41321EE10E21BD907227C4450FF42324" #h"D2AB7662DF9B8C740210E5EEB61C199D") (:ecb-mode-test #h"B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"00A82F59C91C8486D12C0A80124F6089" #h"14C10554B2859C484CAB5869BBE7C470") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DA" #h"7CE0FD076754691B4BBD9FAF8A1372FE" #h"DB4D498F0A49CF55445D502C1F9AB3B5") (:ecb-mode-test #h"DCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"23605A8243D07764541BC5AD355B3129" #h"6D96FEF7D66590A77A77BB2056667F7F") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE010002" #h"12A8CFA23EA764FD876232B4E842BC44" #h"316FB68EDBA736C53E78477BF913725C") (:ecb-mode-test #h"04050607090A0B0C0E0F101113141516" #h"BCAF32415E8308B3723E5FDD853CCC80" #h"6936F2B93AF8397FD3A771FC011C8C37") (:ecb-mode-test #h"2C2D2E2F31323334363738393B3C3D3E" #h"89AFAE685D801AD747ACE91FC49ADDE0" #h"F3F92F7A9C59179C1FCC2C2BA0B082CD") (:ecb-mode-test #h"40414243454647484A4B4C4D4F505152" #h"F521D07B484357C4A69E76124A634216" #h"6A95EA659EE3889158E7A9152FF04EBC") (:ecb-mode-test #h"54555657595A5B5C5E5F606163646566" #h"3E23B3BC065BCC152407E23896D77783" #h"1959338344E945670678A5D432C90B93") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A" #h"79F0FBA002BE1744670E7E99290D8F52" #h"E49BDDD2369B83EE66E6C75A1161B394") (:ecb-mode-test #h"7C7D7E7F81828384868788898B8C8D8E" #h"DA23FE9D5BD63E1D72E3DAFBE21A6C2A" #h"D3388F19057FF704B70784164A74867D") (:ecb-mode-test #h"A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"E3F5698BA90B6A022EFD7DB2C7E6C823" #h"23AA03E2D5E4CD24F3217E596480D1E1") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2" #h"BDC2691D4F1B73D2700679C3BCBF9C6E" #h"C84113D68B666AB2A50A8BDB222E91B9") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A" #h"BA74E02093217EE1BA1B42BD5624349A" #h"AC02403981CD4340B507963DB65CB7B6") (:ecb-mode-test #h"6C6D6E6F71727374767778797B7C7D7E" #h"B5C593B5851C57FBF8B3F57715E8F680" #h"8D1299236223359474011F6BF5088414") (:ecb-mode-test #h"80818283858687888A8B8C8D8F909192" #h"3DA9BD9CEC072381788F9387C3BBF4EE" #h"5A1D6AB8605505F7977E55B9A54D9B90") (:ecb-mode-test #h"94959697999A9B9C9E9FA0A1A3A4A5A6" #h"4197F3051121702AB65D316B3C637374" #h"72E9C2D519CF555E4208805AABE3B258") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BA" #h"9F46C62EC4F6EE3F6E8C62554BC48AB7" #h"A8F3E81C4A23A39EF4D745DFFE026E80") (:ecb-mode-test #h"BCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE" #h"0220673FE9E699A4EBC8E0DBEB6979C8" #h"546F646449D31458F9EB4EF5483AEE6C") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2" #h"B2B99171337DED9BC8C2C23FF6F18867" #h"4DBE4BC84AC797C0EE4EFB7F1A07401C") (:ecb-mode-test #h"E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"A7FACF4E301E984E5EFEEFD645B23505" #h"25E10BFB411BBD4D625AC8795C8CA3B3") (:ecb-mode-test #h"F8F9FAFBFDFEFE00020304050708090A" #h"F7C762E4A9819160FD7ACFB6C4EEDCDD" #h"315637405054EC803614E43DEF177579") (:ecb-mode-test #h"0C0D0E0F11121314161718191B1C1D1E" #h"9B64FC21EA08709F4915436FAA70F1BE" #h"60C5BC8A1410247295C6386C59E572A8") (:ecb-mode-test #h"20212223252627282A2B2C2D2F303132" #h"52AF2C3DE07EE6777F55A4ABFC100B3F" #h"01366FC8CA52DFE055D6A00A76471BA6") (:ecb-mode-test #h"34353637393A3B3C3E3F404143444546" #h"2FCA001224386C57AA3F968CBE2C816F" #h"ECC46595516EC612449C3F581E7D42FF") (:ecb-mode-test #h"48494A4B4D4E4F50525354555758595A" #h"4149C73658A4A9C564342755EE2C132F" #h"6B7FFE4C602A154B06EE9C7DAB5331C9") (:ecb-mode-test #h"5C5D5E5F61626364666768696B6C6D6E" #h"AF60005A00A1772F7C07A48A923C23D2" #h"7DA234C14039A240DD02DD0FBF84EB67") (:ecb-mode-test #h"70717273757677787A7B7C7D7F808182" #h"6FCCBC28363759914B6F0280AFAF20C6" #h"C7DC217D9E3604FFE7E91F080ECD5A3A") (:ecb-mode-test #h"84858687898A8B8C8E8F909193949596" #h"7D82A43DDF4FEFA2FC5947499884D386" #h"37785901863F5C81260EA41E7580CDA5") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AA" #h"5D5A990EAAB9093AFE4CE254DFA49EF9" #h"A07B9338E92ED105E6AD720FCCCE9FE4") (:ecb-mode-test #h"ACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"4CD1E2FD3F4434B553AAE453F0ED1A02" #h"AE0FB9722418CC21A7DA816BBC61322C") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2" #h"5A2C9A9641D4299125FA1B9363104B5E" #h"C826A193080FF91FFB21F71D3373C877") (:ecb-mode-test #h"D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"B517FE34C0FA217D341740BFD4FE8DD4" #h"1181B11B0E494E8D8B0AA6B1D5AC2C48") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA" #h"014BAF2278A69D331D5180103643E99A" #h"6743C3D1519AB4F2CD9A78AB09A511BD") (:ecb-mode-test #h"FCFDFEFF01020304060708090B0C0D0E" #h"B529BD8164F20D0AA443D4932116841C" #h"DC55C076D52BACDF2EEFD952946A439D") (:ecb-mode-test #h"10111213151617181A1B1C1D1F202122" #h"2E596DCBB2F33D4216A1176D5BD1E456" #h"711B17B590FFC72B5C8E342B601E8003") (:ecb-mode-test #h"24252627292A2B2C2E2F303133343536" #h"7274A1EA2B7EE2424E9A0E4673689143" #h"19983BB0950783A537E1339F4AA21C75") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A" #h"AE20020BD4F13E9D90140BEE3B5D26AF" #h"3BA7762E15554169C0F4FA39164C410C") (:ecb-mode-test #h"4C4D4E4F51525354565758595B5C5D5E" #h"BAAC065DA7AC26E855E79C8849D75A02" #h"A0564C41245AFCA7AF8AA2E0E588EA89") (:ecb-mode-test #h"60616263656667686A6B6C6D6F707172" #h"7C917D8D1D45FAB9E2540E28832540CC" #h"5E36A42A2E099F54AE85ECD92E2381ED") (:ecb-mode-test #h"74757677797A7B7C7E7F808183848586" #h"BDE6F89E16DAADB0E847A2A614566A91" #h"770036F878CD0F6CA2268172F106F2FE") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A" #h"C9DE163725F1F5BE44EBB1DB51D07FBC" #h"7E4E03908B716116443CCF7C94E7C259") (:ecb-mode-test #h"9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"3AF57A58F0C07DFFA669572B521E2B92" #h"482735A48C30613A242DD494C7F9185D") (:ecb-mode-test #h"B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2" #h"3D5EBAC306DDE4604F1B4FBBBFCDAE55" #h"B4C0F6C9D4D7079ADDF9369FC081061D") (:ecb-mode-test #h"C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"C2DFA91BCEB76A1183C995020AC0B556" #h"D5810FE0509AC53EDCD74F89962E6270") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EA" #h"C70F54305885E9A0746D01EC56C8596B" #h"03F17A16B3F91848269ECDD38EBB2165") (:ecb-mode-test #h"ECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"C4F81B610E98012CE000182050C0C2B2" #h"DA1248C3180348BAD4A93B4D9856C9DF") (:ecb-mode-test #h"00010203050607080A0B0C0D0F101112" #h"EAAB86B1D02A95D7404EFF67489F97D4" #h"3D10D7B63F3452C06CDF6CCE18BE0C2C") (:ecb-mode-test #h"14151617191A1B1C1E1F202123242526" #h"7C55BDB40B88870B52BEC3738DE82886" #h"4AB823E7477DFDDC0E6789018FCB6258") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A" #h"BA6EAA88371FF0A3BD875E3F2A975CE0" #h"E6478BA56A77E70CFDAA5C843ABDE30E") (:ecb-mode-test #h"3C3D3E3F41424344464748494B4C4D4E" #h"08059130C4C24BD30CF0575E4E0373DC" #h"1673064895FBEAF7F09C5429FF75772D") (:ecb-mode-test #h"50515253555657585A5B5C5D5F606162" #h"9A8EAB004EF53093DFCF96F57E7EDA82" #h"4488033AE9F2EFD0CA9383BFCA1A94E9") (:ecb-mode-test #h"64656667696A6B6C6E6F707173747576" #h"0745B589E2400C25F117B1D796C28129" #h"978F3B8C8F9D6F46626CAC3C0BCB9217") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A" #h"2F1777781216CEC3F044F134B1B92BBE" #h"E08C8A7E582E15E5527F1D9E2EECB236") (:ecb-mode-test #h"8C8D8E8F91929394969798999B9C9D9E" #h"353A779FFC541B3A3805D90CE17580FC" #h"CEC155B76AC5FFDA4CF4F9CA91E49A7A") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2" #h"1A1EAE4415CEFCF08C4AC1C8F68BEA8F" #h"D5AC7165763225DD2A38CDC6862C29AD") (:ecb-mode-test #h"B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"E6E7E4E5B0B3B2B5D4D5AAAB16111013" #h"03680FE19F7CE7275452020BE70E8204") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DA" #h"F8F9FAFBFBF8F9E677767170EFE0E1E2" #h"461DF740C9781C388E94BB861CEB54F6") (:ecb-mode-test #h"DCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"63626160A1A2A3A445444B4A75727370" #h"451BD60367F96483042742219786A074") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE010002" #h"717073720605040B2D2C2B2A05FAFBF9" #h"E4DFA42671A02E57EF173B85C0EA9F2B") (:ecb-mode-test #h"04050607090A0B0C0E0F101113141516" #h"78797A7BEAE9E8EF3736292891969794" #h"ED11B89E76274282227D854700A78B9E") (:ecb-mode-test #h"18191A1B1D1E1F20222324252728292A" #h"838281803231300FDDDCDBDAA0AFAEAD" #h"433946EAA51EA47AF33895F2B90B3B75") (:ecb-mode-test #h"2C2D2E2F31323334363738393B3C3D3E" #h"18191A1BBFBCBDBA75747B7A7F78797A" #h"6BC6D616A5D7D0284A5910AB35022528") (:ecb-mode-test #h"40414243454647484A4B4C4D4F505152" #h"848586879B989996A3A2A5A4849B9A99" #h"D2A920ECFE919D354B5F49EAE9719C98") (:ecb-mode-test #h"54555657595A5B5C5E5F606163646566" #h"0001020322212027CACBF4F551565754" #h"3A061B17F6A92885EFBD0676985B373D") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A" #h"CECFCCCDAFACADB2515057564A454447" #h"FADEEC16E33EA2F4688499D157E20D8F") (:ecb-mode-test #h"7C7D7E7F81828384868788898B8C8D8E" #h"92939091CDCECFC813121D1C80878685" #h"5CDEFEDE59601AA3C3CDA36FA6B1FA13") (:ecb-mode-test #h"90919293959697989A9B9C9D9FA0A1A2" #h"D2D3D0D16F6C6D6259585F5ED1EEEFEC" #h"9574B00039844D92EBBA7EE8719265F8") (:ecb-mode-test #h"A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"ACADAEAF878485820F0E1110D5D2D3D0" #h"9A9CF33758671787E5006928188643FA") (:ecb-mode-test #h"B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CA" #h"9091929364676619E6E7E0E1757A7B78" #h"2CDDD634C846BA66BB46CBFEA4A674F9") (:ecb-mode-test #h"CCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE" #h"BABBB8B98A89888F74757A7B92959497" #h"D28BAE029393C3E7E26E9FAFBBB4B98F") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2" #h"8D8C8F8E6E6D6C633B3A3D3CCAD5D4D7" #h"EC27529B1BEE0A9AB6A0D73EBC82E9B7") (:ecb-mode-test #h"F4F5F6F7F9FAFBFCFEFE010103040506" #h"86878485010203040808F7F767606162" #h"3CB25C09472AFF6EE7E2B47CCD7CCB17") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A" #h"8E8F8C8D656667788A8B8C8D010E0F0C" #h"DEE33103A7283370D725E44CA38F8FE5") (:ecb-mode-test #h"1C1D1E1F21222324262728292B2C2D2E" #h"C8C9CACB858687807A7B7475E7E0E1E2" #h"27F9BCD1AAC64BFFC11E7815702C1A69") (:ecb-mode-test #h"30313233353637383A3B3C3D3F404142" #h"6D6C6F6E5053525D8C8D8A8BADD2D3D0" #h"5DF534FFAD4ED0749A9988E9849D0021") (:ecb-mode-test #h"44454647494A4B4C4E4F505153545556" #h"28292A2B393A3B3C0607181903040506" #h"A48BEE75DB04FB60CA2B80F752A8421B") (:ecb-mode-test #h"58595A5B5D5E5F60626364656768696A" #h"A5A4A7A6B0B3B28DDBDADDDCBDB2B3B0" #h"024C8CF70BC86EE5CE03678CB7AF45F9") (:ecb-mode-test #h"6C6D6E6F71727374767778797B7C7D7E" #h"323330316467666130313E3F2C2B2A29" #h"3C19AC0F8A3A3862CE577831301E166B") (:ecb-mode-test #h"80818283858687888A8B8C8D8F909192" #h"27262524080B0A05171611100B141516" #h"C5E355B796A57421D59CA6BE82E73BCA") (:ecb-mode-test #h"94959697999A9B9C9E9FA0A1A3A4A5A6" #h"040506074142434435340B0AA3A4A5A6" #h"D94033276417ABFB05A69D15B6E386E2") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BA" #h"242526271112130C61606766BDB2B3B0" #h"24B36559EA3A9B9B958FE6DA3E5B8D85") (:ecb-mode-test #h"BCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE" #h"4B4A4948252627209E9F9091CEC9C8CB" #h"20FD4FEAA0E8BF0CCE7861D74EF4CB72") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2" #h"68696A6B6665646B9F9E9998D9E6E7E4" #h"350E20D5174277B9EC314C501570A11D") (:ecb-mode-test #h"E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"34353637C5C6C7C0F0F1EEEF7C7B7A79" #h"87A29D61B7C604D238FE73045A7EFD57") (:ecb-mode-test #h"F8F9FAFBFDFEFE00020304050708090A" #h"32333031C2C1C13F0D0C0B0A050A0B08" #h"2C3164C1CC7D0064816BDC0FAA362C52") (:ecb-mode-test #h"0C0D0E0F11121314161718191B1C1D1E" #h"CDCCCFCEBEBDBCBBABAAA5A4181F1E1D" #h"195FE5E8A05A2ED594F6E4400EEE10B3") (:ecb-mode-test #h"20212223252627282A2B2C2D2F303132" #h"212023223635343BA0A1A6A7445B5A59" #h"E4663DF19B9A21A5A284C2BD7F905025") (:ecb-mode-test #h"34353637393A3B3C3E3F404143444546" #h"0E0F0C0DA8ABAAAD2F2E515002050407" #h"21B88714CFB4E2A933BD281A2C4743FD") (:ecb-mode-test #h"48494A4B4D4E4F50525354555758595A" #h"070605042A2928378E8F8889BDB2B3B0" #h"CBFC3980D704FD0FC54378AB84E17870") (:ecb-mode-test #h"5C5D5E5F61626364666768696B6C6D6E" #h"CBCAC9C893909196A9A8A7A6A5A2A3A0" #h"BC5144BAA48BDEB8B63E22E03DA418EF") (:ecb-mode-test #h"70717273757677787A7B7C7D7F808182" #h"80818283C1C2C3CC9C9D9A9B0CF3F2F1" #h"5A1DBAEF1EE2984B8395DA3BDFFA3CCC") (:ecb-mode-test #h"84858687898A8B8C8E8F909193949596" #h"1213101125262720FAFBE4E5B1B6B7B4" #h"F0B11CD0729DFCC80CEC903D97159574") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AA" #h"7F7E7D7C3033320D97969190222D2C2F" #h"9F95314ACFDDC6D1914B7F19A9CC8209") (:ecb-mode-test #h"ACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"4E4F4C4D484B4A4D81808F8E53545556" #h"595736F6F0F70914A94E9E007F022519") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2" #h"DCDDDEDFB0B3B2BD15141312A1BEBFBC" #h"1F19F57892CAE586FCDFB4C694DEB183") (:ecb-mode-test #h"D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"93929190282B2A2DC4C5FAFB92959497" #h"540700EE1F6F3DAB0B3EDDF6CAEE1EF5") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FA" #h"F5F4F7F6C4C7C6D9373631307E717073" #h"14A342A91019A331687A2254E6626CA2") (:ecb-mode-test #h"FCFDFEFF01020304060708090B0C0D0E" #h"93929190B6B5B4B364656A6B05020300" #h"7B25F3C3B2EEA18D743EF283140F29FF") (:ecb-mode-test #h"10111213151617181A1B1C1D1F202122" #h"BABBB8B90D0E0F00A4A5A2A3043B3A39" #h"46C2587D66E5E6FA7F7CA6411AD28047") (:ecb-mode-test #h"24252627292A2B2C2E2F303133343536" #h"D8D9DADB7F7C7D7A10110E0F787F7E7D" #h"09470E72229D954ED5EE73886DFEEBA9") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A" #h"FEFFFCFDEFECED923B3A3D3C6768696A" #h"D77C03DE92D4D0D79EF8D4824EF365EB") (:ecb-mode-test #h"4C4D4E4F51525354565758595B5C5D5E" #h"D6D7D4D58A89888F96979899A5A2A3A0" #h"1D190219F290E0F1715D152D41A23593") (:ecb-mode-test #h"60616263656667686A6B6C6D6F707172" #h"18191A1BA8ABAAA5303136379B848586" #h"A2CD332CE3A0818769616292E87F757B") (:ecb-mode-test #h"74757677797A7B7C7E7F808183848586" #h"6B6A6968A4A7A6A1D6D72829B0B7B6B5" #h"D54AFA6CE60FBF9341A3690E21385102") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A" #h"000102038A89889755545352A6A9A8AB" #h"06E5C364DED628A3F5E05E613E356F46") (:ecb-mode-test #h"9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"2D2C2F2EB3B0B1B6B6B7B8B9F2F5F4F7" #h"EAE63C0E62556DAC85D221099896355A") (:ecb-mode-test #h"B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2" #h"979695943536373856575051E09F9E9D" #h"1FED060E2C6FC93EE764403A889985A2") (:ecb-mode-test #h"C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"A4A5A6A7989B9A9DB1B0AFAE7A7D7C7F" #h"C25235C1A30FDEC1C7CB5C5737B2A588") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EA" #h"C1C0C3C2686B6A55A8A9AEAFEAE5E4E7" #h"796DBEF95147D4D30873AD8B7B92EFC0") (:ecb-mode-test #h"ECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"C1C0C3C2141716118C8D828364636261" #h"CBCF0FB34D98D0BD5C22CE37211A46BF") (:ecb-mode-test #h"00010203050607080A0B0C0D0F101112" #h"93929190CCCFCEC196979091E0FFFEFD" #h"94B44DA6466126CAFA7C7FD09063FC24") (:ecb-mode-test #h"14151617191A1B1C1E1F202123242526" #h"B4B5B6B7F9FAFBFC25241B1A6E69686B" #h"D78C5B5EBF9B4DBDA6AE506C5074C8FE") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A" #h"868784850704051AC7C6C1C08788898A" #h"6C27444C27204B043812CF8CF95F9769") (:ecb-mode-test #h"3C3D3E3F41424344464748494B4C4D4E" #h"F4F5F6F7AAA9A8AFFDFCF3F277707172" #h"BE94524EE5A2AA50BBA8B75F4C0AEBCF") (:ecb-mode-test #h"50515253555657585A5B5C5D5F606162" #h"D3D2D1D00605040BC3C2C5C43E010003" #h"A0AEAAE91BA9F31F51AEB3588CF3A39E") (:ecb-mode-test #h"64656667696A6B6C6E6F707173747576" #h"73727170424140476A6B74750D0A0B08" #h"275297779C28266EF9FE4C6A13C08488") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A" #h"C2C3C0C10A0908F754555253A1AEAFAC" #h"86523D92BB8672CB01CF4A77FD725882") (:ecb-mode-test #h"8C8D8E8F91929394969798999B9C9D9E" #h"6D6C6F6EF8FBFAFD82838C8DF8FFFEFD" #h"4B8327640E9F33322A04DD96FCBF9A36") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2" #h"F5F4F7F684878689A6A7A0A1D2CDCCCF" #h"CE52AF650D088CA559425223F4D32694") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C" #h"2D33EEF2C0430A8A9EBF45E809C40BB6" #h"DFF4945E0336DF4C1C56BC700EFF837F") (:ecb-mode-test #h"1E1F20212324252628292A2B2D2E2F30323334353738393A" #h"6AA375D1FA155A61FB72353E0A5A8756" #h"B6FDDEF4752765E347D5D2DC196D1252") (:ecb-mode-test #h"3C3D3E3F41424344464748494B4C4D4E5051525355565758" #h"BC3736518B9490DCB8ED60EB26758ED4" #h"D23684E3D963B3AFCF1A114ACA90CBD6") (:ecb-mode-test #h"5A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"AA214402B46CFFB9F761EC11263A311E" #h"3A7AC027753E2A18C2CEAB9E17C11FD0") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A8C8D8E8F91929394" #h"02AEA86E572EEAB66B2C3AF5E9A46FD6" #h"8F6786BD007528BA26603C1601CDD0D8") (:ecb-mode-test #h"969798999B9C9D9EA0A1A2A3A5A6A7A8AAABACADAFB0B1B2" #h"E2AEF6ACC33B965C4FA1F91C75FF6F36" #h"D17D073B01E71502E28B47AB551168B3") (:ecb-mode-test #h"B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6C8C9CACBCDCECFD0" #h"0659DF46427162B9434865DD9499F91D" #h"A469DA517119FAB95876F41D06D40FFA") (:ecb-mode-test #h"D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"49A44239C748FEB456F59C276A5658DF" #h"6091AA3B695C11F5C0B6AD26D3D862FF") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C" #h"66208F6E9D04525BDEDB2733B6A6BE37" #h"70F9E67F9F8DF1294131662DC6E69364") (:ecb-mode-test #h"0E0F10111314151618191A1B1D1E1F20222324252728292A" #h"3393F8DFC729C97F5480B950BC9666B0" #h"D154DCAFAD8B207FA5CBC95E9996B559") (:ecb-mode-test #h"2C2D2E2F31323334363738393B3C3D3E4041424345464748" #h"606834C8CE063F3234CF1145325DBD71" #h"4934D541E8B46FA339C805A7AEB9E5DA") (:ecb-mode-test #h"4A4B4C4D4F50515254555657595A5B5C5E5F606163646566" #h"FEC1C04F529BBD17D8CECFCC4718B17F" #h"62564C738F3EFE186E1A127A0C4D3C61") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A7C7D7E7F81828384" #h"32DF99B431ED5DC5ACF8CAF6DC6CE475" #h"07805AA043986EB23693E23BEF8F3438") (:ecb-mode-test #h"868788898B8C8D8E90919293959697989A9B9C9D9FA0A1A2" #h"7FDC2B746F3F665296943B83710D1F82" #h"DF0B4931038BADE848DEE3B4B85AA44B") (:ecb-mode-test #h"A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6B8B9BABBBDBEBFC0" #h"8FBA1510A3C5B87E2EAA3F7A91455CA2" #h"592D5FDED76582E4143C65099309477C") (:ecb-mode-test #h"C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE" #h"2C9B468B1C2EED92578D41B0716B223B" #h"C9B8D6545580D3DFBCDD09B954ED4E92") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFC" #h"0A2BBF0EFC6BC0034F8A03433FCA1B1A" #h"5DCCD5D6EB7C1B42ACB008201DF707A0") (:ecb-mode-test #h"FEFE01010304050608090A0B0D0E0F10121314151718191A" #h"25260E1F31F4104D387222E70632504B" #h"A2A91682FFEB6ED1D34340946829E6F9") (:ecb-mode-test #h"1C1D1E1F21222324262728292B2C2D2E3031323335363738" #h"C527D25A49F08A5228D338642AE65137" #h"E45D185B797000348D9267960A68435D") (:ecb-mode-test #h"3A3B3C3D3F40414244454647494A4B4C4E4F505153545556" #h"3B49FC081432F5890D0E3D87E884A69E" #h"45E060DAE5901CDA8089E10D4F4C246B") (:ecb-mode-test #h"58595A5B5D5E5F60626364656768696A6C6D6E6F71727374" #h"D173F9ED1E57597E166931DF2754A083" #h"F6951AFACC0079A369C71FDCFF45DF50") (:ecb-mode-test #h"767778797B7C7D7E80818283858687888A8B8C8D8F909192" #h"8C2B7CAFA5AFE7F13562DAEAE1ADEDE0" #h"9E95E00F351D5B3AC3D0E22E626DDAD6") (:ecb-mode-test #h"94959697999A9B9C9E9FA0A1A3A4A5A6A8A9AAABADAEAFB0" #h"AAF4EC8C1A815AEB826CAB741339532C" #h"9CB566FF26D92DAD083B51FDC18C173C") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBEC" #h"40BE8C5D9108E663F38F1A2395279ECF" #h"C9C82766176A9B228EB9A974A010B4FB") (:ecb-mode-test #h"2A2B2C2D2F30313234353637393A3B3C3E3F404143444546" #h"0C8AD9BC32D43E04716753AA4CFBE351" #h"D8E26AA02945881D5137F1C1E1386E88") (:ecb-mode-test #h"48494A4B4D4E4F50525354555758595A5C5D5E5F61626364" #h"1407B1D5F87D63357C8DC7EBBAEBBFEE" #h"C0E024CCD68FF5FFA4D139C355A77C55") (:ecb-mode-test #h"84858687898A8B8C8E8F90919394959698999A9B9D9E9FA0" #h"E62734D1AE3378C4549E939E6F123416" #h"0B18B3D16F491619DA338640DF391D43") (:ecb-mode-test #h"A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"5A752CFF2A176DB1A1DE77F2D2CDEE41" #h"DBE09AC8F66027BF20CB6E434F252EFC") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDC" #h"A9C8C3A4EABEDC80C64730DDD018CD88" #h"6D04E5E43C5B9CBE05FEB9606B6480FE") (:ecb-mode-test #h"1A1B1C1D1F20212224252627292A2B2C2E2F303133343536" #h"EE9B3DBBDB86180072130834D305999A" #h"DD1D6553B96BE526D9FEE0FBD7176866") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A4C4D4E4F51525354" #h"A7FA8C3586B8EBDE7568EAD6F634A879" #h"0260CA7E3F979FD015B0DD4690E16D2A") (:ecb-mode-test #h"929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"37E0F4A87F127D45AC936FE7AD88C10A" #h"9893734DE10EDCC8A67C3B110B8B8CC6") (:ecb-mode-test #h"464748494B4C4D4E50515253555657585A5B5C5D5F606162" #h"3F77D8B5D92BAC148E4E46F697A535C5" #h"93B30B750516B2D18808D710C2EE84EF") (:ecb-mode-test #h"828384858788898A8C8D8E8F91929394969798999B9C9D9E" #h"D25EBB686C40F7E2C4DA1014936571CA" #h"16F65FA47BE3CB5E6DFE7C6C37016C0E") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBC" #h"4F1C769D1E5B0552C7ECA84DEA26A549" #h"F3847210D5391E2360608E5ACB560581") (:ecb-mode-test #h"BEBFC0C1C3C4C5C6C8C9CACBCDCECFD0D2D3D4D5D7D8D9DA" #h"8548E2F882D7584D0FAFC54372B6633A" #h"8754462CD223366D0753913E6AF2643D") (:ecb-mode-test #h"DCDDDEDFE1E2E3E4E6E7E8E9EBECEDEEF0F1F2F3F5F6F7F8" #h"87D7A336CB476F177CD2A51AF2A62CDF" #h"1EA20617468D1B806A1FD58145462017") (:ecb-mode-test #h"FAFBFCFDFE01000204050607090A0B0C0E0F101113141516" #h"03B1FEAC668C4E485C1065DFC22B44EE" #h"3B155D927355D737C6BE9DDA60136E2E") (:ecb-mode-test #h"18191A1B1D1E1F20222324252728292A2C2D2E2F31323334" #h"BDA15E66819FA72D653A6866AA287962" #h"26144F7B66DAA91B6333DBD3850502B3") (:ecb-mode-test #h"363738393B3C3D3E40414243454647484A4B4C4D4F505152" #h"4D0C7A0D2505B80BF8B62CEB12467F0A" #h"E4F9A4AB52CED8134C649BF319EBCC90") (:ecb-mode-test #h"54555657595A5B5C5E5F60616364656668696A6B6D6E6F70" #h"626D34C9429B37211330986466B94E5F" #h"B9DDD29AC6128A6CAB121E34A4C62B36") (:ecb-mode-test #h"727374757778797A7C7D7E7F81828384868788898B8C8D8E" #h"333C3E6BF00656B088A17E5FF0E7F60A" #h"6FCDDAD898F2CE4EFF51294F5EAAF5C9") (:ecb-mode-test #h"90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABAC" #h"687ED0CDC0D2A2BC8C466D05EF9D2891" #h"C9A6FE2BF4028080BEA6F7FC417BD7E3") (:ecb-mode-test #h"AEAFB0B1B3B4B5B6B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CA" #h"487830E78CC56C1693E64B2A6660C7B6" #h"6A2026846D8609D60F298A9C0673127F") (:ecb-mode-test #h"CCCDCECFD1D2D3D4D6D7D8D9DBDCDDDEE0E1E2E3E5E6E7E8" #h"7A48D6B7B52B29392AA2072A32B66160" #h"2CB25C005E26EFEA44336C4C97A4240B") (:ecb-mode-test #h"EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506" #h"907320E64C8C5314D10F8D7A11C8618D" #h"496967AB8680DDD73D09A0E4C7DCC8AA") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A1C1D1E1F21222324" #h"B561F2CA2D6E65A4A98341F3ED9FF533" #h"D5AF94DE93487D1F3A8C577CB84A66A4") (:ecb-mode-test #h"262728292B2C2D2E30313233353637383A3B3C3D3F404142" #h"DF769380D212792D026F049E2E3E48EF" #h"84BDAC569CAE2828705F267CC8376E90") (:ecb-mode-test #h"44454647494A4B4C4E4F50515354555658595A5B5D5E5F60" #h"79F374BC445BDABF8FCCB8843D6054C6" #h"F7401DDA5AD5AB712B7EB5D10C6F99B6") (:ecb-mode-test #h"626364656768696A6C6D6E6F71727374767778797B7C7D7E" #h"4E02F1242FA56B05C68DBAE8FE44C9D6" #h"1C9D54318539EBD4C3B5B7E37BF119F0") (:ecb-mode-test #h"80818283858687888A8B8C8D8F90919294959697999A9B9C" #h"CF73C93CBFF57AC635A6F4AD2A4A1545" #h"ACA572D65FB2764CFFD4A6ECA090EA0D") (:ecb-mode-test #h"9E9FA0A1A3A4A5A6A8A9AAABADAEAFB0B2B3B4B5B7B8B9BA" #h"9923548E2875750725B886566784C625" #h"36D9C627B8C2A886A10CCB36EAE3DFBB") (:ecb-mode-test #h"BCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCED0D1D2D3D5D6D7D8" #h"4888336B723A022C9545320F836A4207" #h"010EDBF5981E143A81D646E597A4A568") (:ecb-mode-test #h"DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"F84D9A5561B0608B1160DEE000C41BA8" #h"8DB44D538DC20CC2F40F3067FD298E60") (:ecb-mode-test #h"F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314" #h"C23192A0418E30A19B45AE3E3625BF22" #h"930EB53BC71E6AC4B82972BDCD5AAFB3") (:ecb-mode-test #h"161718191B1C1D1E20212223252627282A2B2C2D2F303132" #h"B84E0690B28B0025381AD82A15E501A7" #h"6C42A81EDCBC9517CCD89C30C95597B4") (:ecb-mode-test #h"34353637393A3B3C3E3F40414344454648494A4B4D4E4F50" #h"ACEF5E5C108876C4F06269F865B8F0B0" #h"DA389847AD06DF19D76EE119C71E1DD3") (:ecb-mode-test #h"525354555758595A5C5D5E5F61626364666768696B6C6D6E" #h"0F1B3603E0F5DDEA4548246153A5E064" #h"E018FDAE13D3118F9A5D1A647A3F0462") (:ecb-mode-test #h"70717273757677787A7B7C7D7F80818284858687898A8B8C" #h"FBB63893450D42B58C6D88CD3C1809E3" #h"2AA65DB36264239D3846180FABDFAD20") (:ecb-mode-test #h"8E8F90919394959698999A9B9D9E9FA0A2A3A4A5A7A8A9AA" #h"4BEF736DF150259DAE0C91354E8A5F92" #h"1472163E9A4F780F1CEB44B07ECF4FDB") (:ecb-mode-test #h"ACADAEAFB1B2B3B4B6B7B8B9BBBCBDBEC0C1C2C3C5C6C7C8" #h"7D2D46242056EF13D3C3FC93C128F4C7" #h"C8273FDC8F3A9F72E91097614B62397C") (:ecb-mode-test #h"CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"E9C1BA2DF415657A256EDB33934680FD" #h"66C8427DCD733AAF7B3470CB7D976E3F") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304" #h"E23EE277B0AA0A1DFB81F7527C3514F1" #h"146131CB17F1424D4F8DA91E6F80C1D0") (:ecb-mode-test #h"060708090B0C0D0E10111213151617181A1B1C1D1F202122" #h"3E7445B0B63CAAF75E4A911E12106B4C" #h"2610D0AD83659081AE085266A88770DC") (:ecb-mode-test #h"24252627292A2B2C2E2F30313334353638393A3B3D3E3F40" #h"767774752023222544455A5BE6E1E0E3" #h"38A2B5A974B0575C5D733917FB0D4570") (:ecb-mode-test #h"424344454748494A4C4D4E4F51525354565758595B5C5D5E" #h"72737475717E7F7CE9E8EBEA696A6B6C" #h"E21D401EBC60DE20D6C486E4F39A588B") (:ecb-mode-test #h"60616263656667686A6B6C6D6F70717274757677797A7B7C" #h"DFDEDDDC25262728C9C8CFCEF1EEEFEC" #h"E51D5F88C670B079C0CA1F0C2C4405A2") (:ecb-mode-test #h"7E7F80818384858688898A8B8D8E8F90929394959798999A" #h"FFFE0100707776755F5E5D5C7675746B" #h"246A94788A642FB3D1B823C8762380C8") (:ecb-mode-test #h"9C9D9E9FA1A2A3A4A6A7A8A9ABACADAEB0B1B2B3B5B6B7B8" #h"E0E1E2E3424140479F9E9190292E2F2C" #h"B80C391C5C41A4C3B30C68E0E3D7550F") (:ecb-mode-test #h"BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"2120272690EFEEED3B3A39384E4D4C4B" #h"B77C4754FC64EB9A1154A9AF0BB1F21C") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4" #h"ECEDEEEF5350516EA1A0A7A6A3ACADAE" #h"FB554DE520D159A06BF219FC7F34A02F") (:ecb-mode-test #h"F6F7F8F9FBFCFDFE00010203050607080A0B0C0D0F101112" #h"32333C3D25222320E9E8EBEACECDCCC3" #h"A89FBA152D76B4927BEED160DDB76C57") (:ecb-mode-test #h"14151617191A1B1C1E1F20212324252628292A2B2D2E2F30" #h"40414243626160678A8BB4B511161714" #h"5676EAB4A98D2E8473B3F3D46424247C") (:ecb-mode-test #h"323334353738393A3C3D3E3F41424344464748494B4C4D4E" #h"94959293F5FAFBF81F1E1D1C7C7F7E79" #h"4E8F068BD7EDE52A639036EC86C33568") (:ecb-mode-test #h"50515253555657585A5B5C5D5F60616264656667696A6B6C" #h"BEBFBCBD191A1B14CFCEC9C8546B6A69" #h"F0193C4D7AFF1791EE4C07EB4A1824FC") (:ecb-mode-test #h"6E6F70717374757678797A7B7D7E7F80828384858788898A" #h"2C2D3233898E8F8CBBBAB9B8333031CE" #h"AC8686EECA9BA761AFE82D67B928C33F") (:ecb-mode-test #h"8C8D8E8F91929394969798999B9C9D9EA0A1A2A3A5A6A7A8" #h"84858687BFBCBDBA37363938FDFAFBF8" #h"5FAF8573E33B145B6A369CD3606AB2C9") (:ecb-mode-test #h"AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"828384857669686B909192930B08090E" #h"31587E9944AB1C16B844ECAD0DF2E7DA") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4" #h"BEBFBCBD9695948B707176779E919093" #h"D017FECD91148ABA37F6F3068AA67D8A") (:ecb-mode-test #h"E6E7E8E9EBECEDEEF0F1F2F3F5F6F7F8FAFBFCFDFE010002" #h"8B8A85846067666521202322D0D3D2DD" #h"788EF2F021A73CBA2794B616078A8500") (:ecb-mode-test #h"04050607090A0B0C0E0F10111314151618191A1B1D1E1F20" #h"76777475F1F2F3F4F8F9E6E777707172" #h"5D1EF20DCED6BCBC12131AC7C54788AA") (:ecb-mode-test #h"222324252728292A2C2D2E2F31323334363738393B3C3D3E" #h"A4A5A2A34F404142B4B5B6B727242522" #h"B3C8CF961FAF9EA05FDDE6D1E4D8F663") (:ecb-mode-test #h"40414243454647484A4B4C4D4F50515254555657595A5B5C" #h"94959697E1E2E3EC16171011839C9D9E" #h"143075C70605861C7FAC6526199E459F") (:ecb-mode-test #h"5E5F60616364656668696A6B6D6E6F70727374757778797A" #h"03023D3C06010003DEDFDCDDFFFCFDE2" #h"A5AE12EADE9A87268D898BFC8FC0252A") (:ecb-mode-test #h"7C7D7E7F81828384868788898B8C8D8E9091929395969798" #h"10111213F1F2F3F4CECFC0C1DBDCDDDE" #h"0924F7CF2E877A4819F5244A360DCEA9") (:ecb-mode-test #h"9A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"67666160724D4C4F1D1C1F1E73707176" #h"3D9E9635AFCC3E291CC7AB3F27D1C99A") (:ecb-mode-test #h"B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4" #h"E6E7E4E5A8ABAAD584858283909F9E9D" #h"9D80FEEBF87510E2B8FB98BB54FD788C") (:ecb-mode-test #h"D6D7D8D9DBDCDDDEE0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2" #h"71707F7E565150537D7C7F7E6162636C" #h"5F9D1A082A1A37985F174002ECA01309") (:ecb-mode-test #h"F4F5F6F7F9FAFBFCFEFE01010304050608090A0B0D0E0F10" #h"64656667212223245555AAAA03040506" #h"A390EBB1D1403930184A44B4876646E4") (:ecb-mode-test #h"121314151718191A1C1D1E1F21222324262728292B2C2D2E" #h"9E9F9899ABA4A5A6CFCECDCC2B28292E" #h"700FE918981C3195BB6C4BCB46B74E29") (:ecb-mode-test #h"30313233353637383A3B3C3D3F40414244454647494A4B4C" #h"C7C6C5C4D1D2D3DC626364653A454447" #h"907984406F7BF2D17FB1EB15B673D747") (:ecb-mode-test #h"4E4F50515354555658595A5B5D5E5F60626364656768696A" #h"F6F7E8E9E0E7E6E51D1C1F1E5B585966" #h"C32A956DCFC875C2AC7C7CC8B8CC26E1") (:ecb-mode-test #h"6C6D6E6F71727374767778797B7C7D7E8081828385868788" #h"BCBDBEBF5D5E5F5868696667F4F3F2F1" #h"02646E2EBFA9B820CF8424E9B9B6EB51") (:ecb-mode-test #h"8A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6" #h"40414647B0AFAEAD9B9A99989B98999E" #h"621FDA3A5BBD54C6D3C685816BD4EAD8") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4" #h"69686B6A0201001F0F0E0908B4BBBAB9" #h"D4E216040426DFAF18B152469BC5AC2F") (:ecb-mode-test #h"C6C7C8C9CBCCCDCED0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2" #h"C7C6C9C8D8DFDEDD5A5B5859BEBDBCB3" #h"9D0635B9D33B6CDBD71F5D246EA17CC8") (:ecb-mode-test #h"E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6F8F9FAFBFDFEFE00" #h"DEDFDCDD787B7A7DFFFEE1E0B2B5B4B7" #h"10ABAD1BD9BAE5448808765583A2CC1A") (:ecb-mode-test #h"020304050708090A0C0D0E0F11121314161718191B1C1D1E" #h"4D4C4B4A606F6E6DD0D1D2D3FBF8F9FE" #h"6891889E16544E355FF65A793C39C9A8") (:ecb-mode-test #h"20212223252627282A2B2C2D2F30313234353637393A3B3C" #h"B7B6B5B4D7D4D5DAE5E4E3E2E1FEFFFC" #h"CC735582E68072C163CD9DDF46B91279") (:ecb-mode-test #h"3E3F40414344454648494A4B4D4E4F50525354555758595A" #h"CECFB0B1F7F0F1F2AEAFACAD3E3D3C23" #h"C5C68B9AEEB7F878DF578EFA562F9574") (:ecb-mode-test #h"5C5D5E5F61626364666768696B6C6D6E7071727375767778" #h"CACBC8C9CDCECFC812131C1D494E4F4C" #h"5F4764395A667A47D73452955D0D2CE8") (:ecb-mode-test #h"7A7B7C7D7F80818284858687898A8B8C8E8F909193949596" #h"9D9C9B9AD22D2C2FB1B0B3B20C0F0E09" #h"701448331F66106CEFDDF1EB8267C357") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4" #h"7A7B787964676659959493924F404142" #h"CB3EE56D2E14B4E1941666F13379D657") (:ecb-mode-test #h"B6B7B8B9BBBCBDBEC0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2" #h"AAABA4A5CEC9C8CB1F1E1D1CABA8A9A6" #h"9FE16EFD18AB6E1981191851FEDB0764") (:ecb-mode-test #h"D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6E8E9EAEBEDEEEFF0" #h"93929190282B2A2DC4C5FAFB92959497" #h"3DC9BA24E1B223589B147ADCEB4C8E48") (:ecb-mode-test #h"F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E" #h"EFEEE9E8DED1D0D339383B3A888B8A8D" #h"1C333032682E7D4DE5E5AFC05C3E483C") (:ecb-mode-test #h"10111213151617181A1B1C1D1F20212224252627292A2B2C" #h"7F7E7D7CA2A1A0AF78797E7F112E2F2C" #h"D593CC99A95AFEF7E92038E05A59D00A") (:ecb-mode-test #h"2E2F30313334353638393A3B3D3E3F40424344454748494A" #h"84859A9B2B2C2D2E868784852625245B" #h"51E7F96F53B4353923452C222134E1EC") (:ecb-mode-test #h"4C4D4E4F51525354565758595B5C5D5E6061626365666768" #h"B0B1B2B3070405026869666710171615" #h"4075B357A1A2B473400C3B25F32F81A4") (:ecb-mode-test #h"6A6B6C6D6F70717274757677797A7B7C7E7F808183848586" #h"ACADAAABBDA2A3A00D0C0F0E595A5B5C" #h"302E341A3EBCD74F0D55F61714570284") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4" #h"121310115655544B5253545569666764" #h"57ABDD8231280DA01C5042B78CF76522") (:ecb-mode-test #h"A6A7A8A9ABACADAEB0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2" #h"DEDFD0D166616063EAEBE8E94142434C" #h"17F9EA7EEA17AC1ADF0E190FEF799E92") (:ecb-mode-test #h"C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6D8D9DADBDDDEDFE0" #h"DBDAD9D81417161166677879E0E7E6E5" #h"2E1BDD563DD87EE5C338DD6D098D0A7A") (:ecb-mode-test #h"E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"6A6B6C6DE0EFEEED2B2A2928C0C3C2C5" #h"EB869996E6F8BFB2BFDD9E0C4504DBB2") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C" #h"B1B0B3B21714151A1A1B1C1D5649484B" #h"C2E01549E9DECF317468B3E018C61BA8") (:ecb-mode-test #h"1E1F20212324252628292A2B2D2E2F30323334353738393A" #h"39380706A3A4A5A6C4C5C6C77271706F" #h"8DA875D033C01DD463B244A1770F4A22") (:ecb-mode-test #h"3C3D3E3F41424344464748494B4C4D4E5051525355565758" #h"5C5D5E5F1013121539383736E2E5E4E7" #h"8BA0DCF3A186844F026D022F8839D696") (:ecb-mode-test #h"5A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"43424544EAD5D4D72E2F2C2D64676661" #h"E9691FF9A6CC6970E51670A0FD5B88C1") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A8C8D8E8F91929394" #h"55545756989B9A65F8F9FEFF18171615" #h"F2BAEC06FAEED30F88EE63BA081A6E5B") (:ecb-mode-test #h"969798999B9C9D9EA0A1A2A3A5A6A7A8AAABACADAFB0B1B2" #h"05040B0A525554573C3D3E3F4A494847" #h"9C39D4C459AE5753394D6094ADC21E78") (:ecb-mode-test #h"B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6C8C9CACBCDCECFD0" #h"14151617595A5B5C8584FBFA8E89888B" #h"6345B532A11904502EA43BA99C6BD2B2") (:ecb-mode-test #h"D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"7C7D7A7BFDF2F3F029282B2A51525354" #h"5FFAE3061A95172E4070CEDCE1E428C8") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C" #h"38393A3B1E1D1C1341404746C23D3C3E" #h"0A4566BE4CDF9ADCE5DEC865B5AB34CD") (:ecb-mode-test #h"0E0F10111314151618191A1B1D1E1F20222324252728292A" #h"8D8C939240474645818083827C7F7E41" #h"CA17FCCE79B7404F2559B22928F126FB") (:ecb-mode-test #h"2C2D2E2F31323334363738393B3C3D3E4041424345464748" #h"3B3A39381A19181F32333C3D45424340" #h"97CA39B849ED73A6470A97C821D82F58") (:ecb-mode-test #h"4A4B4C4D4F50515254555657595A5B5C5E5F606163646566" #h"F0F1F6F738272625828380817F7C7D7A" #h"8198CB06BC684C6D3E9B7989428DCF7A") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A7C7D7E7F81828384" #h"89888B8A0407061966676061141B1A19" #h"F53C464C705EE0F28D9A4C59374928BD") (:ecb-mode-test #h"868788898B8C8D8E90919293959697989A9B9C9D9FA0A1A2" #h"D3D2DDDCAAADACAF9C9D9E9FE8EBEAE5" #h"9ADB3D4CCA559BB98C3E2ED73DBF1154") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526" #h"834EADFCCAC7E1B30664B1ABA44815AB" #h"1946DABF6A03A2A2C3D0B05080AED6FC") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E" #h"D9DC4DBA3021B05D67C0518F72B62BF1" #h"5ED301D747D3CC715445EBDEC62F2FB4") (:ecb-mode-test #h"50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"A291D86301A4A739F7392173AA3C604C" #h"6585C8F43D13A6BEAB6419FC5935B9D0") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E" #h"4264B2696498DE4DF79788A9F83E9390" #h"2A5B56A596680FCC0E05F5E0F151ECAE") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"EE9932B3721804D5A83EF5949245B6F6" #h"F5D6FF414FD2C6181494D20C37F2B8C4") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"E6248F55C5FDCBCA9CBBB01C88A2EA77" #h"85399C01F59FFFB5204F19F8482F00B8") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516" #h"B8358E41B9DFF65FD461D55A99266247" #h"92097B4C88A041DDF98144BC8D22E8E7") (:ecb-mode-test #h"18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E" #h"F0E2D72260AF58E21E015AB3A4C0D906" #h"89BD5B73B356AB412AEF9F76CEA2D65C") (:ecb-mode-test #h"40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566" #h"475B8B823CE8893DB3C44A9F2A379FF7" #h"2536969093C55FF9454692F2FAC2F530") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E" #h"688F5281945812862F5F3076CF80412F" #h"07FC76A872843F3F6E0081EE9396D637") (:ecb-mode-test #h"90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"08D1D2BC750AF553365D35E75AFACEAA" #h"E38BA8EC2AA741358DCC93E8F141C491") (:ecb-mode-test #h"B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE" #h"8707121F47CC3EFCECA5F9A8474950A1" #h"D028EE23E4A89075D0B03E868D7D3A42") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506" #h"E51AA0B135DBA566939C3B6359A980C5" #h"8CD9423DFC459E547155C5D1D522E540") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E" #h"069A007FC76A459F98BAF917FEDF9521" #h"080E9517EB1677719ACF728086040AE3") (:ecb-mode-test #h"30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556" #h"726165C1723FBCF6C026D7D00B091027" #h"7C1700211A3991FC0ECDED0AB3E576B0") (:ecb-mode-test #h"58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E" #h"D7C544DE91D55CFCDE1F84CA382200CE" #h"DABCBCC855839251DB51E224FBE87435") (:ecb-mode-test #h"80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6" #h"FED3C9A161B9B5B2BD611B41DC9DA357" #h"68D56FAD0406947A4DD27A7448C10F1D") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE" #h"4F634CDC6551043409F30B635832CF82" #h"DA9A11479844D1FFEE24BBF3719A9925") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"109CE98DB0DFB36734D9F3394711B4E6" #h"5E4BA572F8D23E738DA9B05BA24B8D81") (:ecb-mode-test #h"70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596" #h"4EA6DFABA2D8A02FFDFFA89835987242" #h"A115A2065D667E3F0B883837A6E903F8") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"5AE094F54AF58E6E3CDBF976DAC6D9EF" #h"3E9E90DC33EAC2437D86AD30B137E66E") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"764D8E8E0F29926DBE5122E66354FDBE" #h"01CE82D8FBCDAE824CB3C48E495C3692") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E" #h"3F0418F888CDF29A982BF6B75410D6A9" #h"0C9CFF163CE936FAAF083CFD3DEA3117") (:ecb-mode-test #h"10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536" #h"E4A3E7CB12CDD56AA4A75197A9530220" #h"5131BA9BD48F2BBA85560680DF504B52") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E" #h"211677684AAC1EC1A160F44C4EBF3F26" #h"9DC503BBF09823AEC8A977A5AD26CCB2") (:ecb-mode-test #h"60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586" #h"D21E439FF749AC8F18D6D4B105E03895" #h"9A6DB0C0862E506A9E397225884041D7") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"D9F6FF44646C4725BD4C0103FF5552A7" #h"430BF9570804185E1AB6365FC6A6860C") (:ecb-mode-test #h"B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"0B1256C2A00B976250CFC5B0C37ED382" #h"3525EBC02F4886E6A5A3762813E8CE8A") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"B056447FFC6DC4523A36CC2E972A3A79" #h"07FA265C763779CCE224C7BAD671027B") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526" #h"5E25CA78F0DE55802524D38DA3FE4456" #h"E8B72B4E8BE243438C9FFF1F0E205872") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E" #h"A5BCF4728FA5EAAD8567C0DC24675F83" #h"109D4F999A0E11ACE1F05E6B22CBCB50") (:ecb-mode-test #h"50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"814E59F97ED84646B78B2CA022E9CA43" #h"45A5E8D4C3ED58403FF08D68A0CC4029") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E" #h"15478BEEC58F4775C7A7F5D4395514D7" #h"196865964DB3D417B6BD4D586BCB7634") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"253548FFCA461C67C8CBC78CD59F4756" #h"60436AD45AC7D30D99195F815D98D2AE") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"FD7AD8D73B9B0F8CC41600640F503D65" #h"BB07A23F0B61014B197620C185E2CD75") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516" #h"06199DE52C6CBF8AF954CD65830BCD56" #h"5BC0B2850129C854423AFF0751FE343B") (:ecb-mode-test #h"18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E" #h"F17C4FFE48E44C61BD891E257E725794" #h"7541A78F96738E6417D2A24BD2BECA40") (:ecb-mode-test #h"40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566" #h"9A5B4A402A3E8A59BE6BF5CD8154F029" #h"B0A303054412882E464591F1546C5B9E") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E" #h"79BD40B91A7E07DC939D441782AE6B17" #h"778C06D8A355EEEE214FCEA14B4E0EEF") (:ecb-mode-test #h"90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"D8CEAAF8976E5FBE1012D8C84F323799" #h"09614206D15CBACE63227D06DB6BEEBB") (:ecb-mode-test #h"B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE" #h"3316E2751E2E388B083DA23DD6AC3FBE" #h"41B97FB20E427A9FDBBB358D9262255D") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506" #h"8B7CFBE37DE7DCA793521819242C5816" #h"C1940F703D845F957652C2D64ABD7ADF") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E" #h"F23F033C0EEBF8EC55752662FD58CE68" #h"D2D44FCDAE5332343366DB297EFCF21B") (:ecb-mode-test #h"30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556" #h"59EB34F6C8BDBACC5FC6AD73A59A1301" #h"EA8196B79DBE167B6AA9896E287EED2B") (:ecb-mode-test #h"58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E" #h"DCDE8B6BD5CF7CC22D9505E3CE81261A" #h"D6B0B0C4BA6C7DBE5ED467A1E3F06C2D") (:ecb-mode-test #h"80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6" #h"E33CF7E524FED781E7042FF9F4B35DC7" #h"EC51EB295250C22C2FB01816FB72BCAE") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE" #h"27963C8FACDF73062867D164DF6D064C" #h"ADED6630A07CE9C7408A155D3BD0D36F") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"77B1CE386B551B995F2F2A1DA994EEF8" #h"697C9245B9937F32F5D1C82319F0363A") (:ecb-mode-test #h"F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314161718191B1C1D1E" #h"F083388B013679EFCF0BB9B15D52AE5C" #h"AAD5AD50C6262AAEC30541A1B7B5B19C") (:ecb-mode-test #h"20212223252627282A2B2C2D2F30313234353637393A3B3C3E3F404143444546" #h"C5009E0DAB55DB0ABDB636F2600290C8" #h"7D34B893855341EC625BD6875AC18C0D") (:ecb-mode-test #h"48494A4B4D4E4F50525354555758595A5C5D5E5F61626364666768696B6C6D6E" #h"7804881E26CD532D8514D3683F00F1B9" #h"7EF05105440F83862F5D780E88F02B41") (:ecb-mode-test #h"70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596" #h"46CDDCD73D1EB53E675CA012870A92A3" #h"C377C06403382061AF2C9C93A8E70DF6") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"A9FB44062BB07FE130A8E8299EACB1AB" #h"1DBDB3FFDC052DACC83318853ABC6DE5") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"2B6FF8D7A5CC3A28A22D5A6F221AF26B" #h"69A6EAB00432517D0BF483C91C0963C7") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E" #h"1A9527C29B8ADD4B0E3E656DBB2AF8B4" #h"0797F41DC217C80446E1D514BD6AB197") (:ecb-mode-test #h"10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536" #h"7F99CF2C75244DF015EB4B0C1050AEAE" #h"9DFD76575902A637C01343C58E011A03") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E" #h"E84FF85B0D9454071909C1381646C4ED" #h"ACF4328AE78F34B9FA9B459747CC2658") (:ecb-mode-test #h"60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586" #h"89AFD40F99521280D5399B12404F6DB4" #h"B0479AEA12BAC4FE2384CF98995150C6") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"A09EF32DBC5119A35AB7FA38656F0329" #h"9DD52789EFE3FFB99F33B3DA5030109A") (:ecb-mode-test #h"B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"61773457F068C376C7829B93E696E716" #h"ABBB755E4621EF8F1214C19F649FB9FD") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"A34F0CAE726CCE41DD498747D891B967" #h"DA27FB8174357BCE2BED0E7354F380F9") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526" #h"856F59496C7388EE2D2B1A27B7697847" #h"C59A0663F0993838F6E5856593BDC5EF") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E" #h"CB090C593EF7720BD95908FB93B49DF4" #h"ED60B264B5213E831607A99C0CE5E57E") (:ecb-mode-test #h"50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"A0AC75CD2F1923D460FC4D457AD95BAF" #h"E50548746846F3EB77B8C520640884ED") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E" #h"2A2B282974777689E8E9EEEF525D5C5F" #h"28282CC7D21D6A2923641E52D188EF0C") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"909192939390919E0F0E09089788898A" #h"0DFA5B02ABB18E5A815305216D6D4F8E") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"777675748D8E8F907170777649464744" #h"7359635C0EECEFE31D673395FB46FB99") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516" #h"717073720605040B2D2C2B2A05FAFBF9" #h"73C679F7D5AEF2745C9737BB4C47FB36") (:ecb-mode-test #h"18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E" #h"64656667FEFDFCC31B1A1D1CA5AAABA8" #h"B192BD472A4D2EAFB786E97458967626") (:ecb-mode-test #h"40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566" #h"DBDAD9D86A696867B5B4B3B2C8D7D6D5" #h"0EC327F6C8A2B147598CA3FDE61DC6A4") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E" #h"5C5D5E5FE3E0E1FE31303736333C3D3E" #h"FC418EB3C41B859B38D4B6F646629729") (:ecb-mode-test #h"90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"545556574B48494673727574546B6A69" #h"30249E5AC282B1C981EA64B609F3A154") (:ecb-mode-test #h"B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE" #h"ECEDEEEFC6C5C4BB56575051F5FAFBF8" #h"5E6E08646D12150776BB43C2D78A9703") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506" #h"464744452724252AC9C8CFCED2CDCCCF" #h"FAEB3D5DE652CD3447DCEB343F30394A") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E" #h"E6E7E4E54142435C878681801C131211" #h"A8E88706823F6993EF80D05C1C7B2CF0") (:ecb-mode-test #h"30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556" #h"72737071CFCCCDC2F9F8FFFE710E0F0C" #h"8CED86677E6E00A1A1B15968F2D3CCE6") (:ecb-mode-test #h"58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E" #h"505152537370714EC3C2C5C4010E0F0C" #h"9FC7C23858BE03BDEBB84E90DB6786A9") (:ecb-mode-test #h"80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6" #h"A8A9AAAB5C5F5E51AEAFA8A93D222320" #h"B4FBD65B33F70D8CF7F1111AC4649C36") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE" #h"DEDFDCDDF6F5F4EB10111617FEF1F0F3" #h"C5C32D5ED03C4B53CC8C1BD0EF0DBBF6") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"BDBCBFBE5E5D5C530B0A0D0CFAC5C4C7" #h"D1A7F03B773E5C212464B63709C6A891") (:ecb-mode-test #h"F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314161718191B1C1D1E" #h"8A8B8889050606F8F4F5F2F3636C6D6E" #h"6B7161D8745947AC6950438EA138D028") (:ecb-mode-test #h"20212223252627282A2B2C2D2F30313234353637393A3B3C3E3F404143444546" #h"A6A7A4A54D4E4F40B2B3B4B539262724" #h"FD47A9F7E366EE7A09BC508B00460661") (:ecb-mode-test #h"48494A4B4D4E4F50525354555758595A5C5D5E5F61626364666768696B6C6D6E" #h"9C9D9E9FE9EAEBF40E0F08099B949596" #h"00D40B003DC3A0D9310B659B98C7E416") (:ecb-mode-test #h"70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596" #h"2D2C2F2E1013121DCCCDCACBED121310" #h"EEA4C79DCC8E2BDA691F20AC48BE0717") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"F4F5F6F7EDEEEFD0EAEBECEDF7F8F9FA" #h"E78F43B11C204403E5751F89D05A2509") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"3D3C3F3E282B2A2573727574150A0B08" #h"D0F0E3D1F1244BB979931E38DD1786EF") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E" #h"B6B7B4B5F8FBFAE5B4B5B2B3A0AFAEAD" #h"042E639DC4E1E4DDE7B75B749EA6F765") (:ecb-mode-test #h"10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536" #h"B7B6B5B4989B9A95878681809BA4A5A6" #h"BC032FDD0EFE29503A980A7D07AB46A8") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E" #h"A8A9AAABE5E6E798E9E8EFEE4748494A" #h"0C93AC949C0DA6446EFFB86183B6C910") (:ecb-mode-test #h"60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586" #h"ECEDEEEFD9DADBD4B9B8BFBE657A7B78" #h"E0D343E14DA75C917B4A5CEC4810D7C2") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"7F7E7D7C696A6B74CACBCCCD929D9C9F" #h"0EAFB821748408279B937B626792E619") (:ecb-mode-test #h"B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"08090A0B0605040BFFFEF9F8B9C6C7C4" #h"FA1AC6E02D23B106A1FEF18B274A553F") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"08090A0BF1F2F3CCFCFDFAFB68676665" #h"0DADFE019CD12368075507DF33C1A1E9") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526" #h"CACBC8C93A393837050403020D121310" #h"3A0879B414465D9FFBAF86B33A63A1B9") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E" #h"E9E8EBEA8281809F8F8E8988343B3A39" #h"62199FADC76D0BE1805D3BA0B7D914BF") (:ecb-mode-test #h"50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"515053524645444BD0D1D6D7340B0A09" #h"1B06D6C5D333E742730130CF78E719B4") (:ecb-mode-test #h"78797A7B7D7E7F80828384858788898A8C8D8E8F91929394969798999B9C9D9E" #h"42434041ECEFEE1193929594C6C9C8CB" #h"F1F848824C32E9DCDCBF21580F069329") (:ecb-mode-test #h"A0A1A2A3A5A6A7A8AAABACADAFB0B1B2B4B5B6B7B9BABBBCBEBFC0C1C3C4C5C6" #h"EFEEEDECC2C1C0CF76777071455A5B58" #h"1A09050CBD684F784D8E965E0782F28A") (:ecb-mode-test #h"C8C9CACBCDCECFD0D2D3D4D5D7D8D9DADCDDDEDFE1E2E3E4E6E7E8E9EBECEDEE" #h"5F5E5D5C3F3C3D221D1C1B1A19161714" #h"79C2969E7DED2BA7D088F3F320692360") (:ecb-mode-test #h"F0F1F2F3F5F6F7F8FAFBFCFDFE01000204050607090A0B0C0E0F101113141516" #h"000102034142434C1C1D1A1B8D727371" #h"091A658A2F7444C16ACCB669450C7B63") (:ecb-mode-test #h"18191A1B1D1E1F20222324252728292A2C2D2E2F31323334363738393B3C3D3E" #h"8E8F8C8DB1B2B38C56575051050A0B08" #h"97C1E3A72CCA65FA977D5ED0E8A7BBFC") (:ecb-mode-test #h"40414243454647484A4B4C4D4F50515254555657595A5B5C5E5F606163646566" #h"A7A6A5A4E8EBEAE57F7E7978CAD5D4D7" #h"70C430C6DB9A17828937305A2DF91A2A") (:ecb-mode-test #h"68696A6B6D6E6F70727374757778797A7C7D7E7F81828384868788898B8C8D8E" #h"8A8B888994979689454443429F909192" #h"629553457FBE2479098571C7C903FDE8") (:ecb-mode-test #h"90919293959697989A9B9C9D9FA0A1A2A4A5A6A7A9AAABACAEAFB0B1B3B4B5B6" #h"8C8D8E8FE0E3E2ED45444342F1CECFCC" #h"A25B25A61F612669E7D91265C7D476BA") (:ecb-mode-test #h"B8B9BABBBDBEBFC0C2C3C4C5C7C8C9CACCCDCECFD1D2D3D4D6D7D8D9DBDCDDDE" #h"FFFEFDFC4C4F4E31D8D9DEDFB6B9B8BB" #h"EB7E4E49B8AE0F024570DDA293254FED") (:ecb-mode-test #h"E0E1E2E3E5E6E7E8EAEBECEDEFF0F1F2F4F5F6F7F9FAFBFCFEFE010103040506" #h"FDFCFFFECCCFCEC12F2E29286679787B" #h"38FE15D61CCA84516E924ADCE5014F67") (:ecb-mode-test #h"08090A0B0D0E0F10121314151718191A1C1D1E1F21222324262728292B2C2D2E" #h"67666564BAB9B8A77071767719161714" #h"3AD208492249108C9F3EBEB167AD0583") (:ecb-mode-test #h"30313233353637383A3B3C3D3F40414244454647494A4B4C4E4F505153545556" #h"9A9B98992D2E2F2084858283245B5A59" #h"299BA9F9BF5AB05C3580FC26EDD1ED12") (:ecb-mode-test #h"58595A5B5D5E5F60626364656768696A6C6D6E6F71727374767778797B7C7D7E" #h"A4A5A6A70B0809365C5D5A5B2C232221" #h"19DC705B857A60FB07717B2EA5717781") (:ecb-mode-test #h"80818283858687888A8B8C8D8F90919294959697999A9B9C9E9FA0A1A3A4A5A6" #h"464744455754555AF3F2F5F4AFB0B1B2" #h"FFC8AEB885B5EFCAD06B6DBEBF92E76B") (:ecb-mode-test #h"A8A9AAABADAEAFB0B2B3B4B5B7B8B9BABCBDBEBFC1C2C3C4C6C7C8C9CBCCCDCE" #h"323330317675746B7273747549464744" #h"F58900C5E0B385253FF2546250A0142B") (:ecb-mode-test #h"D0D1D2D3D5D6D7D8DADBDCDDDFE0E1E2E4E5E6E7E9EAEBECEEEFF0F1F3F4F5F6" #h"A8A9AAAB181B1A15808186872B141516" #h"2EE67B56280BC462429CEE6E3370CBC1") (:ecb-mode-test #h"F8F9FAFBFDFEFE00020304050708090A0C0D0E0F11121314161718191B1C1D1E" #h"E7E6E5E4202323DDAAABACAD343B3A39" #h"20DB650A9C8E9A84AB4D25F7EDC8F03F") (:ecb-mode-test #h"20212223252627282A2B2C2D2F30313234353637393A3B3C3E3F404143444546" #h"A8A9AAAB2221202FEDECEBEA1E010003" #h"3C36DA169525CF818843805F25B78AE5") (:ecb-mode-test #h"48494A4B4D4E4F50525354555758595A5C5D5E5F61626364666768696B6C6D6E" #h"F9F8FBFA5F5C5D42424344450E010003" #h"9A781D960DB9E45E37779042FEA51922") (:ecb-mode-test #h"70717273757677787A7B7C7D7F80818284858687898A8B8C8E8F909193949596" #h"57565554F5F6F7F89697909120DFDEDD" #h"6560395EC269C672A3C288226EFDBA77") (:ecb-mode-test #h"98999A9B9D9E9FA0A2A3A4A5A7A8A9AAACADAEAFB1B2B3B4B6B7B8B9BBBCBDBE" #h"F8F9FAFBCCCFCEF1DDDCDBDA0E010003" #h"8C772B7A189AC544453D5916EBB27B9A") (:ecb-mode-test #h"C0C1C2C3C5C6C7C8CACBCCCDCFD0D1D2D4D5D6D7D9DADBDCDEDFE0E1E3E4E5E6" #h"D9D8DBDA7073727D80818687C2DDDCDF" #h"77CA5468CC48E843D05F78EED9D6578F") (:ecb-mode-test #h"E8E9EAEBEDEEEFF0F2F3F4F5F7F8F9FAFCFDFEFF01020304060708090B0C0D0E" #h"C5C4C7C6080B0A1588898E8F68676665" #h"72CDCC71DC82C60D4429C9E2D8195BAA") (:ecb-mode-test #h"10111213151617181A1B1C1D1F20212224252627292A2B2C2E2F303133343536" #h"83828180DCDFDED186878081F0CFCECD" #h"8080D68CE60E94B40B5B8B69EEB35AFA") (:ecb-mode-test #h"38393A3B3D3E3F40424344454748494A4C4D4E4F51525354565758595B5C5D5E" #h"98999A9BDDDEDFA079787F7E0A050407" #h"44222D3CDE299C04369D58AC0EBA1E8E") (:ecb-mode-test #h"60616263656667686A6B6C6D6F70717274757677797A7B7C7E7F808183848586" #h"CECFCCCD4F4C4D429F9E9998DFC0C1C2" #h"9B8721B0A8DFC691C5BC5885DBFCB27A") (:ecb-mode-test #h"88898A8B8D8E8F90929394959798999A9C9D9E9FA1A2A3A4A6A7A8A9ABACADAE" #h"404142436665647B29282F2EABA4A5A6" #h"0DC015CE9A3A3414B5E62EC643384183") (:ecb-mode-test #h"B0B1B2B3B5B6B7B8BABBBCBDBFC0C1C2C4C5C6C7C9CACBCCCECFD0D1D3D4D5D6" #h"33323130E6E5E4EB23222524DEA1A0A3" #h"705715448A8DA412025CE38345C2A148") (:ecb-mode-test #h"D8D9DADBDDDEDFE0E2E3E4E5E7E8E9EAECEDEEEFF1F2F3F4F6F7F8F9FBFCFDFE" #h"CFCECDCCF6F5F4CBE6E7E0E199969794" #h"C32B5B0B6FBAE165266C569F4B6ECF0B") (:ecb-mode-test #h"00010203050607080A0B0C0D0F10111214151617191A1B1C1E1F202123242526" #h"BABBB8B97271707FDCDDDADB29363734" #h"4DCA6C75192A01DDCA9476AF2A521E87") (:ecb-mode-test #h"28292A2B2D2E2F30323334353738393A3C3D3E3F41424344464748494B4C4D4E" #h"C9C8CBCA4447465926272021545B5A59" #h"058691E627ECBC36AC07B6DB423BD698") (:ecb-mode-test #h"50515253555657585A5B5C5D5F60616264656667696A6B6C6E6F707173747576" #h"050407067477767956575051221D1C1F" #h"7444527095838FE080FC2BCDD30847EB") ironclad_0.33.0/testing/test-vectors/des.testvec0000644000175000017500000010165711305364032016732 0ustar00;;; #h"standard" test vectors (from NIST, I believe) (:ecb-mode-test #h"0000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"FFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"7359B2163E4EDC58") (:ecb-mode-test #h"3000000000000000" #h"1000000000000001" #h"958E6E627A05557B") (:ecb-mode-test #h"1111111111111111" #h"1111111111111111" #h"F40379AB9E0EC533") (:ecb-mode-test #h"0123456789ABCDEF" #h"1111111111111111" #h"17668DFC7292532D") (:ecb-mode-test #h"1111111111111111" #h"0123456789ABCDEF" #h"8A5AE1F81AB8F2DD") (:ecb-mode-test #h"0000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"FEDCBA9876543210" #h"0123456789ABCDEF" #h"ED39D950FA74BCC4") (:ecb-mode-test #h"7CA110454A1A6E57" #h"01A1D6D039776742" #h"690F5B0D9A26939B") (:ecb-mode-test #h"0131D9619DC1376E" #h"5CD54CA83DEF57DA" #h"7A389D10354BD271") (:ecb-mode-test #h"07A1133E4A0B2686" #h"0248D43806F67172" #h"868EBB51CAB4599A") (:ecb-mode-test #h"3849674C2602319E" #h"51454B582DDF440A" #h"7178876E01F19B2A") (:ecb-mode-test #h"04B915BA43FEB5B6" #h"42FD443059577FA2" #h"AF37FB421F8C4095") (:ecb-mode-test #h"0113B970FD34F2CE" #h"059B5E0851CF143A" #h"86A560F10EC6D85B") (:ecb-mode-test #h"0170F175468FB5E6" #h"0756D8E0774761D2" #h"0CD3DA020021DC09") (:ecb-mode-test #h"43297FAD38E373FE" #h"762514B829BF486A" #h"EA676B2CB7DB2B7A") (:ecb-mode-test #h"07A7137045DA2A16" #h"3BDD119049372802" #h"DFD64A815CAF1A0F") (:ecb-mode-test #h"04689104C2FD3B2F" #h"26955F6835AF609A" #h"5C513C9C4886C088") (:ecb-mode-test #h"37D06BB516CB7546" #h"164D5E404F275232" #h"0A2AEEAE3FF4AB77") (:ecb-mode-test #h"1F08260D1AC2465E" #h"6B056E18759F5CCA" #h"EF1BF03E5DFA575A") (:ecb-mode-test #h"584023641ABA6176" #h"004BD6EF09176062" #h"88BF0DB6D70DEE56") (:ecb-mode-test #h"025816164629B007" #h"480D39006EE762F2" #h"A1F9915541020B56") (:ecb-mode-test #h"49793EBC79B3258F" #h"437540C8698F3CFA" #h"6FBF1CAFCFFD0556") (:ecb-mode-test #h"4FB05E1515AB73A7" #h"072D43A077075292" #h"2F22E49BAB7CA1AC") (:ecb-mode-test #h"49E95D6D4CA229BF" #h"02FE55778117F12A" #h"5A6B612CC26CCE4A") (:ecb-mode-test #h"018310DC409B26D6" #h"1D9D5C5018F728C2" #h"5F4C038ED12B2E41") (:ecb-mode-test #h"1C587F1C13924FEF" #h"305532286D6F295A" #h"63FAC0D034D9F793") (:ecb-mode-test #h"0101010101010101" #h"0123456789ABCDEF" #h"617B3A0CE8F07100") (:ecb-mode-test #h"1F1F1F1F0E0E0E0E" #h"0123456789ABCDEF" #h"DB958605F8C8C606") (:ecb-mode-test #h"E0FEE0FEF1FEF1FE" #h"0123456789ABCDEF" #h"EDBFD1C66C29CCC7") (:ecb-mode-test #h"0000000000000000" #h"FFFFFFFFFFFFFFFF" #h"355550B2150E2451") (:ecb-mode-test #h"FFFFFFFFFFFFFFFF" #h"0000000000000000" #h"CAAAAF4DEAF1DBAE") (:ecb-mode-test #h"0123456789ABCDEF" #h"0000000000000000" #h"D5D44FF720683D0D") (:ecb-mode-test #h"FEDCBA9876543210" #h"FFFFFFFFFFFFFFFF" #h"2A2BB008DF97C2F2") ;;; tests from NESSIE (http://www.cryptonessie.org/) (:ecb-mode-test #h"8000000000000000" #h"0000000000000000" #h"95A8D72813DAA94D") (:ecb-mode-test #h"4000000000000000" #h"0000000000000000" #h"0EEC1487DD8C26D5") (:ecb-mode-test #h"2000000000000000" #h"0000000000000000" #h"7AD16FFB79C45926") (:ecb-mode-test #h"1000000000000000" #h"0000000000000000" #h"D3746294CA6A6CF3") (:ecb-mode-test #h"0800000000000000" #h"0000000000000000" #h"809F5F873C1FD761") (:ecb-mode-test #h"0400000000000000" #h"0000000000000000" #h"C02FAFFEC989D1FC") (:ecb-mode-test #h"0200000000000000" #h"0000000000000000" #h"4615AA1D33E72F10") (:ecb-mode-test #h"0100000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0080000000000000" #h"0000000000000000" #h"2055123350C00858") (:ecb-mode-test #h"0040000000000000" #h"0000000000000000" #h"DF3B99D6577397C8") (:ecb-mode-test #h"0020000000000000" #h"0000000000000000" #h"31FE17369B5288C9") (:ecb-mode-test #h"0010000000000000" #h"0000000000000000" #h"DFDD3CC64DAE1642") (:ecb-mode-test #h"0008000000000000" #h"0000000000000000" #h"178C83CE2B399D94") (:ecb-mode-test #h"0004000000000000" #h"0000000000000000" #h"50F636324A9B7F80") (:ecb-mode-test #h"0002000000000000" #h"0000000000000000" #h"A8468EE3BC18F06D") (:ecb-mode-test #h"0001000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000800000000000" #h"0000000000000000" #h"A2DC9E92FD3CDE92") (:ecb-mode-test #h"0000400000000000" #h"0000000000000000" #h"CAC09F797D031287") (:ecb-mode-test #h"0000200000000000" #h"0000000000000000" #h"90BA680B22AEB525") (:ecb-mode-test #h"0000100000000000" #h"0000000000000000" #h"CE7A24F350E280B6") (:ecb-mode-test #h"0000080000000000" #h"0000000000000000" #h"882BFF0AA01A0B87") (:ecb-mode-test #h"0000040000000000" #h"0000000000000000" #h"25610288924511C2") (:ecb-mode-test #h"0000020000000000" #h"0000000000000000" #h"C71516C29C75D170") (:ecb-mode-test #h"0000010000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000008000000000" #h"0000000000000000" #h"5199C29A52C9F059") (:ecb-mode-test #h"0000004000000000" #h"0000000000000000" #h"C22F0A294A71F29F") (:ecb-mode-test #h"0000002000000000" #h"0000000000000000" #h"EE371483714C02EA") (:ecb-mode-test #h"0000001000000000" #h"0000000000000000" #h"A81FBD448F9E522F") (:ecb-mode-test #h"0000000800000000" #h"0000000000000000" #h"4F644C92E192DFED") (:ecb-mode-test #h"0000000400000000" #h"0000000000000000" #h"1AFA9A66A6DF92AE") (:ecb-mode-test #h"0000000200000000" #h"0000000000000000" #h"B3C1CC715CB879D8") (:ecb-mode-test #h"0000000100000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000000080000000" #h"0000000000000000" #h"19D032E64AB0BD8B") (:ecb-mode-test #h"0000000040000000" #h"0000000000000000" #h"3CFAA7A7DC8720DC") (:ecb-mode-test #h"0000000020000000" #h"0000000000000000" #h"B7265F7F447AC6F3") (:ecb-mode-test #h"0000000010000000" #h"0000000000000000" #h"9DB73B3C0D163F54") (:ecb-mode-test #h"0000000008000000" #h"0000000000000000" #h"8181B65BABF4A975") (:ecb-mode-test #h"0000000004000000" #h"0000000000000000" #h"93C9B64042EAA240") (:ecb-mode-test #h"0000000002000000" #h"0000000000000000" #h"5570530829705592") (:ecb-mode-test #h"0000000001000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000000000800000" #h"0000000000000000" #h"8638809E878787A0") (:ecb-mode-test #h"0000000000400000" #h"0000000000000000" #h"41B9A79AF79AC208") (:ecb-mode-test #h"0000000000200000" #h"0000000000000000" #h"7A9BE42F2009A892") (:ecb-mode-test #h"0000000000100000" #h"0000000000000000" #h"29038D56BA6D2745") (:ecb-mode-test #h"0000000000080000" #h"0000000000000000" #h"5495C6ABF1E5DF51") (:ecb-mode-test #h"0000000000040000" #h"0000000000000000" #h"AE13DBD561488933") (:ecb-mode-test #h"0000000000020000" #h"0000000000000000" #h"024D1FFA8904E389") (:ecb-mode-test #h"0000000000010000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000000000008000" #h"0000000000000000" #h"D1399712F99BF02E") (:ecb-mode-test #h"0000000000004000" #h"0000000000000000" #h"14C1D7C1CFFEC79E") (:ecb-mode-test #h"0000000000002000" #h"0000000000000000" #h"1DE5279DAE3BED6F") (:ecb-mode-test #h"0000000000001000" #h"0000000000000000" #h"E941A33F85501303") (:ecb-mode-test #h"0000000000000800" #h"0000000000000000" #h"DA99DBBC9A03F379") (:ecb-mode-test #h"0000000000000400" #h"0000000000000000" #h"B7FC92F91D8E92E9") (:ecb-mode-test #h"0000000000000200" #h"0000000000000000" #h"AE8E5CAA3CA04E85") (:ecb-mode-test #h"0000000000000100" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000000000000080" #h"0000000000000000" #h"9CC62DF43B6EED74") (:ecb-mode-test #h"0000000000000040" #h"0000000000000000" #h"D863DBB5C59A91A0") (:ecb-mode-test #h"0000000000000020" #h"0000000000000000" #h"A1AB2190545B91D7") (:ecb-mode-test #h"0000000000000010" #h"0000000000000000" #h"0875041E64C570F7") (:ecb-mode-test #h"0000000000000008" #h"0000000000000000" #h"5A594528BEBEF1CC") (:ecb-mode-test #h"0000000000000004" #h"0000000000000000" #h"FCDB3291DE21F0C0") (:ecb-mode-test #h"0000000000000002" #h"0000000000000000" #h"869EFD7F9F265A09") (:ecb-mode-test #h"0000000000000001" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0000000000000000" #h"8000000000000000" #h"95F8A5E5DD31D900") (:ecb-mode-test #h"0000000000000000" #h"4000000000000000" #h"DD7F121CA5015619") (:ecb-mode-test #h"0000000000000000" #h"2000000000000000" #h"2E8653104F3834EA") (:ecb-mode-test #h"0000000000000000" #h"1000000000000000" #h"4BD388FF6CD81D4F") (:ecb-mode-test #h"0000000000000000" #h"0800000000000000" #h"20B9E767B2FB1456") (:ecb-mode-test #h"0000000000000000" #h"0400000000000000" #h"55579380D77138EF") (:ecb-mode-test #h"0000000000000000" #h"0200000000000000" #h"6CC5DEFAAF04512F") (:ecb-mode-test #h"0000000000000000" #h"0100000000000000" #h"0D9F279BA5D87260") (:ecb-mode-test #h"0000000000000000" #h"0080000000000000" #h"D9031B0271BD5A0A") (:ecb-mode-test #h"0000000000000000" #h"0040000000000000" #h"424250B37C3DD951") (:ecb-mode-test #h"0000000000000000" #h"0020000000000000" #h"B8061B7ECD9A21E5") (:ecb-mode-test #h"0000000000000000" #h"0010000000000000" #h"F15D0F286B65BD28") (:ecb-mode-test #h"0000000000000000" #h"0008000000000000" #h"ADD0CC8D6E5DEBA1") (:ecb-mode-test #h"0000000000000000" #h"0004000000000000" #h"E6D5F82752AD63D1") (:ecb-mode-test #h"0000000000000000" #h"0002000000000000" #h"ECBFE3BD3F591A5E") (:ecb-mode-test #h"0000000000000000" #h"0001000000000000" #h"F356834379D165CD") (:ecb-mode-test #h"0000000000000000" #h"0000800000000000" #h"2B9F982F20037FA9") (:ecb-mode-test #h"0000000000000000" #h"0000400000000000" #h"889DE068A16F0BE6") (:ecb-mode-test #h"0000000000000000" #h"0000200000000000" #h"E19E275D846A1298") (:ecb-mode-test #h"0000000000000000" #h"0000100000000000" #h"329A8ED523D71AEC") (:ecb-mode-test #h"0000000000000000" #h"0000080000000000" #h"E7FCE22557D23C97") (:ecb-mode-test #h"0000000000000000" #h"0000040000000000" #h"12A9F5817FF2D65D") (:ecb-mode-test #h"0000000000000000" #h"0000020000000000" #h"A484C3AD38DC9C19") (:ecb-mode-test #h"0000000000000000" #h"0000010000000000" #h"FBE00A8A1EF8AD72") (:ecb-mode-test #h"0000000000000000" #h"0000008000000000" #h"750D079407521363") (:ecb-mode-test #h"0000000000000000" #h"0000004000000000" #h"64FEED9C724C2FAF") (:ecb-mode-test #h"0000000000000000" #h"0000002000000000" #h"F02B263B328E2B60") (:ecb-mode-test #h"0000000000000000" #h"0000001000000000" #h"9D64555A9A10B852") (:ecb-mode-test #h"0000000000000000" #h"0000000800000000" #h"D106FF0BED5255D7") (:ecb-mode-test #h"0000000000000000" #h"0000000400000000" #h"E1652C6B138C64A5") (:ecb-mode-test #h"0000000000000000" #h"0000000200000000" #h"E428581186EC8F46") (:ecb-mode-test #h"0000000000000000" #h"0000000100000000" #h"AEB5F5EDE22D1A36") (:ecb-mode-test #h"0000000000000000" #h"0000000080000000" #h"E943D7568AEC0C5C") (:ecb-mode-test #h"0000000000000000" #h"0000000040000000" #h"DF98C8276F54B04B") (:ecb-mode-test #h"0000000000000000" #h"0000000020000000" #h"B160E4680F6C696F") (:ecb-mode-test #h"0000000000000000" #h"0000000010000000" #h"FA0752B07D9C4AB8") (:ecb-mode-test #h"0000000000000000" #h"0000000008000000" #h"CA3A2B036DBC8502") (:ecb-mode-test #h"0000000000000000" #h"0000000004000000" #h"5E0905517BB59BCF") (:ecb-mode-test #h"0000000000000000" #h"0000000002000000" #h"814EEB3B91D90726") (:ecb-mode-test #h"0000000000000000" #h"0000000001000000" #h"4D49DB1532919C9F") (:ecb-mode-test #h"0000000000000000" #h"0000000000800000" #h"25EB5FC3F8CF0621") (:ecb-mode-test #h"0000000000000000" #h"0000000000400000" #h"AB6A20C0620D1C6F") (:ecb-mode-test #h"0000000000000000" #h"0000000000200000" #h"79E90DBC98F92CCA") (:ecb-mode-test #h"0000000000000000" #h"0000000000100000" #h"866ECEDD8072BB0E") (:ecb-mode-test #h"0000000000000000" #h"0000000000080000" #h"8B54536F2F3E64A8") (:ecb-mode-test #h"0000000000000000" #h"0000000000040000" #h"EA51D3975595B86B") (:ecb-mode-test #h"0000000000000000" #h"0000000000020000" #h"CAFFC6AC4542DE31") (:ecb-mode-test #h"0000000000000000" #h"0000000000010000" #h"8DD45A2DDF90796C") (:ecb-mode-test #h"0000000000000000" #h"0000000000008000" #h"1029D55E880EC2D0") (:ecb-mode-test #h"0000000000000000" #h"0000000000004000" #h"5D86CB23639DBEA9") (:ecb-mode-test #h"0000000000000000" #h"0000000000002000" #h"1D1CA853AE7C0C5F") (:ecb-mode-test #h"0000000000000000" #h"0000000000001000" #h"CE332329248F3228") (:ecb-mode-test #h"0000000000000000" #h"0000000000000800" #h"8405D1ABE24FB942") (:ecb-mode-test #h"0000000000000000" #h"0000000000000400" #h"E643D78090CA4207") (:ecb-mode-test #h"0000000000000000" #h"0000000000000200" #h"48221B9937748A23") (:ecb-mode-test #h"0000000000000000" #h"0000000000000100" #h"DD7C0BBD61FAFD54") (:ecb-mode-test #h"0000000000000000" #h"0000000000000080" #h"2FBC291A570DB5C4") (:ecb-mode-test #h"0000000000000000" #h"0000000000000040" #h"E07C30D7E4E26E12") (:ecb-mode-test #h"0000000000000000" #h"0000000000000020" #h"0953E2258E8E90A1") (:ecb-mode-test #h"0000000000000000" #h"0000000000000010" #h"5B711BC4CEEBF2EE") (:ecb-mode-test #h"0000000000000000" #h"0000000000000008" #h"CC083F1E6D9E85F6") (:ecb-mode-test #h"0000000000000000" #h"0000000000000004" #h"D2FD8867D50D2DFE") (:ecb-mode-test #h"0000000000000000" #h"0000000000000002" #h"06E7EA22CE92708F") (:ecb-mode-test #h"0000000000000000" #h"0000000000000001" #h"166B40B44ABA4BD6") (:ecb-mode-test #h"0000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"0101010101010101" #h"0101010101010101" #h"994D4DC157B96C52") (:ecb-mode-test #h"0202020202020202" #h"0202020202020202" #h"E127C2B61D98E6E2") (:ecb-mode-test #h"0303030303030303" #h"0303030303030303" #h"984C91D78A269CE3") (:ecb-mode-test #h"0404040404040404" #h"0404040404040404" #h"1F4570BB77550683") (:ecb-mode-test #h"0505050505050505" #h"0505050505050505" #h"3990ABF98D672B16") (:ecb-mode-test #h"0606060606060606" #h"0606060606060606" #h"3F5150BBA081D585") (:ecb-mode-test #h"0707070707070707" #h"0707070707070707" #h"C65242248C9CF6F2") (:ecb-mode-test #h"0808080808080808" #h"0808080808080808" #h"10772D40FAD24257") (:ecb-mode-test #h"0909090909090909" #h"0909090909090909" #h"F0139440647A6E7B") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"0A288603044D740C") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"6359916942F7438F") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"934316AE443CF08B") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"E3F56D7F1130A2B7") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"A2E4705087C6B6B4") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"D5D76E09A447E8C3") (:ecb-mode-test #h"1010101010101010" #h"1010101010101010" #h"DD7515F2BFC17F85") (:ecb-mode-test #h"1111111111111111" #h"1111111111111111" #h"F40379AB9E0EC533") (:ecb-mode-test #h"1212121212121212" #h"1212121212121212" #h"96CD27784D1563E5") (:ecb-mode-test #h"1313131313131313" #h"1313131313131313" #h"2911CF5E94D33FE1") (:ecb-mode-test #h"1414141414141414" #h"1414141414141414" #h"377B7F7CA3E5BBB3") (:ecb-mode-test #h"1515151515151515" #h"1515151515151515" #h"701AA63832905A92") (:ecb-mode-test #h"1616161616161616" #h"1616161616161616" #h"2006E716C4252D6D") (:ecb-mode-test #h"1717171717171717" #h"1717171717171717" #h"452C1197422469F8") (:ecb-mode-test #h"1818181818181818" #h"1818181818181818" #h"C33FD1EB49CB64DA") (:ecb-mode-test #h"1919191919191919" #h"1919191919191919" #h"7572278F364EB50D") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"69E51488403EF4C3") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"FF847E0ADF192825") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"521B7FB3B41BB791") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"26059A6A0F3F6B35") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"F24A8D2231C77538") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"4FD96EC0D3304EF6") (:ecb-mode-test #h"2020202020202020" #h"2020202020202020" #h"18A9D580A900B699") (:ecb-mode-test #h"2121212121212121" #h"2121212121212121" #h"88586E1D755B9B5A") (:ecb-mode-test #h"2222222222222222" #h"2222222222222222" #h"0F8ADFFB11DC2784") (:ecb-mode-test #h"2323232323232323" #h"2323232323232323" #h"2F30446C8312404A") (:ecb-mode-test #h"2424242424242424" #h"2424242424242424" #h"0BA03D9E6C196511") (:ecb-mode-test #h"2525252525252525" #h"2525252525252525" #h"3E55E997611E4B7D") (:ecb-mode-test #h"2626262626262626" #h"2626262626262626" #h"B2522FB5F158F0DF") (:ecb-mode-test #h"2727272727272727" #h"2727272727272727" #h"2109425935406AB8") (:ecb-mode-test #h"2828282828282828" #h"2828282828282828" #h"11A16028F310FF16") (:ecb-mode-test #h"2929292929292929" #h"2929292929292929" #h"73F0C45F379FE67F") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"DCAD4338F7523816") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"B81634C1CEAB298C") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"DD2CCB29B6C4C349") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"7D07A77A2ABD50A7") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"30C1B0C1FD91D371") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"C4427B31AC61973B") (:ecb-mode-test #h"3030303030303030" #h"3030303030303030" #h"F47BB46273B15EB5") (:ecb-mode-test #h"3131313131313131" #h"3131313131313131" #h"655EA628CF62585F") (:ecb-mode-test #h"3232323232323232" #h"3232323232323232" #h"AC978C247863388F") (:ecb-mode-test #h"3333333333333333" #h"3333333333333333" #h"0432ED386F2DE328") (:ecb-mode-test #h"3434343434343434" #h"3434343434343434" #h"D254014CB986B3C2") (:ecb-mode-test #h"3535353535353535" #h"3535353535353535" #h"B256E34BEDB49801") (:ecb-mode-test #h"3636363636363636" #h"3636363636363636" #h"37F8759EB77E7BFC") (:ecb-mode-test #h"3737373737373737" #h"3737373737373737" #h"5013CA4F62C9CEA0") (:ecb-mode-test #h"3838383838383838" #h"3838383838383838" #h"8940F7B3EACA5939") (:ecb-mode-test #h"3939393939393939" #h"3939393939393939" #h"E22B19A55086774B") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"B04A2AAC925ABB0B") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"8D250D58361597FC") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"51F0114FB6A6CD37") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"9D0BB4DB830ECB73") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"E96089D6368F3E1A") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"5C4CA877A4E1E92D") (:ecb-mode-test #h"4040404040404040" #h"4040404040404040" #h"6D55DDBC8DEA95FF") (:ecb-mode-test #h"4141414141414141" #h"4141414141414141" #h"19DF84AC95551003") (:ecb-mode-test #h"4242424242424242" #h"4242424242424242" #h"724E7332696D08A7") (:ecb-mode-test #h"4343434343434343" #h"4343434343434343" #h"B91810B8CDC58FE2") (:ecb-mode-test #h"4444444444444444" #h"4444444444444444" #h"06E23526EDCCD0C4") (:ecb-mode-test #h"4545454545454545" #h"4545454545454545" #h"EF52491D5468D441") (:ecb-mode-test #h"4646464646464646" #h"4646464646464646" #h"48019C59E39B90C5") (:ecb-mode-test #h"4747474747474747" #h"4747474747474747" #h"0544083FB902D8C0") (:ecb-mode-test #h"4848484848484848" #h"4848484848484848" #h"63B15CADA668CE12") (:ecb-mode-test #h"4949494949494949" #h"4949494949494949" #h"EACC0C1264171071") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"9D2B8C0AC605F274") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"C90F2F4C98A8FB2A") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"03481B4828FD1D04") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"C78FC45A1DCEA2E2") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"DB96D88C3460D801") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"6C69E720F5105518") (:ecb-mode-test #h"5050505050505050" #h"5050505050505050" #h"0D262E418BC893F3") (:ecb-mode-test #h"5151515151515151" #h"5151515151515151" #h"6AD84FD7848A0A5C") (:ecb-mode-test #h"5252525252525252" #h"5252525252525252" #h"C365CB35B34B6114") (:ecb-mode-test #h"5353535353535353" #h"5353535353535353" #h"1155392E877F42A9") (:ecb-mode-test #h"5454545454545454" #h"5454545454545454" #h"531BE5F9405DA715") (:ecb-mode-test #h"5555555555555555" #h"5555555555555555" #h"3BCDD41E6165A5E8") (:ecb-mode-test #h"5656565656565656" #h"5656565656565656" #h"2B1FF5610A19270C") (:ecb-mode-test #h"5757575757575757" #h"5757575757575757" #h"D90772CF3F047CFD") (:ecb-mode-test #h"5858585858585858" #h"5858585858585858" #h"1BEA27FFB72457B7") (:ecb-mode-test #h"5959595959595959" #h"5959595959595959" #h"85C3E0C429F34C27") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"F9038021E37C7618") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"35BC6FF838DBA32F") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"4927ACC8CE45ECE7") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"E812EE6E3572985C") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"9BB93A89627BF65F") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"EF12476884CB74CA") (:ecb-mode-test #h"6060606060606060" #h"6060606060606060" #h"1BF17E00C09E7CBF") (:ecb-mode-test #h"6161616161616161" #h"6161616161616161" #h"29932350C098DB5D") (:ecb-mode-test #h"6262626262626262" #h"6262626262626262" #h"B476E6499842AC54") (:ecb-mode-test #h"6363636363636363" #h"6363636363636363" #h"5C662C29C1E96056") (:ecb-mode-test #h"6464646464646464" #h"6464646464646464" #h"3AF1703D76442789") (:ecb-mode-test #h"6565656565656565" #h"6565656565656565" #h"86405D9B425A8C8C") (:ecb-mode-test #h"6666666666666666" #h"6666666666666666" #h"EBBF4810619C2C55") (:ecb-mode-test #h"6767676767676767" #h"6767676767676767" #h"F8D1CD7367B21B5D") (:ecb-mode-test #h"6868686868686868" #h"6868686868686868" #h"9EE703142BF8D7E2") (:ecb-mode-test #h"6969696969696969" #h"6969696969696969" #h"5FDFFFC3AAAB0CB3") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"26C940AB13574231") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"1E2DC77E36A84693") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"0F4FF4D9BC7E2244") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"A4C9A0D04D3280CD") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"9FAF2C96FE84919D") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"115DBC965E6096C8") (:ecb-mode-test #h"7070707070707070" #h"7070707070707070" #h"AF531E9520994017") (:ecb-mode-test #h"7171717171717171" #h"7171717171717171" #h"B971ADE70E5C89EE") (:ecb-mode-test #h"7272727272727272" #h"7272727272727272" #h"415D81C86AF9C376") (:ecb-mode-test #h"7373737373737373" #h"7373737373737373" #h"8DFB864FDB3C6811") (:ecb-mode-test #h"7474747474747474" #h"7474747474747474" #h"10B1C170E3398F91") (:ecb-mode-test #h"7575757575757575" #h"7575757575757575" #h"CFEF7A1C0218DB1E") (:ecb-mode-test #h"7676767676767676" #h"7676767676767676" #h"DBAC30A2A40B1B9C") (:ecb-mode-test #h"7777777777777777" #h"7777777777777777" #h"89D3BF37052162E9") (:ecb-mode-test #h"7878787878787878" #h"7878787878787878" #h"80D9230BDAEB67DC") (:ecb-mode-test #h"7979797979797979" #h"7979797979797979" #h"3440911019AD68D7") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"9626FE57596E199E") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"DEA0B796624BB5BA") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"E9E40542BDDB3E9D") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"8AD99914B354B911") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"6F85B98DD12CB13B") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"10130DA3C3A23924") (:ecb-mode-test #h"8080808080808080" #h"8080808080808080" #h"EFECF25C3C5DC6DB") (:ecb-mode-test #h"8181818181818181" #h"8181818181818181" #h"907A46722ED34EC4") (:ecb-mode-test #h"8282828282828282" #h"8282828282828282" #h"752666EB4CAB46EE") (:ecb-mode-test #h"8383838383838383" #h"8383838383838383" #h"161BFABD4224C162") (:ecb-mode-test #h"8484848484848484" #h"8484848484848484" #h"215F48699DB44A45") (:ecb-mode-test #h"8585858585858585" #h"8585858585858585" #h"69D901A8A691E661") (:ecb-mode-test #h"8686868686868686" #h"8686868686868686" #h"CBBF6EEFE6529728") (:ecb-mode-test #h"8787878787878787" #h"8787878787878787" #h"7F26DCF425149823") (:ecb-mode-test #h"8888888888888888" #h"8888888888888888" #h"762C40C8FADE9D16") (:ecb-mode-test #h"8989898989898989" #h"8989898989898989" #h"2453CF5D5BF4E463") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"301085E3FDE724E1") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"EF4E3E8F1CC6706E") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"720479B024C397EE") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"BEA27E3795063C89") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"468E5218F1A37611") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"50ACE16ADF66BFE8") (:ecb-mode-test #h"9090909090909090" #h"9090909090909090" #h"EEA24369A19F6937") (:ecb-mode-test #h"9191919191919191" #h"9191919191919191" #h"6050D369017B6E62") (:ecb-mode-test #h"9292929292929292" #h"9292929292929292" #h"5B365F2FB2CD7F32") (:ecb-mode-test #h"9393939393939393" #h"9393939393939393" #h"F0B00B264381DDBB") (:ecb-mode-test #h"9494949494949494" #h"9494949494949494" #h"E1D23881C957B96C") (:ecb-mode-test #h"9595959595959595" #h"9595959595959595" #h"D936BF54ECA8BDCE") (:ecb-mode-test #h"9696969696969696" #h"9696969696969696" #h"A020003C5554F34C") (:ecb-mode-test #h"9797979797979797" #h"9797979797979797" #h"6118FCEBD407281D") (:ecb-mode-test #h"9898989898989898" #h"9898989898989898" #h"072E328C984DE4A2") (:ecb-mode-test #h"9999999999999999" #h"9999999999999999" #h"1440B7EF9E63D3AA") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"79BFA264BDA57373") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"C50E8FC289BBD876") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"A399D3D63E169FA9") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"4B8919B667BD53AB") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"D66CDCAF3F6724A2") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"E40E81FF3F618340") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"10EDB8977B348B35") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"6446C5769D8409A0") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"17ED1191CA8D67A3") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"B6D8533731BA1318") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"CA439007C7245CD0") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"06FC7FDE1C8389E7") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"7A3C1F3BD60CB3D8") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"E415D80048DBA848") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"26F88D30C0FB8302") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"D4E00A9EF5E6D8F3") (:ecb-mode-test #h"AAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"C4322BE19E9A5A17") (:ecb-mode-test #h"ABABABABABABABAB" #h"ABABABABABABABAB" #h"ACE41A06BFA258EA") (:ecb-mode-test #h"ACACACACACACACAC" #h"ACACACACACACACAC" #h"EEAAC6D17880BD56") (:ecb-mode-test #h"ADADADADADADADAD" #h"ADADADADADADADAD" #h"3C9A34CA4CB49EEB") (:ecb-mode-test #h"AEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"9527B0287B75F5A3") (:ecb-mode-test #h"AFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"F2D9D1BE74376C0C") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"939618DF0AEFAAE7") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"24692773CB9F27FE") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"38703BA5E2315D1D") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"FCB7E4B7D702E2FB") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"36F0D0B3675704D5") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"62D473F539FA0D8B") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"1533F3ED9BE8EF8E") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"9C4EA352599731ED") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"FABBF7C046FD273F") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"B7FE63A61C646F3A") (:ecb-mode-test #h"BABABABABABABABA" #h"BABABABABABABABA" #h"10ADB6E2AB972BBE") (:ecb-mode-test #h"BBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"F91DCAD912332F3B") (:ecb-mode-test #h"BCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"46E7EF47323A701D") (:ecb-mode-test #h"BDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"8DB18CCD9692F758") (:ecb-mode-test #h"BEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"E6207B536AAAEFFC") (:ecb-mode-test #h"BFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"92AA224372156A00") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"A3B357885B1E16D2") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"169F7629C970C1E5") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"62F44B247CF1348C") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"AE0FEEB0495932C8") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"72DAF2A7C9EA6803") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"4FB5D5536DA544F4") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"1DD4E65AAF7988B4") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"76BF084C1535A6C6") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"AFEC35B09D36315F") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"C8078A6148818403") (:ecb-mode-test #h"CACACACACACACACA" #h"CACACACACACACACA" #h"4DA91CB4124B67FE") (:ecb-mode-test #h"CBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"2DABFEB346794C3D") (:ecb-mode-test #h"CCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"FBCD12C790D21CD7") (:ecb-mode-test #h"CDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"536873DB879CC770") (:ecb-mode-test #h"CECECECECECECECE" #h"CECECECECECECECE" #h"9AA159D7309DA7A0") (:ecb-mode-test #h"CFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"0B844B9D8C4EA14A") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"3BBD84CE539E68C4") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"CF3E4F3E026E2C8E") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"82F85885D542AF58") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"22D334D6493B3CB6") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"47E9CB3E3154D673") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"2352BCC708ADC7E9") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"8C0F3BA0C8601980") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"EE5E9FD70CEF00E9") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"DEF6BDA6CABF9547") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"4DADD04A0EA70F20") (:ecb-mode-test #h"DADADADADADADADA" #h"DADADADADADADADA" #h"C1AA16689EE1B482") (:ecb-mode-test #h"DBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"F45FC26193E69AEE") (:ecb-mode-test #h"DCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"D0CFBB937CEDBFB5") (:ecb-mode-test #h"DDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"F0752004EE23D87B") (:ecb-mode-test #h"DEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"77A791E28AA464A5") (:ecb-mode-test #h"DFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"E7562A7F56FF4966") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"B026913F2CCFB109") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"0DB572DDCE388AC7") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"D9FA6595F0C094CA") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"ADE4804C4BE4486E") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"007B81F520E6D7DA") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"961AEB77BFC10B3C") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"8A8DD870C9B14AF2") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"3CC02E14B6349B25") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"BAD3EE68BDDB9607") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"DFF918E93BDAD292") (:ecb-mode-test #h"EAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"8FE559C7CD6FA56D") (:ecb-mode-test #h"EBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"C88480835C1A444C") (:ecb-mode-test #h"ECECECECECECECEC" #h"ECECECECECECECEC" #h"D6EE30A16B2CC01E") (:ecb-mode-test #h"EDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"6932D887B2EA9C1A") (:ecb-mode-test #h"EEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"0BFC865461F13ACC") (:ecb-mode-test #h"EFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"228AEA0D403E807A") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"2A2891F65BB8173C") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"5D1B8FAF7839494B") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"1C0A9280EECF5D48") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"6CBCE951BBC30F74") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"9CA66E96BD08BC70") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"F5D779FCFBB28BF3") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"0FEC6BBF9B859184") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"EF88D2BF052DBDA8") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"39ADBDDB7363090D") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"C0AEAF445F7E2A7A") (:ecb-mode-test #h"FAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"C66F54067298D4E9") (:ecb-mode-test #h"FBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"E0BA8F4488AAF97C") (:ecb-mode-test #h"FCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"67B36E2875D9631C") (:ecb-mode-test #h"FDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"1ED83D49E267191D") (:ecb-mode-test #h"FEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"66B2B23EA84693AD") (:ecb-mode-test #h"FFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"7359B2163E4EDC58") (:ecb-mode-test #h"0001020304050607" #h"0011223344556677" #h"3EF0A891CF8ED990") (:ecb-mode-test #h"2BD6459F82C5B300" #h"EA024714AD5C4D84" #h"126EFE8ED312190A") ironclad_0.33.0/testing/test-vectors/3des.testvec0000644000175000017500000030501211305364032017004 0ustar00;;; tests from NESSIE (http://www.cryptonessie.org/) ;;; #h"two-key" tests (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"FAFD5084374FCE34") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"60CC37B7B537A1DC") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"BE3E7304FE92C2BC") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"49F9E7A60C406DBF") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"794FE1DC2F80CD38") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"15052BCDF21A1F1E") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"3A830D0BDA044EBB") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"0C1971C6874548E2") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"52C2F3FF100668BC") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"7B1C09D39C205B7B") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"7C940466050ADBAE") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"7B6456C45945CCA3") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"076B2C8A7ADDFE68") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"1885BEE3774FF50B") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"A286DE6C7ABCE306") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"A19DB1122136903C") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"A77F2F3085DC2D16") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"B39C1E6C3C65E45A") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"E90963FB7F2B1193") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"743C3DBD464ABE66") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"E954174CC0C75C5D") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"E788FF69D915395A") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"DA518384A7F98F8F") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"71986C565B7A4697") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"5A015BF03B8FF6D2") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"DD311EB7A3202393") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"0DC6A2C01EADE617") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"D1EAE0F689C433DE") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"833803AFBCE49177") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"94EBB684C7C41EF5") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"D42EF0A1B9BC4392") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"9E1D42F406FE0387") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"8DB9EE4A1773C8FE") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"8195C0ED7D066F6B") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"FB3B39E43C76D53D") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"E21113D2C6870FBE") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"D1CF3B57F6294D0E") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"8990AAB2362CCE0F") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"198774D2FC7A641B") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"F3AC68FDC060AE6E") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"A854715C1EE8B311") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"D140934E0D5171DB") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"F3B2D1D19B852861") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"EE8DC918A74545F1") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"99B2175DCE3D348C") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"73AE9A4A6376637E") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"C55C05072C072CBE") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"FB4808530D49FFD3") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"3C1B66BD5170F2A1") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"A38DC58A5AEF3CAA") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"4F29AB3449FBA969") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"F75ACF1692C115D2") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"5A448A95522AF894") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"FEEA19D1125CEB53") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"7A7907DEB712DD81") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"41792F90E798B8E2") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"C2A4DD96151453C2") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"5E87809F6B8A7ED5") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"81B838A1E9CD59B3") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"DED028F0C1F5A774") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"48C983815809FC87") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"C1A75845F22BE951") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"C60F823E8E994489") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"709F8FCB044172FE") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"26BC2DE634BFFFD4") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"D98126355C2E03E6") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"49AAA91B49345137") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"A59854DCE009126D") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"21C46B9FDE5CD36B") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"DEB4AE36E07BC053") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"D47ADF8B94CACA7A") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"D26D9656F91A1EE2") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"EE31B8E767C9B337") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"D19BA61DD59CE9A1") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"482863934D17804B") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"78C8CBCAC3B7FD35") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"7B8B051E6C8AA8B6") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"8CCFCD2418E85750") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"E74CA11808ED17A3") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"0A634C7A69897F35") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"6C2C0F27E973CE29") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"AD5F11ED913E918C") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"3CE4B119BC1FC701") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"7E6C8995AA52D298") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"A9FE6341C8621918") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"CE99FD5D50B22CEF") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"83E55C4A19ABCB56") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"96E6A993443B9DD4") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"6781B65D74A6B9FB") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"D9EF04E272D1A78A") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"AC8B09EC3153D57B") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"60B4B8E3A8F5CBEC") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"A5AB6F6EB66057A9") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"FF7B0E870FB1FD0B") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"7497A098AA651D00") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"270A943BEABEA8EC") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"67DB327ED5DF89E3") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"4871C3B7436121DE") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"41BBC8EF36654838") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"FCBD166CA0EA87E2") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"9DFFC6EE9751B5CF") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"C01B7878EBCE8DD3") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"357E5A4DC162D715") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"268F93CAEB248E2E") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"A5D4174744B84E7D") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"46F5E7077CB869A8") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"502CD2BF4FC0B793") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"C0278007230589E4") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"52710C55818FAF52") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"DF4A77123610F2B1") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"EF840B00DA448234") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"FFCCC32A699CB7C5") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"95F8A5E5DD31D900") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"DD7F121CA5015619") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"2E8653104F3834EA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"4BD388FF6CD81D4F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"20B9E767B2FB1456") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"55579380D77138EF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"6CC5DEFAAF04512F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"0D9F279BA5D87260") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"D9031B0271BD5A0A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"424250B37C3DD951") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"B8061B7ECD9A21E5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"F15D0F286B65BD28") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"ADD0CC8D6E5DEBA1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"E6D5F82752AD63D1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"ECBFE3BD3F591A5E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"F356834379D165CD") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"2B9F982F20037FA9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"889DE068A16F0BE6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"E19E275D846A1298") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"329A8ED523D71AEC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"E7FCE22557D23C97") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"12A9F5817FF2D65D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"A484C3AD38DC9C19") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"FBE00A8A1EF8AD72") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"750D079407521363") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"64FEED9C724C2FAF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"F02B263B328E2B60") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"9D64555A9A10B852") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"D106FF0BED5255D7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"E1652C6B138C64A5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"E428581186EC8F46") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"AEB5F5EDE22D1A36") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"E943D7568AEC0C5C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"DF98C8276F54B04B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"B160E4680F6C696F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"FA0752B07D9C4AB8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"CA3A2B036DBC8502") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"5E0905517BB59BCF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"814EEB3B91D90726") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"4D49DB1532919C9F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"25EB5FC3F8CF0621") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"AB6A20C0620D1C6F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"79E90DBC98F92CCA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"866ECEDD8072BB0E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"8B54536F2F3E64A8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"EA51D3975595B86B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"CAFFC6AC4542DE31") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"8DD45A2DDF90796C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"1029D55E880EC2D0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"5D86CB23639DBEA9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"1D1CA853AE7C0C5F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"CE332329248F3228") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"8405D1ABE24FB942") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"E643D78090CA4207") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"48221B9937748A23") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"DD7C0BBD61FAFD54") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"2FBC291A570DB5C4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"E07C30D7E4E26E12") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"0953E2258E8E90A1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"5B711BC4CEEBF2EE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"CC083F1E6D9E85F6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"D2FD8867D50D2DFE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"06E7EA22CE92708F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"166B40B44ABA4BD6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"994D4DC157B96C52") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"E127C2B61D98E6E2") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"984C91D78A269CE3") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"1F4570BB77550683") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"3990ABF98D672B16") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"3F5150BBA081D585") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"C65242248C9CF6F2") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"10772D40FAD24257") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"F0139440647A6E7B") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"0A288603044D740C") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"6359916942F7438F") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"934316AE443CF08B") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"E3F56D7F1130A2B7") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"A2E4705087C6B6B4") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"D5D76E09A447E8C3") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"DD7515F2BFC17F85") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"F40379AB9E0EC533") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"96CD27784D1563E5") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"2911CF5E94D33FE1") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"377B7F7CA3E5BBB3") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"701AA63832905A92") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"2006E716C4252D6D") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"452C1197422469F8") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"C33FD1EB49CB64DA") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"7572278F364EB50D") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"69E51488403EF4C3") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"FF847E0ADF192825") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"521B7FB3B41BB791") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"26059A6A0F3F6B35") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"F24A8D2231C77538") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"4FD96EC0D3304EF6") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"18A9D580A900B699") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"88586E1D755B9B5A") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"0F8ADFFB11DC2784") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"2F30446C8312404A") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"0BA03D9E6C196511") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"3E55E997611E4B7D") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"B2522FB5F158F0DF") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"2109425935406AB8") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"11A16028F310FF16") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"73F0C45F379FE67F") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"DCAD4338F7523816") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"B81634C1CEAB298C") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"DD2CCB29B6C4C349") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"7D07A77A2ABD50A7") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"30C1B0C1FD91D371") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"C4427B31AC61973B") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"F47BB46273B15EB5") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"655EA628CF62585F") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"AC978C247863388F") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"0432ED386F2DE328") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"D254014CB986B3C2") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"B256E34BEDB49801") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"37F8759EB77E7BFC") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"5013CA4F62C9CEA0") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"8940F7B3EACA5939") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"E22B19A55086774B") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"B04A2AAC925ABB0B") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"8D250D58361597FC") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"51F0114FB6A6CD37") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"9D0BB4DB830ECB73") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"E96089D6368F3E1A") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"5C4CA877A4E1E92D") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"6D55DDBC8DEA95FF") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"19DF84AC95551003") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"724E7332696D08A7") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"B91810B8CDC58FE2") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"06E23526EDCCD0C4") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"EF52491D5468D441") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"48019C59E39B90C5") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"0544083FB902D8C0") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"63B15CADA668CE12") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"EACC0C1264171071") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"9D2B8C0AC605F274") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"C90F2F4C98A8FB2A") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"03481B4828FD1D04") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"C78FC45A1DCEA2E2") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"DB96D88C3460D801") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"6C69E720F5105518") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"0D262E418BC893F3") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"6AD84FD7848A0A5C") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"C365CB35B34B6114") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"1155392E877F42A9") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"531BE5F9405DA715") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"3BCDD41E6165A5E8") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"2B1FF5610A19270C") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"D90772CF3F047CFD") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"1BEA27FFB72457B7") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"85C3E0C429F34C27") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"F9038021E37C7618") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"35BC6FF838DBA32F") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"4927ACC8CE45ECE7") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"E812EE6E3572985C") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"9BB93A89627BF65F") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"EF12476884CB74CA") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"1BF17E00C09E7CBF") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"29932350C098DB5D") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"B476E6499842AC54") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"5C662C29C1E96056") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"3AF1703D76442789") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"86405D9B425A8C8C") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"EBBF4810619C2C55") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"F8D1CD7367B21B5D") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"9EE703142BF8D7E2") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"5FDFFFC3AAAB0CB3") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"26C940AB13574231") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"1E2DC77E36A84693") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"0F4FF4D9BC7E2244") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"A4C9A0D04D3280CD") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"9FAF2C96FE84919D") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"115DBC965E6096C8") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"AF531E9520994017") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"B971ADE70E5C89EE") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"415D81C86AF9C376") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"8DFB864FDB3C6811") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"10B1C170E3398F91") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"CFEF7A1C0218DB1E") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"DBAC30A2A40B1B9C") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"89D3BF37052162E9") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"80D9230BDAEB67DC") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"3440911019AD68D7") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"9626FE57596E199E") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"DEA0B796624BB5BA") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"E9E40542BDDB3E9D") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"8AD99914B354B911") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"6F85B98DD12CB13B") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"10130DA3C3A23924") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"EFECF25C3C5DC6DB") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"907A46722ED34EC4") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"752666EB4CAB46EE") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"161BFABD4224C162") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"215F48699DB44A45") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"69D901A8A691E661") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"CBBF6EEFE6529728") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"7F26DCF425149823") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"762C40C8FADE9D16") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"2453CF5D5BF4E463") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"301085E3FDE724E1") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"EF4E3E8F1CC6706E") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"720479B024C397EE") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"BEA27E3795063C89") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"468E5218F1A37611") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"50ACE16ADF66BFE8") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"EEA24369A19F6937") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"6050D369017B6E62") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"5B365F2FB2CD7F32") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"F0B00B264381DDBB") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"E1D23881C957B96C") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"D936BF54ECA8BDCE") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"A020003C5554F34C") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"6118FCEBD407281D") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"072E328C984DE4A2") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"1440B7EF9E63D3AA") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"79BFA264BDA57373") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"C50E8FC289BBD876") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"A399D3D63E169FA9") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"4B8919B667BD53AB") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"D66CDCAF3F6724A2") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"E40E81FF3F618340") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"10EDB8977B348B35") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"6446C5769D8409A0") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"17ED1191CA8D67A3") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"B6D8533731BA1318") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"CA439007C7245CD0") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"06FC7FDE1C8389E7") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"7A3C1F3BD60CB3D8") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"E415D80048DBA848") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"26F88D30C0FB8302") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"D4E00A9EF5E6D8F3") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"C4322BE19E9A5A17") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"ACE41A06BFA258EA") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"EEAAC6D17880BD56") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"3C9A34CA4CB49EEB") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"9527B0287B75F5A3") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"F2D9D1BE74376C0C") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"939618DF0AEFAAE7") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"24692773CB9F27FE") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"38703BA5E2315D1D") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"FCB7E4B7D702E2FB") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"36F0D0B3675704D5") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"62D473F539FA0D8B") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"1533F3ED9BE8EF8E") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"9C4EA352599731ED") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"FABBF7C046FD273F") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"B7FE63A61C646F3A") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"10ADB6E2AB972BBE") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"F91DCAD912332F3B") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"46E7EF47323A701D") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"8DB18CCD9692F758") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"E6207B536AAAEFFC") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"92AA224372156A00") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"A3B357885B1E16D2") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"169F7629C970C1E5") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"62F44B247CF1348C") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"AE0FEEB0495932C8") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"72DAF2A7C9EA6803") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"4FB5D5536DA544F4") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"1DD4E65AAF7988B4") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"76BF084C1535A6C6") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"AFEC35B09D36315F") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"C8078A6148818403") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"4DA91CB4124B67FE") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"2DABFEB346794C3D") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"FBCD12C790D21CD7") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"536873DB879CC770") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"9AA159D7309DA7A0") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"0B844B9D8C4EA14A") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"3BBD84CE539E68C4") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"CF3E4F3E026E2C8E") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"82F85885D542AF58") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"22D334D6493B3CB6") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"47E9CB3E3154D673") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"2352BCC708ADC7E9") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"8C0F3BA0C8601980") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"EE5E9FD70CEF00E9") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"DEF6BDA6CABF9547") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"4DADD04A0EA70F20") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"C1AA16689EE1B482") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"F45FC26193E69AEE") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"D0CFBB937CEDBFB5") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"F0752004EE23D87B") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"77A791E28AA464A5") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"E7562A7F56FF4966") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"B026913F2CCFB109") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"0DB572DDCE388AC7") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"D9FA6595F0C094CA") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"ADE4804C4BE4486E") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"007B81F520E6D7DA") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"961AEB77BFC10B3C") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"8A8DD870C9B14AF2") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"3CC02E14B6349B25") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"BAD3EE68BDDB9607") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"DFF918E93BDAD292") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"8FE559C7CD6FA56D") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"C88480835C1A444C") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"D6EE30A16B2CC01E") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"6932D887B2EA9C1A") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"0BFC865461F13ACC") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"228AEA0D403E807A") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"2A2891F65BB8173C") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"5D1B8FAF7839494B") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"1C0A9280EECF5D48") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"6CBCE951BBC30F74") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"9CA66E96BD08BC70") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"F5D779FCFBB28BF3") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"0FEC6BBF9B859184") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"EF88D2BF052DBDA8") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"39ADBDDB7363090D") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"C0AEAF445F7E2A7A") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"C66F54067298D4E9") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"E0BA8F4488AAF97C") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"67B36E2875D9631C") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"1ED83D49E267191D") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"66B2B23EA84693AD") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"7359B2163E4EDC58") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"D117BD6373549FAA") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"C616ACE843958247") ;;; #h"three-key" tests (:ecb-mode-test #h"800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"95A8D72813DAA94D") (:ecb-mode-test #h"400000000000000000000000000000000000000000000000" #h"0000000000000000" #h"0EEC1487DD8C26D5") (:ecb-mode-test #h"200000000000000000000000000000000000000000000000" #h"0000000000000000" #h"7AD16FFB79C45926") (:ecb-mode-test #h"100000000000000000000000000000000000000000000000" #h"0000000000000000" #h"D3746294CA6A6CF3") (:ecb-mode-test #h"080000000000000000000000000000000000000000000000" #h"0000000000000000" #h"809F5F873C1FD761") (:ecb-mode-test #h"040000000000000000000000000000000000000000000000" #h"0000000000000000" #h"C02FAFFEC989D1FC") (:ecb-mode-test #h"020000000000000000000000000000000000000000000000" #h"0000000000000000" #h"4615AA1D33E72F10") (:ecb-mode-test #h"010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"008000000000000000000000000000000000000000000000" #h"0000000000000000" #h"2055123350C00858") (:ecb-mode-test #h"004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"DF3B99D6577397C8") (:ecb-mode-test #h"002000000000000000000000000000000000000000000000" #h"0000000000000000" #h"31FE17369B5288C9") (:ecb-mode-test #h"001000000000000000000000000000000000000000000000" #h"0000000000000000" #h"DFDD3CC64DAE1642") (:ecb-mode-test #h"000800000000000000000000000000000000000000000000" #h"0000000000000000" #h"178C83CE2B399D94") (:ecb-mode-test #h"000400000000000000000000000000000000000000000000" #h"0000000000000000" #h"50F636324A9B7F80") (:ecb-mode-test #h"000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"A8468EE3BC18F06D") (:ecb-mode-test #h"000100000000000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000080000000000000000000000000000000000000000000" #h"0000000000000000" #h"A2DC9E92FD3CDE92") (:ecb-mode-test #h"000040000000000000000000000000000000000000000000" #h"0000000000000000" #h"CAC09F797D031287") (:ecb-mode-test #h"000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"90BA680B22AEB525") (:ecb-mode-test #h"000010000000000000000000000000000000000000000000" #h"0000000000000000" #h"CE7A24F350E280B6") (:ecb-mode-test #h"000008000000000000000000000000000000000000000000" #h"0000000000000000" #h"882BFF0AA01A0B87") (:ecb-mode-test #h"000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"25610288924511C2") (:ecb-mode-test #h"000002000000000000000000000000000000000000000000" #h"0000000000000000" #h"C71516C29C75D170") (:ecb-mode-test #h"000001000000000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000800000000000000000000000000000000000000000" #h"0000000000000000" #h"5199C29A52C9F059") (:ecb-mode-test #h"000000400000000000000000000000000000000000000000" #h"0000000000000000" #h"C22F0A294A71F29F") (:ecb-mode-test #h"000000200000000000000000000000000000000000000000" #h"0000000000000000" #h"EE371483714C02EA") (:ecb-mode-test #h"000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"A81FBD448F9E522F") (:ecb-mode-test #h"000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"4F644C92E192DFED") (:ecb-mode-test #h"000000040000000000000000000000000000000000000000" #h"0000000000000000" #h"1AFA9A66A6DF92AE") (:ecb-mode-test #h"000000020000000000000000000000000000000000000000" #h"0000000000000000" #h"B3C1CC715CB879D8") (:ecb-mode-test #h"000000010000000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"19D032E64AB0BD8B") (:ecb-mode-test #h"000000004000000000000000000000000000000000000000" #h"0000000000000000" #h"3CFAA7A7DC8720DC") (:ecb-mode-test #h"000000002000000000000000000000000000000000000000" #h"0000000000000000" #h"B7265F7F447AC6F3") (:ecb-mode-test #h"000000001000000000000000000000000000000000000000" #h"0000000000000000" #h"9DB73B3C0D163F54") (:ecb-mode-test #h"000000000800000000000000000000000000000000000000" #h"0000000000000000" #h"8181B65BABF4A975") (:ecb-mode-test #h"000000000400000000000000000000000000000000000000" #h"0000000000000000" #h"93C9B64042EAA240") (:ecb-mode-test #h"000000000200000000000000000000000000000000000000" #h"0000000000000000" #h"5570530829705592") (:ecb-mode-test #h"000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000080000000000000000000000000000000000000" #h"0000000000000000" #h"8638809E878787A0") (:ecb-mode-test #h"000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"41B9A79AF79AC208") (:ecb-mode-test #h"000000000020000000000000000000000000000000000000" #h"0000000000000000" #h"7A9BE42F2009A892") (:ecb-mode-test #h"000000000010000000000000000000000000000000000000" #h"0000000000000000" #h"29038D56BA6D2745") (:ecb-mode-test #h"000000000008000000000000000000000000000000000000" #h"0000000000000000" #h"5495C6ABF1E5DF51") (:ecb-mode-test #h"000000000004000000000000000000000000000000000000" #h"0000000000000000" #h"AE13DBD561488933") (:ecb-mode-test #h"000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"024D1FFA8904E389") (:ecb-mode-test #h"000000000001000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000800000000000000000000000000000000000" #h"0000000000000000" #h"D1399712F99BF02E") (:ecb-mode-test #h"000000000000400000000000000000000000000000000000" #h"0000000000000000" #h"14C1D7C1CFFEC79E") (:ecb-mode-test #h"000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"1DE5279DAE3BED6F") (:ecb-mode-test #h"000000000000100000000000000000000000000000000000" #h"0000000000000000" #h"E941A33F85501303") (:ecb-mode-test #h"000000000000080000000000000000000000000000000000" #h"0000000000000000" #h"DA99DBBC9A03F379") (:ecb-mode-test #h"000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"B7FC92F91D8E92E9") (:ecb-mode-test #h"000000000000020000000000000000000000000000000000" #h"0000000000000000" #h"AE8E5CAA3CA04E85") (:ecb-mode-test #h"000000000000010000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000008000000000000000000000000000000000" #h"0000000000000000" #h"9CC62DF43B6EED74") (:ecb-mode-test #h"000000000000004000000000000000000000000000000000" #h"0000000000000000" #h"D863DBB5C59A91A0") (:ecb-mode-test #h"000000000000002000000000000000000000000000000000" #h"0000000000000000" #h"A1AB2190545B91D7") (:ecb-mode-test #h"000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"0875041E64C570F7") (:ecb-mode-test #h"000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"5A594528BEBEF1CC") (:ecb-mode-test #h"000000000000000400000000000000000000000000000000" #h"0000000000000000" #h"FCDB3291DE21F0C0") (:ecb-mode-test #h"000000000000000200000000000000000000000000000000" #h"0000000000000000" #h"869EFD7F9F265A09") (:ecb-mode-test #h"000000000000000100000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"C2A4DD96151453C2") (:ecb-mode-test #h"000000000000000040000000000000000000000000000000" #h"0000000000000000" #h"5E87809F6B8A7ED5") (:ecb-mode-test #h"000000000000000020000000000000000000000000000000" #h"0000000000000000" #h"81B838A1E9CD59B3") (:ecb-mode-test #h"000000000000000010000000000000000000000000000000" #h"0000000000000000" #h"DED028F0C1F5A774") (:ecb-mode-test #h"000000000000000008000000000000000000000000000000" #h"0000000000000000" #h"48C983815809FC87") (:ecb-mode-test #h"000000000000000004000000000000000000000000000000" #h"0000000000000000" #h"C1A75845F22BE951") (:ecb-mode-test #h"000000000000000002000000000000000000000000000000" #h"0000000000000000" #h"C60F823E8E994489") (:ecb-mode-test #h"000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000800000000000000000000000000000" #h"0000000000000000" #h"709F8FCB044172FE") (:ecb-mode-test #h"000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"26BC2DE634BFFFD4") (:ecb-mode-test #h"000000000000000000200000000000000000000000000000" #h"0000000000000000" #h"D98126355C2E03E6") (:ecb-mode-test #h"000000000000000000100000000000000000000000000000" #h"0000000000000000" #h"49AAA91B49345137") (:ecb-mode-test #h"000000000000000000080000000000000000000000000000" #h"0000000000000000" #h"A59854DCE009126D") (:ecb-mode-test #h"000000000000000000040000000000000000000000000000" #h"0000000000000000" #h"21C46B9FDE5CD36B") (:ecb-mode-test #h"000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"DEB4AE36E07BC053") (:ecb-mode-test #h"000000000000000000010000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000008000000000000000000000000000" #h"0000000000000000" #h"D47ADF8B94CACA7A") (:ecb-mode-test #h"000000000000000000004000000000000000000000000000" #h"0000000000000000" #h"D26D9656F91A1EE2") (:ecb-mode-test #h"000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"EE31B8E767C9B337") (:ecb-mode-test #h"000000000000000000001000000000000000000000000000" #h"0000000000000000" #h"D19BA61DD59CE9A1") (:ecb-mode-test #h"000000000000000000000800000000000000000000000000" #h"0000000000000000" #h"482863934D17804B") (:ecb-mode-test #h"000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"78C8CBCAC3B7FD35") (:ecb-mode-test #h"000000000000000000000200000000000000000000000000" #h"0000000000000000" #h"7B8B051E6C8AA8B6") (:ecb-mode-test #h"000000000000000000000100000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000080000000000000000000000000" #h"0000000000000000" #h"8CCFCD2418E85750") (:ecb-mode-test #h"000000000000000000000040000000000000000000000000" #h"0000000000000000" #h"E74CA11808ED17A3") (:ecb-mode-test #h"000000000000000000000020000000000000000000000000" #h"0000000000000000" #h"0A634C7A69897F35") (:ecb-mode-test #h"000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"6C2C0F27E973CE29") (:ecb-mode-test #h"000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"AD5F11ED913E918C") (:ecb-mode-test #h"000000000000000000000004000000000000000000000000" #h"0000000000000000" #h"3CE4B119BC1FC701") (:ecb-mode-test #h"000000000000000000000002000000000000000000000000" #h"0000000000000000" #h"7E6C8995AA52D298") (:ecb-mode-test #h"000000000000000000000001000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"A9FE6341C8621918") (:ecb-mode-test #h"000000000000000000000000400000000000000000000000" #h"0000000000000000" #h"CE99FD5D50B22CEF") (:ecb-mode-test #h"000000000000000000000000200000000000000000000000" #h"0000000000000000" #h"83E55C4A19ABCB56") (:ecb-mode-test #h"000000000000000000000000100000000000000000000000" #h"0000000000000000" #h"96E6A993443B9DD4") (:ecb-mode-test #h"000000000000000000000000080000000000000000000000" #h"0000000000000000" #h"6781B65D74A6B9FB") (:ecb-mode-test #h"000000000000000000000000040000000000000000000000" #h"0000000000000000" #h"D9EF04E272D1A78A") (:ecb-mode-test #h"000000000000000000000000020000000000000000000000" #h"0000000000000000" #h"AC8B09EC3153D57B") (:ecb-mode-test #h"000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000008000000000000000000000" #h"0000000000000000" #h"60B4B8E3A8F5CBEC") (:ecb-mode-test #h"000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"A5AB6F6EB66057A9") (:ecb-mode-test #h"000000000000000000000000002000000000000000000000" #h"0000000000000000" #h"FF7B0E870FB1FD0B") (:ecb-mode-test #h"000000000000000000000000001000000000000000000000" #h"0000000000000000" #h"7497A098AA651D00") (:ecb-mode-test #h"000000000000000000000000000800000000000000000000" #h"0000000000000000" #h"270A943BEABEA8EC") (:ecb-mode-test #h"000000000000000000000000000400000000000000000000" #h"0000000000000000" #h"67DB327ED5DF89E3") (:ecb-mode-test #h"000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"4871C3B7436121DE") (:ecb-mode-test #h"000000000000000000000000000100000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000080000000000000000000" #h"0000000000000000" #h"41BBC8EF36654838") (:ecb-mode-test #h"000000000000000000000000000040000000000000000000" #h"0000000000000000" #h"FCBD166CA0EA87E2") (:ecb-mode-test #h"000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"9DFFC6EE9751B5CF") (:ecb-mode-test #h"000000000000000000000000000010000000000000000000" #h"0000000000000000" #h"C01B7878EBCE8DD3") (:ecb-mode-test #h"000000000000000000000000000008000000000000000000" #h"0000000000000000" #h"357E5A4DC162D715") (:ecb-mode-test #h"000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"268F93CAEB248E2E") (:ecb-mode-test #h"000000000000000000000000000002000000000000000000" #h"0000000000000000" #h"A5D4174744B84E7D") (:ecb-mode-test #h"000000000000000000000000000001000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000800000000000000000" #h"0000000000000000" #h"46F5E7077CB869A8") (:ecb-mode-test #h"000000000000000000000000000000400000000000000000" #h"0000000000000000" #h"502CD2BF4FC0B793") (:ecb-mode-test #h"000000000000000000000000000000200000000000000000" #h"0000000000000000" #h"C0278007230589E4") (:ecb-mode-test #h"000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"52710C55818FAF52") (:ecb-mode-test #h"000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"DF4A77123610F2B1") (:ecb-mode-test #h"000000000000000000000000000000040000000000000000" #h"0000000000000000" #h"EF840B00DA448234") (:ecb-mode-test #h"000000000000000000000000000000020000000000000000" #h"0000000000000000" #h"FFCCC32A699CB7C5") (:ecb-mode-test #h"000000000000000000000000000000010000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"95A8D72813DAA94D") (:ecb-mode-test #h"000000000000000000000000000000004000000000000000" #h"0000000000000000" #h"0EEC1487DD8C26D5") (:ecb-mode-test #h"000000000000000000000000000000002000000000000000" #h"0000000000000000" #h"7AD16FFB79C45926") (:ecb-mode-test #h"000000000000000000000000000000001000000000000000" #h"0000000000000000" #h"D3746294CA6A6CF3") (:ecb-mode-test #h"000000000000000000000000000000000800000000000000" #h"0000000000000000" #h"809F5F873C1FD761") (:ecb-mode-test #h"000000000000000000000000000000000400000000000000" #h"0000000000000000" #h"C02FAFFEC989D1FC") (:ecb-mode-test #h"000000000000000000000000000000000200000000000000" #h"0000000000000000" #h"4615AA1D33E72F10") (:ecb-mode-test #h"000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000080000000000000" #h"0000000000000000" #h"2055123350C00858") (:ecb-mode-test #h"000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"DF3B99D6577397C8") (:ecb-mode-test #h"000000000000000000000000000000000020000000000000" #h"0000000000000000" #h"31FE17369B5288C9") (:ecb-mode-test #h"000000000000000000000000000000000010000000000000" #h"0000000000000000" #h"DFDD3CC64DAE1642") (:ecb-mode-test #h"000000000000000000000000000000000008000000000000" #h"0000000000000000" #h"178C83CE2B399D94") (:ecb-mode-test #h"000000000000000000000000000000000004000000000000" #h"0000000000000000" #h"50F636324A9B7F80") (:ecb-mode-test #h"000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"A8468EE3BC18F06D") (:ecb-mode-test #h"000000000000000000000000000000000001000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000800000000000" #h"0000000000000000" #h"A2DC9E92FD3CDE92") (:ecb-mode-test #h"000000000000000000000000000000000000400000000000" #h"0000000000000000" #h"CAC09F797D031287") (:ecb-mode-test #h"000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"90BA680B22AEB525") (:ecb-mode-test #h"000000000000000000000000000000000000100000000000" #h"0000000000000000" #h"CE7A24F350E280B6") (:ecb-mode-test #h"000000000000000000000000000000000000080000000000" #h"0000000000000000" #h"882BFF0AA01A0B87") (:ecb-mode-test #h"000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"25610288924511C2") (:ecb-mode-test #h"000000000000000000000000000000000000020000000000" #h"0000000000000000" #h"C71516C29C75D170") (:ecb-mode-test #h"000000000000000000000000000000000000010000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000008000000000" #h"0000000000000000" #h"5199C29A52C9F059") (:ecb-mode-test #h"000000000000000000000000000000000000004000000000" #h"0000000000000000" #h"C22F0A294A71F29F") (:ecb-mode-test #h"000000000000000000000000000000000000002000000000" #h"0000000000000000" #h"EE371483714C02EA") (:ecb-mode-test #h"000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"A81FBD448F9E522F") (:ecb-mode-test #h"000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"4F644C92E192DFED") (:ecb-mode-test #h"000000000000000000000000000000000000000400000000" #h"0000000000000000" #h"1AFA9A66A6DF92AE") (:ecb-mode-test #h"000000000000000000000000000000000000000200000000" #h"0000000000000000" #h"B3C1CC715CB879D8") (:ecb-mode-test #h"000000000000000000000000000000000000000100000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"19D032E64AB0BD8B") (:ecb-mode-test #h"000000000000000000000000000000000000000040000000" #h"0000000000000000" #h"3CFAA7A7DC8720DC") (:ecb-mode-test #h"000000000000000000000000000000000000000020000000" #h"0000000000000000" #h"B7265F7F447AC6F3") (:ecb-mode-test #h"000000000000000000000000000000000000000010000000" #h"0000000000000000" #h"9DB73B3C0D163F54") (:ecb-mode-test #h"000000000000000000000000000000000000000008000000" #h"0000000000000000" #h"8181B65BABF4A975") (:ecb-mode-test #h"000000000000000000000000000000000000000004000000" #h"0000000000000000" #h"93C9B64042EAA240") (:ecb-mode-test #h"000000000000000000000000000000000000000002000000" #h"0000000000000000" #h"5570530829705592") (:ecb-mode-test #h"000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000000000800000" #h"0000000000000000" #h"8638809E878787A0") (:ecb-mode-test #h"000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"41B9A79AF79AC208") (:ecb-mode-test #h"000000000000000000000000000000000000000000200000" #h"0000000000000000" #h"7A9BE42F2009A892") (:ecb-mode-test #h"000000000000000000000000000000000000000000100000" #h"0000000000000000" #h"29038D56BA6D2745") (:ecb-mode-test #h"000000000000000000000000000000000000000000080000" #h"0000000000000000" #h"5495C6ABF1E5DF51") (:ecb-mode-test #h"000000000000000000000000000000000000000000040000" #h"0000000000000000" #h"AE13DBD561488933") (:ecb-mode-test #h"000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"024D1FFA8904E389") (:ecb-mode-test #h"000000000000000000000000000000000000000000010000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000000000008000" #h"0000000000000000" #h"D1399712F99BF02E") (:ecb-mode-test #h"000000000000000000000000000000000000000000004000" #h"0000000000000000" #h"14C1D7C1CFFEC79E") (:ecb-mode-test #h"000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"1DE5279DAE3BED6F") (:ecb-mode-test #h"000000000000000000000000000000000000000000001000" #h"0000000000000000" #h"E941A33F85501303") (:ecb-mode-test #h"000000000000000000000000000000000000000000000800" #h"0000000000000000" #h"DA99DBBC9A03F379") (:ecb-mode-test #h"000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"B7FC92F91D8E92E9") (:ecb-mode-test #h"000000000000000000000000000000000000000000000200" #h"0000000000000000" #h"AE8E5CAA3CA04E85") (:ecb-mode-test #h"000000000000000000000000000000000000000000000100" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000080" #h"0000000000000000" #h"9CC62DF43B6EED74") (:ecb-mode-test #h"000000000000000000000000000000000000000000000040" #h"0000000000000000" #h"D863DBB5C59A91A0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000020" #h"0000000000000000" #h"A1AB2190545B91D7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"0875041E64C570F7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"5A594528BEBEF1CC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000004" #h"0000000000000000" #h"FCDB3291DE21F0C0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000002" #h"0000000000000000" #h"869EFD7F9F265A09") (:ecb-mode-test #h"000000000000000000000000000000000000000000000001" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"95F8A5E5DD31D900") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"4000000000000000" #h"DD7F121CA5015619") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"2000000000000000" #h"2E8653104F3834EA") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"1000000000000000" #h"4BD388FF6CD81D4F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0800000000000000" #h"20B9E767B2FB1456") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0400000000000000" #h"55579380D77138EF") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0200000000000000" #h"6CC5DEFAAF04512F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"0D9F279BA5D87260") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0080000000000000" #h"D9031B0271BD5A0A") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"424250B37C3DD951") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0020000000000000" #h"B8061B7ECD9A21E5") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0010000000000000" #h"F15D0F286B65BD28") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0008000000000000" #h"ADD0CC8D6E5DEBA1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0004000000000000" #h"E6D5F82752AD63D1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"ECBFE3BD3F591A5E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0001000000000000" #h"F356834379D165CD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000800000000000" #h"2B9F982F20037FA9") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000400000000000" #h"889DE068A16F0BE6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"E19E275D846A1298") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000100000000000" #h"329A8ED523D71AEC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000080000000000" #h"E7FCE22557D23C97") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"12A9F5817FF2D65D") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000020000000000" #h"A484C3AD38DC9C19") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000010000000000" #h"FBE00A8A1EF8AD72") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000008000000000" #h"750D079407521363") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000004000000000" #h"64FEED9C724C2FAF") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000002000000000" #h"F02B263B328E2B60") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"9D64555A9A10B852") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"D106FF0BED5255D7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000400000000" #h"E1652C6B138C64A5") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000200000000" #h"E428581186EC8F46") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000100000000" #h"AEB5F5EDE22D1A36") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"E943D7568AEC0C5C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000040000000" #h"DF98C8276F54B04B") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000020000000" #h"B160E4680F6C696F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000010000000" #h"FA0752B07D9C4AB8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000008000000" #h"CA3A2B036DBC8502") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000004000000" #h"5E0905517BB59BCF") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000002000000" #h"814EEB3B91D90726") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"4D49DB1532919C9F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000800000" #h"25EB5FC3F8CF0621") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"AB6A20C0620D1C6F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000200000" #h"79E90DBC98F92CCA") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000100000" #h"866ECEDD8072BB0E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000080000" #h"8B54536F2F3E64A8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000040000" #h"EA51D3975595B86B") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"CAFFC6AC4542DE31") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000010000" #h"8DD45A2DDF90796C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000008000" #h"1029D55E880EC2D0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000004000" #h"5D86CB23639DBEA9") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"1D1CA853AE7C0C5F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000001000" #h"CE332329248F3228") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000800" #h"8405D1ABE24FB942") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"E643D78090CA4207") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000200" #h"48221B9937748A23") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000100" #h"DD7C0BBD61FAFD54") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000080" #h"2FBC291A570DB5C4") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000040" #h"E07C30D7E4E26E12") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000020" #h"0953E2258E8E90A1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"5B711BC4CEEBF2EE") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"CC083F1E6D9E85F6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000004" #h"D2FD8867D50D2DFE") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000002" #h"06E7EA22CE92708F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000001" #h"166B40B44ABA4BD6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"8CA64DE9C1B123A7") (:ecb-mode-test #h"010101010101010101010101010101010101010101010101" #h"0101010101010101" #h"994D4DC157B96C52") (:ecb-mode-test #h"020202020202020202020202020202020202020202020202" #h"0202020202020202" #h"E127C2B61D98E6E2") (:ecb-mode-test #h"030303030303030303030303030303030303030303030303" #h"0303030303030303" #h"984C91D78A269CE3") (:ecb-mode-test #h"040404040404040404040404040404040404040404040404" #h"0404040404040404" #h"1F4570BB77550683") (:ecb-mode-test #h"050505050505050505050505050505050505050505050505" #h"0505050505050505" #h"3990ABF98D672B16") (:ecb-mode-test #h"060606060606060606060606060606060606060606060606" #h"0606060606060606" #h"3F5150BBA081D585") (:ecb-mode-test #h"070707070707070707070707070707070707070707070707" #h"0707070707070707" #h"C65242248C9CF6F2") (:ecb-mode-test #h"080808080808080808080808080808080808080808080808" #h"0808080808080808" #h"10772D40FAD24257") (:ecb-mode-test #h"090909090909090909090909090909090909090909090909" #h"0909090909090909" #h"F0139440647A6E7B") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"0A288603044D740C") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"6359916942F7438F") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"934316AE443CF08B") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"E3F56D7F1130A2B7") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"A2E4705087C6B6B4") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"D5D76E09A447E8C3") (:ecb-mode-test #h"101010101010101010101010101010101010101010101010" #h"1010101010101010" #h"DD7515F2BFC17F85") (:ecb-mode-test #h"111111111111111111111111111111111111111111111111" #h"1111111111111111" #h"F40379AB9E0EC533") (:ecb-mode-test #h"121212121212121212121212121212121212121212121212" #h"1212121212121212" #h"96CD27784D1563E5") (:ecb-mode-test #h"131313131313131313131313131313131313131313131313" #h"1313131313131313" #h"2911CF5E94D33FE1") (:ecb-mode-test #h"141414141414141414141414141414141414141414141414" #h"1414141414141414" #h"377B7F7CA3E5BBB3") (:ecb-mode-test #h"151515151515151515151515151515151515151515151515" #h"1515151515151515" #h"701AA63832905A92") (:ecb-mode-test #h"161616161616161616161616161616161616161616161616" #h"1616161616161616" #h"2006E716C4252D6D") (:ecb-mode-test #h"171717171717171717171717171717171717171717171717" #h"1717171717171717" #h"452C1197422469F8") (:ecb-mode-test #h"181818181818181818181818181818181818181818181818" #h"1818181818181818" #h"C33FD1EB49CB64DA") (:ecb-mode-test #h"191919191919191919191919191919191919191919191919" #h"1919191919191919" #h"7572278F364EB50D") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"69E51488403EF4C3") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"FF847E0ADF192825") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"521B7FB3B41BB791") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"26059A6A0F3F6B35") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"F24A8D2231C77538") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"4FD96EC0D3304EF6") (:ecb-mode-test #h"202020202020202020202020202020202020202020202020" #h"2020202020202020" #h"18A9D580A900B699") (:ecb-mode-test #h"212121212121212121212121212121212121212121212121" #h"2121212121212121" #h"88586E1D755B9B5A") (:ecb-mode-test #h"222222222222222222222222222222222222222222222222" #h"2222222222222222" #h"0F8ADFFB11DC2784") (:ecb-mode-test #h"232323232323232323232323232323232323232323232323" #h"2323232323232323" #h"2F30446C8312404A") (:ecb-mode-test #h"242424242424242424242424242424242424242424242424" #h"2424242424242424" #h"0BA03D9E6C196511") (:ecb-mode-test #h"252525252525252525252525252525252525252525252525" #h"2525252525252525" #h"3E55E997611E4B7D") (:ecb-mode-test #h"262626262626262626262626262626262626262626262626" #h"2626262626262626" #h"B2522FB5F158F0DF") (:ecb-mode-test #h"272727272727272727272727272727272727272727272727" #h"2727272727272727" #h"2109425935406AB8") (:ecb-mode-test #h"282828282828282828282828282828282828282828282828" #h"2828282828282828" #h"11A16028F310FF16") (:ecb-mode-test #h"292929292929292929292929292929292929292929292929" #h"2929292929292929" #h"73F0C45F379FE67F") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"DCAD4338F7523816") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"B81634C1CEAB298C") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"DD2CCB29B6C4C349") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"7D07A77A2ABD50A7") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"30C1B0C1FD91D371") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"C4427B31AC61973B") (:ecb-mode-test #h"303030303030303030303030303030303030303030303030" #h"3030303030303030" #h"F47BB46273B15EB5") (:ecb-mode-test #h"313131313131313131313131313131313131313131313131" #h"3131313131313131" #h"655EA628CF62585F") (:ecb-mode-test #h"323232323232323232323232323232323232323232323232" #h"3232323232323232" #h"AC978C247863388F") (:ecb-mode-test #h"333333333333333333333333333333333333333333333333" #h"3333333333333333" #h"0432ED386F2DE328") (:ecb-mode-test #h"343434343434343434343434343434343434343434343434" #h"3434343434343434" #h"D254014CB986B3C2") (:ecb-mode-test #h"353535353535353535353535353535353535353535353535" #h"3535353535353535" #h"B256E34BEDB49801") (:ecb-mode-test #h"363636363636363636363636363636363636363636363636" #h"3636363636363636" #h"37F8759EB77E7BFC") (:ecb-mode-test #h"373737373737373737373737373737373737373737373737" #h"3737373737373737" #h"5013CA4F62C9CEA0") (:ecb-mode-test #h"383838383838383838383838383838383838383838383838" #h"3838383838383838" #h"8940F7B3EACA5939") (:ecb-mode-test #h"393939393939393939393939393939393939393939393939" #h"3939393939393939" #h"E22B19A55086774B") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"B04A2AAC925ABB0B") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"8D250D58361597FC") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"51F0114FB6A6CD37") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"9D0BB4DB830ECB73") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"E96089D6368F3E1A") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"5C4CA877A4E1E92D") (:ecb-mode-test #h"404040404040404040404040404040404040404040404040" #h"4040404040404040" #h"6D55DDBC8DEA95FF") (:ecb-mode-test #h"414141414141414141414141414141414141414141414141" #h"4141414141414141" #h"19DF84AC95551003") (:ecb-mode-test #h"424242424242424242424242424242424242424242424242" #h"4242424242424242" #h"724E7332696D08A7") (:ecb-mode-test #h"434343434343434343434343434343434343434343434343" #h"4343434343434343" #h"B91810B8CDC58FE2") (:ecb-mode-test #h"444444444444444444444444444444444444444444444444" #h"4444444444444444" #h"06E23526EDCCD0C4") (:ecb-mode-test #h"454545454545454545454545454545454545454545454545" #h"4545454545454545" #h"EF52491D5468D441") (:ecb-mode-test #h"464646464646464646464646464646464646464646464646" #h"4646464646464646" #h"48019C59E39B90C5") (:ecb-mode-test #h"474747474747474747474747474747474747474747474747" #h"4747474747474747" #h"0544083FB902D8C0") (:ecb-mode-test #h"484848484848484848484848484848484848484848484848" #h"4848484848484848" #h"63B15CADA668CE12") (:ecb-mode-test #h"494949494949494949494949494949494949494949494949" #h"4949494949494949" #h"EACC0C1264171071") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"9D2B8C0AC605F274") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"C90F2F4C98A8FB2A") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"03481B4828FD1D04") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"C78FC45A1DCEA2E2") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"DB96D88C3460D801") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"6C69E720F5105518") (:ecb-mode-test #h"505050505050505050505050505050505050505050505050" #h"5050505050505050" #h"0D262E418BC893F3") (:ecb-mode-test #h"515151515151515151515151515151515151515151515151" #h"5151515151515151" #h"6AD84FD7848A0A5C") (:ecb-mode-test #h"525252525252525252525252525252525252525252525252" #h"5252525252525252" #h"C365CB35B34B6114") (:ecb-mode-test #h"535353535353535353535353535353535353535353535353" #h"5353535353535353" #h"1155392E877F42A9") (:ecb-mode-test #h"545454545454545454545454545454545454545454545454" #h"5454545454545454" #h"531BE5F9405DA715") (:ecb-mode-test #h"555555555555555555555555555555555555555555555555" #h"5555555555555555" #h"3BCDD41E6165A5E8") (:ecb-mode-test #h"565656565656565656565656565656565656565656565656" #h"5656565656565656" #h"2B1FF5610A19270C") (:ecb-mode-test #h"575757575757575757575757575757575757575757575757" #h"5757575757575757" #h"D90772CF3F047CFD") (:ecb-mode-test #h"585858585858585858585858585858585858585858585858" #h"5858585858585858" #h"1BEA27FFB72457B7") (:ecb-mode-test #h"595959595959595959595959595959595959595959595959" #h"5959595959595959" #h"85C3E0C429F34C27") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"F9038021E37C7618") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"35BC6FF838DBA32F") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"4927ACC8CE45ECE7") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"E812EE6E3572985C") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"9BB93A89627BF65F") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"EF12476884CB74CA") (:ecb-mode-test #h"606060606060606060606060606060606060606060606060" #h"6060606060606060" #h"1BF17E00C09E7CBF") (:ecb-mode-test #h"616161616161616161616161616161616161616161616161" #h"6161616161616161" #h"29932350C098DB5D") (:ecb-mode-test #h"626262626262626262626262626262626262626262626262" #h"6262626262626262" #h"B476E6499842AC54") (:ecb-mode-test #h"636363636363636363636363636363636363636363636363" #h"6363636363636363" #h"5C662C29C1E96056") (:ecb-mode-test #h"646464646464646464646464646464646464646464646464" #h"6464646464646464" #h"3AF1703D76442789") (:ecb-mode-test #h"656565656565656565656565656565656565656565656565" #h"6565656565656565" #h"86405D9B425A8C8C") (:ecb-mode-test #h"666666666666666666666666666666666666666666666666" #h"6666666666666666" #h"EBBF4810619C2C55") (:ecb-mode-test #h"676767676767676767676767676767676767676767676767" #h"6767676767676767" #h"F8D1CD7367B21B5D") (:ecb-mode-test #h"686868686868686868686868686868686868686868686868" #h"6868686868686868" #h"9EE703142BF8D7E2") (:ecb-mode-test #h"696969696969696969696969696969696969696969696969" #h"6969696969696969" #h"5FDFFFC3AAAB0CB3") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"26C940AB13574231") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"1E2DC77E36A84693") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"0F4FF4D9BC7E2244") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"A4C9A0D04D3280CD") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"9FAF2C96FE84919D") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"115DBC965E6096C8") (:ecb-mode-test #h"707070707070707070707070707070707070707070707070" #h"7070707070707070" #h"AF531E9520994017") (:ecb-mode-test #h"717171717171717171717171717171717171717171717171" #h"7171717171717171" #h"B971ADE70E5C89EE") (:ecb-mode-test #h"727272727272727272727272727272727272727272727272" #h"7272727272727272" #h"415D81C86AF9C376") (:ecb-mode-test #h"737373737373737373737373737373737373737373737373" #h"7373737373737373" #h"8DFB864FDB3C6811") (:ecb-mode-test #h"747474747474747474747474747474747474747474747474" #h"7474747474747474" #h"10B1C170E3398F91") (:ecb-mode-test #h"757575757575757575757575757575757575757575757575" #h"7575757575757575" #h"CFEF7A1C0218DB1E") (:ecb-mode-test #h"767676767676767676767676767676767676767676767676" #h"7676767676767676" #h"DBAC30A2A40B1B9C") (:ecb-mode-test #h"777777777777777777777777777777777777777777777777" #h"7777777777777777" #h"89D3BF37052162E9") (:ecb-mode-test #h"787878787878787878787878787878787878787878787878" #h"7878787878787878" #h"80D9230BDAEB67DC") (:ecb-mode-test #h"797979797979797979797979797979797979797979797979" #h"7979797979797979" #h"3440911019AD68D7") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"9626FE57596E199E") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"DEA0B796624BB5BA") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"E9E40542BDDB3E9D") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"8AD99914B354B911") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"6F85B98DD12CB13B") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"10130DA3C3A23924") (:ecb-mode-test #h"808080808080808080808080808080808080808080808080" #h"8080808080808080" #h"EFECF25C3C5DC6DB") (:ecb-mode-test #h"818181818181818181818181818181818181818181818181" #h"8181818181818181" #h"907A46722ED34EC4") (:ecb-mode-test #h"828282828282828282828282828282828282828282828282" #h"8282828282828282" #h"752666EB4CAB46EE") (:ecb-mode-test #h"838383838383838383838383838383838383838383838383" #h"8383838383838383" #h"161BFABD4224C162") (:ecb-mode-test #h"848484848484848484848484848484848484848484848484" #h"8484848484848484" #h"215F48699DB44A45") (:ecb-mode-test #h"858585858585858585858585858585858585858585858585" #h"8585858585858585" #h"69D901A8A691E661") (:ecb-mode-test #h"868686868686868686868686868686868686868686868686" #h"8686868686868686" #h"CBBF6EEFE6529728") (:ecb-mode-test #h"878787878787878787878787878787878787878787878787" #h"8787878787878787" #h"7F26DCF425149823") (:ecb-mode-test #h"888888888888888888888888888888888888888888888888" #h"8888888888888888" #h"762C40C8FADE9D16") (:ecb-mode-test #h"898989898989898989898989898989898989898989898989" #h"8989898989898989" #h"2453CF5D5BF4E463") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"301085E3FDE724E1") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"EF4E3E8F1CC6706E") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"720479B024C397EE") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"BEA27E3795063C89") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"468E5218F1A37611") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"50ACE16ADF66BFE8") (:ecb-mode-test #h"909090909090909090909090909090909090909090909090" #h"9090909090909090" #h"EEA24369A19F6937") (:ecb-mode-test #h"919191919191919191919191919191919191919191919191" #h"9191919191919191" #h"6050D369017B6E62") (:ecb-mode-test #h"929292929292929292929292929292929292929292929292" #h"9292929292929292" #h"5B365F2FB2CD7F32") (:ecb-mode-test #h"939393939393939393939393939393939393939393939393" #h"9393939393939393" #h"F0B00B264381DDBB") (:ecb-mode-test #h"949494949494949494949494949494949494949494949494" #h"9494949494949494" #h"E1D23881C957B96C") (:ecb-mode-test #h"959595959595959595959595959595959595959595959595" #h"9595959595959595" #h"D936BF54ECA8BDCE") (:ecb-mode-test #h"969696969696969696969696969696969696969696969696" #h"9696969696969696" #h"A020003C5554F34C") (:ecb-mode-test #h"979797979797979797979797979797979797979797979797" #h"9797979797979797" #h"6118FCEBD407281D") (:ecb-mode-test #h"989898989898989898989898989898989898989898989898" #h"9898989898989898" #h"072E328C984DE4A2") (:ecb-mode-test #h"999999999999999999999999999999999999999999999999" #h"9999999999999999" #h"1440B7EF9E63D3AA") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"79BFA264BDA57373") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"C50E8FC289BBD876") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"A399D3D63E169FA9") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"4B8919B667BD53AB") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"D66CDCAF3F6724A2") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"E40E81FF3F618340") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"10EDB8977B348B35") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"6446C5769D8409A0") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"17ED1191CA8D67A3") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"B6D8533731BA1318") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"CA439007C7245CD0") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"06FC7FDE1C8389E7") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"7A3C1F3BD60CB3D8") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"E415D80048DBA848") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"26F88D30C0FB8302") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"D4E00A9EF5E6D8F3") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"C4322BE19E9A5A17") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"ACE41A06BFA258EA") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"EEAAC6D17880BD56") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"3C9A34CA4CB49EEB") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"9527B0287B75F5A3") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"F2D9D1BE74376C0C") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"939618DF0AEFAAE7") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"24692773CB9F27FE") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"38703BA5E2315D1D") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"FCB7E4B7D702E2FB") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"36F0D0B3675704D5") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"62D473F539FA0D8B") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"1533F3ED9BE8EF8E") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"9C4EA352599731ED") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"FABBF7C046FD273F") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"B7FE63A61C646F3A") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"10ADB6E2AB972BBE") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"F91DCAD912332F3B") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"46E7EF47323A701D") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"8DB18CCD9692F758") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"E6207B536AAAEFFC") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"92AA224372156A00") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"A3B357885B1E16D2") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"169F7629C970C1E5") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"62F44B247CF1348C") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"AE0FEEB0495932C8") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"72DAF2A7C9EA6803") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"4FB5D5536DA544F4") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"1DD4E65AAF7988B4") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"76BF084C1535A6C6") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"AFEC35B09D36315F") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"C8078A6148818403") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"4DA91CB4124B67FE") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"2DABFEB346794C3D") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"FBCD12C790D21CD7") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"536873DB879CC770") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"9AA159D7309DA7A0") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"0B844B9D8C4EA14A") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"3BBD84CE539E68C4") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"CF3E4F3E026E2C8E") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"82F85885D542AF58") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"22D334D6493B3CB6") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"47E9CB3E3154D673") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"2352BCC708ADC7E9") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"8C0F3BA0C8601980") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"EE5E9FD70CEF00E9") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"DEF6BDA6CABF9547") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"4DADD04A0EA70F20") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"C1AA16689EE1B482") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"F45FC26193E69AEE") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"D0CFBB937CEDBFB5") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"F0752004EE23D87B") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"77A791E28AA464A5") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"E7562A7F56FF4966") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"B026913F2CCFB109") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"0DB572DDCE388AC7") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"D9FA6595F0C094CA") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"ADE4804C4BE4486E") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"007B81F520E6D7DA") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"961AEB77BFC10B3C") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"8A8DD870C9B14AF2") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"3CC02E14B6349B25") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"BAD3EE68BDDB9607") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"DFF918E93BDAD292") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"8FE559C7CD6FA56D") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"C88480835C1A444C") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"D6EE30A16B2CC01E") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"6932D887B2EA9C1A") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"0BFC865461F13ACC") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"228AEA0D403E807A") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"2A2891F65BB8173C") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"5D1B8FAF7839494B") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"1C0A9280EECF5D48") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"6CBCE951BBC30F74") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"9CA66E96BD08BC70") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"F5D779FCFBB28BF3") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"0FEC6BBF9B859184") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"EF88D2BF052DBDA8") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"39ADBDDB7363090D") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"C0AEAF445F7E2A7A") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"C66F54067298D4E9") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"E0BA8F4488AAF97C") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"67B36E2875D9631C") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"1ED83D49E267191D") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"66B2B23EA84693AD") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"7359B2163E4EDC58") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F1011121314151617" #h"0011223344556677" #h"97A25BA82B564F4C") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF482BD6459F82C5B300" #h"EA024714AD5C4D84" #h"C616ACE843958247")ironclad_0.33.0/testing/test-vectors/blowfish.testvec0000644000175000017500000001142611305364032017766 0ustar00(:ecb-mode-test #h"0000000000000000" #h"0000000000000000" #h"4EF997456198DD78") (:ecb-mode-test #h"FFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"51866FD5B85ECB8A") (:ecb-mode-test #h"3000000000000000" #h"1000000000000001" #h"7D856F9A613063F2") (:ecb-mode-test #h"1111111111111111" #h"1111111111111111" #h"2466DD878B963C9D") (:ecb-mode-test #h"0123456789ABCDEF" #h"1111111111111111" #h"61F9C3802281B096") (:ecb-mode-test #h"1111111111111111" #h"0123456789ABCDEF" #h"7D0CC630AFDA1EC7") (:ecb-mode-test #h"0000000000000000" #h"0000000000000000" #h"4EF997456198DD78") (:ecb-mode-test #h"FEDCBA9876543210" #h"0123456789ABCDEF" #h"0ACEAB0FC6A0A28D") (:ecb-mode-test #h"7CA110454A1A6E57" #h"01A1D6D039776742" #h"59C68245EB05282B") (:ecb-mode-test #h"0131D9619DC1376E" #h"5CD54CA83DEF57DA" #h"B1B8CC0B250F09A0") (:ecb-mode-test #h"07A1133E4A0B2686" #h"0248D43806F67172" #h"1730E5778BEA1DA4") (:ecb-mode-test #h"3849674C2602319E" #h"51454B582DDF440A" #h"A25E7856CF2651EB") (:ecb-mode-test #h"04B915BA43FEB5B6" #h"42FD443059577FA2" #h"353882B109CE8F1A") (:ecb-mode-test #h"0113B970FD34F2CE" #h"059B5E0851CF143A" #h"48F4D0884C379918") (:ecb-mode-test #h"0170F175468FB5E6" #h"0756D8E0774761D2" #h"432193B78951FC98") (:ecb-mode-test #h"43297FAD38E373FE" #h"762514B829BF486A" #h"13F04154D69D1AE5") (:ecb-mode-test #h"07A7137045DA2A16" #h"3BDD119049372802" #h"2EEDDA93FFD39C79") (:ecb-mode-test #h"04689104C2FD3B2F" #h"26955F6835AF609A" #h"D887E0393C2DA6E3") (:ecb-mode-test #h"37D06BB516CB7546" #h"164D5E404F275232" #h"5F99D04F5B163969") (:ecb-mode-test #h"1F08260D1AC2465E" #h"6B056E18759F5CCA" #h"4A057A3B24D3977B") (:ecb-mode-test #h"584023641ABA6176" #h"004BD6EF09176062" #h"452031C1E4FADA8E") (:ecb-mode-test #h"025816164629B007" #h"480D39006EE762F2" #h"7555AE39F59B87BD") (:ecb-mode-test #h"49793EBC79B3258F" #h"437540C8698F3CFA" #h"53C55F9CB49FC019") (:ecb-mode-test #h"4FB05E1515AB73A7" #h"072D43A077075292" #h"7A8E7BFA937E89A3") (:ecb-mode-test #h"49E95D6D4CA229BF" #h"02FE55778117F12A" #h"CF9C5D7A4986ADB5") (:ecb-mode-test #h"018310DC409B26D6" #h"1D9D5C5018F728C2" #h"D1ABB290658BC778") (:ecb-mode-test #h"1C587F1C13924FEF" #h"305532286D6F295A" #h"55CB3774D13EF201") (:ecb-mode-test #h"0101010101010101" #h"0123456789ABCDEF" #h"FA34EC4847B268B2") (:ecb-mode-test #h"1F1F1F1F0E0E0E0E" #h"0123456789ABCDEF" #h"A790795108EA3CAE") (:ecb-mode-test #h"E0FEE0FEF1FEF1FE" #h"0123456789ABCDEF" #h"C39E072D9FAC631D") (:ecb-mode-test #h"0000000000000000" #h"FFFFFFFFFFFFFFFF" #h"014933E0CDAFF6E4") (:ecb-mode-test #h"FFFFFFFFFFFFFFFF" #h"0000000000000000" #h"F21E9A77B71C49BC") (:ecb-mode-test #h"0123456789ABCDEF" #h"0000000000000000" #h"245946885754369A") (:ecb-mode-test #h"FEDCBA9876543210" #h"FFFFFFFFFFFFFFFF" #h"6B5C5A9C5D9E0A5A") ;;; variable key length tests (:ecb-mode-test #h"F0" #h"FEDCBA9876543210" #h"F9AD597C49DB005E") (:ecb-mode-test #h"F0E1" #h"FEDCBA9876543210" #h"E91D21C1D961A6D6") (:ecb-mode-test #h"F0E1D2" #h"FEDCBA9876543210" #h"E9C2B70A1BC65CF3") (:ecb-mode-test #h"F0E1D2C3" #h"FEDCBA9876543210" #h"BE1E639408640F05") (:ecb-mode-test #h"F0E1D2C3B4" #h"FEDCBA9876543210" #h"B39E44481BDB1E6E") (:ecb-mode-test #h"F0E1D2C3B4A5" #h"FEDCBA9876543210" #h"9457AA83B1928C0D") (:ecb-mode-test #h"F0E1D2C3B4A596" #h"FEDCBA9876543210" #h"8BB77032F960629D") (:ecb-mode-test #h"F0E1D2C3B4A59687" #h"FEDCBA9876543210" #h"E87A244E2CC85E82") (:ecb-mode-test #h"F0E1D2C3B4A5968778" #h"FEDCBA9876543210" #h"15750E7A4F4EC577") (:ecb-mode-test #h"F0E1D2C3B4A596877869" #h"FEDCBA9876543210" #h"122BA70B3AB64AE0") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A" #h"FEDCBA9876543210" #h"3A833C9AFFC537F6") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B" #h"FEDCBA9876543210" #h"9409DA87A90F6BF2") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C" #h"FEDCBA9876543210" #h"884F80625060B8B4") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D" #h"FEDCBA9876543210" #h"1F85031C19E11968") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E" #h"FEDCBA9876543210" #h"79D9373A714CA34F") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F" #h"FEDCBA9876543210" #h"93142887EE3BE15C") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F00" #h"FEDCBA9876543210" #h"03429E838CE2D14B") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F0011" #h"FEDCBA9876543210" #h"A4299E27469FF67B") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F001122" #h"FEDCBA9876543210" #h"AFD5AED1C1BC96A8") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F00112233" #h"FEDCBA9876543210" #h"10851C0E3858DA9F") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344" #h"FEDCBA9876543210" #h"E6F51ED79B9DB21F") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F001122334455" #h"FEDCBA9876543210" #h"64A6E14AFD36B46F") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F00112233445566" #h"FEDCBA9876543210" #h"80C7D7D45A5479AD") (:ecb-mode-test #h"F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344556677" #h"FEDCBA9876543210" #h"05044B62FA52D080") ironclad_0.33.0/testing/test-vectors/twofish.testvec0000644000175000017500000005136311305364032017640 0ustar00;;;; twofish-test-vectors.lisp -- standard tests from ecb_tbl.txt (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000000" #h"9F589F5CF6122C32B6BFEC2F2AE8C35A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"9F589F5CF6122C32B6BFEC2F2AE8C35A" #h"D491DB16E7B1C39E86CB086B789F5419") (:ecb-mode-test #h"9F589F5CF6122C32B6BFEC2F2AE8C35A" #h"D491DB16E7B1C39E86CB086B789F5419" #h"019F9809DE1711858FAAC3A3BA20FBC3") (:ecb-mode-test #h"D491DB16E7B1C39E86CB086B789F5419" #h"019F9809DE1711858FAAC3A3BA20FBC3" #h"6363977DE839486297E661C6C9D668EB") (:ecb-mode-test #h"019F9809DE1711858FAAC3A3BA20FBC3" #h"6363977DE839486297E661C6C9D668EB" #h"816D5BD0FAE35342BF2A7412C246F752") (:ecb-mode-test #h"6363977DE839486297E661C6C9D668EB" #h"816D5BD0FAE35342BF2A7412C246F752" #h"5449ECA008FF5921155F598AF4CED4D0") (:ecb-mode-test #h"816D5BD0FAE35342BF2A7412C246F752" #h"5449ECA008FF5921155F598AF4CED4D0" #h"6600522E97AEB3094ED5F92AFCBCDD10") (:ecb-mode-test #h"5449ECA008FF5921155F598AF4CED4D0" #h"6600522E97AEB3094ED5F92AFCBCDD10" #h"34C8A5FB2D3D08A170D120AC6D26DBFA") (:ecb-mode-test #h"6600522E97AEB3094ED5F92AFCBCDD10" #h"34C8A5FB2D3D08A170D120AC6D26DBFA" #h"28530B358C1B42EF277DE6D4407FC591") (:ecb-mode-test #h"34C8A5FB2D3D08A170D120AC6D26DBFA" #h"28530B358C1B42EF277DE6D4407FC591" #h"8A8AB983310ED78C8C0ECDE030B8DCA4") (:ecb-mode-test #h"28530B358C1B42EF277DE6D4407FC591" #h"8A8AB983310ED78C8C0ECDE030B8DCA4" #h"48C758A6DFC1DD8B259FA165E1CE2B3C") (:ecb-mode-test #h"8A8AB983310ED78C8C0ECDE030B8DCA4" #h"48C758A6DFC1DD8B259FA165E1CE2B3C" #h"CE73C65C101680BBC251C5C16ABCF214") (:ecb-mode-test #h"48C758A6DFC1DD8B259FA165E1CE2B3C" #h"CE73C65C101680BBC251C5C16ABCF214" #h"C7ABD74AA060F78B244E24C71342BA89") (:ecb-mode-test #h"CE73C65C101680BBC251C5C16ABCF214" #h"C7ABD74AA060F78B244E24C71342BA89" #h"D0F8B3B6409EBCB666D29C916565ABFC") (:ecb-mode-test #h"C7ABD74AA060F78B244E24C71342BA89" #h"D0F8B3B6409EBCB666D29C916565ABFC" #h"DD42662908070054544FE09DA4263130") (:ecb-mode-test #h"D0F8B3B6409EBCB666D29C916565ABFC" #h"DD42662908070054544FE09DA4263130" #h"7007BACB42F7BF989CF30F78BC50EDCA") (:ecb-mode-test #h"DD42662908070054544FE09DA4263130" #h"7007BACB42F7BF989CF30F78BC50EDCA" #h"57B9A18EE97D90F435A16F69F0AC6F16") (:ecb-mode-test #h"7007BACB42F7BF989CF30F78BC50EDCA" #h"57B9A18EE97D90F435A16F69F0AC6F16" #h"06181F0D53267ABD8F3BB28455B198AD") (:ecb-mode-test #h"57B9A18EE97D90F435A16F69F0AC6F16" #h"06181F0D53267ABD8F3BB28455B198AD" #h"81A12D8449E9040BAAE7196338D8C8F2") (:ecb-mode-test #h"06181F0D53267ABD8F3BB28455B198AD" #h"81A12D8449E9040BAAE7196338D8C8F2" #h"BE422651C56F2622DA0201815A95A820") (:ecb-mode-test #h"81A12D8449E9040BAAE7196338D8C8F2" #h"BE422651C56F2622DA0201815A95A820" #h"113B19F2D778473990480CEE4DA238D1") (:ecb-mode-test #h"BE422651C56F2622DA0201815A95A820" #h"113B19F2D778473990480CEE4DA238D1" #h"E6942E9A86E544CF3E3364F20BE011DF") (:ecb-mode-test #h"113B19F2D778473990480CEE4DA238D1" #h"E6942E9A86E544CF3E3364F20BE011DF" #h"87CDC6AA487BFD0EA70188257D9B3859") (:ecb-mode-test #h"E6942E9A86E544CF3E3364F20BE011DF" #h"87CDC6AA487BFD0EA70188257D9B3859" #h"D5E2701253DD75A11A4CFB243714BD14") (:ecb-mode-test #h"87CDC6AA487BFD0EA70188257D9B3859" #h"D5E2701253DD75A11A4CFB243714BD14" #h"FD24812EEA107A9E6FAB8EABE0F0F48C") (:ecb-mode-test #h"D5E2701253DD75A11A4CFB243714BD14" #h"FD24812EEA107A9E6FAB8EABE0F0F48C" #h"DAFA84E31A297F372C3A807100CD783D") (:ecb-mode-test #h"FD24812EEA107A9E6FAB8EABE0F0F48C" #h"DAFA84E31A297F372C3A807100CD783D" #h"A55ED2D955EC8950FC0CC93B76ACBF91") (:ecb-mode-test #h"DAFA84E31A297F372C3A807100CD783D" #h"A55ED2D955EC8950FC0CC93B76ACBF91" #h"2ABEA2A4BF27ABDC6B6F278993264744") (:ecb-mode-test #h"A55ED2D955EC8950FC0CC93B76ACBF91" #h"2ABEA2A4BF27ABDC6B6F278993264744" #h"045383E219321D5A4435C0E491E7DE10") (:ecb-mode-test #h"2ABEA2A4BF27ABDC6B6F278993264744" #h"045383E219321D5A4435C0E491E7DE10" #h"7460A4CD4F312F32B1C7A94FA004E934") (:ecb-mode-test #h"045383E219321D5A4435C0E491E7DE10" #h"7460A4CD4F312F32B1C7A94FA004E934" #h"6BBF9186D32C2C5895649D746566050A") (:ecb-mode-test #h"7460A4CD4F312F32B1C7A94FA004E934" #h"6BBF9186D32C2C5895649D746566050A" #h"CDBDD19ACF40B8AC0328C80054266068") (:ecb-mode-test #h"6BBF9186D32C2C5895649D746566050A" #h"CDBDD19ACF40B8AC0328C80054266068" #h"1D2836CAE4223EAB5066867A71B1A1C3") (:ecb-mode-test #h"CDBDD19ACF40B8AC0328C80054266068" #h"1D2836CAE4223EAB5066867A71B1A1C3" #h"2D7F37121D0D2416D5E2767FF202061B") (:ecb-mode-test #h"1D2836CAE4223EAB5066867A71B1A1C3" #h"2D7F37121D0D2416D5E2767FF202061B" #h"D70736D1ABC7427A121CC816CD66D7FF") (:ecb-mode-test #h"2D7F37121D0D2416D5E2767FF202061B" #h"D70736D1ABC7427A121CC816CD66D7FF" #h"AC6CA71CBCBEDCC0EA849FB2E9377865") (:ecb-mode-test #h"D70736D1ABC7427A121CC816CD66D7FF" #h"AC6CA71CBCBEDCC0EA849FB2E9377865" #h"307265FF145CBBC7104B3E51C6C1D6B4") (:ecb-mode-test #h"AC6CA71CBCBEDCC0EA849FB2E9377865" #h"307265FF145CBBC7104B3E51C6C1D6B4" #h"934B7DB4B3544854DBCA81C4C5DE4EB1") (:ecb-mode-test #h"307265FF145CBBC7104B3E51C6C1D6B4" #h"934B7DB4B3544854DBCA81C4C5DE4EB1" #h"18759824AD9823D5961F84377D7EAEBF") (:ecb-mode-test #h"934B7DB4B3544854DBCA81C4C5DE4EB1" #h"18759824AD9823D5961F84377D7EAEBF" #h"DEDDAC6029B01574D9BABB099DC6CA6C") (:ecb-mode-test #h"18759824AD9823D5961F84377D7EAEBF" #h"DEDDAC6029B01574D9BABB099DC6CA6C" #h"5EA82EEA2244DED42CCA2F835D5615DF") (:ecb-mode-test #h"DEDDAC6029B01574D9BABB099DC6CA6C" #h"5EA82EEA2244DED42CCA2F835D5615DF" #h"1E3853F7FFA57091771DD8CDEE9414DE") (:ecb-mode-test #h"5EA82EEA2244DED42CCA2F835D5615DF" #h"1E3853F7FFA57091771DD8CDEE9414DE" #h"5C2EBBF75D31F30B5EA26EAC8782D8D1") (:ecb-mode-test #h"1E3853F7FFA57091771DD8CDEE9414DE" #h"5C2EBBF75D31F30B5EA26EAC8782D8D1" #h"3A3CFA1F13A136C94D76E5FA4A1109FF") (:ecb-mode-test #h"5C2EBBF75D31F30B5EA26EAC8782D8D1" #h"3A3CFA1F13A136C94D76E5FA4A1109FF" #h"91630CF96003B8032E695797E313A553") (:ecb-mode-test #h"3A3CFA1F13A136C94D76E5FA4A1109FF" #h"91630CF96003B8032E695797E313A553" #h"137A24CA47CD12BE818DF4D2F4355960") (:ecb-mode-test #h"91630CF96003B8032E695797E313A553" #h"137A24CA47CD12BE818DF4D2F4355960" #h"BCA724A54533C6987E14AA827952F921") (:ecb-mode-test #h"137A24CA47CD12BE818DF4D2F4355960" #h"BCA724A54533C6987E14AA827952F921" #h"6B459286F3FFD28D49F15B1581B08E42") (:ecb-mode-test #h"BCA724A54533C6987E14AA827952F921" #h"6B459286F3FFD28D49F15B1581B08E42" #h"5D9D4EEFFA9151575524F115815A12E0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"EFA71F788965BD4453F860178FC19101") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"EFA71F788965BD4453F860178FC19101" #h"88B2B2706B105E36B446BB6D731A1E88") (:ecb-mode-test #h"EFA71F788965BD4453F860178FC191010000000000000000" #h"88B2B2706B105E36B446BB6D731A1E88" #h"39DA69D6BA4997D585B6DC073CA341B2") (:ecb-mode-test #h"88B2B2706B105E36B446BB6D731A1E88EFA71F788965BD44" #h"39DA69D6BA4997D585B6DC073CA341B2" #h"182B02D81497EA45F9DAACDC29193A65") (:ecb-mode-test #h"39DA69D6BA4997D585B6DC073CA341B288B2B2706B105E36" #h"182B02D81497EA45F9DAACDC29193A65" #h"7AFF7A70CA2FF28AC31DD8AE5DAAAB63") (:ecb-mode-test #h"182B02D81497EA45F9DAACDC29193A6539DA69D6BA4997D5" #h"7AFF7A70CA2FF28AC31DD8AE5DAAAB63" #h"D1079B789F666649B6BD7D1629F1F77E") (:ecb-mode-test #h"7AFF7A70CA2FF28AC31DD8AE5DAAAB63182B02D81497EA45" #h"D1079B789F666649B6BD7D1629F1F77E" #h"3AF6F7CE5BD35EF18BEC6FA787AB506B") (:ecb-mode-test #h"D1079B789F666649B6BD7D1629F1F77E7AFF7A70CA2FF28A" #h"3AF6F7CE5BD35EF18BEC6FA787AB506B" #h"AE8109BFDA85C1F2C5038B34ED691BFF") (:ecb-mode-test #h"3AF6F7CE5BD35EF18BEC6FA787AB506BD1079B789F666649" #h"AE8109BFDA85C1F2C5038B34ED691BFF" #h"893FD67B98C550073571BD631263FC78") (:ecb-mode-test #h"AE8109BFDA85C1F2C5038B34ED691BFF3AF6F7CE5BD35EF1" #h"893FD67B98C550073571BD631263FC78" #h"16434FC9C8841A63D58700B5578E8F67") (:ecb-mode-test #h"893FD67B98C550073571BD631263FC78AE8109BFDA85C1F2" #h"16434FC9C8841A63D58700B5578E8F67" #h"9594CF62D48ACD347A68A3161F0F3EE7") (:ecb-mode-test #h"16434FC9C8841A63D58700B5578E8F67893FD67B98C55007" #h"9594CF62D48ACD347A68A3161F0F3EE7" #h"B23E8C2C731C514017D1F2B88D77D208") (:ecb-mode-test #h"9594CF62D48ACD347A68A3161F0F3EE716434FC9C8841A63" #h"B23E8C2C731C514017D1F2B88D77D208" #h"93CC592BC96D95FA8AC32DA894F6AB89") (:ecb-mode-test #h"B23E8C2C731C514017D1F2B88D77D2089594CF62D48ACD34" #h"93CC592BC96D95FA8AC32DA894F6AB89" #h"26516E6BD4AEF86AF4F4AD58FA41A14C") (:ecb-mode-test #h"93CC592BC96D95FA8AC32DA894F6AB89B23E8C2C731C5140" #h"26516E6BD4AEF86AF4F4AD58FA41A14C" #h"00A8FFFAB8616BE710A6592438FC40BE") (:ecb-mode-test #h"26516E6BD4AEF86AF4F4AD58FA41A14C93CC592BC96D95FA" #h"00A8FFFAB8616BE710A6592438FC40BE" #h"A19B811C77482D97C842EC62DB2EDCCE") (:ecb-mode-test #h"00A8FFFAB8616BE710A6592438FC40BE26516E6BD4AEF86A" #h"A19B811C77482D97C842EC62DB2EDCCE" #h"D7FF438678D818CAA26A676342F98E8B") (:ecb-mode-test #h"A19B811C77482D97C842EC62DB2EDCCE00A8FFFAB8616BE7" #h"D7FF438678D818CAA26A676342F98E8B" #h"84EAFFC0C091582ABB717086E0807A5F") (:ecb-mode-test #h"D7FF438678D818CAA26A676342F98E8BA19B811C77482D97" #h"84EAFFC0C091582ABB717086E0807A5F" #h"5500AF1C79503FEF1BACF35A81DC2865") (:ecb-mode-test #h"84EAFFC0C091582ABB717086E0807A5FD7FF438678D818CA" #h"5500AF1C79503FEF1BACF35A81DC2865" #h"7282B2F3E766C83664930A19D201D7E7") (:ecb-mode-test #h"5500AF1C79503FEF1BACF35A81DC286584EAFFC0C091582A" #h"7282B2F3E766C83664930A19D201D7E7" #h"6796085C32FBDD2AB43E81EAC1262743") (:ecb-mode-test #h"7282B2F3E766C83664930A19D201D7E75500AF1C79503FEF" #h"6796085C32FBDD2AB43E81EAC1262743" #h"5839F9E148B9FD2B5A52751D4F178FDC") (:ecb-mode-test #h"6796085C32FBDD2AB43E81EAC12627437282B2F3E766C836" #h"5839F9E148B9FD2B5A52751D4F178FDC" #h"A88F34056742E55408A7A9E7B6D4C8C0") (:ecb-mode-test #h"5839F9E148B9FD2B5A52751D4F178FDC6796085C32FBDD2A" #h"A88F34056742E55408A7A9E7B6D4C8C0" #h"9C8C304CB1F937C6E42528459FA8872F") (:ecb-mode-test #h"A88F34056742E55408A7A9E7B6D4C8C05839F9E148B9FD2B" #h"9C8C304CB1F937C6E42528459FA8872F" #h"EA3668C0D96529A7F3BF0F7C2B5C5BE2") (:ecb-mode-test #h"9C8C304CB1F937C6E42528459FA8872FA88F34056742E554" #h"EA3668C0D96529A7F3BF0F7C2B5C5BE2" #h"A8FB6EEFCAAF9C4041072D570984CED2") (:ecb-mode-test #h"EA3668C0D96529A7F3BF0F7C2B5C5BE29C8C304CB1F937C6" #h"A8FB6EEFCAAF9C4041072D570984CED2" #h"ABF4662E5D50F71B15FE3B428AFE3500") (:ecb-mode-test #h"A8FB6EEFCAAF9C4041072D570984CED2EA3668C0D96529A7" #h"ABF4662E5D50F71B15FE3B428AFE3500" #h"3B3AED23958DA6E2FA4493BCBE59A806") (:ecb-mode-test #h"ABF4662E5D50F71B15FE3B428AFE3500A8FB6EEFCAAF9C40" #h"3B3AED23958DA6E2FA4493BCBE59A806" #h"CFBF446E33C3DCD4DD5161CA00D4BA8F") (:ecb-mode-test #h"3B3AED23958DA6E2FA4493BCBE59A806ABF4662E5D50F71B" #h"CFBF446E33C3DCD4DD5161CA00D4BA8F" #h"072ADBFA7EB962BA199AFC720339FF29") (:ecb-mode-test #h"CFBF446E33C3DCD4DD5161CA00D4BA8F3B3AED23958DA6E2" #h"072ADBFA7EB962BA199AFC720339FF29" #h"AAB346D9123A8140AC563EF17E7054C8") (:ecb-mode-test #h"072ADBFA7EB962BA199AFC720339FF29CFBF446E33C3DCD4" #h"AAB346D9123A8140AC563EF17E7054C8" #h"3C7DDC5FE6E5888FE61DEDA0C69CD320") (:ecb-mode-test #h"AAB346D9123A8140AC563EF17E7054C8072ADBFA7EB962BA" #h"3C7DDC5FE6E5888FE61DEDA0C69CD320" #h"34AA645C7E3532098ADA91BB128ED821") (:ecb-mode-test #h"3C7DDC5FE6E5888FE61DEDA0C69CD320AAB346D9123A8140" #h"34AA645C7E3532098ADA91BB128ED821" #h"7A5D12E315038522DA01EC0834B1322C") (:ecb-mode-test #h"34AA645C7E3532098ADA91BB128ED8213C7DDC5FE6E5888F" #h"7A5D12E315038522DA01EC0834B1322C" #h"86E235A1CB091FF7FE6FBBCA0D73BE58") (:ecb-mode-test #h"7A5D12E315038522DA01EC0834B1322C34AA645C7E353209" #h"86E235A1CB091FF7FE6FBBCA0D73BE58" #h"F3CE81CACE5D6BA9C558111DCDB22F5D") (:ecb-mode-test #h"86E235A1CB091FF7FE6FBBCA0D73BE587A5D12E315038522" #h"F3CE81CACE5D6BA9C558111DCDB22F5D" #h"FB30A5D67D5F5BE4048C77E2AD3BC9D1") (:ecb-mode-test #h"F3CE81CACE5D6BA9C558111DCDB22F5D86E235A1CB091FF7" #h"FB30A5D67D5F5BE4048C77E2AD3BC9D1" #h"31E69DD3D2D90E81C9EBFAC257E9823D") (:ecb-mode-test #h"FB30A5D67D5F5BE4048C77E2AD3BC9D1F3CE81CACE5D6BA9" #h"31E69DD3D2D90E81C9EBFAC257E9823D" #h"87579B3F19A9CDE12BB882FFEAF665AE") (:ecb-mode-test #h"31E69DD3D2D90E81C9EBFAC257E9823DFB30A5D67D5F5BE4" #h"87579B3F19A9CDE12BB882FFEAF665AE" #h"24A8572AA844FEF25F7670FAE30F1CD2") (:ecb-mode-test #h"87579B3F19A9CDE12BB882FFEAF665AE31E69DD3D2D90E81" #h"24A8572AA844FEF25F7670FAE30F1CD2" #h"0CFA32E5E33F3B2DAC9F34D25979319A") (:ecb-mode-test #h"24A8572AA844FEF25F7670FAE30F1CD287579B3F19A9CDE1" #h"0CFA32E5E33F3B2DAC9F34D25979319A" #h"3C64D7FC881B9B82ABA21FF122B98F54") (:ecb-mode-test #h"0CFA32E5E33F3B2DAC9F34D25979319A24A8572AA844FEF2" #h"3C64D7FC881B9B82ABA21FF122B98F54" #h"A794CAEE6756281B7A64894E4E4F70A8") (:ecb-mode-test #h"3C64D7FC881B9B82ABA21FF122B98F540CFA32E5E33F3B2D" #h"A794CAEE6756281B7A64894E4E4F70A8" #h"89A9BF6B893BC5E6FEF4C77F3D0F29A6") (:ecb-mode-test #h"A794CAEE6756281B7A64894E4E4F70A83C64D7FC881B9B82" #h"89A9BF6B893BC5E6FEF4C77F3D0F29A6" #h"5DBE44032769DF543EAD7AD13A5F3310") (:ecb-mode-test #h"89A9BF6B893BC5E6FEF4C77F3D0F29A6A794CAEE6756281B" #h"5DBE44032769DF543EAD7AD13A5F3310" #h"DEA4F3DA75EC7A8EAC3861A9912402CD") (:ecb-mode-test #h"5DBE44032769DF543EAD7AD13A5F331089A9BF6B893BC5E6" #h"DEA4F3DA75EC7A8EAC3861A9912402CD" #h"FB66522C332FCC4C042ABE32FA9E902F") (:ecb-mode-test #h"DEA4F3DA75EC7A8EAC3861A9912402CD5DBE44032769DF54" #h"FB66522C332FCC4C042ABE32FA9E902F" #h"F0AB73301125FA21EF70BE5385FB76B6") (:ecb-mode-test #h"FB66522C332FCC4C042ABE32FA9E902FDEA4F3DA75EC7A8E" #h"F0AB73301125FA21EF70BE5385FB76B6" #h"E75449212BEEF9F4A390BD860A640941") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"57FF739D4DC92C1BD7FC01700CC8216F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"57FF739D4DC92C1BD7FC01700CC8216F" #h"D43BB7556EA32E46F2A282B7D45B4E0D") (:ecb-mode-test #h"57FF739D4DC92C1BD7FC01700CC8216F00000000000000000000000000000000" #h"D43BB7556EA32E46F2A282B7D45B4E0D" #h"90AFE91BB288544F2C32DC239B2635E6") (:ecb-mode-test #h"D43BB7556EA32E46F2A282B7D45B4E0D57FF739D4DC92C1BD7FC01700CC8216F" #h"90AFE91BB288544F2C32DC239B2635E6" #h"6CB4561C40BF0A9705931CB6D408E7FA") (:ecb-mode-test #h"90AFE91BB288544F2C32DC239B2635E6D43BB7556EA32E46F2A282B7D45B4E0D" #h"6CB4561C40BF0A9705931CB6D408E7FA" #h"3059D6D61753B958D92F4781C8640E58") (:ecb-mode-test #h"6CB4561C40BF0A9705931CB6D408E7FA90AFE91BB288544F2C32DC239B2635E6" #h"3059D6D61753B958D92F4781C8640E58" #h"E69465770505D7F80EF68CA38AB3A3D6") (:ecb-mode-test #h"3059D6D61753B958D92F4781C8640E586CB4561C40BF0A9705931CB6D408E7FA" #h"E69465770505D7F80EF68CA38AB3A3D6" #h"5AB67A5F8539A4A5FD9F0373BA463466") (:ecb-mode-test #h"E69465770505D7F80EF68CA38AB3A3D63059D6D61753B958D92F4781C8640E58" #h"5AB67A5F8539A4A5FD9F0373BA463466" #h"DC096BCD99FC72F79936D4C748E75AF7") (:ecb-mode-test #h"5AB67A5F8539A4A5FD9F0373BA463466E69465770505D7F80EF68CA38AB3A3D6" #h"DC096BCD99FC72F79936D4C748E75AF7" #h"C5A3E7CEE0F1B7260528A68FB4EA05F2") (:ecb-mode-test #h"DC096BCD99FC72F79936D4C748E75AF75AB67A5F8539A4A5FD9F0373BA463466" #h"C5A3E7CEE0F1B7260528A68FB4EA05F2" #h"43D5CEC327B24AB90AD34A79D0469151") (:ecb-mode-test #h"C5A3E7CEE0F1B7260528A68FB4EA05F2DC096BCD99FC72F79936D4C748E75AF7" #h"43D5CEC327B24AB90AD34A79D0469151" #h"05BA7BE9BE5274FBEB4AC5FD5FAAFA10") (:ecb-mode-test #h"43D5CEC327B24AB90AD34A79D0469151C5A3E7CEE0F1B7260528A68FB4EA05F2" #h"05BA7BE9BE5274FBEB4AC5FD5FAAFA10" #h"89D513B989E3CECE4D2E3E4C15D4E01C") (:ecb-mode-test #h"05BA7BE9BE5274FBEB4AC5FD5FAAFA1043D5CEC327B24AB90AD34A79D0469151" #h"89D513B989E3CECE4D2E3E4C15D4E01C" #h"E56E462AE2E66F800CE2224C4CAFACBE") (:ecb-mode-test #h"89D513B989E3CECE4D2E3E4C15D4E01C05BA7BE9BE5274FBEB4AC5FD5FAAFA10" #h"E56E462AE2E66F800CE2224C4CAFACBE" #h"F5DBEE5414D79CA46BE17346FDC72BF5") (:ecb-mode-test #h"E56E462AE2E66F800CE2224C4CAFACBE89D513B989E3CECE4D2E3E4C15D4E01C" #h"F5DBEE5414D79CA46BE17346FDC72BF5" #h"C780FC28815E667B3D224ECF1F4A7D65") (:ecb-mode-test #h"F5DBEE5414D79CA46BE17346FDC72BF5E56E462AE2E66F800CE2224C4CAFACBE" #h"C780FC28815E667B3D224ECF1F4A7D65" #h"2EF17A0D75440ECEC9AF18D29ABA3CDA") (:ecb-mode-test #h"C780FC28815E667B3D224ECF1F4A7D65F5DBEE5414D79CA46BE17346FDC72BF5" #h"2EF17A0D75440ECEC9AF18D29ABA3CDA" #h"D653FDFF96BCF89A929F6377AB41967A") (:ecb-mode-test #h"2EF17A0D75440ECEC9AF18D29ABA3CDAC780FC28815E667B3D224ECF1F4A7D65" #h"D653FDFF96BCF89A929F6377AB41967A" #h"36BBAD8838380C8793A7AEA0A11D04D2") (:ecb-mode-test #h"D653FDFF96BCF89A929F6377AB41967A2EF17A0D75440ECEC9AF18D29ABA3CDA" #h"36BBAD8838380C8793A7AEA0A11D04D2" #h"034EFECFC0EFC00D82C3345A8708AE78") (:ecb-mode-test #h"36BBAD8838380C8793A7AEA0A11D04D2D653FDFF96BCF89A929F6377AB41967A" #h"034EFECFC0EFC00D82C3345A8708AE78" #h"EA38887307337A2934A9EB802F6CFDDD") (:ecb-mode-test #h"034EFECFC0EFC00D82C3345A8708AE7836BBAD8838380C8793A7AEA0A11D04D2" #h"EA38887307337A2934A9EB802F6CFDDD" #h"7C279D47775AB4C26442E8A117943DD8") (:ecb-mode-test #h"EA38887307337A2934A9EB802F6CFDDD034EFECFC0EFC00D82C3345A8708AE78" #h"7C279D47775AB4C26442E8A117943DD8" #h"E3CF581056EBC1169CF451E930308726") (:ecb-mode-test #h"7C279D47775AB4C26442E8A117943DD8EA38887307337A2934A9EB802F6CFDDD" #h"E3CF581056EBC1169CF451E930308726" #h"65527B29D489C8CDDC62E5E7FFC4E924") (:ecb-mode-test #h"E3CF581056EBC1169CF451E9303087267C279D47775AB4C26442E8A117943DD8" #h"65527B29D489C8CDDC62E5E7FFC4E924" #h"3B491F930230A0170819CACB48F9030C") (:ecb-mode-test #h"65527B29D489C8CDDC62E5E7FFC4E924E3CF581056EBC1169CF451E930308726" #h"3B491F930230A0170819CACB48F9030C" #h"A7C8193F35AF63B51D7F9DEDCEC85866") (:ecb-mode-test #h"3B491F930230A0170819CACB48F9030C65527B29D489C8CDDC62E5E7FFC4E924" #h"A7C8193F35AF63B51D7F9DEDCEC85866" #h"009A48F9A1C27F9AA5F9BD909C848B60") (:ecb-mode-test #h"A7C8193F35AF63B51D7F9DEDCEC858663B491F930230A0170819CACB48F9030C" #h"009A48F9A1C27F9AA5F9BD909C848B60" #h"3B507E987B3F827A093B26C85CDFF6C6") (:ecb-mode-test #h"009A48F9A1C27F9AA5F9BD909C848B60A7C8193F35AF63B51D7F9DEDCEC85866" #h"3B507E987B3F827A093B26C85CDFF6C6" #h"EAFB3BA6C78E37214FE908669BC24F6F") (:ecb-mode-test #h"3B507E987B3F827A093B26C85CDFF6C6009A48F9A1C27F9AA5F9BD909C848B60" #h"EAFB3BA6C78E37214FE908669BC24F6F" #h"2B09F10D7F2B62A4D0DAFFB9F882B980") (:ecb-mode-test #h"EAFB3BA6C78E37214FE908669BC24F6F3B507E987B3F827A093B26C85CDFF6C6" #h"2B09F10D7F2B62A4D0DAFFB9F882B980" #h"E6B9FE907009B2DC649412DD630AE576") (:ecb-mode-test #h"2B09F10D7F2B62A4D0DAFFB9F882B980EAFB3BA6C78E37214FE908669BC24F6F" #h"E6B9FE907009B2DC649412DD630AE576" #h"F2E4DC89724CD58F85847BD09ED4500F") (:ecb-mode-test #h"E6B9FE907009B2DC649412DD630AE5762B09F10D7F2B62A4D0DAFFB9F882B980" #h"F2E4DC89724CD58F85847BD09ED4500F" #h"DC650444FCEBC2BD6E450EF4605FCABE") (:ecb-mode-test #h"F2E4DC89724CD58F85847BD09ED4500FE6B9FE907009B2DC649412DD630AE576" #h"DC650444FCEBC2BD6E450EF4605FCABE" #h"B7CFB31755FDA2AB0A67FBA09901A73E") (:ecb-mode-test #h"DC650444FCEBC2BD6E450EF4605FCABEF2E4DC89724CD58F85847BD09ED4500F" #h"B7CFB31755FDA2AB0A67FBA09901A73E" #h"9C7E7578F3D2923DCDABFED0A5EF86EE") (:ecb-mode-test #h"B7CFB31755FDA2AB0A67FBA09901A73EDC650444FCEBC2BD6E450EF4605FCABE" #h"9C7E7578F3D2923DCDABFED0A5EF86EE" #h"9465E9AE176483BD398C8033AA136F68") (:ecb-mode-test #h"9C7E7578F3D2923DCDABFED0A5EF86EEB7CFB31755FDA2AB0A67FBA09901A73E" #h"9465E9AE176483BD398C8033AA136F68" #h"8551279DE9991805FCFC1937C52AE9D4") (:ecb-mode-test #h"9465E9AE176483BD398C8033AA136F689C7E7578F3D2923DCDABFED0A5EF86EE" #h"8551279DE9991805FCFC1937C52AE9D4" #h"A830EB8DA52ECFF7F93B7627322CF9D7") (:ecb-mode-test #h"8551279DE9991805FCFC1937C52AE9D49465E9AE176483BD398C8033AA136F68" #h"A830EB8DA52ECFF7F93B7627322CF9D7" #h"EC89F0E5155425D4B92BD4B200C1A6E0") (:ecb-mode-test #h"A830EB8DA52ECFF7F93B7627322CF9D78551279DE9991805FCFC1937C52AE9D4" #h"EC89F0E5155425D4B92BD4B200C1A6E0" #h"8AF76A782061D38360C6C3CDDCBE1516") (:ecb-mode-test #h"EC89F0E5155425D4B92BD4B200C1A6E0A830EB8DA52ECFF7F93B7627322CF9D7" #h"8AF76A782061D38360C6C3CDDCBE1516" #h"D4EEAA6A069659D5D88590DE75515631") (:ecb-mode-test #h"8AF76A782061D38360C6C3CDDCBE1516EC89F0E5155425D4B92BD4B200C1A6E0" #h"D4EEAA6A069659D5D88590DE75515631" #h"259C021D37B077197B80FCDB07EA1AF2") (:ecb-mode-test #h"D4EEAA6A069659D5D88590DE755156318AF76A782061D38360C6C3CDDCBE1516" #h"259C021D37B077197B80FCDB07EA1AF2" #h"300CC8B4171F0E9BD75710FAD033C570") (:ecb-mode-test #h"259C021D37B077197B80FCDB07EA1AF2D4EEAA6A069659D5D88590DE75515631" #h"300CC8B4171F0E9BD75710FAD033C570" #h"5CFA5BD213A74F02E65390A4C14A1DF6") (:ecb-mode-test #h"300CC8B4171F0E9BD75710FAD033C570259C021D37B077197B80FCDB07EA1AF2" #h"5CFA5BD213A74F02E65390A4C14A1DF6" #h"A443EA1B2C5747CE7EC5F21D4FE0C147") (:ecb-mode-test #h"5CFA5BD213A74F02E65390A4C14A1DF6300CC8B4171F0E9BD75710FAD033C570" #h"A443EA1B2C5747CE7EC5F21D4FE0C147" #h"D2DED73E59319A8138E0331F0EA149EA") (:ecb-mode-test #h"A443EA1B2C5747CE7EC5F21D4FE0C1475CFA5BD213A74F02E65390A4C14A1DF6" #h"D2DED73E59319A8138E0331F0EA149EA" #h"2E2158BC3E5FC714C1EEECA0EA696D48") (:ecb-mode-test #h"D2DED73E59319A8138E0331F0EA149EAA443EA1B2C5747CE7EC5F21D4FE0C147" #h"2E2158BC3E5FC714C1EEECA0EA696D48" #h"248A7F3528B168ACFDD1386E3F51E30C") (:ecb-mode-test #h"2E2158BC3E5FC714C1EEECA0EA696D48D2DED73E59319A8138E0331F0EA149EA" #h"248A7F3528B168ACFDD1386E3F51E30C" #h"431058F4DBC7F734DA4F02F04CC4F459") (:ecb-mode-test #h"248A7F3528B168ACFDD1386E3F51E30C2E2158BC3E5FC714C1EEECA0EA696D48" #h"431058F4DBC7F734DA4F02F04CC4F459" #h"37FE26FF1CF66175F5DDF4C33B97A205") ironclad_0.33.0/testing/test-vectors/idea.testvec0000644000175000017500000000600311305364032017046 0ustar00(:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"D53FABBF94FF8B5F" #h"1D0CB2AF1654820A") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"848F836780938169" #h"D7E0468226D0FC56") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"819440CA2065D112" #h"264A8BBA66959075") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"6889F5647AB23D59" #h"F963468B52F45D4D") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"DF8C6FC637E3DAD1" #h"29358CC6C83828AE") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"AC4856242B121589" #h"95CD92F44BACB72D") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"CBE465F232F9D85C" #h"BCE24DC8D0961C44") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"6C2E3617DA2BAC35" #h"1569E0627007B12E") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"D53FABBF94FF8B5F" #h"1320F99BFE052804") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"848F836780938169" #h"4821B99F61ACEBB7") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"819440CA2065D112" #h"C88600093B348575") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"6889F5647AB23D59" #h"61D5397046F99637") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"DF8C6FC637E3DAD1" #h"EF4899B48DE5907C") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"AC4856242B121589" #h"85C6B232294C2F27") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"CBE465F232F9D85C" #h"B67AC767C0C06A55") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"6C2E3617DA2BAC35" #h"B2229067630F7045") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"0000ABBF94FF8B5F" #h"65861BE574E1EAB6") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"848F836780938169" #h"D7E0468226D0FC56") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"819440CA2065D112" #h"264A8BBA66959075") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"6889F5647AB23D59" #h"F963468B52F45D4D") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"DF8C6FC637E3DAD1" #h"29358CC6C83828AE") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"AC4856242B121589" #h"95CD92F44BACB72D") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"CBE465F232F9D85C" #h"BCE24DC8D0961C44") (:ecb-mode-test #h"729A27ED8F5C3E8BAF16560D14C90B43" #h"6C2E3617DA2BAC35" #h"1569E0627007B12E") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"0000ABBF94FF8B5F" #h"CBBB2E6C05EE8C89") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"848F836780938169" #h"4821B99F61ACEBB7") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"819440CA2065D112" #h"C88600093B348575") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"6889F5647AB23D59" #h"61D5397046F99637") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"DF8C6FC637E3DAD1" #h"EF4899B48DE5907C") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"AC4856242B121589" #h"85C6B232294C2F27") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"CBE465F232F9D85C" #h"B67AC767C0C06A55") (:ecb-mode-test #h"000027ED8F5C3E8BAF16560D14C90B43" #h"6C2E3617DA2BAC35" #h"B2229067630F7045") ironclad_0.33.0/testing/test-vectors/misty1.testvec0000644000175000017500000012436611305364032017407 0ustar00;;; tests from NESSIE (http://www.cryptonessie.org/) (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"B5EDA7D64FCD2A02") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"EE7704FEB8363AE7") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"13CE7F4D691500E5") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"95EFB24F87A00F8B") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"2E1B2D4C1F8ADA93") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"93A0C856B5A15D17") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"26F070473709DDD3") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"307648EFA8EDC0E3") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"D8DF4DECAFCF82BA") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"736BC8D9CA650CE5") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"96F0B76064D85F51") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"E64959914035165A") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"71D4A818DD87C28C") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"6D8B15055A9D6F9B") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"55647D1966241FA0") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"35056BD48DD52DD5") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"971D05A15B00795F") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"D736385D0276280D") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"D91357A4CBB45A41") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"BA56FC91CBD8E6A8") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"DF7E8E7A1244DE27") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"1799C7D2C3B2DF95") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"91F7F20D0CFDEBBE") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"1F5880A6AD814FCB") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"7C711BBEA687E4B7") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"B116BD7E2029BBEE") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"2293E34A270DE17E") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"A9E23C1D56A36D4F") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"825EE27FC2DFD114") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"9A2B95A3E21A8E65") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"364931D1869B97ED") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"3B51CCAA6082708D") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"AF7C3B59E56C5BF2") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"13A15901144A0517") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"45DF7FBF944EED60") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"FD53EA6C45E7BD72") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"AE301D63A4ABD99B") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"810AEDB651136C2C") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"6D7923F3E5407939") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"ED659407D3367F3B") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"43884A3A589A83DF") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"B0D5866AE233B4FD") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"1980E8259B9A651E") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"3451535F4FDDB23F") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"46B6A290868205F4") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"439E65B4CB242789") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"F5459731A3478E9F") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"28BF6EE27B74938E") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"F27E0FE7E11DA460") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"0E972F84B35C20D5") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"8CBD55AB09EF7033") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"B162CBDA795222AB") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"EADF5E6B5CA2F205") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"224D51BBC1C022A0") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"32B18E595BA64925") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"12C364DD05943BCF") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"C11549479F7A04A5") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"67CF73E19C4D004D") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"F35F1C16B6885D35") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"D964407E8A910063") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"2118444ECDBEFCB9") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"0891F28A1EF9C52F") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"5771EE0D778E53B0") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"6D957F1C5179EB81") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"4532114D129EE6D6") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"E83CCEA05AC0E368") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"3EC37A76EDD7D36D") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"19DA57F35DBE4278") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"095BBEFD99B3EA5E") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"5C75B1E985742DE0") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"D4F32B059A0F70CE") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"5C3A9D450839EF6A") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"0599BEF5D7799C9E") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"8E9B91B3123406E7") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"C525925B8A708A75") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"8A5833D0FE6A630F") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"DCF3D5BAF3DE61A0") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"F6D5FFEB1564CF9C") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"8425331851134F68") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"02486E0A715229CB") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"2D88ABE9595090E5") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"2B447F384733C6C3") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"E7F1CA05120B5327") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"39F3897FD93F458F") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"58D0D0157012E79E") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"4BC1AE301508B1A0") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"7CA33618F1F4CDC1") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"F771EC2C46CA9507") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"6B3AEDAA8311A9E2") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"645710AAFC1AD56A") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"F3AE7FA8F7ABD0A0") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"3F19DF683E2BF8F3") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"62D646ECFBD4136B") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"5DC2BFAB0997B130") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"ED69491C5F7A3957") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"A14FC5BFF3E137F0") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"DAA30797B07BFBE2") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"20679B78B36B4817") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"097C25FBAAD047F4") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"271B7E9E697AA5AD") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"D0B65735C4BB3C7A") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"C45006F2474B962B") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"D41B09CE3717A549") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"274DCF19128A7A5F") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"367BDF7F4D162AA9") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"C3560CFB89F4EE7E") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"3E06A7C290502DF7") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"A446FAEB2E6C7DC8") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"A6844BF5C273190A") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"CC7305667BE061DD") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"03CBCA8A2CA85241") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"FC6ACEF79D79C572") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"656FACEBBCDFB19C") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"09CF9885BF7BB142") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"071FBD9D2AAD88B2") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"82CB2CC125D4659D") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"8EABA33903F93948") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"83FD413EB23B5C16") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"E4DBB186EE01C8B4") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"12CC44657B6367D1") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"73BC52B34CDE8D7A") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"3A6FB39CDABEABD5") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"3EC0084375B70518") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"96FC7F65AD2B3F92") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"C45A526F6A948F42") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"AC062401CDCC8B18") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"44E1E63DF01EACF3") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"2049AA1BE3546AED") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"BB47122B68178EE9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"975E0AFE1323CB9A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"7FADBAC78371B555") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"0666CE4269D64A20") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"14281C76156B12FB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"01EFBE3899503B7A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"69E55186D6B41AC0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"C1224D5C00C53649") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"E2E3AD3A5C601743") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"0A2D672B6D3B2662") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"A7777E08266E63AE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"B9FA1BC630B6E968") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"BCFD2703E4DBC26C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"FED66BE3A5024ED4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"736062891E612CCB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"E2EAF4CEF4189244") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"E175AB910F55EC31") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"51428715FCA30126") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"8C22F1C421E5D83F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"034229BD72BF7DF6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"1043E7868C9A0360") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"05B4532E10C357ED") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"15AD7053939C195F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"39C9046FF541531F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"0295B9BB0ACD5D56") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"D27D3BCE0BDD6F78") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"A42A7CAE686050F4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"45FBE2C7BC916A42") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"132FBD837DF0B2D8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"CA4F5CF90D473F0B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"D7C80CB3ECB2461E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"F71E1B9BD3686E69") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"A02D179F097E8332") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"69B001D442A887AE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"BCF77AE653888D6E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"4CC21435088408D4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"AB62D48D6AFBAE6F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"B6A2CCB863BBCF41") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"C9B2B694C8D90701") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"480C1BEB503D1312") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"FA5338A4D5D67220") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"0E74E96B703D6ABF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"06F76B61B5FB29D3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"7257F075D63C96B3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"F6AACDE1975B1623") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"9D0A06330C318455") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"B11B420CD38D6BD2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"AD0D7E2E54E42DE2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"C9C27609861FBE38") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"0022B23DF6EC9E65") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"41E3112DC3972D2A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"9A59CE2200AC6F27") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"4C5176E19F677C2B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"E9BDC8C297D238A3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"22542D886ADE2FA0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"CCF456283D5942BE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"827918D6CB0B99D9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"AB3E7BB7F2CEE428") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"689FD6BA4FBF46C1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"FAFEE97F1248CEA7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"9FB7BAC7FAB9BEBA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"7644FC51C4550D50") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"D134B15213C3573E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"DBC1776E94F1BC4F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"B94A62816CB70F6F") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"571B932D3A5B958C") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"08FAA3BCF4C057E9") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"7E12EAB92C53C081") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"567963F2ED9F7199") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"ADCBF8DB7833A636") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"67269073263C9818") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"44FBAB7E8B544C39") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"87B1FD4052B940C7") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"EFF0CB5CF0170A74") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"DAD2CFFB201C00DF") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"EBCF435B23CFB4C9") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"92E00981E5350015") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"CD70199048ADB686") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"ACAD6C19AE66EB41") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"4ECFE751E0E6A16F") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"C7A91953216F1B61") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"0227EB3422109682") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"5B88EB8714B2CE08") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"E325B133AB02C021") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"93A4074EE9C38AE3") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"15AB85B70F337868") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"7EFD6E05D384512F") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"C1E46E7B54BAD271") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"956504E0F372D380") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"667C8BB548330E81") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"1F8787DF7582DCD0") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"47F4EAF5BA82C610") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"0F772431C6E54F3C") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"51CF4361B3EF3EAC") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"7AC52498328C66BE") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"9C4E0F782BBBD830") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"59C1B2425B4A223A") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"31A75DEDAF90946A") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"A08888CEACE91838") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"EE86756508C71B51") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"8C794B7BCA1FB3CE") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"81C83EAEF39FAEC8") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"B5609BB8BCC040E3") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"6E9A9DFD7FA02D5D") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"4BD6B8AC8348E44B") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"702277B1BE362647") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"99840E2304678EB7") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"D5FAFF053FC9711E") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"1465A6902902A9DF") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"70556A22F96F41CB") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"DA19418B7D400159") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"EB2F5818B97997F0") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"028302ABA83606BB") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"F4B33E1EF5BD20CD") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"F92366545DA95426") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"B91E0D50260EA5C1") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"65BB48F7091A87B8") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"74CB938FE242CAD8") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"C51B238963931BEA") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"E85CDA0A33354B77") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"4F6602279DE3F304") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"0A368062D3845F30") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"48C4236D0448CCEC") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"897ED180FD105085") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"59F0C15EE0456714") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"887C6A8E6E63CDA8") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"FB8D6E00900CDA0B") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"AFAA84F9D83D146B") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"2B7E4E486258B909") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"86194C35E114C3FF") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"F1CBC044C9116BC6") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"89CE40A15516F3E9") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"1FEF45E132BE4793") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"D4DD6BFB2B418078") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"9E22E3359F4B004F") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"439299347C7AB95B") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"D0D0D22D1AE3C91E") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"238ED46CB305ED2D") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"8C5FC44A0A55CD1C") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"E6DE008CDD7AE66E") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"59F96896661C3CC5") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"F1A8707E73332709") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"EF79FFF808FF2FCF") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"90BBC887B67C5BE1") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"43A0BB2C9F69540C") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"A76AB7C0F3993C3C") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"404CF5D76770380F") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"1144635F33B4B108") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"533F39599024FEA4") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"4EDE5A21D440F879") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"037F87017D5758FC") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"23C696C1C9D9802C") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"8B421F3F8D5889C9") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"7FE115F7EBD82FDE") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"0347C94061CF3903") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"1AC288F297B92B66") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"37FA640BE196F22C") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"B12BC54045F08295") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"4D3CACF8EA0A8F24") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"8E53BDBDF05F21FE") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"CE119D047B746E77") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"AC67362978CE521D") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"202681CEEF6A0641") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"B6EBDE980A8E406C") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"E4ACD49AED306E31") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"687E41E70893F5E5") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"B9194473591623E2") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"AD84C53AE83B1453") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"F6F6BC9C77B676E7") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"383CB935FEA01616") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"CB76EABE21CFEFF9") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"7C760F43BE7A0AE0") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"A0CC24A85B11E9CD") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"08BD628666229CDB") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"248B93D9414CE931") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"68A7EA5427C71A47") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"0CB6C4E6034E36A8") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"F6236FB9269BE68F") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"4AD577079CC83F3F") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"1BF4A2E98DDE6B85") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"417447C0EFA545B9") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"0E5AF6C1F9A2A4FF") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"D6252FF0F50F6298") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"FD11B762089A77E9") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"8F57548E30F72132") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"0AAAF66AC052234B") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"4F7301DDF7F9BB23") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"3ABB712DEE262A5D") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"870079634F996760") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"537093845374E9BE") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"092C2B3DEDA088D1") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"7B89D9265881A984") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"F6FCF844089D0D7D") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"2FFAF44121E4F834") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"4EED79D6916AA112") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"12B62B3C7FCAA24B") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"F7FAF70C7E4ED8B7") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"C58EC8FEE9DD45CF") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"A6159BD7C1E24B82") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"D4060CA2E13014F7") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"D8316FA573E914EE") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"F3F195EA1E0A4ACC") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"166D10F9D1DB0B9E") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"FCE1603171E622CE") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"484E164004CE642E") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"542E40966D874793") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"9C44E79409B316F1") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"FF403290A75E2386") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"A87936DAE2B2DB22") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"DB57C6183C6DF423") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"FCA1F0D005665F3F") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"414570616E5BB885") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"1B52E733F56BB0F8") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"AB178FAC3A985A48") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"578068221BF3083E") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"96FC28DA980FB460") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"28E3F3C65E216A08") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"D903C4DCBC3FFE5F") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"37E627617FECF7B0") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"0E35BA46EF96ECD3") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"C9B3D8ECC7A4D67B") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"A51BC886B2DC241A") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"98BD160DC1FB856B") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"FBDD5A2F04D26369") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"B795ED79D56BBE0B") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"9AA512CFD12AE768") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"B8BC5A15E3EB39B5") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"1A5B92DEE0354986") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"E7723352510DD8A7") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"5C24B50DBF42BCEF") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"8791633A42ED1B59") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"3A95DDAEA53C6F5A") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"A11241415CB1C9A8") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"26004A5913819210") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"2E0BB86F317F0A2F") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"CF6A442C967A6B2D") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"16D476F2E011E56F") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"C14FF78BC53EEBBF") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"60809C2139A96529") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"83EDAE6D41125C8B") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"078B7D7DE5838DE1") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"BBF50F74D8E64E30") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"33E318F851C13C00") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"C25D1D4BF13B0494") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"64809BA64542F8F9") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"DBBE3C2D33732A6F") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"771F20CEE7506BE7") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"89AAE9CE6FDDC0D1") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"52C86C5897A492CE") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"D05859BC5B300611") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"0A3947CFCCCC15AE") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"90D828A877F824F1") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"B0AE05B208B85098") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"453A98C387D17BEA") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"7F29BBEFDBFEB3C0") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"87925DA947AAA9B5") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"474D1C7379419B64") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"724772EDAF17842C") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"8B64AE869D361A8C") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"CE9A813A6C1E4C95") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"D9A4F2386A83C584") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"F4168A3DDFAA2DE1") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"61885F755D6FE00D") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"46065F64F3B04579") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"CE7D70FE06A4F602") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"9ADF1C97A05D2325") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"0C1B8701F2839193") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"3BD0514A2AD44E75") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"EF988CCC6F5DAAC0") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"3537ACF9F8B3A4F6") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"E3A166347132F812") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"958DB80C130027B4") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"FC9D1EDE0FB250C3") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"D0BA9D23BFA4F30C") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"B6047FD0E88C5D16") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"2280CD1547BF1D28") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"FDD4D3D028F2FB78") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"DDF01B32D03AC025") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"32F524E8BC58AF66") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"DE49208313FA68EC") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"43034D5825C5E79D") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"A823873BAF077D4D") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"4E93A8AB978FF577") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"1D774883F9AEE5AB") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"6B2FA960CB5EEC30") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"DFD51237ED2AFB4C") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"5616A37B8A7F044C") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"1714F12B51F9A956") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"9DB0BF0D271ADC8C") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"F81ECF09BFB07A4B") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"2ACC610179553E3C") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"83299006AE845FC0") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"6B06E0EAFA66D98E") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"B8C997353FB43561") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"17ABBE2D0232D6AE") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"A5A84DE58835BF04") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"4FABD6C918F1B30C") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"C5C437C56A0C251B") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"A360F12B31CCFC5E") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"F530F8B06DD77B8A") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"B3B13472C5D0384C") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"6B7EDFC1D167B799") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"87CC3BAF3DAA5249") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"28EEDB935FD35519") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"085C736ADDCF6EA4") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"F9247A246DC31749") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"39D90F5505299D9B") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"5485D405C02B49C9") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"A7489DC5DE71ECD5") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"DECF4E68BB7906AA") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"87FD57285E24C9BA") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"C99346E0096027C9") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"70A5BD315E651F0D") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"E2B71F17EFE7C352") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"9559F3D55276183F") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"F2E90815C1CA2113") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"2271163D80D4A3C1") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"21D5792E34359D32") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"B3E9B62F0DF07DE0") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"651F3092AFA551D0") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"3A3D8F2F2CDB11A7") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"5901047178CCA69C") ironclad_0.33.0/testing/test-vectors/square.testvec0000644000175000017500000010030411305364032017443 0ustar00;;; square-test-vectors.lisp ;;; Encryption of the null data block with every key where a single bit is set (:ecb-mode-test #h"80000000000000000000000000000000" #h"00000000000000000000000000000000" #h"05f8aafdefb4f5f9c751e5b36c8a37d8") (:ecb-mode-test #h"40000000000000000000000000000000" #h"00000000000000000000000000000000" #h"60affc9b2312b1397177251cc9296391") (:ecb-mode-test #h"20000000000000000000000000000000" #h"00000000000000000000000000000000" #h"d67b7e07c38f311446e16ddd9ea96ebe") (:ecb-mode-test #h"10000000000000000000000000000000" #h"00000000000000000000000000000000" #h"39207579067031706fab8c3a5c6e5524") (:ecb-mode-test #h"08000000000000000000000000000000" #h"00000000000000000000000000000000" #h"fc4f2602a3f6ac34f56906c2eeee40c5") (:ecb-mode-test #h"04000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6f2431469f4a0866632216c59c18ff11") (:ecb-mode-test #h"02000000000000000000000000000000" #h"00000000000000000000000000000000" #h"c745f6f339d1bb9524e1b2d2b0dde843") (:ecb-mode-test #h"01000000000000000000000000000000" #h"00000000000000000000000000000000" #h"241e113a1bb5c32cc45d95d7734165aa") (:ecb-mode-test #h"00800000000000000000000000000000" #h"00000000000000000000000000000000" #h"5e16777211c67ae4609f6a47bf5df2c4") (:ecb-mode-test #h"00400000000000000000000000000000" #h"00000000000000000000000000000000" #h"272330139236c300cd161f0266b62494") (:ecb-mode-test #h"00200000000000000000000000000000" #h"00000000000000000000000000000000" #h"15115b9e29524325e7c992ead262ade8") (:ecb-mode-test #h"00100000000000000000000000000000" #h"00000000000000000000000000000000" #h"acdcce277b801ed53dfe0fc12f4c957b") (:ecb-mode-test #h"00080000000000000000000000000000" #h"00000000000000000000000000000000" #h"9cadb290cedd6f7ca6c10d42fe4c1a70") (:ecb-mode-test #h"00040000000000000000000000000000" #h"00000000000000000000000000000000" #h"d70d4c24ffbf3de6e6bd54ec03b8492a") (:ecb-mode-test #h"00020000000000000000000000000000" #h"00000000000000000000000000000000" #h"602455a418a99a942fed27123b9f73e6") (:ecb-mode-test #h"00010000000000000000000000000000" #h"00000000000000000000000000000000" #h"f239c4efd3729d43081544104378f0ea") (:ecb-mode-test #h"00008000000000000000000000000000" #h"00000000000000000000000000000000" #h"70259a9572990099ac563114074db3d2") (:ecb-mode-test #h"00004000000000000000000000000000" #h"00000000000000000000000000000000" #h"932d3644863b6377100c64f243445e7e") (:ecb-mode-test #h"00002000000000000000000000000000" #h"00000000000000000000000000000000" #h"47100bf12f2e1f718e9430f4127535be") (:ecb-mode-test #h"00001000000000000000000000000000" #h"00000000000000000000000000000000" #h"2ed60ffa71c162a53c3a8bba2b0b042b") (:ecb-mode-test #h"00000800000000000000000000000000" #h"00000000000000000000000000000000" #h"e2992d6bdc7c65b70b62685c0d84425c") (:ecb-mode-test #h"00000400000000000000000000000000" #h"00000000000000000000000000000000" #h"c552ca3d805e456f5239dd7956cacd71") (:ecb-mode-test #h"00000200000000000000000000000000" #h"00000000000000000000000000000000" #h"95b577c2ed3c2d9d96c2106e091b1f72") (:ecb-mode-test #h"00000100000000000000000000000000" #h"00000000000000000000000000000000" #h"3d550ae470bfb0306c3099c8d5a471d8") (:ecb-mode-test #h"00000080000000000000000000000000" #h"00000000000000000000000000000000" #h"fc13974afe73a92598aa95edcb2102e9") (:ecb-mode-test #h"00000040000000000000000000000000" #h"00000000000000000000000000000000" #h"ab0cf3a0cfef3aa3d10738523e624a1d") (:ecb-mode-test #h"00000020000000000000000000000000" #h"00000000000000000000000000000000" #h"72fea53144f673e283547f08da30bdda") (:ecb-mode-test #h"00000010000000000000000000000000" #h"00000000000000000000000000000000" #h"389fef99fa1a3dbf664673aa39d848d1") (:ecb-mode-test #h"00000008000000000000000000000000" #h"00000000000000000000000000000000" #h"041152bca8440e8de572dce9dcc88cdc") (:ecb-mode-test #h"00000004000000000000000000000000" #h"00000000000000000000000000000000" #h"845b37c1338a0ba0f295be273841b940") (:ecb-mode-test #h"00000002000000000000000000000000" #h"00000000000000000000000000000000" #h"e2e3a1c7998040ee6bd8714e65ebd8af") (:ecb-mode-test #h"00000001000000000000000000000000" #h"00000000000000000000000000000000" #h"0b2b34c480648dc91f938dd368464780") (:ecb-mode-test #h"00000000800000000000000000000000" #h"00000000000000000000000000000000" #h"96bad4a54376917044b1076727a91e2b") (:ecb-mode-test #h"00000000400000000000000000000000" #h"00000000000000000000000000000000" #h"dd8c3dff69c3fda2802dffcdef1b1631") (:ecb-mode-test #h"00000000200000000000000000000000" #h"00000000000000000000000000000000" #h"da45872e48af2f0ec7fc395d03ff9451") (:ecb-mode-test #h"00000000100000000000000000000000" #h"00000000000000000000000000000000" #h"b25194c0f1953f35bc4c0871cd2d4a40") (:ecb-mode-test #h"00000000080000000000000000000000" #h"00000000000000000000000000000000" #h"3e09af82736971f2847834082d6ec6f3") (:ecb-mode-test #h"00000000040000000000000000000000" #h"00000000000000000000000000000000" #h"fa75a64f778b914dc4b926626bc8b4c0") (:ecb-mode-test #h"00000000020000000000000000000000" #h"00000000000000000000000000000000" #h"d21542857f03f6a92cacd2e783e33e3e") (:ecb-mode-test #h"00000000010000000000000000000000" #h"00000000000000000000000000000000" #h"1ec0a5b9781c5e90b1e15731e0625c36") (:ecb-mode-test #h"00000000008000000000000000000000" #h"00000000000000000000000000000000" #h"e1c58917e586b6c46c46982fa303f14c") (:ecb-mode-test #h"00000000004000000000000000000000" #h"00000000000000000000000000000000" #h"72ecc0d267b445482924c9969de97a15") (:ecb-mode-test #h"00000000002000000000000000000000" #h"00000000000000000000000000000000" #h"a52af631193375dd59555e2753acde65") (:ecb-mode-test #h"00000000001000000000000000000000" #h"00000000000000000000000000000000" #h"033b8482c4010eb20a3edd4ba35a3db7") (:ecb-mode-test #h"00000000000800000000000000000000" #h"00000000000000000000000000000000" #h"56534a944796abdf51ad247b8c9ee9bb") (:ecb-mode-test #h"00000000000400000000000000000000" #h"00000000000000000000000000000000" #h"9eda6fd2cd4eabf8218b98a165e82b9e") (:ecb-mode-test #h"00000000000200000000000000000000" #h"00000000000000000000000000000000" #h"60043a7e110e1321bc41e4ac47d1f45e") (:ecb-mode-test #h"00000000000100000000000000000000" #h"00000000000000000000000000000000" #h"90e685c8f990cedeacc8a2bfc8e46ca2") (:ecb-mode-test #h"00000000000080000000000000000000" #h"00000000000000000000000000000000" #h"b9e77e32f721c0a7a02b50925311e834") (:ecb-mode-test #h"00000000000040000000000000000000" #h"00000000000000000000000000000000" #h"001d2fe95bb39ef0c3548307ea7580f3") (:ecb-mode-test #h"00000000000020000000000000000000" #h"00000000000000000000000000000000" #h"a5dd651290a063f4e7c5e714c9c398b4") (:ecb-mode-test #h"00000000000010000000000000000000" #h"00000000000000000000000000000000" #h"aa7b3b9f459ba0367ff2a332ef725da1") (:ecb-mode-test #h"00000000000008000000000000000000" #h"00000000000000000000000000000000" #h"a424f80b0048756879ed6343768bbe08") (:ecb-mode-test #h"00000000000004000000000000000000" #h"00000000000000000000000000000000" #h"ea4590786de7f8a68439b4616bf7e4b9") (:ecb-mode-test #h"00000000000002000000000000000000" #h"00000000000000000000000000000000" #h"7d15058fe884dcf0976105a816cf6366") (:ecb-mode-test #h"00000000000001000000000000000000" #h"00000000000000000000000000000000" #h"a07d1b74ae6a3f26a8a25e1e778a0d4a") (:ecb-mode-test #h"00000000000000800000000000000000" #h"00000000000000000000000000000000" #h"61f13db32828961c3e35d9b7ab77b57d") (:ecb-mode-test #h"00000000000000400000000000000000" #h"00000000000000000000000000000000" #h"0e2979112efb29754605011a358093fc") (:ecb-mode-test #h"00000000000000200000000000000000" #h"00000000000000000000000000000000" #h"a878c8a8a5230917c56f7eb74fdada25") (:ecb-mode-test #h"00000000000000100000000000000000" #h"00000000000000000000000000000000" #h"34343f73232790e6fa44d8f606a24de9") (:ecb-mode-test #h"00000000000000080000000000000000" #h"00000000000000000000000000000000" #h"d569b991761c26dde723cca0c262f195") (:ecb-mode-test #h"00000000000000040000000000000000" #h"00000000000000000000000000000000" #h"f1a0f35ada018c5df56ffe0dc95636bf") (:ecb-mode-test #h"00000000000000020000000000000000" #h"00000000000000000000000000000000" #h"b26af455039312e1206290a921459e1a") (:ecb-mode-test #h"00000000000000010000000000000000" #h"00000000000000000000000000000000" #h"594049c7e3a34e1b9bccefaf5e75b373") (:ecb-mode-test #h"00000000000000008000000000000000" #h"00000000000000000000000000000000" #h"4e4e037f07ff26e8e9065f26afedaf2d") (:ecb-mode-test #h"00000000000000004000000000000000" #h"00000000000000000000000000000000" #h"ddedc3ca10ec011ea24dd4566d21409c") (:ecb-mode-test #h"00000000000000002000000000000000" #h"00000000000000000000000000000000" #h"3660f51bb790f275a55aa435db6da193") (:ecb-mode-test #h"00000000000000001000000000000000" #h"00000000000000000000000000000000" #h"a9a7cfe07ea640498e832ae25e2906ed") (:ecb-mode-test #h"00000000000000000800000000000000" #h"00000000000000000000000000000000" #h"3863d1c222a36338ea6d402073341f42") (:ecb-mode-test #h"00000000000000000400000000000000" #h"00000000000000000000000000000000" #h"ced5dfdf8b5d1d60e9ad51830a7965a9") (:ecb-mode-test #h"00000000000000000200000000000000" #h"00000000000000000000000000000000" #h"4ffae5d7a5689a5584330cb0a5cc9cd2") (:ecb-mode-test #h"00000000000000000100000000000000" #h"00000000000000000000000000000000" #h"1dd688d47541463915f658bb656420b4") (:ecb-mode-test #h"00000000000000000080000000000000" #h"00000000000000000000000000000000" #h"ef3a1c1800dd3cda748fbdf17086ba4f") (:ecb-mode-test #h"00000000000000000040000000000000" #h"00000000000000000000000000000000" #h"f9aa9b3e76543ef12f7f8b87ce393328") (:ecb-mode-test #h"00000000000000000020000000000000" #h"00000000000000000000000000000000" #h"1813935bb67dc40dc37c68cc2999758a") (:ecb-mode-test #h"00000000000000000010000000000000" #h"00000000000000000000000000000000" #h"8c4916d59fce8eb913b128f2d7b3d464") (:ecb-mode-test #h"00000000000000000008000000000000" #h"00000000000000000000000000000000" #h"bb88da704c5ce031c61954efcae6ed2d") (:ecb-mode-test #h"00000000000000000004000000000000" #h"00000000000000000000000000000000" #h"4e463bceb0f52c3f722e2926c2bd04a3") (:ecb-mode-test #h"00000000000000000002000000000000" #h"00000000000000000000000000000000" #h"4a6181492a454604293396bbd21c4956") (:ecb-mode-test #h"00000000000000000001000000000000" #h"00000000000000000000000000000000" #h"801f29d5462365735a6ca7a64288f48c") (:ecb-mode-test #h"00000000000000000000800000000000" #h"00000000000000000000000000000000" #h"7933733c4daab746ef048edba2d05538") (:ecb-mode-test #h"00000000000000000000400000000000" #h"00000000000000000000000000000000" #h"4127c1d95431fd2632f2b5e5085a3dd8") (:ecb-mode-test #h"00000000000000000000200000000000" #h"00000000000000000000000000000000" #h"0588168ca7525333460c4030af266388") (:ecb-mode-test #h"00000000000000000000100000000000" #h"00000000000000000000000000000000" #h"32b3f193d7237b48883de002b3cbe1c3") (:ecb-mode-test #h"00000000000000000000080000000000" #h"00000000000000000000000000000000" #h"7ca557bc05b845a233c01412022da825") (:ecb-mode-test #h"00000000000000000000040000000000" #h"00000000000000000000000000000000" #h"54f11361ad6dfbb069be67536cc98d81") (:ecb-mode-test #h"00000000000000000000020000000000" #h"00000000000000000000000000000000" #h"a9df031b4e25e89f527efff89cb0beba") (:ecb-mode-test #h"00000000000000000000010000000000" #h"00000000000000000000000000000000" #h"7da4d0d6309906d935ba27ae00cfaf33") (:ecb-mode-test #h"00000000000000000000008000000000" #h"00000000000000000000000000000000" #h"e231ea0fec29d983d3236bb15e7cd1da") (:ecb-mode-test #h"00000000000000000000004000000000" #h"00000000000000000000000000000000" #h"fe1b963a4f596422a6cd7787f4ab3377") (:ecb-mode-test #h"00000000000000000000002000000000" #h"00000000000000000000000000000000" #h"848833f2f7a247d2e1d0c8614694139f") (:ecb-mode-test #h"00000000000000000000001000000000" #h"00000000000000000000000000000000" #h"630bb1dc4e60d3272b6b673bdb918b20") (:ecb-mode-test #h"00000000000000000000000800000000" #h"00000000000000000000000000000000" #h"500251a5c6ad5a6d2f218a3fd5765727") (:ecb-mode-test #h"00000000000000000000000400000000" #h"00000000000000000000000000000000" #h"d019ef316e84149cfd0e85665aa2fff5") (:ecb-mode-test #h"00000000000000000000000200000000" #h"00000000000000000000000000000000" #h"db0b5ac0e8ef011d710323fa3b8bb3a7") (:ecb-mode-test #h"00000000000000000000000100000000" #h"00000000000000000000000000000000" #h"207e46a533617374d2c9da0c92ffd620") (:ecb-mode-test #h"00000000000000000000000080000000" #h"00000000000000000000000000000000" #h"8273ca155249f9f1ad8cc2ca114984f3") (:ecb-mode-test #h"00000000000000000000000040000000" #h"00000000000000000000000000000000" #h"82a73a18aae84ad671e226470f246e1a") (:ecb-mode-test #h"00000000000000000000000020000000" #h"00000000000000000000000000000000" #h"3e0e1206e333917d4c250bd82fef6afd") (:ecb-mode-test #h"00000000000000000000000010000000" #h"00000000000000000000000000000000" #h"2182f67239be15c796439ea3791202e1") (:ecb-mode-test #h"00000000000000000000000008000000" #h"00000000000000000000000000000000" #h"486fb3fa7b1fe1a304cb4e8960c3c6bb") (:ecb-mode-test #h"00000000000000000000000004000000" #h"00000000000000000000000000000000" #h"c1de50e456c4308d5d70da141cef0b4f") (:ecb-mode-test #h"00000000000000000000000002000000" #h"00000000000000000000000000000000" #h"a623f24515a27cee3dad277429000218") (:ecb-mode-test #h"00000000000000000000000001000000" #h"00000000000000000000000000000000" #h"02fa5762f9cd90201565bce71140c6f4") (:ecb-mode-test #h"00000000000000000000000000800000" #h"00000000000000000000000000000000" #h"a643a0ca5154a7d10b251d562d58ea53") (:ecb-mode-test #h"00000000000000000000000000400000" #h"00000000000000000000000000000000" #h"48660e32b1c7ee7085e5b5e9f719c790") (:ecb-mode-test #h"00000000000000000000000000200000" #h"00000000000000000000000000000000" #h"a96366bb17b67e161fd8e33c3e1f3d2a") (:ecb-mode-test #h"00000000000000000000000000100000" #h"00000000000000000000000000000000" #h"5659ab825fc2de031a6998cacd741ff6") (:ecb-mode-test #h"00000000000000000000000000080000" #h"00000000000000000000000000000000" #h"1253e9e4079e9b573a73cf4ce08dc015") (:ecb-mode-test #h"00000000000000000000000000040000" #h"00000000000000000000000000000000" #h"28205442270c735d4ba79042dce81509") (:ecb-mode-test #h"00000000000000000000000000020000" #h"00000000000000000000000000000000" #h"98cfb10f3ed70bb82cc90597b463a1f6") (:ecb-mode-test #h"00000000000000000000000000010000" #h"00000000000000000000000000000000" #h"cab40433631fe3a272fc401255a58064") (:ecb-mode-test #h"00000000000000000000000000008000" #h"00000000000000000000000000000000" #h"abb041d85114da88e65e8bdcf1c67cc8") (:ecb-mode-test #h"00000000000000000000000000004000" #h"00000000000000000000000000000000" #h"00f0926f0f9eaa0a6238dfce79c8f596") (:ecb-mode-test #h"00000000000000000000000000002000" #h"00000000000000000000000000000000" #h"7c662d01b12d9845705b2bd4d7aef43d") (:ecb-mode-test #h"00000000000000000000000000001000" #h"00000000000000000000000000000000" #h"8f1cc7a0fbe7d70a894d09e12fb22bb8") (:ecb-mode-test #h"00000000000000000000000000000800" #h"00000000000000000000000000000000" #h"ebe03d0c6752d0edfebff879c33d8c07") (:ecb-mode-test #h"00000000000000000000000000000400" #h"00000000000000000000000000000000" #h"b74ce7f67bbd969e8ff8862d1fb1715c") (:ecb-mode-test #h"00000000000000000000000000000200" #h"00000000000000000000000000000000" #h"63ad5ea9d599ec848a40d489c0b85e8a") (:ecb-mode-test #h"00000000000000000000000000000100" #h"00000000000000000000000000000000" #h"4e4167f091ea5776e80fb2fca38c2a04") (:ecb-mode-test #h"00000000000000000000000000000080" #h"00000000000000000000000000000000" #h"dbf0cea3a5ed5b884ac13a2a62c32d51") (:ecb-mode-test #h"00000000000000000000000000000040" #h"00000000000000000000000000000000" #h"7e86285068a376a3b9fe8641a38e3f90") (:ecb-mode-test #h"00000000000000000000000000000020" #h"00000000000000000000000000000000" #h"aec1ef8d651a2cf7b5475fcc7fb7a81a") (:ecb-mode-test #h"00000000000000000000000000000010" #h"00000000000000000000000000000000" #h"fda539d910181ce1a1e1db4c3459600b") (:ecb-mode-test #h"00000000000000000000000000000008" #h"00000000000000000000000000000000" #h"f8072bf053d5b5163949ff0b9bb3f81a") (:ecb-mode-test #h"00000000000000000000000000000004" #h"00000000000000000000000000000000" #h"a31eb966d34ed6a6132a6b6e9128e997") (:ecb-mode-test #h"00000000000000000000000000000002" #h"00000000000000000000000000000000" #h"673aebbff82091a19e758ece151811d0") (:ecb-mode-test #h"00000000000000000000000000000001" #h"00000000000000000000000000000000" #h"369bdb6f102d6bfea7645b1a6753bf37") ;;; Encryption of a sample data block with every key where a single bit is set: (:ecb-mode-test #h"80000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"ffd90e8a92a1b025108168714f7923f7") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"64e10ab587bc5d996cf2186c2ff2dd58") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"eaa404b51336a16c963735588b0b2a0c") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"51aaa1e37cb08cf5c6ec9241ac36b4c5") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"c21b34c3c077b30add67d0e2e75e59ec") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"f33ccd4771932f5e467552e93ae367ab") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"b70b9f3a5814ddeb6d3549d88c5b4656") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"5c01c66e9bf9617b155d3902722ccadc") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"1f47def31d2e7e286172b38119fde307") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"bd3c2f005cf0eb5ef737c29f457ed549") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"1d409243f79ce876d13b0fdfea26ccf8") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"b879e37c2f435b0cb941f74892c1476f") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"58c6a8884bf8b110c9127893976a9e4e") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"7a258ac14cb88a31432ba1b320d254f6") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"ff382f1b4bbb54c9f42b73b256f80d25") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"0cef334bcbe5d38e23a9780d2e3e9097") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"3225e13778d2a3bab1eb375e034478c4") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"4ef73320931377f64e296e49c286e5c9") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"adbf2c07f2f42eb7d92acc07f9df7a5f") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"bfca14ad6925ddb4f563048db1c6b485") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"63f01ea46c82dc3b1d81eac5e4f1d687") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"b2f6eb69ce81accc720e705146cfc2a2") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"85b1ff06090504848fdda74dd830e960") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"5bcb44ab29d7c31def58c902c2491333") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"4d982cbc7c1455cde7c0de3f83fcbc5e") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"32f08276e0633e1d819fc6227e631503") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e6bebd4cddc205399126bfda486ed37c") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"afe39df4f356aea5f07069455010d9ce") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"a8c7b2c1e8e1ade5e28e4104ff716ba5") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"fbb3e4ca3e710a5bd94b50726de5fdb1") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"2091d65d6fbb8672d84655f33dc1473a") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"9c74519acc53498333791febfd0e5e8b") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"ed44022a82468ed54203b5863b63061f") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"eae325499a1a9e8e1bd4d6f018e65551") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"b134fe1498d7a1d926d3a623ffa5723e") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"343f8d08a35c272c5cd4064a42a7b6d8") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"79230ea5d7f6b5d85922ed7679aebe08") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"d3f799e3579c68e10fb1c770b1cbb7c7") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"90c24054dc24772ecd92a67a43335320") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"bf38cfda7b75a478fa73316801883d34") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"4323a85f7921a4a1fc072b72b6b46f50") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"3e10218fdefd9a0b91d9032d793aecc8") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"66a759ec5e5cdd9c27a4e97ff0b5aab8") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"3730876a26727d44a46404f69ba99f09") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"b277bd5a0e78eafc049bd9aa3393870f") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"af05cdd3a6dd19fb0199933bdea3c20f") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"0d962ec5f824d922924f3c39339fa934") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"de695dab525ffebc039f63c3defb200b") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"f8ce4303ff6a523a60e3526a28c1c1de") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"c00c5250a33165254408992f6aa1fb97") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"7e81d9c10bc3ac8fcac65079867183ff") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"42f91fe46e5f6485973123b586cc2517") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"0900c5c4bb963e1e421571056aeda9f0") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"933312932700ef9c82333913782fc8fb") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"d78181179ac4cc05f38a1d134b29b70a") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"411b9bd8a8c3d3c9a2c375d28a336c4a") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"632433f8708bd47d6a083adbdf3a8982") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"f037e3fcd3db611bd777420b8170df1b") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"31da207bfbdbb93157408ad2d7e559df") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"2837b13cb713b5fde1bc07cb7b2613d9") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"c31906513814506753848c50ab7c8d13") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"014b54ca9f1d87c7711af20119b03afc") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"060903be7b215ee51fbce79205b0515a") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"f91da002995fe07969ff63b8673fa75a") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"65a8b07ad4f77c8be4f27f975a42f2e7") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"31a157653449da846b5dade80e2f3ae8") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"1be98428352aeab7534e12463898bde5") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"a7a50bec385145e784486d6d70552fbf") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"eaacafae73701d566b24ab68350c4cb7") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"deef8a7a5de90caaa0e3412356518d9a") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"8d4373f4933353f589e42471ef35836c") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"01436b7d351b9ff0fe85dab7ef77a020") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"a6b2b93c4c6dafea4db5a4ecfee2c561") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"7b0f7781683d890db4582d4399b07fab") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"01c82b395331de265555d72df29c7efc") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"5d9ba76d5b20b4b88b70b80c20c5e350") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"92b2a69dd8a75d2edb01644a0b975c15") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e2f6e46a2a899615969f4b751d55d57f") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"97427298315d058eb2f7cdabd4a851c8") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"8f0f710a0cc1d6049ebb01974b76caad") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"2cf62d9d02afb40eed66fedb53c2db5c") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"fb215ab9ec3fafc5fd91cd9ad3cee2be") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"4a37472335edaf7393a304d45a233085") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"d22a878d2ca3a88f34acc92a4e26c738") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"f1a95970638dcbc69c4675e895370904") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"1660060085c0e241f88462bffbe67602") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"a097acb2eb5f779090f886beae746ae1") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"9ffe05163407ba53b62a35d857f58bc6") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"dfed8392eec1b389cbc261faf97c5c9e") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"d2c1b3159129d86959f3aa9b70219a74") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"98c043b2e86cff626abf5fbc745d98a6") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"35c5aed481c801a0ca78842273e0186d") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"ddaac5c7f13943e80d2244a4a19e9980") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"51dbf12fc81e5ffe9b1ce9963636205f") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"38ee89874d644ccdf9694280a6c48182") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"c3bc93ca8e8800622c92c56b99262ae2") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"dc2c2b7558f75b71a9db34e971892171") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"609bd72078f92ae345dcde14e6aba0e0") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"cabc8bdda6e1979199f5010c3f8b8a31") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"c993d659ba4426dc30f8dc7ea03cd2ee") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"5dd47466cbb15dca1485e04231d7491c") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e1351ce84ded187e0f5aab9bb7198387") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e5222c68fda26e5e62929c70233ad097") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"78cc456147db73850328241bdff861c0") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"4f10436e3ba4f38cd96744b897d5a136") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"12b698464abcb67c3956c5d1b9c62dfd") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"49de5db3e7d997c56dd2f82935e6617f") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"71ea115e54775680f16b1b9d7b2ee367") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"45b7e46c664a472af948b0c393f92af1") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"db3678b993ef5e48931b5bf84cece6eb") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"051c9a17d4ca77eabd8b9d9a1bce52d6") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e805aeeac134761ff7b3260bb4308a10") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"3301700109b460c7e41a51059f33004f") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"d71f178093314e188bae26dde5a78927") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"31bb9cb46fbf607fcaa5932851899420") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"ea77bcd0ce469ab47a828dc6324c3651") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e4596b0d33bdeb062a7ddb93e6efae94") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"24d04f34b837461cd3b8d9c13afe6fe5") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"ffb68c9ae4d7d2642bf5bee57d2bd914") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"c008d35eb9de15700c0491319e6415f0") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"92bfbbfcd2bbf54fff06af097893e9a3") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"d2475279191bc4da183ee2dba75fce6d") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"7b8adf2ef0e1f5fbb19cbd4b8fab1426") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"0b07b9c4385bdc86447f535e09a9f424") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"e7308875d8d6645719c076dd1660924b") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"bc50d54a891d6102d0c02f471f1f0567") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"2b14534ca7d9821a40b101035f681f0d") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0f1e2d3c4b5a69788796a5b4c3d2e1f0" #h"69bd984641e0aa887bc23738f60070db") ironclad_0.33.0/testing/test-vectors/rc2.testvec0000644000175000017500000012441211305364032016637 0ustar00;;; tests generated from OpenSSL (valid if you trust OpenSSL, of course) (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"4e0cb93d71c2583e") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"92f821098ab905fb") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"5ba37c7d8773b955") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"76082f0a0598c7bf") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"d10d2523612a10c5") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"40f5e1d92969953f") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"22972dffc668c98e") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"820ff88b7233da7c") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"d06929269e4c36b8") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"f617e5c5e4d9cec7") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"b3f2efd05496df66") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"0e9537378f422ed7") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"3c7bd79356ae0228") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"702f19ef7a88724f") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"8bf6cdc07394c542") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"10c027026c15eefa") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"7ce1279f75be4167") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"5a9e0123d1e694c0") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"7c37fc7b2b36c7f4") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"3b26d4c5424a727e") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"181bcd11ce5af0e4") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"d2501d97a6182377") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"886e81cf1be57bae") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"97b579d10753bf6e") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"56328bb7dd7268e8") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"85b3524cf0ca2cc5") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"b7a20d7a41a30f2a") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"284dcfe16167f3b9") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"15f22f56632c1691") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"010ae75ac4dea3e0") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"c6081fd859a3aed8") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"9ec81af3940f1fcd") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"301a70812cf35a78") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"100d4c12fd2c0771") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"567e8837e9014e75") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"560f18781c8cdeee") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"3f932d231baa967a") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"3bdef7c16c33cec0") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"8c4d5817a9542c67") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"a3153dc478241c67") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"231f0ab091b72c5b") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"f04d68c057166e5d") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"04ee526f05860731") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"28ad3c1e3a180a36") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"fe1b8e8c79f17af3") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"3fcdcf288180d0bb") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"a6ae241534eb3174") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"7fcb585721d94088") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"9d9163d2f95f1fd8") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"d9a6c3dc4243c723") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"23e611d37697cf48") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"a5e0f77ea05a5154") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"7a41985490bbcb92") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"c9f4f3d27941f3c3") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"143e0285013e8893") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"fb4234c72eafe8db") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"c3f591b4c7ad163b") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"610d02c6d6d8fd2e") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"e85e654009003a33") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"b8d5bd8057db1634") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"e8e4d071af362cd6") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"c69756c9d0437c08") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"728a791e67a0d6d9") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"a6a715a1398f8c89") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"870ca9aa8688a5c3") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"170df6e99d51529b") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"212f6f80695adfd0") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"35f4716740ebc4ee") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"85efec310cd65c34") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"067e4ed3981193c2") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"d0e6232d904c24e5") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"313ea5f7b489b618") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"44b8524a33ca70f8") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"343cd6a48c06d3f1") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"60bde87a8df8518f") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"966c119718fc1982") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"c863405f0b9f46a0") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"1a111450d4c86d01") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"a96f5f3f06a62531") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"06db60d3a7a87ca6") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"00259b586d7d0f42") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"e24386ae0a279d71") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"598286fcd254ed76") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"9c40c8f4dbeb74a3") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"2c026e0a74060c42") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"b98ddb7d6fec9756") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"bc3436d040cf6478") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"af92c5d0aad741f8") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"16d4e577b11548e3") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"8daffb46f4aa32a6") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"a627863c96c60731") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"94540a47b24eb2b6") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"9dc6fdced7cf2cd0") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"260be0629bf77d42") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"65270363b88cd09e") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"3629ec361ee87125") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"7eb5e4f6eb9d9796") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"4b0cb71d21f13dc8") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"f948cf95bf63f68b") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"522d114c2c3ce0e9") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"0dab7be2df330f0e") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"537a64734daa368b") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"04e0901e162056bb") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"facfc71c24cd6573") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"b80ba62003387a7a") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"6883dfa684da26f5") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"4a23a57710c63a61") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"f4998bf3a4b415cb") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"817e6d7dadbf5493") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"cddc8886891bcfc5") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"acaf75c8524fd417") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"b5c5eb7646d1420a") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"43bd936c5813a998") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"96ede9543c686bf0") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"72189feb81af1075") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"c88b0b7db269ebe7") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"194a2aefe00f07b5") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"4b8dd301c350d4a5") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"5954d828e7d2a479") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"0353b42468875197") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"a3b7fbe595d73098") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"9cdeb658b8308dc5") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"e83e5670a797097a") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"4ce34c031ee97412") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"29d06f35ea388699") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"67ca4b54e3960a3e") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"c93fad35703f9251") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"3988f7b86c14d3f8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"c71bee6a7f513078") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"c3d0085f3110c15b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"096793978334800d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"e7f0238be517ddec") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"ccff0ac1bbfc777a") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"edab2c741c0d7ee9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"fd556989a7851e84") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"3a9ca2996deeca39") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"4b15a3914f7d0108") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"2c8a1c9a330802ac") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"06968ad82ba24a6b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"f4683728c1bbd4be") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"e0d21b01aa51c724") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"0a242aa76b3ad5fb") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"0d798f2e4c0c99e8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"c135d280348b0cf0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"b8ea3f4438be8d92") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"0cc09ec3110c3d2d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"d00fec30da0957a8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"d0cb2796c17fa36e") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"c17790ebd06c29a8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"70fe9968efe3e509") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"d06cab5e0f8dd270") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"7ff73e5715274d22") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"ba612b28c86baf6d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"f01725be89258b16") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"9fdf714eacc2eadf") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"0c4e2af75fd6db92") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"b66dd4500ad4a9a7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"eb14ad5ad027ce02") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"d8429a3cbb609e95") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"e36f517fadb10283") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"48fa03648011934c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"a97267e0395aa865") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"74ece2145adc6cc5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"a2305dc4cf9b8d8c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"57f7a24583ef2a59") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"badf5c80c0211f0a") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"1006c5f27105c0aa") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"77d1dec8c18762b5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"364751f0e5fcd7a6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"e246f44b527a0583") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"5b91118af7701b30") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"da756f300ac1f673") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"ebfe28c198b7cd04") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"cae231bf885d582d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"1498c6c131752c89") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"57dcd4fc811120af") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"c7a0220378c3ff5e") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"90fca671a002124d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"7bf08f0c7b53e787") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"d24bcd152bf2ad8b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"f71b71c15222e0c2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"34193083a4ebffc6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"d6f79fc6bd53483b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"7817e552eaee7624") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"17d7042a52c1a28e") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"ba7f5ad5f95f7a8d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"1fd2ebd5972b3fd7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"77316a6c1e0ea0e0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"5daf183bc25e487e") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"1b5de93f23225161") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"5337a50ba5bc4bd8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"a93ff797776248cd") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"8107714f0d8188a7") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"e9824f4ee0194112") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"6f8d80683dde8f3b") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"86cb384f5d5a78ba") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"dfb1052ff3a158cf") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"e0b20bff51bfd54a") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"1afa42e2d0fc0306") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"24e44d63a6cb9524") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"d2d2a08e3dd8c4d4") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"732a85da5a5cb13a") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"7898ee5b157aeaba") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"35489cd27f5f228f") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"2a11c21c1792ef26") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"1e687e065fe158e5") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"47e96a5c58be59c2") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"75a38f25e69fa070") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"55c2e6f294070eae") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"54e11dd12e18862e") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"fe00e6ab69ac2b55") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"2f512793c1b05556") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"0c80b388ec72638b") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"74f13979c333028c") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"a301ad0515f48e35") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"4592ac61ece30ed7") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"9c15e78938319fe9") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"21eacc6b6d30220d") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"ac377b275ebd61f8") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"d4a9c9bc256ad770") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"026c9a87d1be3bb1") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"a1f8cf0f094cfbf2") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"3d5c1f6831a6d353") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"1f606752b8a9921b") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"79ab8e8234ac2c1b") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"ab4a1c2c7c3328a0") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"ab72ff74de394764") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"b13ec40fac6ee78f") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"599c657a2f540805") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"877a3945e548e178") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"8376c0ab6374153d") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"132c77a95d9e7154") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"62a11a93b1056e62") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"aafeb4637e904710") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"9beb67d61051bd39") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"4e96039419fe5f0d") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"3108820fa03ed431") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"2a9a5e4ee7977584") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"cc779bfddf603dbe") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"cf9fef6e620e25b7") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"2ae62f853d307b23") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"8e5f0412c3a7e16b") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"c610839c72beb575") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"dbea4a0c97d9a230") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"c4d2bb6360009d0c") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"bdf12d8bea358012") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"6c1492d67f549708") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"7906599461a8ad47") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"3f09bb712a8882e0") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"4811894ce2e25c59") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"c7a2cabd45a2f07a") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"0af19bee491f1c2b") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"28804793596a8043") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"a549f0a5d85a0fb9") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"547914c7f1a9b404") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"56c1a1a09afea773") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"7aefe9afd4b98397") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"8fa2934542a2c927") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"83c438340e88471d") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"7fae73e8a52b716f") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"e873f4ba457e996d") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"3d3b00de2c57a85f") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"43fc4484a47e1c42") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"8e6ccbe613c695d9") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"016873641cd2de36") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"df6d982dbbcc08ab") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"866f9f11a2a508c9") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"161a4e667be9fa14") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"8985e2f5e3d2dbf3") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"4da7c333d3df3b6b") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"a29d31c656acb500") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"27d24b40f12fdaca") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"92c398b66959d7d7") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"45cc3e41fe50138e") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"b5263a369ae28be1") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"235955050b5718d1") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"1e10ecd3060e32e2") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"b1ffb248da58063e") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"22ee2dae0a75e47a") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"ba6ff24b2da50e6d") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"ee0af1c84f35cfe0") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"53611a019052706a") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"8202f731d26cb00e") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"80776ee86306ae83") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"5b3276072410ec9c") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"bd77e49004383bb3") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"e44e38c7518fd84d") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"f518be053bd7f7a1") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"ca0ecf6a9208d7e2") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"a1c2f6256b87e1ca") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"0876fb93c96ab756") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"0e4c8dad9256f7b0") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"54a312d52e461048") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"8a1df74e262def5c") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"daf6a9d256a2cf4a") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"b3718f4e5e56f311") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"682b9548e7491408") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"f8fa125c1d585949") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"1301c213875f59d1") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"5023df8e2b6bab77") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"ff53805d537caf0a") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"4279df53ee18fbe3") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"2ace6edaf32f1665") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"20bfd21426929aa8") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"e680c5ae4bfaad52") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"141052351ddd0f75") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"35e4143fdbff8cd9") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"883aeb08ac344ea9") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"8098cd594f5aa7cf") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"35ed936a19f336d4") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"6c81bc81c408ffb8") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"53161b25d3b4ad24") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"ebb6317351e485ea") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"3c9cfc635580cb77") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"dbf49d8e402bcf7a") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"140b72d05983ef71") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"dea95d7d3174d064") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"e1c8a0e8e8082ef8") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"262583a7229e9520") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"7a1fb2589b24b227") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"bf22de302c614872") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"daa83f33f77eefe0") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"ba99372354ce02fd") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"d8618cd87bce7b22") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"c19a8313a021d620") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"096b3ecf139d1567") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"dd4b48c448e58f58") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"8f2c8b54716df547") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"a38ac239ae5cd8b9") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"a097f7f3a05a3926") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"741034ec52693917") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"24e4bf7551be54a2") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"de4ac8bad2b8016e") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"0e204e542a072a71") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"b31e641729d3ba91") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"e7561f244df0a9a3") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"f6f7601aa283ec51") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"9c0a5a6569cde43d") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"d9ffc301516e48cd") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"e4702ff3bc32d616") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"9639f337acd7b095") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"a38d66c701a979cb") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"6bc588ff17bbb618") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"d07341d215d675b6") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"d0e7b523726c863f") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"bf174c7ff8f2a908") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"8c1c7af696cbe7d6") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"6246be0146bac5f2") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"c8ade500dbf45051") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"f70d090a770cc6ff") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"cd9c2e1a73de6303") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"a48d00cecadc7354") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"1d91e00af83e7f60") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"c9e8aaf26f684e57") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"dd2bbb3b8236f68a") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"fcb3b9fd347ba1d6") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"6d523c29b27f8bd3") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"17b653cd659bc712") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"0cc5910dace550c7") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"564265dfcec21825") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"a5f70640f4e7752a") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"4ca6b60e702a1d21") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"c5c65a69e2ed7515") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"6ff2ef67dc8bba70") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"4184b15fdbe046a6") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"a49812697f60a396") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"062a921a8d95b345") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"4fb9a34dba9caaf1") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"07512695f597506f") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"58ac689cf9672792") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"afa557ac3746c753") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"d3855256187bced4") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"32f2dceebc9af81b") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"3686340159397eb2") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"711666aac2958f82") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"79dbf9195694f321") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"b3a63b52836ef568") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"91c9d271435c6233") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"7b8150f77f79d213") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"5a8092045262dc87") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"a07dd29f4cf6a2df") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"b2118070a60c9c64") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"283fbbc9f638192e") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"e3a471e1c1a66ee4") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"62828f5e5c45e0e0") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"ce8a5ac7f0017eb4") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"bfa27d0a7acbf1e4") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"b2286c6883b0fbab") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"61cd74879bec1a33") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"97b863e52302a219") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"acbbccf9f0d804ec") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"97a86a3c28697d31") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"197042a22819bcdc") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"7264c6bb0d0b8065") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"55006a3c885a5034") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"98b98e0ea3387a1e") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"79498eb893366438") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"5384457320bde2d1") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"81047508030316b6") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"afab941420c154bd") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"1f383446e06ddb7f") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"48c28844eba53092") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"3189269384246515") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"1de63fa1d222b50a") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"e97e1c9cabdae06a") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"5335284b1e262179") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"7b8e0cda3f504864") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"bdc019f64ee91f0b") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"6d8112170b1242d6") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"e472af384143c385") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"99841f48a8e99c7c") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"68b164e6124037cb") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"f217c8b90714d05f") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"8dc6e54c5b6398e0") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"ea7a5b67741f6212") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"8403c78f4ebff342") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"0c2f81bd94724cc9") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"5dad83d2b8153158") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"ecbc6a0959fdf1c9") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"403871ab351bdc1d") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"002c607a1502bb86") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"f1bc15d10a4a5264") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"002fef3928685a45") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"6abd5ea83bee0d34") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"8a1d2564775eabcf") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"4f40cd3b1de4d815") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"5ad37c20d15094e8") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"2efbb091d718e768") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"8202992a81159119") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"545e73487bd25858") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"1cded5de39b6adc9") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"5e2fe0f76c649d9a") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"ef200eeb1cf52c14") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"e78f3295f9c82de9") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"df473824f9d3e175") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"59e3b5bc4a31f1f6") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"22f69c52c722c9ab") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"01c04b45a3263099") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"ab348a01c6fb285d") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"3eb3ddbc697dbd58") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"6655e845fd6c6ef7") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"f771266b6779b86a") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"e71eb873c5518a7b") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"5703e70d7b0defa8") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"3eaf55aaa432e0f8") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"297c036ced195933") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"cb752d414d79d082") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"b0c21a0dbe0a2aa6") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"5ab3337c2c72b69f") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"1dc0955c2cca541d") ironclad_0.33.0/testing/test-vectors/rc5.testvec0000644000175000017500000012445111305364032016645 0ustar00;;; tests from NESSIE (http://www.cryptonessie.org/) ;;; ;;; n.b. these are all done assuming 12 rounds (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"8F681D7F285CDC2F") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"DC14832CF4FE61A8") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"2F2494A0D96958E7") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"410BCDD35DA0963F") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"0C4C1EC0EA4EA260") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"3BBC9C778EDC72B3") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"06381C693372158D") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"587E3D5E4B11860B") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"D6F60736920D9319") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"2ACB30508A017C5D") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"9F1237DD5B57F140") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"A394956442AFCC43") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"F89DB895C619914B") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"F2FA3F8AD897FE55") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"37A7CF80BBA7ED28") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"B4D3613F370CDD26") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"CF6FA85F7D599EED") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"F52C5328B8B73CC2") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"655AEDB550850AF1") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"8D695A777ABC21CE") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"E493DE948CA27B44") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"929BE63E4B0BDC6D") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"72926639928E2E3B") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"A47330C510E3F48A") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"DDF4F2E1733FE495") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"C240C78F92A219B8") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"4ADC682FC6ACBFAD") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"57C7CE07E9CA2BC7") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"34470680FCD4D9CB") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"9A6FB9620B79245F") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"B275A64B37EAF914") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"AEDA56A5190042CE") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"AE861288A7D664D4") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"2C058DA9A41A2604") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"D2F4F442FB27EF3E") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"4A51C6519BA9F04E") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"638F7E9A86AC3FF6") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"AADE1A8BB1DDE268") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"0A875A87E6F2AB87") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"CDCA436661D1EDD1") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"B4BA907F4E6C3F63") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"7790DF95D2FA15CB") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"D78C795A3C2C288B") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"B491EB3DEE1A2EE2") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"E2F2146284D28F74") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"F7BB41B070148B35") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"ADB84CCAD2121BE5") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"800D7FA733B9960C") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"0FE00A54D35ED35E") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"0E53E0B6465D8895") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"01907DF00C43D69C") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"87E399F67357FEE0") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"DCBCCE80E64D7000") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"93B87003240DFF08") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"89555942AE9529CA") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"1AEB38B99495A0CB") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"5DC10990BF7FEAF3") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"5FF336E6E09E151F") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"E4867C31A53F278C") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"AE2D56B443FFBBB0") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"E4B0930CDEA092BF") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"2BD89729A3D0C3BB") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"23ED08C5F4DC6049") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"8FC62B5984577752") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"14613DCC1ABE7A39") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"5E7A901B9FDE2296") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"C4077FCD04CF4870") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"DF7BE5B6876678ED") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"5B8942F5FEA33765") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"994764B14447574B") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"F63BEA609AB9653A") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"6825EFBE4FBCB333") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"BE36BFBF6EAFD879") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"A667934F8149AF84") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"0CFE855287BE997F") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"CA0EB8DFB608C3B8") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"6B1018816D2272CD") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"B7469BCF9E90A2C4") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"48AA658A6925C013") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"D9F87504BA1C3FB3") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"172D40D4F436591C") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"6CAC2B66A306CD73") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"21D7330D53E33DE8") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"06B173283475F8E8") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"FAE2841F2E2FE143") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"A7A81A93E3ECBCD5") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"C2A5BE3EF5EC8AB3") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"B5EB779948BA1623") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"961702D18044CB39") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"59B78C8BCB38A286") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"149630BCFCDCE42F") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"31FC84212D821AB8") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"1BC58ADA2D336C1C") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"3F4A3A940AF166C4") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"89753AB2D0CF3F53") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"8D9638633EBCA8B8") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"5FF9CDADED6F3429") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"EE44FA4A9D7A7A05") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"58DB5741FE4BC562") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"1344DD0FC7FA66A2") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"5A26CE40229FC75F") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"6D065E9A2CF3B415") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"61CA46BABA4C8D3A") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"99F140A08FF367C3") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"0B8940BDB11BE345") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"91010133804AC487") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"C78B7A85517B5EEA") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"CF2506728C542E36") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"FF12180870932832") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"6BC57ADDCF695077") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"BC4A809EEED597F2") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"72B52A71970D60B7") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"768E8E52F5B90C82") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"DD251D79E46362A2") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"E243BEB5973FEFC7") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"96CDEBC83DA721B8") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"8ADD462F714EFDBA") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"AC674285B9E4540C") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"1A71A18BE1CDC037") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"0CB4877BA13CFF53") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"A008F7F61A571A86") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"3E26B0CB22D6536F") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"B77C0B07B3277059") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"BAC5409F22A2AA99") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"E7F29B87919049A0") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"95B437506A1F5067") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"7405DF1B9BC65374") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"52489BF5F14F98D2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"4FA2D5EE39B74137") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"04E60FB5C6441DD5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"FA1171CD58261F10") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"349E3CD78060E5EB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"54C6C8482AB8A4E2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"804BCFE59F0C8954") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"F4D14CFA3EE9B481") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"DA968333A6C65BE7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"46C4FF9301503D2D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"CDFF074C4BA8265E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"BDA0959F633F1AAC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"8FC51AB26FBE5E97") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"3DB0C7E5BA997608") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"93D28EB470AF073B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"C0A06ED52EDEF8B0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"FABB5009B1711C73") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"94753A63CDDF2157") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"418C212BECA3330A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"CA45918EDF128CFF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"E0698AB795B7794C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"58762EF054860A81") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"883FDCFE44375657") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"9FDAAB2BD47390C5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"64F108CA31231BCA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"AFADE1ABADA43362") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"6A987D66ED176CCA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"73B9F936475FA8DD") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"4E5D0326552C013E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"7583863E0960FFFF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"0E7CDF8E36FD5D46") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"CC74A5C1DAE22BA1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"8BF883323140CAA6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"6A061677A32B330B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"91D46AB9B92AE6A4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"D41EDC3D7F846B19") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"F9A84A33FA626CD7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"1D415BE3124019F0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"4C154FE569DEED07") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"78A847C198DD7271") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"1057EE656C013B29") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"408DFD7186AF2563") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"2DE1757F9E0EE6BE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"CB3610CDBD62958D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"7E69E66C53CA96B0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"89413BF393A23167") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"8E5B278638B50B37") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"F6B6468C85DFD608") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"37E7B0C207D436AE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"D3601DF25C181320") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"7BA87CF78E96450B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"1D98AF7FD8DFB524") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"3B5E9E8275D471BC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"7609BC1137720287") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"5EA325CC78190CA2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"DD05C5D9ED42C284") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"8F542A10AF0C08C5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"117C475C1EC79D8F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"FA1B4EFC38CB38F9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"15D6A98F07E76BB7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"FDFC1F860EC1A432") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"6653A552632DB3CA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"F90AF3CF757500E0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"64E414ECF54EB681") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"AAF64681E2AC59B1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"21A5DBEE154B8F6D") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"6CABA75030BADD2D") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"5242F450A122809D") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"FD44C2A21A3C84C9") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"38460858F362A332") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"4E8152CF58C5E4A9") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"CCB720D547FBBE46") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"977E36D07FC4A140") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"8D1E08C0850CCF90") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"0E832F2AB3429407") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"CCE401EE1C6C9BFF") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"BF628B652E772BA7") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"42ACD6FEFE5BB691") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"ADD4BFF533F1C851") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"6A504F05FF28ACA8") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"C5B33F57213421E6") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"AC00FDFCAD2D3AE9") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"3E1B0CF71189AB99") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"5334EAA33D4786D3") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"CBC3CC2742BEEC05") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"C023A16B3C7054E1") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"9C9328D4A0B7A4C4") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"72752F9BFF4018D0") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"91A3A4775CDE1A93") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"6C7920CAEE61E7BC") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"6709225C0C76EBB9") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"9C10B1B6F7BD1E5D") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"C0099C99E622CAF8") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"20C0456C020A7109") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"68E4AFCA39E094BB") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"1E7F5C7518DF9554") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"9469D3CEB650F218") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"BDDC38EE9918BDD8") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"0CA14583D18AB171") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"477937288AAF9675") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"76A74F7583D69A0C") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"70B595CFA9A980B9") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"F37385F13459A493") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"7B40D58EF301684D") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"96A76939ACB73852") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"50B32C8CEBC23CA1") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"A1C6E9A2DE77F7CD") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"DFC4C0C964BD4036") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"A5770E8164118196") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"A9B788B267D8AB11") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"724584114D6672BD") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"64AFA5253F17447C") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"897135635482481E") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"B277D70ECF936724") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"6532665C5FB56897") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"71C277B4C74822FE") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"FC2FF1B6718E8C53") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"56C37E81D03AB0F7") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"971C20F52BD6A744") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"CFC69AD99008E960") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"C33A247AF55968F8") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"D3B0D96C1C2F102C") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"267CD0F496DCF651") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"758E9204026795C7") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"44D4B0FF04168F60") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"8D1ECEAC286DD093") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"91E5513B611B4B07") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"6EC99E0444BF2B7D") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"83387CF7E596A0BA") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"49004D5DD78E012F") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"566F76FD5220CE9C") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"82151FF806A10919") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"68A8B02F5037F69F") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"B8D1C1655983FB9B") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"F6D0C498C6D16BC1") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"C71AF1BB575B802A") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"7AFB71115556920B") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"53A25B037E59ACBA") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"7A7103C55DBCDED8") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"148170D015C218BF") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"CA979ECC5FDDBF97") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"24C247AFDCCA7938") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"7901FD84B4F78B5F") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"644F08AA654AEAC9") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"344E3F49BCFF9A0F") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"1A7DF18D492EF8CF") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"3196730672CD0C6F") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"B72C7E16EE0ACACD") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"C2BC8B2AB998E711") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"CB21583B0DF021DD") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"B8E59235A4F470D3") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"BEE1DB030C935717") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"831A7B5099D2100D") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"2A997246A99C4FF8") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"018ED090C80DF752") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"F1FC03247755C943") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"55A5A820B37660A3") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"77D8C21A4077BD57") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"5A474662F3017D8D") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"E7FE00C77B9CB5C8") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"C1F5A9F0E3667DFD") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"D070DAE6A4CC0FD6") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"2E5782307398F040") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"AC24CB79ACA263A9") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"F085D188ECFECF19") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"E8573E9FB5DB8067") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"6586F1C21F49F1C9") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"AA6ED1BD028A7018") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"5A0E065388DB0D92") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"2FF48C50E035D377") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"2839158F422633F7") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"366261D9B681CD6E") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"400676D499B835CC") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"38C60E0610093C5F") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"D944CCF4F1278308") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"D27CA8021D0E8900") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"2FCAA7CC8286C991") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"01A28A76FB00E262") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"A3079D2B4F7998A4") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"4473A4CDE2E07B09") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"11B1DFC2BC9014BE") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"E42BEAA2B5E0F0D2") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"5D3C8E4D35C2CBBB") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"AF4264E1D1C21572") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"A8C305EE61876059") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"58CCA4F7D38DB71B") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"D6489805A076BA05") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"CB400FF4D35A21F0") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"5835B7C049530FB8") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"28151E5AB60D8965") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"9ABF28D29C7564D1") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"625CA434EA6015CC") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"91706282A6F71145") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"9A34CA2680A8FB2C") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"68B056DE990155CB") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"B0CA60CC26647182") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"D28ED6F8CFE7B7F0") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"4529421C70FD6B40") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"BACEC7862A754336") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"4B59956ECB6987A5") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"68D7BA8FF1BD8F10") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"F64675D642402DE2") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"9DA213226DC02670") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"F18915137DD586B0") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"8D89FAE8CA1C018D") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"CE46CE41ED57BA06") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"0D163E7577A8855A") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"8E6FD0B5CCCF18DD") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"07E64F10F5BE3047") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"3D7BB8C9512FAE79") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"F7C11820587A8F92") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"04300AD157EB27D3") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"7EC0611CA1FE60E8") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"DF7D2FA625F9E973") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"BE6587884B6DEA49") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"EBC8A5C154810C45") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"1D4C585A7E117553") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"A5EBE4A940094C69") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"9137D6D560936157") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"5309FBD4A8DF41AD") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"719B0AA4E73F319B") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"699969DAD1399A2C") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"F7675963C1828C6A") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"CAD25867B7B2CD79") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"8D8BFC68D675488F") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"EACB8CAE72FDFF76") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"54B7696DC05D6134") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"15680063D4936D20") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"CFF5B49498BDB9D4") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"D696AE19D1429342") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"EB9FDE4C1DE509D7") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"FDF7DD9BF59F15EF") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"7F8220A8A24F9E7B") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"7AD506F629C1B3A6") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"DB966AFE3E83B861") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"BAE9CF655D8204E3") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"EBD329E2C0594A52") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"0754CB1DC1B144C6") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"93FD2776D5689CD0") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"5C9372172C33454C") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"D6E1275D786DE69E") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"074A198C305252A4") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"6E26D852C00BAEB3") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"2B370850A5FCA500") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"B49B04B30F4CB2D2") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"9E3BC0BCD3CFF466") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"0873A3528EE214CF") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"BE2F44E09323C5E3") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"A624BF7E0C7371BD") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"254D70CDA6435D0A") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"5D857F317FD0E124") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"C5946AA4784B433D") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"823FE76F1B092058") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"23232BFC9605C1FE") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"E3AD1301A24142AB") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"A59551D740C21E24") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"DD51AA54A8679D90") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"78F45CC40CEC2E93") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"3BB9D6E057F47FFE") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"749CFABB7B5C5821") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"1E5B1CFBBDB0C9F1") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"C4CC0EFF546CE088") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"08AFA212C14F3D95") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"ED54E38986A9C3E0") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"C06A363FF909D39D") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"4C04E1629985AFC5") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"54D5B758C2A707C0") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"FE720A0F9D1C8907") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"C249D87F3A37A7A6") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"12ABA9F0AB7DEE1B") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"CB72B2F230BB5D2B") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"91C8C06C731F769D") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"CC6FF2B07ACB2400") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"1CBAE883F374E148") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"A8509A3504B1281E") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"180BB7DC814A98F4") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"82E6AF824A322810") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"0C497C678BAC9073") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"4C87E0FD73F6491D") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"09DA33A688837896") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"8C3863C0610344B9") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"245D7C4FA2F2E43C") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"AC13E8AE410F323D") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"C4E21F4CBCAD4413") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"6AA1E55C36A2682A") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"D832821D2906B4B3") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"77437FA1C20F2026") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"14DCF1D4FA1AC050") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"9D4B0AA902D8C991") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"A9220173BC5C90D3") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"5A1B0B1B626C6013") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"01379BEAE1A99B8F") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"3B315FB8C3790AE5") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"6FB6F6D1C58FEE17") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"19CB239FA7FB4F9A") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"3B7A6FE621C955B9") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"186F0FF49C9A477F") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"14D8B03ADA6D657A") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"0BC734E3FA645E9F") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"803029F702C64ACE") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"FBAB9F8696D6BA77") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"7BB9B6707793A276") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"D1C79B8A49FB6DBC") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"2B1564BDEACB7B52") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"987031C9C36DB4FC") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"34C51D8E465C37B3") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"8BF64B6997C66DB5") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"AE2F6E701775A4F9") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"26E2F58E94216BE8") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"095BE185ED2220CE") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"E0D3DB2A70584C12") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"EEE3687E33787521") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"D0977FD8EDB1CD7A") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"D6FDC0D5EAF80022") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"57BA725738661825") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"76124554EBE44389") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"6D62A38F77BC4B87") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"A63A2B299E16E3F0") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"BBBC7CC82DE3D48A") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"5A94182F3EA5DFDA") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"778769E9BE0167B7") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"2DDC149BCF088B9E") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"11E43B86D231EA64") ironclad_0.33.0/testing/test-vectors/rc6.testvec0000644000175000017500000075411511305364032016654 0ustar00;;; test vectors for 128-bit keys from NESSIE (http://www.cryptonessie.org/) (:ecb-mode-test #h"80000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1AD578A02A08162850A15A1552A17AD4") (:ecb-mode-test #h"40000000000000000000000000000000" #h"00000000000000000000000000000000" #h"912E9CF1473035A8443A82495C0730D3") (:ecb-mode-test #h"20000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3D3E851A80ABAF221761931747473048") (:ecb-mode-test #h"10000000000000000000000000000000" #h"00000000000000000000000000000000" #h"96CFC0510819EEB7FCDF2CC7BEABEF77") (:ecb-mode-test #h"08000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FB787268EC3C583A3685973B861AEF8D") (:ecb-mode-test #h"04000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2AE927525C73250D954B619EDAC718BE") (:ecb-mode-test #h"02000000000000000000000000000000" #h"00000000000000000000000000000000" #h"00298D1DB6C6DA02E28E49C63B4A5795") (:ecb-mode-test #h"01000000000000000000000000000000" #h"00000000000000000000000000000000" #h"7E32F418910C9AC8701292B5F96346F3") (:ecb-mode-test #h"00800000000000000000000000000000" #h"00000000000000000000000000000000" #h"9FC6C21A562A049AD320EAA0D43C1998") (:ecb-mode-test #h"00400000000000000000000000000000" #h"00000000000000000000000000000000" #h"7A0BD66C361D641DFD313CBE23F69A57") (:ecb-mode-test #h"00200000000000000000000000000000" #h"00000000000000000000000000000000" #h"C2E2CAD226964597A98C388B27127EA1") (:ecb-mode-test #h"00100000000000000000000000000000" #h"00000000000000000000000000000000" #h"B7F4837AC6F1F808D8EBBF1D08077FB4") (:ecb-mode-test #h"00080000000000000000000000000000" #h"00000000000000000000000000000000" #h"0495E1AEDA7A9EC9ACBF38FE41CB08FA") (:ecb-mode-test #h"00040000000000000000000000000000" #h"00000000000000000000000000000000" #h"E001020E1D0C05BE072695F3F48F07B2") (:ecb-mode-test #h"00020000000000000000000000000000" #h"00000000000000000000000000000000" #h"608CE7A12C9EEC348FF674FB9F8D1972") (:ecb-mode-test #h"00010000000000000000000000000000" #h"00000000000000000000000000000000" #h"916BEC60955C1A3540B4C245F4D3B94B") (:ecb-mode-test #h"00008000000000000000000000000000" #h"00000000000000000000000000000000" #h"B2B91EC4EFE12CD4EDDA71ED52B278B1") (:ecb-mode-test #h"00004000000000000000000000000000" #h"00000000000000000000000000000000" #h"0CA46CF5275313AB3D9494A5BB7D786A") (:ecb-mode-test #h"00002000000000000000000000000000" #h"00000000000000000000000000000000" #h"E679B7C6F661AE52BA5199EC24D4E542") (:ecb-mode-test #h"00001000000000000000000000000000" #h"00000000000000000000000000000000" #h"043FAB3A991B3FEC872AC747640731CB") (:ecb-mode-test #h"00000800000000000000000000000000" #h"00000000000000000000000000000000" #h"EF8C38151A67B9A51E0935BBA14D9E22") (:ecb-mode-test #h"00000400000000000000000000000000" #h"00000000000000000000000000000000" #h"2D4515423CFCF372B5632C2879A71267") (:ecb-mode-test #h"00000200000000000000000000000000" #h"00000000000000000000000000000000" #h"2420A9327B9D2426C19F755BC3D8BD88") (:ecb-mode-test #h"00000100000000000000000000000000" #h"00000000000000000000000000000000" #h"2151D88643EE81D8D23B44D22E2B0D65") (:ecb-mode-test #h"00000080000000000000000000000000" #h"00000000000000000000000000000000" #h"AEFA6F32E963CB2D4D89E673B503DDAC") (:ecb-mode-test #h"00000040000000000000000000000000" #h"00000000000000000000000000000000" #h"43DBE4D6B1BA3F05F16D73B2F80A12DF") (:ecb-mode-test #h"00000020000000000000000000000000" #h"00000000000000000000000000000000" #h"ED8C9B25558CAD4EF9469364BE97CA30") (:ecb-mode-test #h"00000010000000000000000000000000" #h"00000000000000000000000000000000" #h"BDE5B1DC5053F94670599CBE6845604B") (:ecb-mode-test #h"00000008000000000000000000000000" #h"00000000000000000000000000000000" #h"4529434499884BE7C4E6D009F3D5353E") (:ecb-mode-test #h"00000004000000000000000000000000" #h"00000000000000000000000000000000" #h"B3D4C642173189B9295912E860CF6880") (:ecb-mode-test #h"00000002000000000000000000000000" #h"00000000000000000000000000000000" #h"651F1B1629535AD03D5C296D560FDE1F") (:ecb-mode-test #h"00000001000000000000000000000000" #h"00000000000000000000000000000000" #h"8A380594D7396453771A1DFBE2914C8E") (:ecb-mode-test #h"00000000800000000000000000000000" #h"00000000000000000000000000000000" #h"395FE0214AC536428C86737514B6237F") (:ecb-mode-test #h"00000000400000000000000000000000" #h"00000000000000000000000000000000" #h"ACEFAC47A7AB6E635EA9F85EF74DEFF3") (:ecb-mode-test #h"00000000200000000000000000000000" #h"00000000000000000000000000000000" #h"8C208E26E96D9DFA248010D8C1CFDB3B") (:ecb-mode-test #h"00000000100000000000000000000000" #h"00000000000000000000000000000000" #h"D3AE8AE99B3A84C3721EAA57C8EB17B1") (:ecb-mode-test #h"00000000080000000000000000000000" #h"00000000000000000000000000000000" #h"40D8DA37A8A6591A203F2A38AB05A08D") (:ecb-mode-test #h"00000000040000000000000000000000" #h"00000000000000000000000000000000" #h"F0580D0B864E8C03638A33499B36C9A5") (:ecb-mode-test #h"00000000020000000000000000000000" #h"00000000000000000000000000000000" #h"10F19634C2D1006B0C208AA303065B0F") (:ecb-mode-test #h"00000000010000000000000000000000" #h"00000000000000000000000000000000" #h"7D43298935D0AF6DB498542752666C99") (:ecb-mode-test #h"00000000008000000000000000000000" #h"00000000000000000000000000000000" #h"456AD1F19D18900B4F85EB64E06DF643") (:ecb-mode-test #h"00000000004000000000000000000000" #h"00000000000000000000000000000000" #h"08C83A53955102F6E60C2CB0F6C02443") (:ecb-mode-test #h"00000000002000000000000000000000" #h"00000000000000000000000000000000" #h"351C1035006BC7475DF60694859BB491") (:ecb-mode-test #h"00000000001000000000000000000000" #h"00000000000000000000000000000000" #h"BB47464DFF62381AD4A93684D00A817F") (:ecb-mode-test #h"00000000000800000000000000000000" #h"00000000000000000000000000000000" #h"514AC91B28081BD0E0CAE22D766257DF") (:ecb-mode-test #h"00000000000400000000000000000000" #h"00000000000000000000000000000000" #h"7758C19B083A62E6F2CAAD2B4C3DF4DC") (:ecb-mode-test #h"00000000000200000000000000000000" #h"00000000000000000000000000000000" #h"46B352EAC71542E417619E0360221673") (:ecb-mode-test #h"00000000000100000000000000000000" #h"00000000000000000000000000000000" #h"648D51C6F9522FE38108BBFD34015F22") (:ecb-mode-test #h"00000000000080000000000000000000" #h"00000000000000000000000000000000" #h"DCD800CC104B9C098AB4B931C7538F00") (:ecb-mode-test #h"00000000000040000000000000000000" #h"00000000000000000000000000000000" #h"E40601C1632937FA769C58BE63DEB056") (:ecb-mode-test #h"00000000000020000000000000000000" #h"00000000000000000000000000000000" #h"BC968175089F3864C81124A55AA445EC") (:ecb-mode-test #h"00000000000010000000000000000000" #h"00000000000000000000000000000000" #h"05479ACFA5A7C6BC89FE432D8D25A366") (:ecb-mode-test #h"00000000000008000000000000000000" #h"00000000000000000000000000000000" #h"8DDF91E221B4C2043C079F5F0ED63EA7") (:ecb-mode-test #h"00000000000004000000000000000000" #h"00000000000000000000000000000000" #h"66C47E3E339FFD404A61547E54ED0F7F") (:ecb-mode-test #h"00000000000002000000000000000000" #h"00000000000000000000000000000000" #h"3D622A36A3375D2EFFF3B49363F25755") (:ecb-mode-test #h"00000000000001000000000000000000" #h"00000000000000000000000000000000" #h"C2E42DDC662F226D09908E2CFDD03D32") (:ecb-mode-test #h"00000000000000800000000000000000" #h"00000000000000000000000000000000" #h"3221BC8032E72E0DE7580480A99DFD7D") (:ecb-mode-test #h"00000000000000400000000000000000" #h"00000000000000000000000000000000" #h"C65A142D036E99D1A4DA370D964A8A44") (:ecb-mode-test #h"00000000000000200000000000000000" #h"00000000000000000000000000000000" #h"E9C03F4840645726563582AA30464D1E") (:ecb-mode-test #h"00000000000000100000000000000000" #h"00000000000000000000000000000000" #h"93C2F8237D526E910F007FA0CF0608A8") (:ecb-mode-test #h"00000000000000080000000000000000" #h"00000000000000000000000000000000" #h"6F3A45184B87581E98B7B0D873F8B315") (:ecb-mode-test #h"00000000000000040000000000000000" #h"00000000000000000000000000000000" #h"D3569BAB0FDD360451E113895B39D0E2") (:ecb-mode-test #h"00000000000000020000000000000000" #h"00000000000000000000000000000000" #h"4002FF10DDB6FCB6669AE3FED696B2EC") (:ecb-mode-test #h"00000000000000010000000000000000" #h"00000000000000000000000000000000" #h"B265C44F675800A3B498FFA91C440654") (:ecb-mode-test #h"00000000000000008000000000000000" #h"00000000000000000000000000000000" #h"092E77F2537EE742D627EA8628E473E9") (:ecb-mode-test #h"00000000000000004000000000000000" #h"00000000000000000000000000000000" #h"441859995F05E1C06D118CFFB389C9CE") (:ecb-mode-test #h"00000000000000002000000000000000" #h"00000000000000000000000000000000" #h"844480BB205810808DC1F87C2B5281E9") (:ecb-mode-test #h"00000000000000001000000000000000" #h"00000000000000000000000000000000" #h"4B2E7C3B31CFC0CA5B51EA589DFFC9AC") (:ecb-mode-test #h"00000000000000000800000000000000" #h"00000000000000000000000000000000" #h"D55D552EA89C267FF3B0AF688CF00D78") (:ecb-mode-test #h"00000000000000000400000000000000" #h"00000000000000000000000000000000" #h"6AD19E9DD39381C8A02F3CC6F60C8048") (:ecb-mode-test #h"00000000000000000200000000000000" #h"00000000000000000000000000000000" #h"271ED37DB771414743EB781B2B315841") (:ecb-mode-test #h"00000000000000000100000000000000" #h"00000000000000000000000000000000" #h"ED0A833C87FE6CDC56E021BCD3099508") (:ecb-mode-test #h"00000000000000000080000000000000" #h"00000000000000000000000000000000" #h"6DBE8FEEB66CF747FFEC4E6D3D2D6BB0") (:ecb-mode-test #h"00000000000000000040000000000000" #h"00000000000000000000000000000000" #h"79460469EFEA89FA576B526B17709D4E") (:ecb-mode-test #h"00000000000000000020000000000000" #h"00000000000000000000000000000000" #h"5C3C35EC3D15CFAE719221549293A6AC") (:ecb-mode-test #h"00000000000000000010000000000000" #h"00000000000000000000000000000000" #h"607106E18F8C8A6E725AF44A491D891A") (:ecb-mode-test #h"00000000000000000008000000000000" #h"00000000000000000000000000000000" #h"1C22A5627309A238E2CE5A39BE370243") (:ecb-mode-test #h"00000000000000000004000000000000" #h"00000000000000000000000000000000" #h"FB6D4F017D84E9B74C2A59204A2EA0D6") (:ecb-mode-test #h"00000000000000000002000000000000" #h"00000000000000000000000000000000" #h"B66A30712DB3BD6B580678BDA72CC5B5") (:ecb-mode-test #h"00000000000000000001000000000000" #h"00000000000000000000000000000000" #h"59C93B2A53BE699840E29D78ACF05DE0") (:ecb-mode-test #h"00000000000000000000800000000000" #h"00000000000000000000000000000000" #h"AD37DFE5DCBB5A50228537BF24ED0159") (:ecb-mode-test #h"00000000000000000000400000000000" #h"00000000000000000000000000000000" #h"C9FAB85DCB8DA12A7C9416B267F21486") (:ecb-mode-test #h"00000000000000000000200000000000" #h"00000000000000000000000000000000" #h"EC797A0F6EBED4C257BC7FC1D7BD0100") (:ecb-mode-test #h"00000000000000000000100000000000" #h"00000000000000000000000000000000" #h"629D633D7A7C345A3A3CF66565E298E1") (:ecb-mode-test #h"00000000000000000000080000000000" #h"00000000000000000000000000000000" #h"859D400CC95F29E7131561F4D7E4DD12") (:ecb-mode-test #h"00000000000000000000040000000000" #h"00000000000000000000000000000000" #h"932CFF2E8A828C61BA537E186F559E93") (:ecb-mode-test #h"00000000000000000000020000000000" #h"00000000000000000000000000000000" #h"62FA5692938CB84279C7E399BA10E08D") (:ecb-mode-test #h"00000000000000000000010000000000" #h"00000000000000000000000000000000" #h"50321207B2A375B12F4630F3F1909B08") (:ecb-mode-test #h"00000000000000000000008000000000" #h"00000000000000000000000000000000" #h"63978A72D0ACAF85676EAA2D1EE01F3C") (:ecb-mode-test #h"00000000000000000000004000000000" #h"00000000000000000000000000000000" #h"20721CCA68AE0451687D82534A360173") (:ecb-mode-test #h"00000000000000000000002000000000" #h"00000000000000000000000000000000" #h"9223A844EAB1CA5D3A43EBC4C5CF01C8") (:ecb-mode-test #h"00000000000000000000001000000000" #h"00000000000000000000000000000000" #h"70E162CC61AC398CF4D9DBE62FD653CE") (:ecb-mode-test #h"00000000000000000000000800000000" #h"00000000000000000000000000000000" #h"082CED7A4969FD3C8131BF9AE57754DB") (:ecb-mode-test #h"00000000000000000000000400000000" #h"00000000000000000000000000000000" #h"169070D4658D94C12041D14EC60A2B0A") (:ecb-mode-test #h"00000000000000000000000200000000" #h"00000000000000000000000000000000" #h"960E45070B5BA767F1A3117851ECF9DA") (:ecb-mode-test #h"00000000000000000000000100000000" #h"00000000000000000000000000000000" #h"4AAAA999C2421953E3607CA202D4C1DE") (:ecb-mode-test #h"00000000000000000000000080000000" #h"00000000000000000000000000000000" #h"E4B97E5B2BA83D2038B5D08EB792F92F") (:ecb-mode-test #h"00000000000000000000000040000000" #h"00000000000000000000000000000000" #h"ECBC7F9C422FC676152CC7E40391D730") (:ecb-mode-test #h"00000000000000000000000020000000" #h"00000000000000000000000000000000" #h"55EBABC43A33305FB82B39A88A737FFF") (:ecb-mode-test #h"00000000000000000000000010000000" #h"00000000000000000000000000000000" #h"C1BDA064749B2B7A9E9378137462F800") (:ecb-mode-test #h"00000000000000000000000008000000" #h"00000000000000000000000000000000" #h"BDDD0163E4CEAC2C614ABDA9EBE15F3D") (:ecb-mode-test #h"00000000000000000000000004000000" #h"00000000000000000000000000000000" #h"B767CF0E6717B409743AE41C56A2054D") (:ecb-mode-test #h"00000000000000000000000002000000" #h"00000000000000000000000000000000" #h"AD897CFAED8FBBD9A3006F7EB2A7C601") (:ecb-mode-test #h"00000000000000000000000001000000" #h"00000000000000000000000000000000" #h"2929929D821D010A1A30E9CF4415F809") (:ecb-mode-test #h"00000000000000000000000000800000" #h"00000000000000000000000000000000" #h"0C861D39741060051855648B385708B5") (:ecb-mode-test #h"00000000000000000000000000400000" #h"00000000000000000000000000000000" #h"4BA018EA1AFF5C0A9CF368592B08FD34") (:ecb-mode-test #h"00000000000000000000000000200000" #h"00000000000000000000000000000000" #h"4377CD44B655A0ABC40E5B9D3A480EC6") (:ecb-mode-test #h"00000000000000000000000000100000" #h"00000000000000000000000000000000" #h"2F604E94C9CD1DCB730AB0AF407FEDBD") (:ecb-mode-test #h"00000000000000000000000000080000" #h"00000000000000000000000000000000" #h"44A3514094941B7E497BCFE0D746BA48") (:ecb-mode-test #h"00000000000000000000000000040000" #h"00000000000000000000000000000000" #h"1235A968A7D12BA7042E7E63A897DBED") (:ecb-mode-test #h"00000000000000000000000000020000" #h"00000000000000000000000000000000" #h"0BA061C7AD274E004B2E06D3D5FC784D") (:ecb-mode-test #h"00000000000000000000000000010000" #h"00000000000000000000000000000000" #h"E0DB8CE28D1C2F6B692B230A7AB0CB44") (:ecb-mode-test #h"00000000000000000000000000008000" #h"00000000000000000000000000000000" #h"ED4BBD535080655AF3F4D71709B1B8D5") (:ecb-mode-test #h"00000000000000000000000000004000" #h"00000000000000000000000000000000" #h"92D183FBE0BD07A0884EBD1963A193BE") (:ecb-mode-test #h"00000000000000000000000000002000" #h"00000000000000000000000000000000" #h"995BB9E75386C99DA3038C3C6340C838") (:ecb-mode-test #h"00000000000000000000000000001000" #h"00000000000000000000000000000000" #h"4914DA6C7A8E1AB8297A9D280DE576F9") (:ecb-mode-test #h"00000000000000000000000000000800" #h"00000000000000000000000000000000" #h"6415185D85078CE80F46C6E09EDB8B78") (:ecb-mode-test #h"00000000000000000000000000000400" #h"00000000000000000000000000000000" #h"8B2908466F8BD3C1C3A4A5EAFCC0FF92") (:ecb-mode-test #h"00000000000000000000000000000200" #h"00000000000000000000000000000000" #h"425BF2FCF5DD8B0013773F9A0DC09B0D") (:ecb-mode-test #h"00000000000000000000000000000100" #h"00000000000000000000000000000000" #h"9AC35220BE56E453B73CD887B299D06E") (:ecb-mode-test #h"00000000000000000000000000000080" #h"00000000000000000000000000000000" #h"41900EF8223D019F1BC3E8EA68FC763C") (:ecb-mode-test #h"00000000000000000000000000000040" #h"00000000000000000000000000000000" #h"9D294A574144109A9C6DE8E90EE517B6") (:ecb-mode-test #h"00000000000000000000000000000020" #h"00000000000000000000000000000000" #h"4146D6BB7AE455D93EAF43753C7AE693") (:ecb-mode-test #h"00000000000000000000000000000010" #h"00000000000000000000000000000000" #h"4155B7D12FD12F96FD39C576FDD41422") (:ecb-mode-test #h"00000000000000000000000000000008" #h"00000000000000000000000000000000" #h"1AF1E634B06211668CE2410D5EDCA968") (:ecb-mode-test #h"00000000000000000000000000000004" #h"00000000000000000000000000000000" #h"815739510622BFE08EEE06B772368524") (:ecb-mode-test #h"00000000000000000000000000000002" #h"00000000000000000000000000000000" #h"E2F7D8411181A21B02C1466E750056C2") (:ecb-mode-test #h"00000000000000000000000000000001" #h"00000000000000000000000000000000" #h"13095792D8B1D771378839C912CA3C41") (:ecb-mode-test #h"00000000000000000000000000000000" #h"80000000000000000000000000000000" #h"F71F65E7B80C0C6966FEE607984B5CDF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"40000000000000000000000000000000" #h"8CF4A482491CD207289D810C2BB29930") (:ecb-mode-test #h"00000000000000000000000000000000" #h"20000000000000000000000000000000" #h"80EF45D42327E3AED39CD45C4E3E6197") (:ecb-mode-test #h"00000000000000000000000000000000" #h"10000000000000000000000000000000" #h"F28D8DF12AC0837A0919254980B674F9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"08000000000000000000000000000000" #h"9FB984DCBA5B0BDFFCFD97B02B648800") (:ecb-mode-test #h"00000000000000000000000000000000" #h"04000000000000000000000000000000" #h"46F7091CD30CCCF570AFC116F8446492") (:ecb-mode-test #h"00000000000000000000000000000000" #h"02000000000000000000000000000000" #h"77B517AA59EC7D3381188936BDEACCBD") (:ecb-mode-test #h"00000000000000000000000000000000" #h"01000000000000000000000000000000" #h"40D5D97CFFDC390AC35C2734F44CF9FF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00800000000000000000000000000000" #h"B5A6B7C92EFCB55D349B63066AC1E009") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00400000000000000000000000000000" #h"152F0F5EA10FAFD0E63494C5FBDCC469") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00200000000000000000000000000000" #h"61F669BF2B32CD27CF6278392C988510") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00100000000000000000000000000000" #h"53A63CEE35DF00C73577B9255F55C855") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00080000000000000000000000000000" #h"6E46B92E23344321A19321DF136CE9C5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00040000000000000000000000000000" #h"22F1261FAB993350F6ED41DA5D69B9B8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00020000000000000000000000000000" #h"0901BC0A1DB5CC87CDA91EF5F5FF46BC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00010000000000000000000000000000" #h"2EE65B377C16BE9517BA12F63189DE64") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00008000000000000000000000000000" #h"74BD6FAA83668952E2D546A66B7A8243") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00004000000000000000000000000000" #h"08FB4817F040B54E995B722C483C399E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00002000000000000000000000000000" #h"5630614200E248D1644B58E3694D8BA6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00001000000000000000000000000000" #h"659A3A27C9F3B0BBC65FC4C15D19051E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000800000000000000000000000000" #h"FF3B39DCB459EE4FFAFCAC8C7331A6BE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000400000000000000000000000000" #h"19F0727A66BD056DCB5541EDE14B4662") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000200000000000000000000000000" #h"D0DE4B5B30A294C8A3838B70387C93B6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000100000000000000000000000000" #h"37BDB0A854686484E5EB52239D6C16C4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000080000000000000000000000000" #h"3CC7113F6E6833C9BFB4EE07371488A5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000040000000000000000000000000" #h"A56737C45AC4DBF2417243C2E3B40133") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000020000000000000000000000000" #h"B0A5C817B1E2C307A4BBF8258DF5F41B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000010000000000000000000000000" #h"F2112329EFA070476BD515679C887FC6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000008000000000000000000000000" #h"1AD2023CEC89B9436D03CCB9893C21C2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000004000000000000000000000000" #h"6BA3E774FCDD02379C6CF2F7BF28B914") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000002000000000000000000000000" #h"A2F8638B0A4014F0641A3CB8A13B5ED9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000001000000000000000000000000" #h"877FEDF7CACCBF0BD7BB5BB236BA96D5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000800000000000000000000000" #h"C9298A9A01C1F276E2E1E04226BF3D5C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000400000000000000000000000" #h"4E01DB16789DE364085416DE25871A59") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000200000000000000000000000" #h"FD3B5DA07D0054DD10FFB79440AB3A00") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000100000000000000000000000" #h"A2508E8BD26E2FB9944C27F04D60FAA0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000080000000000000000000000" #h"E9A43055D71335545A6A514F08B868BB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000040000000000000000000000" #h"587D5B71730D0B59BFBC0A93675B32F3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000020000000000000000000000" #h"90076413F890E8FFF04F1031C779C91F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000010000000000000000000000" #h"FAC9F46E9A1346646EE5C7CED45A84B9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000008000000000000000000000" #h"471F0738C4F4937E4253161F28086803") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000004000000000000000000000" #h"A76F843041C4AED8241850B316D252A3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000002000000000000000000000" #h"5C5FD0334332A39924DB0CC7F0867C2E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000001000000000000000000000" #h"07B6EDDEF27EE890EBC8FFA187D84438") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000800000000000000000000" #h"11BB0F2DC24461F5E70D2830ED8A7463") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000400000000000000000000" #h"0AB1A99B63CB8E07290AC60D0A4F1FF3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000200000000000000000000" #h"A26B0AFC4D55E7D61518C54E7C1BED01") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000100000000000000000000" #h"50C8C2B68E06CFCB98785E5AD3D5B09D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000080000000000000000000" #h"ACA305D5D0D1E74FC51AC8C92A72FEA7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000040000000000000000000" #h"5AF970E570BC1652C82FB4B0945D5410") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000020000000000000000000" #h"00C224433138C1A4BD60571AA35580BC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000010000000000000000000" #h"4EBE79726DAAF4702B075A5898B26075") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000008000000000000000000" #h"8109EE81B1679CEC42DB80D9530AD2F6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000004000000000000000000" #h"403B11B8181D460E9AC0172CBE6DD45F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000002000000000000000000" #h"CDE78E92B5A84717AD9B4162E3B14BFA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000001000000000000000000" #h"A173D6BEBAA05EC54A47C7E554415963") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000800000000000000000" #h"EF31AD6CBFA7857ACF0C28294BDEF8B8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000400000000000000000" #h"209A30C46E41540C7B0AC8C4822DA253") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000200000000000000000" #h"AF770103EC57EBEB913C83D99F58B6AC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000100000000000000000" #h"17D0C179EF34DE7F8EC7698A5371EC00") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000080000000000000000" #h"E0285A3F97607250CDB89BF92CBD1F41") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000040000000000000000" #h"D76BA3CE5E4DC974D4803ADB9F821A57") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000020000000000000000" #h"B66579D4159CF0B0114011C0298EBDA3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000010000000000000000" #h"B9761796C787B51852E4C3130B8B662D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000008000000000000000" #h"D5C638801B97A1C2584ED42132F44109") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000004000000000000000" #h"E54A021B145B7B7761487BCDFD0B032F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000002000000000000000" #h"3EB3AFE73582EFAB0396108B5E0CDEEC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000001000000000000000" #h"463E10507A26B708A1DFF3763276F5C9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000800000000000000" #h"0EEBF8D85AE19EB24C810CEF565FA77B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000400000000000000" #h"86CA894EEFD1CEAAEA70E00CD14645F6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000200000000000000" #h"989B0FC1FFE4BA6F7CC0F1EDEEB5B932") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000100000000000000" #h"42916ED17877E58933D3D8CEDA8DD7B3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000080000000000000" #h"88C0369158F2FEFFB4CF14130CE10B3B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000040000000000000" #h"DB8976E1DDA56553340236F47F8E9CEF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000020000000000000" #h"C6207672C411F088ACAD20814C66254A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000010000000000000" #h"A792CF60F44A15D63FB293F9FCF879AC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000008000000000000" #h"8F733746F91273D97ADA41D3A7D5A9E3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000004000000000000" #h"5DA8F191833E6198689710D5A03EE262") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000002000000000000" #h"D6DB9CEB7E821F6DF4CB1E99105E07AA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000001000000000000" #h"05F308FFAEA3E1E754974435CE0B77C3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000800000000000" #h"73B8639AAD53AFA1B24165E0C9FD397E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000400000000000" #h"AF45FDC65FD5F153E29A8D5032650AAD") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000200000000000" #h"A8BB045FB5B867E85FCAD328E13756C9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000100000000000" #h"DD053128C46C78C4414CE3234C16AEB3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000080000000000" #h"B0C82152D1D9E21D7C3F33E1FC9B4D68") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000040000000000" #h"11B56480D5C718A77A1BEA30CC3A53CF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000020000000000" #h"92C99F843674DED7F20A258C57253726") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000010000000000" #h"63B218D069CE9CAF52EF97614BDACFF9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000008000000000" #h"76096721043A016C095D95DD02980289") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000004000000000" #h"87AF16066939B8C4D90E242917DB05CF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000002000000000" #h"F7E0C931B7204308AB5020F106BBA0EF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000001000000000" #h"C697B3602711749580713737729E7049") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000800000000" #h"AF314640B147719EC1B4ABE27CDB58F5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000400000000" #h"B67DAC5BF73AF7546D2FDC3BC142708D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000200000000" #h"AC53D20E3C06FF82DE52470BCCE1B283") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000100000000" #h"7D65047AF522F01856FDD83A9AAA147A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000080000000" #h"709D6454033E3FCF8962CAD39B0DC4BD") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000040000000" #h"7B8058E46789EF51D18700511D20CB70") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000020000000" #h"738088C404D8850041AD6B690CC6B65A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000010000000" #h"7DFDFD55B53D4CD704F96CF93311AFC4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000008000000" #h"1DBE62C57AF741D9F2FBF9A340E772C9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000004000000" #h"E7349BAB7CB458736436943DB0CC411D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000002000000" #h"64E229BF2AF893510358CB0DBEF7E97F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000001000000" #h"4C632CF8C75AD0DDE8316A7B35F871CC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000800000" #h"2517115CB13E681F0EEA2206C26AD5C4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000400000" #h"8ED5E9D7005D980B078E7F58B47E591E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000200000" #h"8DBCD253443534B2B8BC698A03166ABE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000100000" #h"02F34EAB6CC1DBC8809F3D0EB80FA493") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000080000" #h"47E5B71162F75B84D7A699A31FFA29DE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000040000" #h"B6C1EA2B410D1704058E905EB967C503") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000020000" #h"4383238CE44E30ECDFC90A70EA4C9E96") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000010000" #h"9314DFBB44D530768B159DAABCBD439F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000008000" #h"12D7C80912C299C4F668278FA494D580") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000004000" #h"49FB1EACCA3B1743E15014010E9963DF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000002000" #h"0DF48D3B128AA63496DBE0CD11083495") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000001000" #h"13240392854D6290A4BE08999843105B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000800" #h"3D4B8705340C3225CE5A724917BA92B4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000400" #h"425DCCF406AD46F2F565BBBC72FE234B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000200" #h"88C09509CBB95339726C196E63346418") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000100" #h"90724430636A3DB610F25332BE2FEBE6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000080" #h"044B4FAED3EA17338630E828B9960CA7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000040" #h"4A59243AEB65BAA4F7432498FD87EF62") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000020" #h"4324DF8817589D894674B3F311256E9F") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000010" #h"0527269F9FA9E9CC01A03CFA59FD3854") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000008" #h"96CA56F9EFAA393F521679E0B6ACF231") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000004" #h"DA7A328F8A5BF03DD42BC52DEC5C4B15") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000002" #h"5FE3D4C46DB294523166AB46208E0711") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000001" #h"2519B9240C21C1F980FB722AD8CB793E") (:ecb-mode-test #h"00000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8FC3A53656B1F778C129DF4E9848A41E") (:ecb-mode-test #h"01010101010101010101010101010101" #h"01010101010101010101010101010101" #h"EFB2C7DD69614683DAB0BC607036C425") (:ecb-mode-test #h"02020202020202020202020202020202" #h"02020202020202020202020202020202" #h"A1AE9D211867538B100BD121BA6A3ADC") (:ecb-mode-test #h"03030303030303030303030303030303" #h"03030303030303030303030303030303" #h"8E77797CEC40C34AD3A3230975AE760E") (:ecb-mode-test #h"04040404040404040404040404040404" #h"04040404040404040404040404040404" #h"91086B2221C3FC8E254A97B611D83239") (:ecb-mode-test #h"05050505050505050505050505050505" #h"05050505050505050505050505050505" #h"95CA7F3CA2269A73B4964BD7A6A3DEA0") (:ecb-mode-test #h"06060606060606060606060606060606" #h"06060606060606060606060606060606" #h"BD7EB1B707AA5F801070B9C94F64A5C6") (:ecb-mode-test #h"07070707070707070707070707070707" #h"07070707070707070707070707070707" #h"37CE0ADCFAA89DD737CB15193DCBA48E") (:ecb-mode-test #h"08080808080808080808080808080808" #h"08080808080808080808080808080808" #h"37B6051557E2E535EE8B4955AC5DCB82") (:ecb-mode-test #h"09090909090909090909090909090909" #h"09090909090909090909090909090909" #h"33D6A06EB3B16C0C6078BF56F2966AB2") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"521D3B74BA74D29362708CFE62E357AB") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"CDD5D57C2ABED59CEACAA9352103751F") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"173D2D1CABD12095742C3045EC50899A") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"A85D680132CCF78F2918A9698D6431D6") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"C8137067650576081E34565121681374") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"EDC375FEF71B83B2BE5187F82D0180EA") (:ecb-mode-test #h"10101010101010101010101010101010" #h"10101010101010101010101010101010" #h"54FD2A83F505EE40F4F6F4F94198ED48") (:ecb-mode-test #h"11111111111111111111111111111111" #h"11111111111111111111111111111111" #h"10CC2D64A5306366D8D594B8CDB4FBD3") (:ecb-mode-test #h"12121212121212121212121212121212" #h"12121212121212121212121212121212" #h"13E3A82E121BC3CCA5C703FCAC451E22") (:ecb-mode-test #h"13131313131313131313131313131313" #h"13131313131313131313131313131313" #h"1D8753BFF6930FA77FD7819F5935C422") (:ecb-mode-test #h"14141414141414141414141414141414" #h"14141414141414141414141414141414" #h"A6FF617A5D0395407BEEC3A311A0CBCB") (:ecb-mode-test #h"15151515151515151515151515151515" #h"15151515151515151515151515151515" #h"034D4716AC68312E05C9497E9FC9430A") (:ecb-mode-test #h"16161616161616161616161616161616" #h"16161616161616161616161616161616" #h"690D68007F51E2E8C9516EF9EE64F85D") (:ecb-mode-test #h"17171717171717171717171717171717" #h"17171717171717171717171717171717" #h"EF1396B41E8AF9BD6B2EBDEB7CC1A91B") (:ecb-mode-test #h"18181818181818181818181818181818" #h"18181818181818181818181818181818" #h"9A20B52BFC5EB501F027978FBD684A1B") (:ecb-mode-test #h"19191919191919191919191919191919" #h"19191919191919191919191919191919" #h"7A1A35FAD281601D522188B546CE1800") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"F715BBB8000B577E6EF5D698511E8D03") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"09E83FD6F11C656ACAA1D1FAAF02F086") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"41561B53A60A9FBB25304169789461BB") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"B47BB77008C75F854861994479DA3E7B") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"811CE0CFEB49117D6ED593FBFD5E6CD6") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"C9479F831ECEBCFCB91F99FD6379A962") (:ecb-mode-test #h"20202020202020202020202020202020" #h"20202020202020202020202020202020" #h"FF2C70AB530B889BFF5F3C902DE6209A") (:ecb-mode-test #h"21212121212121212121212121212121" #h"21212121212121212121212121212121" #h"695A8754A7A6F18C4F3C6EE9CE0EA103") (:ecb-mode-test #h"22222222222222222222222222222222" #h"22222222222222222222222222222222" #h"2E2DFBB0C8BD286E87625F61A2F7D887") (:ecb-mode-test #h"23232323232323232323232323232323" #h"23232323232323232323232323232323" #h"CE8E66F871157B0182653B625074CB02") (:ecb-mode-test #h"24242424242424242424242424242424" #h"24242424242424242424242424242424" #h"C32823388E5ADBD6AA14186CE0400A4E") (:ecb-mode-test #h"25252525252525252525252525252525" #h"25252525252525252525252525252525" #h"EDEA3E4740736BC47A7891609B86CE9E") (:ecb-mode-test #h"26262626262626262626262626262626" #h"26262626262626262626262626262626" #h"2B2DDCA5AD969636475196D462F5B2A5") (:ecb-mode-test #h"27272727272727272727272727272727" #h"27272727272727272727272727272727" #h"5C46E5F8DD4E7DC61474CB8DFC3E04F0") (:ecb-mode-test #h"28282828282828282828282828282828" #h"28282828282828282828282828282828" #h"6670EBB8C7E041121C5C5E449B675FD2") (:ecb-mode-test #h"29292929292929292929292929292929" #h"29292929292929292929292929292929" #h"808DC7740040F39A6D3CBFAAC5228A23") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"15ECD6020C001F45262A1256AF7B066D") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"C937773A54DC09B0CC52756A7EEEF178") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"B8AB07101FC58ED64BBE203F31F892D4") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"FC429A3B703812E0AAD1A325A23E33DE") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"C4FFFE21B89FFCC6EC721D49E870ECEC") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"D218CB13BC19296A50B5612A3721C1E2") (:ecb-mode-test #h"30303030303030303030303030303030" #h"30303030303030303030303030303030" #h"573FF72784A1CEBD97FED191A3B979EF") (:ecb-mode-test #h"31313131313131313131313131313131" #h"31313131313131313131313131313131" #h"4D44F703C1E1C39C3A2EDF5639394702") (:ecb-mode-test #h"32323232323232323232323232323232" #h"32323232323232323232323232323232" #h"50F09502DB7FCF0095E5F8219DCA5A3C") (:ecb-mode-test #h"33333333333333333333333333333333" #h"33333333333333333333333333333333" #h"9533F79F724484B169CB32EB7FAD0168") (:ecb-mode-test #h"34343434343434343434343434343434" #h"34343434343434343434343434343434" #h"9EB8075BAB79DD8BBF7ECAD69C6B13CE") (:ecb-mode-test #h"35353535353535353535353535353535" #h"35353535353535353535353535353535" #h"E5450816410E771677D879F0A6ED86BD") (:ecb-mode-test #h"36363636363636363636363636363636" #h"36363636363636363636363636363636" #h"07B20FB465C2F4FABC042A07E3163DEA") (:ecb-mode-test #h"37373737373737373737373737373737" #h"37373737373737373737373737373737" #h"26B4CFBE7FDB3B3253E9F5D499DAD6C0") (:ecb-mode-test #h"38383838383838383838383838383838" #h"38383838383838383838383838383838" #h"4FD4E8956C0808613A5EA19A9D753800") (:ecb-mode-test #h"39393939393939393939393939393939" #h"39393939393939393939393939393939" #h"FA74B3A2F745D440E74851D1C0D8679B") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"9D6FC40588769E07EC406A0CEBEC99F2") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"53602388866685FC37681EBC9BC46F73") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"AB4532B652BDD0FC8ED4034CF3C11A24") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"66EFBCE5A3C3795A50C1A6B999CC3E71") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"1CAC1DEB42C55E3A3FEB261ED2FB3F50") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"31D98EA0E6B439432C3A6BB8E25D600D") (:ecb-mode-test #h"40404040404040404040404040404040" #h"40404040404040404040404040404040" #h"898FD889A6AA36447C89D8CCC8B4043A") (:ecb-mode-test #h"41414141414141414141414141414141" #h"41414141414141414141414141414141" #h"AA74AA28D307802D28EDF73B58BD3BA3") (:ecb-mode-test #h"42424242424242424242424242424242" #h"42424242424242424242424242424242" #h"57F1920F30A23C74DA3CD9CF78F4328C") (:ecb-mode-test #h"43434343434343434343434343434343" #h"43434343434343434343434343434343" #h"2C30C357FB5A8F9D531CE0F17E1286F3") (:ecb-mode-test #h"44444444444444444444444444444444" #h"44444444444444444444444444444444" #h"C6E5EB2B3F9A7744A0128B93A4145A7B") (:ecb-mode-test #h"45454545454545454545454545454545" #h"45454545454545454545454545454545" #h"0DBF0AD86C57F7D25A0CE61F6A6148EE") (:ecb-mode-test #h"46464646464646464646464646464646" #h"46464646464646464646464646464646" #h"5F64A9BC4359153FF2572195A12F52D3") (:ecb-mode-test #h"47474747474747474747474747474747" #h"47474747474747474747474747474747" #h"B6099EE04520977CB7B1DE88E2120FA1") (:ecb-mode-test #h"48484848484848484848484848484848" #h"48484848484848484848484848484848" #h"77AE144A7A3883038561F239C5312F09") (:ecb-mode-test #h"49494949494949494949494949494949" #h"49494949494949494949494949494949" #h"DF0FE7423AA1CF40C8FD45253817FE33") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"CE4E05EC0EE20A8A4B27937B7B8ECED4") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"BAB91404D49876BEE288311BA3C7456A") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"9DC6BCB030F1FBC24ADBF6EA5238E507") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"BFACD02D59B26640B80B1886CD6E7D03") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"2076B2B836A8C545B3C103050E7AFF41") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"653B5B9A9751451C89DF56D79CFD07EF") (:ecb-mode-test #h"50505050505050505050505050505050" #h"50505050505050505050505050505050" #h"7F4060C7776DEED87F7F9B26BEAFA428") (:ecb-mode-test #h"51515151515151515151515151515151" #h"51515151515151515151515151515151" #h"B7072058AEF8AA25604ACE1531C81C59") (:ecb-mode-test #h"52525252525252525252525252525252" #h"52525252525252525252525252525252" #h"40A0515E8F01E55C60F70E0DAE4A1D31") (:ecb-mode-test #h"53535353535353535353535353535353" #h"53535353535353535353535353535353" #h"9805BD832CBCBEE6B439D866F3ED53F9") (:ecb-mode-test #h"54545454545454545454545454545454" #h"54545454545454545454545454545454" #h"81334B63525932E8B9342094A8DBB917") (:ecb-mode-test #h"55555555555555555555555555555555" #h"55555555555555555555555555555555" #h"59670A6CBA2E729FEDD36389481541A4") (:ecb-mode-test #h"56565656565656565656565656565656" #h"56565656565656565656565656565656" #h"84B3279AE90EACB5BF863DC17AE9212E") (:ecb-mode-test #h"57575757575757575757575757575757" #h"57575757575757575757575757575757" #h"13F3BDFA7EF33A97F496692361AE6167") (:ecb-mode-test #h"58585858585858585858585858585858" #h"58585858585858585858585858585858" #h"080F06D07DC2B4D0B748FA9F28946B0C") (:ecb-mode-test #h"59595959595959595959595959595959" #h"59595959595959595959595959595959" #h"72B8521961C711E79AA30616F0B70687") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"75082BB9C98676FBB964DBDCD25705A2") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"C00D2666ED3FAF0F01FEEB01A9883B1B") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"C70DBF746F722EBC18A4F4B115193ED4") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"6283561914D3FABEE1FDD1747515C2D4") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"7AAABB3AE21BBA557AE89A0D9B99816C") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"4010AB7D9F7237DE123450ECA31B0900") (:ecb-mode-test #h"60606060606060606060606060606060" #h"60606060606060606060606060606060" #h"3E4B358F1A26A197BF3B65B0DB4FB7E5") (:ecb-mode-test #h"61616161616161616161616161616161" #h"61616161616161616161616161616161" #h"2E9D9D04453C0698FB444CFA3340E0B8") (:ecb-mode-test #h"62626262626262626262626262626262" #h"62626262626262626262626262626262" #h"99ABC39983649030A48BAEDA6E718E8A") (:ecb-mode-test #h"63636363636363636363636363636363" #h"63636363636363636363636363636363" #h"39478E48FACF3E28870082DFB51A817B") (:ecb-mode-test #h"64646464646464646464646464646464" #h"64646464646464646464646464646464" #h"1BCA5B87AFEB4D9090910E02E3040CFD") (:ecb-mode-test #h"65656565656565656565656565656565" #h"65656565656565656565656565656565" #h"30B0F7101370BB69E7B20D13050AB876") (:ecb-mode-test #h"66666666666666666666666666666666" #h"66666666666666666666666666666666" #h"CC000CAA9DEB82E9766CD98B9DE131DE") (:ecb-mode-test #h"67676767676767676767676767676767" #h"67676767676767676767676767676767" #h"AEDA25322DEA94FA8345FD467992B1D8") (:ecb-mode-test #h"68686868686868686868686868686868" #h"68686868686868686868686868686868" #h"14D0D8253551FC65B1DE9DB1C3F0AB6A") (:ecb-mode-test #h"69696969696969696969696969696969" #h"69696969696969696969696969696969" #h"67D32FDC0CD1AAC1F20E3F5FDFC986C0") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"3D8101226BBB3F4FFD40E68EF5F93626") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"684F017186FCC8AC24342CC54BF2FA6C") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"4AD0F6751D4DE121269F0FCCD99EFE68") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"FDF357681BD91A83E2632698C1525CE0") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"AC2698CD31DE9AC9740F53D467902FCB") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"ED011F6CD9356CBA1E4715D60AB112A6") (:ecb-mode-test #h"70707070707070707070707070707070" #h"70707070707070707070707070707070" #h"724926624439B1C8694571BC103CFCED") (:ecb-mode-test #h"71717171717171717171717171717171" #h"71717171717171717171717171717171" #h"C2725BBB0E4945AF08A6A7F1A9AF211A") (:ecb-mode-test #h"72727272727272727272727272727272" #h"72727272727272727272727272727272" #h"0ABD84E7FF8FD3F826B4AFBE3AF2B653") (:ecb-mode-test #h"73737373737373737373737373737373" #h"73737373737373737373737373737373" #h"404BEFC70C072CAEE758CC3E697E946D") (:ecb-mode-test #h"74747474747474747474747474747474" #h"74747474747474747474747474747474" #h"0106FFAEE3A63E7B80004B044F864032") (:ecb-mode-test #h"75757575757575757575757575757575" #h"75757575757575757575757575757575" #h"AE43C4368B1FC9B98DB952887C4316B1") (:ecb-mode-test #h"76767676767676767676767676767676" #h"76767676767676767676767676767676" #h"FAC2FD894C5AEBC38A45034F38D44075") (:ecb-mode-test #h"77777777777777777777777777777777" #h"77777777777777777777777777777777" #h"09831AB86A3DF171F1961A8E9F40BDD0") (:ecb-mode-test #h"78787878787878787878787878787878" #h"78787878787878787878787878787878" #h"DFC3FE2EC8C90B113BB11F76F3636E3D") (:ecb-mode-test #h"79797979797979797979797979797979" #h"79797979797979797979797979797979" #h"E9B9BB30C6D86061FA1812FF08CBC65A") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"0FC606C92CCFE70FEDAAE3DB6C443762") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"85DEC6534601D8B6B11B9060C8A42DF2") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"1250BEB80BC3D145284DF9188CCA5C50") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"318E30C9CCEBCA2A7F546A49052AF9A4") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"49FCFE05AEF655D83155DB617ED581BA") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"91EF1DED08B8BC59A916B5739195C758") (:ecb-mode-test #h"80808080808080808080808080808080" #h"80808080808080808080808080808080" #h"B5BCEC5D9EC2161530284CD96653C250") (:ecb-mode-test #h"81818181818181818181818181818181" #h"81818181818181818181818181818181" #h"3B26ABD6B5688159301921809DF64FB1") (:ecb-mode-test #h"82828282828282828282828282828282" #h"82828282828282828282828282828282" #h"DAEA518A364BC404EEDD6903474BB56D") (:ecb-mode-test #h"83838383838383838383838383838383" #h"83838383838383838383838383838383" #h"37C8EBDBCE1501AAD18A395AAADCB415") (:ecb-mode-test #h"84848484848484848484848484848484" #h"84848484848484848484848484848484" #h"399FB3321F29829924CE72FBE9ED2756") (:ecb-mode-test #h"85858585858585858585858585858585" #h"85858585858585858585858585858585" #h"A88E685E95E838E27AC3024370BFE12F") (:ecb-mode-test #h"86868686868686868686868686868686" #h"86868686868686868686868686868686" #h"4C56F71EC80909EC98673D808F42321E") (:ecb-mode-test #h"87878787878787878787878787878787" #h"87878787878787878787878787878787" #h"4EFA656E3F35C570C8DC4EA5524B436C") (:ecb-mode-test #h"88888888888888888888888888888888" #h"88888888888888888888888888888888" #h"808FA06393685AB9143C82CA4B954BE4") (:ecb-mode-test #h"89898989898989898989898989898989" #h"89898989898989898989898989898989" #h"D107696CCF562B2CC2901D50E1BFE320") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"98CF296ACAFAF704D6C91D1997202E47") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"5A023E5B18861A1FFCCC26F487EBF80F") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8570554F91C1D8366FF6EC2097F110C3") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"E1CE24B74C513C884992C98DFCF70BFB") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"23F536F1876F44FFB7727D0FAF9F2D70") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"D877DD242B0C7CC05D9600419385A3EF") (:ecb-mode-test #h"90909090909090909090909090909090" #h"90909090909090909090909090909090" #h"2896226A5A298578E2C999AF4F382DE7") (:ecb-mode-test #h"91919191919191919191919191919191" #h"91919191919191919191919191919191" #h"B54F6E5FB8F33608A8DFAEAD8EF27B98") (:ecb-mode-test #h"92929292929292929292929292929292" #h"92929292929292929292929292929292" #h"45CF4F783116E562F104B107BD3D10F3") (:ecb-mode-test #h"93939393939393939393939393939393" #h"93939393939393939393939393939393" #h"93F404FF83D493315E2E9665AC2013C5") (:ecb-mode-test #h"94949494949494949494949494949494" #h"94949494949494949494949494949494" #h"1A5664813121482F4DBE1026104D84A8") (:ecb-mode-test #h"95959595959595959595959595959595" #h"95959595959595959595959595959595" #h"AEE4A82CE2FF23E91A497269B82530F6") (:ecb-mode-test #h"96969696969696969696969696969696" #h"96969696969696969696969696969696" #h"E001B8A93500C4D49F8A9A372A1E8A61") (:ecb-mode-test #h"97979797979797979797979797979797" #h"97979797979797979797979797979797" #h"FB23B31999D3D84AFD55600B9EA722CD") (:ecb-mode-test #h"98989898989898989898989898989898" #h"98989898989898989898989898989898" #h"9572170C51A1198373B6ADBAB87AE454") (:ecb-mode-test #h"99999999999999999999999999999999" #h"99999999999999999999999999999999" #h"65CCAA1321D8CB3CA18462C37DBBE4E1") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"3E942B1978B989CAC106E4575E6729A7") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"3E9AA5B6EC22E250368E9806041F6AA2") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"717479032B7D79C5236436D8AE0F3AB5") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"2643B168C234D5E0205E212C5CF669F4") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"A79DE0F9F3BE54CF4B453A1836F7F491") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"CF0836AC18F99D130EE85DE0ACDBE063") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"F12ABC04BB0C7F6F794EF428E57F15FA") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"383E9B4B9D663B8527E6FAB4A7892832") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"432103C74F3C2D68315CDD2831EF8F71") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"E06519949E2F6E8B00E15CD58054BB4A") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"34A14A8B9E5869C25A9C604300BEC911") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"0FB01A7B7F093C400E2FB08E709F7675") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"51D28B7FDD1C3EA5ED21EBD1D8B7499D") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"3F6FCB543C8771ABFABDD72E0E788FD7") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"045A187E0A7009AB426A78B251CA088E") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"BF28504290089DB7D289785147BD5D9A") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"1297E67DBA4B264248FCDAF3B9E3FE4B") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABABABABABABABABABAB" #h"8177E1C48AB5578DBB3C4AA36EEEEF5C") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACACACACACACACACACAC" #h"97E785AED832ACF1D419DC01219704D4") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADADADADADADADADADAD" #h"23D059447EDB76B0F9B41006399CC087") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"7320A4A66FE238B9E1A932F9942DCFAA") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"4D8D7376C26FE0AFAA27B61ED1882721") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"DEF37D094186DE7209801C7D2D93F61A") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"536A8AACDB1156AC2E2D7DD0499BFA5F") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"F57A2E78B976A57642DC8BFAFB3480B2") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"88177315699E7AE0D5B4B07046ED5990") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"02F65559B9AA547A5EA54EB6A8E48960") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"F2F02BC7D56F7594E37DB7DF94C1B9C1") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"2691BEACD805DC3C69B0295A7308CFD8") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"A3A67B09425720C8AAB79DA8F44A8E8A") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"DBC7ABF1DD510B5D3A6BA898670B6361") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"FA1B51E10654E448C32EFCD7A986CAF0") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABABABABABABABABABA" #h"C63D856771FC45E5102B14B41A79CB7E") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"9030C8326D2B75D1979DC1C3B80796B9") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"B11A41E18A535F8F3B343135C73A4670") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BC6F04C2D75634E0054CCE755DE717A7") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"AAFAD1353CD8C6469751190678362F03") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"9DD8ACCD8D2A504AAE205BAD997F20DE") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"0FCBA053A6E5DE5D0E6B9395BDE2BD18") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"E3AD2507E0F6BCDCC3D50728E12BF962") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"0AB51BDC22FFF1458CB4D3D08EDB164C") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"FBF3371047AB698FCFC81442B134AD26") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"D026FC11B7B1BB47B020D7A8320A174B") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"FAE26B00CAD7DD254EDBB84688A846E9") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"91F547F8129DB5B465DF57F0A03E58FE") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"AECA4D2C88D33F6A0CEAE619259E3982") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"32AAB72FE2809153140156909B52F414") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"91EDBD3465D1216B3564F094455F0ECC") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACACACACACACACACACA" #h"4D14F0124000E96F09938906B99415BA") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"297F6B5BF3A01B1D87B7B74DF4E9DC2F") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"BCCE55DCAFF6BB7B4D0CAFD112E87FCD") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"D7A1E8E4624689000AD7AFB06982D8FE") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECECECECECECECECECE" #h"D59DAF6299A27A5DE36F7090B777673F") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"A5ACE3553FB387187CCFF88C3DEE1ED7") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"2CCF6DD6EBEE7C4A4C5586EBF792AC57") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"695849E45DE312A07C5E8A6C1C20D6B8") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"5E14D156D004D484E040C354F13A8F63") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"E4CD1852605EDC0FF576A8310FED4883") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"BC7EB0533C90715C314362B1FBDC3545") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"AFBDF9336F9CAC06313181937FF1849E") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"B590131983C4E266BDE99D577C493B67") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"90921A3641666DE025E42B1BDC891FBA") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"E3B79B1EC3FA41E7EB3C575ED197588D") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"5D9B53924BFCB123BEF8F3C5431103F2") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADADADADADADADADADA" #h"12BB6C3773F42D7AB2BD711C3DA6B1F9") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"A0D2449463DDB310E0D4D0B547043FA0") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"B1E70695E833951DA0C4B38CDA067ACD") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"19AA0D4A04DD8C93935FCB3F39A0D2CD") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"98E4BAC98E4B1559B07E3A323D352964") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"4B88F29F1DCB339CEF6C80EF949272BA") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"8F3C7931AC39D8B62C643BB3AC2C731B") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"D620AC385CAA42FD228176995C7EEC61") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"D99A20E342818B37A21C87F35C19D559") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"0817FC31D13725B3F64790470C883F22") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"945FE4DAEEE2AAA1EFE80022311B1040") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"F5976BFF2CE360F3A75CACB10B1B26E6") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"4D7118A0D1DE4AB7E43765B2E2AE0EE2") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"FC428DC79787BBAC03937C6C0FEDA673") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"6DF3580C31F389C898CC905582BCD920") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"6B74DC42605029718F4D0C060547CC8B") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"B587D402AA54E60DB655B4164847ACA1") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"16313A473EFCB6D965C5F1426785B472") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECECECECECECECECECEC" #h"734356F14E8A6C5775A4638BBDFCE111") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"F66FFD7385B4A87A9E2865D70864DAA6") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"FB7FA84127D218FDE6A24CA30379ECCC") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"4FADBE831B78D6B3C59DCE8B4293BB79") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"DA219657EA1AB63EA46306C2D0B69186") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"34BE2E9CB3C4047884CB291416D037C7") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"384BAAE4DB758555E2DB6E2995E0CAEC") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"7338107A3D9BF3E8C67936E1CB77A22A") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"217BC7820BB5A9183D95BF7E99180B87") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"56BA9C916AECDC51203CB6BA5FEE8D3B") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"8CCA87B86BEB5CCD11A594F20AD5D1B8") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"CD0230DBA2982BE4F126FB2E80AB2C24") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"A3E46629CF9D1D6DD1A6DE82B86C5934") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"AE18D7C35968E90CECA036CF586EB963") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"3B0261B9DA91346FAD84DD9CC9EC4A37") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"9F3E91301511409E1F997A080F9A9424") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"F1BF5CCE9A7D5FBE759A579640348692") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"D192CBC80E653C12C647C1EBEB56AE10") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"64F5B3E91B4CC3C35AFB6793FCEC836A") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"EFB109978422E50FDCB05335D050D0D7") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"00112233445566778899AABBCCDDEEFF" #h"09C26143B47B1A22EC2D9CD8B8A4E573") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84EA024714AD5C4D84" #h"FFA01C309967FD619C58AB1CC4BCA98D") ;;; test vectors for 192-bit keys from NESSIE (http://www.cryptonessie.org/) (:ecb-mode-test #h"800000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8301730C7D5FEFC416BEEC1104C51E36") (:ecb-mode-test #h"400000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F7EF83BDD4C3D5B30E805C351DB87200") (:ecb-mode-test #h"200000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"A236EB8595FDF9239C658D58342EF566") (:ecb-mode-test #h"100000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"236397EB9EEDA5EA8BF4A42864A5A39F") (:ecb-mode-test #h"080000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"21C3DD416D64F6055C8C3977EEFB4652") (:ecb-mode-test #h"040000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"59128F63BD9D834C3EECA5A5299417D1") (:ecb-mode-test #h"020000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0F95FA4C48DE95391B45A460B92B22BF") (:ecb-mode-test #h"010000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5073FABD5FA03D153108B9A5F2128C78") (:ecb-mode-test #h"008000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"B83872427919126F2C976D45872B7596") (:ecb-mode-test #h"004000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"73F8E6C4181758AFA29945E970C8F854") (:ecb-mode-test #h"002000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"B72DC39B9A72EFFA047E3657B1F02B1B") (:ecb-mode-test #h"001000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"081F1C50BF964CCC01949363A1A1C76C") (:ecb-mode-test #h"000800000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D4A2AB8B904BE542386CC2342AC354D6") (:ecb-mode-test #h"000400000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BC94C45B53BB5281BFF16F7BC7CCD26E") (:ecb-mode-test #h"000200000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"7D976240134D43279AB809A3EC1BAB8E") (:ecb-mode-test #h"000100000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BE18D342080322DBBCEDBB83C7F11CA5") (:ecb-mode-test #h"000080000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D1359D29060E0003C78066A900C90C00") (:ecb-mode-test #h"000040000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FD0A7E670B7E9B57C913D38E4649715E") (:ecb-mode-test #h"000020000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"C9DFB5B1CB3E079CFC027E67DA61EC2A") (:ecb-mode-test #h"000010000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"10FDD69900FBC470499EDF0AFF655430") (:ecb-mode-test #h"000008000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"565721A361F5F0EB44366DEC1D6841BE") (:ecb-mode-test #h"000004000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"07AD173E39A769D345277F4CFD16BBA8") (:ecb-mode-test #h"000002000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8E89B6B70A10D1866ED4D139A0E6565C") (:ecb-mode-test #h"000001000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"88A431DD4CBBD94778AE53A36EE246DE") (:ecb-mode-test #h"000000800000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F4C8E31B64506E9BDE6BB682DBCEF50A") (:ecb-mode-test #h"000000400000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5B0E256E4EAB25AEC08CD2CE5547334D") (:ecb-mode-test #h"000000200000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"EDBAA578C13D7D215057EAD4F03B9E1C") (:ecb-mode-test #h"000000100000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"7EA37DB8EB1B362E370A43DF1ADB2F0A") (:ecb-mode-test #h"000000080000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8B7C67AE8F749C4EFB7418788D369DEC") (:ecb-mode-test #h"000000040000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"34D3A7E87A4B1B3FAC60672A3D82F40D") (:ecb-mode-test #h"000000020000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"4FE628152A1D46CF6DA78D5F17255877") (:ecb-mode-test #h"000000010000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3460A571D035B6DA52AA8E59702B79C0") (:ecb-mode-test #h"000000008000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CA2375E2E96AB28C7FC3E61B6561B07C") (:ecb-mode-test #h"000000004000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"7E33319A69017428DDBD979D3F6982C6") (:ecb-mode-test #h"000000002000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"49DA8B8AD80A6BBA1003FF6B8D06E3D8") (:ecb-mode-test #h"000000001000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CCE4C841B39187943DCCA5EB8BBF1221") (:ecb-mode-test #h"000000000800000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3B42FA9129BF36F87E445589460A19BD") (:ecb-mode-test #h"000000000400000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3E397A22C64A8C09B5B59A9D397B0A96") (:ecb-mode-test #h"000000000200000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"159AB9C871FB3EB373A94721E9F0743A") (:ecb-mode-test #h"000000000100000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"9C2DECEEFEDF2475C26EFFEA3A0E2920") (:ecb-mode-test #h"000000000080000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0FCC4399113E6BF62A23F657BEF97224") (:ecb-mode-test #h"000000000040000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2FCA4167B034D9EDAC4E12828B911600") (:ecb-mode-test #h"000000000020000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3F9434872C4E49EB8718EDB8896CFF2E") (:ecb-mode-test #h"000000000010000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8168025815D16028078007C9E1370331") (:ecb-mode-test #h"000000000008000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F0FBF790B49553EC3963805CC2F6AA7E") (:ecb-mode-test #h"000000000004000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"951C45D26A548A9A6152CCBC00D3C6FA") (:ecb-mode-test #h"000000000002000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"845DCC97B1F8CD3254D2B29A59C7AE41") (:ecb-mode-test #h"000000000001000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6694A168D387E4FB3291A376B938136D") (:ecb-mode-test #h"000000000000800000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"9569359A00659B9645565857398C982F") (:ecb-mode-test #h"000000000000400000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"417C97D7F56216FFEBE64A73F8D81168") (:ecb-mode-test #h"000000000000200000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8C46288B3314B9E1BC91E3C901C784A8") (:ecb-mode-test #h"000000000000100000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8EB78926977246F186274D88A4B0E6B3") (:ecb-mode-test #h"000000000000080000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"51E819059AB0325A2DF7F8CF49A54353") (:ecb-mode-test #h"000000000000040000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"56A59894FC1972B03D66D6C43688138B") (:ecb-mode-test #h"000000000000020000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CB772637B59AD2330ACC8CC2FA7A338B") (:ecb-mode-test #h"000000000000010000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1E3759E5BBE19EA0F66FBB0702F07440") (:ecb-mode-test #h"000000000000008000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2112CFD246447D95F1A6BFF65A044121") (:ecb-mode-test #h"000000000000004000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8A7E580BAC4406B297E12B472C2748E3") (:ecb-mode-test #h"000000000000002000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"349ABE7C34357C7C719BD48AB62DF95C") (:ecb-mode-test #h"000000000000001000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5EDB9089B865DAC899854DACE9DBBDBC") (:ecb-mode-test #h"000000000000000800000000000000000000000000000000" #h"00000000000000000000000000000000" #h"C82372837C0B459699779683785CE09C") (:ecb-mode-test #h"000000000000000400000000000000000000000000000000" #h"00000000000000000000000000000000" #h"B26532F7C0FDFF76BFADD7178E7A2A7A") (:ecb-mode-test #h"000000000000000200000000000000000000000000000000" #h"00000000000000000000000000000000" #h"965F80C599BF6AA85CA2199C785EDAF1") (:ecb-mode-test #h"000000000000000100000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8434DFE0C8717514FB0F8A4FF46930B6") (:ecb-mode-test #h"000000000000000080000000000000000000000000000000" #h"00000000000000000000000000000000" #h"10D701937E2944C7B48BAA32DA64C6A5") (:ecb-mode-test #h"000000000000000040000000000000000000000000000000" #h"00000000000000000000000000000000" #h"9A401E466C3686609B7B92FC6C57EA3B") (:ecb-mode-test #h"000000000000000020000000000000000000000000000000" #h"00000000000000000000000000000000" #h"E3442053C50265AEBEFD327633E449B1") (:ecb-mode-test #h"000000000000000010000000000000000000000000000000" #h"00000000000000000000000000000000" #h"7DF5EC480DEFA928687A35116989A7E2") (:ecb-mode-test #h"000000000000000008000000000000000000000000000000" #h"00000000000000000000000000000000" #h"EB2D38038A867146E3999D3E4DACE2BD") (:ecb-mode-test #h"000000000000000004000000000000000000000000000000" #h"00000000000000000000000000000000" #h"AE420A68558A2A50085331D8C46D7685") (:ecb-mode-test #h"000000000000000002000000000000000000000000000000" #h"00000000000000000000000000000000" #h"049B78384DE81BB815C48CC565DC1029") (:ecb-mode-test #h"000000000000000001000000000000000000000000000000" #h"00000000000000000000000000000000" #h"38EDCB5D37E043621F1EB80C78E40657") (:ecb-mode-test #h"000000000000000000800000000000000000000000000000" #h"00000000000000000000000000000000" #h"928C462D2AE8B7B45C252D0CAE80B34C") (:ecb-mode-test #h"000000000000000000400000000000000000000000000000" #h"00000000000000000000000000000000" #h"B3AD5D661D6DACFD57C214FDB9384491") (:ecb-mode-test #h"000000000000000000200000000000000000000000000000" #h"00000000000000000000000000000000" #h"9785657218402C1F3D1A40E73B015359") (:ecb-mode-test #h"000000000000000000100000000000000000000000000000" #h"00000000000000000000000000000000" #h"302355F21D129456A3EC58CD4C74D334") (:ecb-mode-test #h"000000000000000000080000000000000000000000000000" #h"00000000000000000000000000000000" #h"7322A935E1F65E2F341F778D0A55DAC0") (:ecb-mode-test #h"000000000000000000040000000000000000000000000000" #h"00000000000000000000000000000000" #h"7EEEF0009743F18E1E08F5CB02CFA104") (:ecb-mode-test #h"000000000000000000020000000000000000000000000000" #h"00000000000000000000000000000000" #h"82FA95B00BA5C8D71CB372895E91F7AD") (:ecb-mode-test #h"000000000000000000010000000000000000000000000000" #h"00000000000000000000000000000000" #h"44E308A9BAE6315936931C0D6F3472A4") (:ecb-mode-test #h"000000000000000000008000000000000000000000000000" #h"00000000000000000000000000000000" #h"A0F7760CB5F12B2F7F7451688DCC6DB3") (:ecb-mode-test #h"000000000000000000004000000000000000000000000000" #h"00000000000000000000000000000000" #h"249CBF1A9027A9D4A049DCC61C100631") (:ecb-mode-test #h"000000000000000000002000000000000000000000000000" #h"00000000000000000000000000000000" #h"AE5191679DB49836EBD11781E1A9E809") (:ecb-mode-test #h"000000000000000000001000000000000000000000000000" #h"00000000000000000000000000000000" #h"6F0F72E56952895F7425A34EB97D0D41") (:ecb-mode-test #h"000000000000000000000800000000000000000000000000" #h"00000000000000000000000000000000" #h"E4C8937EA026250290E85A2AA4B3A338") (:ecb-mode-test #h"000000000000000000000400000000000000000000000000" #h"00000000000000000000000000000000" #h"0D1B7815F62D8C6DB79E9755EB5CC047") (:ecb-mode-test #h"000000000000000000000200000000000000000000000000" #h"00000000000000000000000000000000" #h"3B8DA219500F670D2D32C753F613E646") (:ecb-mode-test #h"000000000000000000000100000000000000000000000000" #h"00000000000000000000000000000000" #h"DC16F91F486975C2762AAEF8E4C66543") (:ecb-mode-test #h"000000000000000000000080000000000000000000000000" #h"00000000000000000000000000000000" #h"7CC222B3C5866AC0F27A60C9D9713981") (:ecb-mode-test #h"000000000000000000000040000000000000000000000000" #h"00000000000000000000000000000000" #h"B7F625FC185B3ACEF820AF59570370FD") (:ecb-mode-test #h"000000000000000000000020000000000000000000000000" #h"00000000000000000000000000000000" #h"8AA59EA7476AFE267D7745A2A5E1D0CB") (:ecb-mode-test #h"000000000000000000000010000000000000000000000000" #h"00000000000000000000000000000000" #h"DDB9E4AA397029E10ED5F1984513280B") (:ecb-mode-test #h"000000000000000000000008000000000000000000000000" #h"00000000000000000000000000000000" #h"C92B81F3061A4ABC6C35D1B0AF2BA410") (:ecb-mode-test #h"000000000000000000000004000000000000000000000000" #h"00000000000000000000000000000000" #h"05F510BA96377001A23093980C02FBCD") (:ecb-mode-test #h"000000000000000000000002000000000000000000000000" #h"00000000000000000000000000000000" #h"A22D14EBC78B338735CA0AAD155B0114") (:ecb-mode-test #h"000000000000000000000001000000000000000000000000" #h"00000000000000000000000000000000" #h"C562318B01D5235CCD4DC3D3A8B10DA0") (:ecb-mode-test #h"000000000000000000000000800000000000000000000000" #h"00000000000000000000000000000000" #h"FA248CAA2F7C4B029054A31917BE9B47") (:ecb-mode-test #h"000000000000000000000000400000000000000000000000" #h"00000000000000000000000000000000" #h"FCC4E2E3C6E5DB8DECBF2493E3A52B9A") (:ecb-mode-test #h"000000000000000000000000200000000000000000000000" #h"00000000000000000000000000000000" #h"C5D23718F33ADC9F8B3B35263E47248A") (:ecb-mode-test #h"000000000000000000000000100000000000000000000000" #h"00000000000000000000000000000000" #h"773E59C9CA8EFD081E1CFD4F3DF4BC16") (:ecb-mode-test #h"000000000000000000000000080000000000000000000000" #h"00000000000000000000000000000000" #h"9A5E5AB516ECEA600952D25684DFF5E9") (:ecb-mode-test #h"000000000000000000000000040000000000000000000000" #h"00000000000000000000000000000000" #h"4EB9B9CC17E48F68423C884D64091022") (:ecb-mode-test #h"000000000000000000000000020000000000000000000000" #h"00000000000000000000000000000000" #h"0CCD75BECA8406EBF53CB0ABB1B46B23") (:ecb-mode-test #h"000000000000000000000000010000000000000000000000" #h"00000000000000000000000000000000" #h"0242108DABD2ED9886E8ABD70AA97B29") (:ecb-mode-test #h"000000000000000000000000008000000000000000000000" #h"00000000000000000000000000000000" #h"C52A6EB2958C995465C4F870F1A8269E") (:ecb-mode-test #h"000000000000000000000000004000000000000000000000" #h"00000000000000000000000000000000" #h"5FD2C7F3C81B013B96EC3ACBB0688175") (:ecb-mode-test #h"000000000000000000000000002000000000000000000000" #h"00000000000000000000000000000000" #h"1E63A0B10B0293A8572FD7749ACB9A53") (:ecb-mode-test #h"000000000000000000000000001000000000000000000000" #h"00000000000000000000000000000000" #h"9E1D466FA752C13AF4296CFFB8566DB2") (:ecb-mode-test #h"000000000000000000000000000800000000000000000000" #h"00000000000000000000000000000000" #h"BA1A69D7AD2869734A4954553D4EF249") (:ecb-mode-test #h"000000000000000000000000000400000000000000000000" #h"00000000000000000000000000000000" #h"EC2E7D615474B0B08D47AFCBE4FD8402") (:ecb-mode-test #h"000000000000000000000000000200000000000000000000" #h"00000000000000000000000000000000" #h"5C295AA2183B5FB9498094DB774244D1") (:ecb-mode-test #h"000000000000000000000000000100000000000000000000" #h"00000000000000000000000000000000" #h"1C5A17D1BE0D9EDCF339DB3D2631F236") (:ecb-mode-test #h"000000000000000000000000000080000000000000000000" #h"00000000000000000000000000000000" #h"CF6E9758B39149E3E29FB66CD58D0976") (:ecb-mode-test #h"000000000000000000000000000040000000000000000000" #h"00000000000000000000000000000000" #h"4F3FF2CAB95F678D85207691BFDAB811") (:ecb-mode-test #h"000000000000000000000000000020000000000000000000" #h"00000000000000000000000000000000" #h"463F1FCDF4A918300A93D7BED72F788B") (:ecb-mode-test #h"000000000000000000000000000010000000000000000000" #h"00000000000000000000000000000000" #h"CA5C88802CF0520C6521B106F4A58977") (:ecb-mode-test #h"000000000000000000000000000008000000000000000000" #h"00000000000000000000000000000000" #h"95C83D16F101B16E82D9DF9108A6805A") (:ecb-mode-test #h"000000000000000000000000000004000000000000000000" #h"00000000000000000000000000000000" #h"F98E0BE43F35A4CD52F93FD0877C1638") (:ecb-mode-test #h"000000000000000000000000000002000000000000000000" #h"00000000000000000000000000000000" #h"3B0D41F3A12DE6BDACFCA225F1344D77") (:ecb-mode-test #h"000000000000000000000000000001000000000000000000" #h"00000000000000000000000000000000" #h"BCB6197992A90A62497B53EC8E7E5857") (:ecb-mode-test #h"000000000000000000000000000000800000000000000000" #h"00000000000000000000000000000000" #h"9CA86B881701310C33F6CB2911ED777E") (:ecb-mode-test #h"000000000000000000000000000000400000000000000000" #h"00000000000000000000000000000000" #h"DDF4EBC89B16643E7B4F0B43AB3FC443") (:ecb-mode-test #h"000000000000000000000000000000200000000000000000" #h"00000000000000000000000000000000" #h"650AA74CDF7C5E92720E02A87ECA8FB2") (:ecb-mode-test #h"000000000000000000000000000000100000000000000000" #h"00000000000000000000000000000000" #h"F44E947B2A18F15189884E55EAC372CD") (:ecb-mode-test #h"000000000000000000000000000000080000000000000000" #h"00000000000000000000000000000000" #h"A4CC79AB8F6ABA941D400B45C32DA248") (:ecb-mode-test #h"000000000000000000000000000000040000000000000000" #h"00000000000000000000000000000000" #h"3C49EE1D3E4D8FD1E5CE9C793511F2E7") (:ecb-mode-test #h"000000000000000000000000000000020000000000000000" #h"00000000000000000000000000000000" #h"49199A91A32424357890F5C8E08E168C") (:ecb-mode-test #h"000000000000000000000000000000010000000000000000" #h"00000000000000000000000000000000" #h"438EBCC76304C4231DCDBDF85A876A85") (:ecb-mode-test #h"000000000000000000000000000000008000000000000000" #h"00000000000000000000000000000000" #h"DD04C176440BBC6686C90AEE775BD368") (:ecb-mode-test #h"000000000000000000000000000000004000000000000000" #h"00000000000000000000000000000000" #h"1DBAE21DF9D10630D8E9BA704AA3A6E2") (:ecb-mode-test #h"000000000000000000000000000000002000000000000000" #h"00000000000000000000000000000000" #h"F46B5DF361FF1A58AD233A2884E9B73B") (:ecb-mode-test #h"000000000000000000000000000000001000000000000000" #h"00000000000000000000000000000000" #h"DBD49C75B6CCA6CCEF0423FF3941922A") (:ecb-mode-test #h"000000000000000000000000000000000800000000000000" #h"00000000000000000000000000000000" #h"2C62774D20D574A487057A24280EBBC9") (:ecb-mode-test #h"000000000000000000000000000000000400000000000000" #h"00000000000000000000000000000000" #h"A6E24FFF68DF51B5613692D4098F7E22") (:ecb-mode-test #h"000000000000000000000000000000000200000000000000" #h"00000000000000000000000000000000" #h"A961B427D5FCD129EE29830DBD2952DD") (:ecb-mode-test #h"000000000000000000000000000000000100000000000000" #h"00000000000000000000000000000000" #h"7F637C136F8A57358DD5229B5E3BC38C") (:ecb-mode-test #h"000000000000000000000000000000000080000000000000" #h"00000000000000000000000000000000" #h"6FC5A39B35D2EF01B808E20C05DB9DDE") (:ecb-mode-test #h"000000000000000000000000000000000040000000000000" #h"00000000000000000000000000000000" #h"95E085E82A0883C8F6C1C83D6F4DF270") (:ecb-mode-test #h"000000000000000000000000000000000020000000000000" #h"00000000000000000000000000000000" #h"BDEE30731D4CD3593E46D9A8222485CC") (:ecb-mode-test #h"000000000000000000000000000000000010000000000000" #h"00000000000000000000000000000000" #h"508B5BB4ECCE303014D5A9ABB47DD30D") (:ecb-mode-test #h"000000000000000000000000000000000008000000000000" #h"00000000000000000000000000000000" #h"047832614B07AEABC28A39D5E72007C9") (:ecb-mode-test #h"000000000000000000000000000000000004000000000000" #h"00000000000000000000000000000000" #h"C1D4B662EE239A6DB9262B23C561B677") (:ecb-mode-test #h"000000000000000000000000000000000002000000000000" #h"00000000000000000000000000000000" #h"E567714DF47D43F1505D318C8D553062") (:ecb-mode-test #h"000000000000000000000000000000000001000000000000" #h"00000000000000000000000000000000" #h"CDF70F29AFD13EC6820D2C126D053DC4") (:ecb-mode-test #h"000000000000000000000000000000000000800000000000" #h"00000000000000000000000000000000" #h"182F2FD0ADC68D8DC72B08AC17E642C1") (:ecb-mode-test #h"000000000000000000000000000000000000400000000000" #h"00000000000000000000000000000000" #h"5DAA43AFBCD59026C0C410072A263673") (:ecb-mode-test #h"000000000000000000000000000000000000200000000000" #h"00000000000000000000000000000000" #h"E0C6DD7A8971A7D21AFAE153F115D658") (:ecb-mode-test #h"000000000000000000000000000000000000100000000000" #h"00000000000000000000000000000000" #h"4ED2DAA970922690D8CDF6CDFDA2E8D3") (:ecb-mode-test #h"000000000000000000000000000000000000080000000000" #h"00000000000000000000000000000000" #h"C1F929B679E007B1DDBBE896CE91C8C5") (:ecb-mode-test #h"000000000000000000000000000000000000040000000000" #h"00000000000000000000000000000000" #h"2323F5569BA740E14E05E0FB0914CE44") (:ecb-mode-test #h"000000000000000000000000000000000000020000000000" #h"00000000000000000000000000000000" #h"875AFCE0522E00712AB29E0E77BA57D2") (:ecb-mode-test #h"000000000000000000000000000000000000010000000000" #h"00000000000000000000000000000000" #h"A6185ECBDEFEB900335BAB38D95D7583") (:ecb-mode-test #h"000000000000000000000000000000000000008000000000" #h"00000000000000000000000000000000" #h"1331B89B377EA2A88A181907300BC50C") (:ecb-mode-test #h"000000000000000000000000000000000000004000000000" #h"00000000000000000000000000000000" #h"FC9D177C5B5D072E041D6C2F9EE6B536") (:ecb-mode-test #h"000000000000000000000000000000000000002000000000" #h"00000000000000000000000000000000" #h"5BCE1EA4FD0CC1EDE325DCEB55790565") (:ecb-mode-test #h"000000000000000000000000000000000000001000000000" #h"00000000000000000000000000000000" #h"937FE02D20FCB72F0F57201012B88BA4") (:ecb-mode-test #h"000000000000000000000000000000000000000800000000" #h"00000000000000000000000000000000" #h"5280E7768E573DC74DB90ABDC10422FE") (:ecb-mode-test #h"000000000000000000000000000000000000000400000000" #h"00000000000000000000000000000000" #h"0995E2D8E83C853C58ECF916E8067C3A") (:ecb-mode-test #h"000000000000000000000000000000000000000200000000" #h"00000000000000000000000000000000" #h"98DF44D404B5BD54CA5D55D08E7F1B12") (:ecb-mode-test #h"000000000000000000000000000000000000000100000000" #h"00000000000000000000000000000000" #h"9FD5F1165CD60FA5229CF03080428664") (:ecb-mode-test #h"000000000000000000000000000000000000000080000000" #h"00000000000000000000000000000000" #h"B4AE95212E3E8FFD6B27D4F0CC079CCA") (:ecb-mode-test #h"000000000000000000000000000000000000000040000000" #h"00000000000000000000000000000000" #h"878BD051874AB0BAC12EA94C60CC2671") (:ecb-mode-test #h"000000000000000000000000000000000000000020000000" #h"00000000000000000000000000000000" #h"3B0F2EF2A0849425063F49E65DF4D3AB") (:ecb-mode-test #h"000000000000000000000000000000000000000010000000" #h"00000000000000000000000000000000" #h"07D4297668485EBBF0F9266C203407E2") (:ecb-mode-test #h"000000000000000000000000000000000000000008000000" #h"00000000000000000000000000000000" #h"C2ECFB79C073BD453BDD2323C77FF80D") (:ecb-mode-test #h"000000000000000000000000000000000000000004000000" #h"00000000000000000000000000000000" #h"5173B04FC7C211CA17161164B79D0AE7") (:ecb-mode-test #h"000000000000000000000000000000000000000002000000" #h"00000000000000000000000000000000" #h"5135A445A721783AACD06930D39F72C4") (:ecb-mode-test #h"000000000000000000000000000000000000000001000000" #h"00000000000000000000000000000000" #h"A511E849B1B75DC94B1D73D957B53D78") (:ecb-mode-test #h"000000000000000000000000000000000000000000800000" #h"00000000000000000000000000000000" #h"42312B67F192D72B73689C712D60EAB7") (:ecb-mode-test #h"000000000000000000000000000000000000000000400000" #h"00000000000000000000000000000000" #h"30C89A160855BC3F339A170B715DD482") (:ecb-mode-test #h"000000000000000000000000000000000000000000200000" #h"00000000000000000000000000000000" #h"8DC19A7A97319A3309B98797A59954FA") (:ecb-mode-test #h"000000000000000000000000000000000000000000100000" #h"00000000000000000000000000000000" #h"D0AA5A8B9DFF98E18281E5FF20CCA3DE") (:ecb-mode-test #h"000000000000000000000000000000000000000000080000" #h"00000000000000000000000000000000" #h"AFA70EF4B45EA22E90108B834019120A") (:ecb-mode-test #h"000000000000000000000000000000000000000000040000" #h"00000000000000000000000000000000" #h"2801C6A5C0547CB988A2137A559D12B0") (:ecb-mode-test #h"000000000000000000000000000000000000000000020000" #h"00000000000000000000000000000000" #h"D791F5709D4AFE0642955F1B072F144E") (:ecb-mode-test #h"000000000000000000000000000000000000000000010000" #h"00000000000000000000000000000000" #h"35BB50E6D59A693709DE9B88CC8581F6") (:ecb-mode-test #h"000000000000000000000000000000000000000000008000" #h"00000000000000000000000000000000" #h"9B58CC95279539C1AF0BBC274A62F5C8") (:ecb-mode-test #h"000000000000000000000000000000000000000000004000" #h"00000000000000000000000000000000" #h"F51803FF4EA1B0F0AFF1C68C5C98CB3A") (:ecb-mode-test #h"000000000000000000000000000000000000000000002000" #h"00000000000000000000000000000000" #h"975B5309F1D3ACE9BA08B3D2D3FCB43E") (:ecb-mode-test #h"000000000000000000000000000000000000000000001000" #h"00000000000000000000000000000000" #h"D53CD9381EA85B0C106C22DA611F7336") (:ecb-mode-test #h"000000000000000000000000000000000000000000000800" #h"00000000000000000000000000000000" #h"393270B47546F1BFE35690ACCAC0FEBD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000400" #h"00000000000000000000000000000000" #h"53E21284948996FC03ED9BCC34B45B61") (:ecb-mode-test #h"000000000000000000000000000000000000000000000200" #h"00000000000000000000000000000000" #h"AD9CA2740670DA740C75703A8859382B") (:ecb-mode-test #h"000000000000000000000000000000000000000000000100" #h"00000000000000000000000000000000" #h"AC9C2960E3061E56D8B9A1CDD3EED010") (:ecb-mode-test #h"000000000000000000000000000000000000000000000080" #h"00000000000000000000000000000000" #h"E5F68B122D15823F131DEA0468977D70") (:ecb-mode-test #h"000000000000000000000000000000000000000000000040" #h"00000000000000000000000000000000" #h"7EB7C6460FE9885BC96AFD4D4B65E90E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000020" #h"00000000000000000000000000000000" #h"409147483ADC22592CA41224D35BB323") (:ecb-mode-test #h"000000000000000000000000000000000000000000000010" #h"00000000000000000000000000000000" #h"AB61745316651F61F4E2CC1DFBF8135C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000008" #h"00000000000000000000000000000000" #h"88977EAD91ECF9C83F33EBE41FB7410C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000004" #h"00000000000000000000000000000000" #h"9DC923136A1882D73CB412C986103481") (:ecb-mode-test #h"000000000000000000000000000000000000000000000002" #h"00000000000000000000000000000000" #h"9914219ED77B8FA772B4B8C53F9AD2FC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000001" #h"00000000000000000000000000000000" #h"B9A0FA2324625650A2052D691E7DE9C3") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"80000000000000000000000000000000" #h"A600B72AAC4DFB5271DC45F563FAE428") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"40000000000000000000000000000000" #h"A7B1D7CBFBAB741B41744FF9100529B4") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"20000000000000000000000000000000" #h"D9AAAA866BAB0D68AFFC39CF9888B8C6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"10000000000000000000000000000000" #h"32B0048A204036E1B45DE285E87E57B8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"08000000000000000000000000000000" #h"7267FEE7E04ACEB47C8FCC4096720484") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"04000000000000000000000000000000" #h"FF0C22F756C2F5EBDC6610F085D74383") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"02000000000000000000000000000000" #h"A6264FBCB2926C6181AA6F5551244B2F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"01000000000000000000000000000000" #h"D3A5B8FB3CBAA98419D394BB4C66B9D7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00800000000000000000000000000000" #h"F9FE5D1BA274021F041023CD9AC20399") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00400000000000000000000000000000" #h"7307F7DEBBEFD911B0B590A0667E093D") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00200000000000000000000000000000" #h"4D8A3B987A1E66E72B3FFA520DDD57BB") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00100000000000000000000000000000" #h"0F444C0A7334947DBCB43D72F897E72F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00080000000000000000000000000000" #h"448F29B848D7CFDA617D8A64AC518B0C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00040000000000000000000000000000" #h"261B4EA7CD31F46C4FBF684395ED7FB8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00020000000000000000000000000000" #h"25FA5AD347C57047749B15B97FE8ABE6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00010000000000000000000000000000" #h"F7E13200EBA3F6E8E9F37B092B907961") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00008000000000000000000000000000" #h"9C934B121791B35AFE509A0D5A04BBF2") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00004000000000000000000000000000" #h"3C0F9D40F9608091CDFD831DD6D215EA") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00002000000000000000000000000000" #h"97D7D2AF2F635D43E536E0A5AA18C61E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00001000000000000000000000000000" #h"1E41EB291C07ECF0908D49A9CBFAB57E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000800000000000000000000000000" #h"C9CCEB56AF06C494582F2C966EEEFD07") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000400000000000000000000000000" #h"4B21E0D2942CCD21501F698ACA866BD0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000200000000000000000000000000" #h"BA0DC6ACC50486AD389EF65B5677DE19") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000100000000000000000000000000" #h"EB80DE49F3D5605D9C3CE426EC80FAFD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000080000000000000000000000000" #h"D6984153BF67512062F876966BD190F3") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000040000000000000000000000000" #h"AC789910F3458D59C5090BE936C6682A") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000020000000000000000000000000" #h"5D64A268407F791DBDAFD0E5C6399A64") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000010000000000000000000000000" #h"2B4F25AC69BA3AD941BBD4E1ECC75E79") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000008000000000000000000000000" #h"FB943544937F3A34DFA0548C0257CE53") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000004000000000000000000000000" #h"125A04339B61FA79FA3757576EC4FAA1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000002000000000000000000000000" #h"160B88277AC4C81603BD37ECA4FD73DC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000001000000000000000000000000" #h"4D65B09355F893E26C85E85955767604") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000800000000000000000000000" #h"1EE56A4AB4811DC3B17401CBAA8F5A15") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000400000000000000000000000" #h"6214728772DBD2CDA3124BA8BA2ABF38") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000200000000000000000000000" #h"328B60EDD6FD150934A30100286E07B5") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000100000000000000000000000" #h"2C976B076409056EA7489C7658BB34B9") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000080000000000000000000000" #h"D592EBBA861BBCC369DA99F832B0A773") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000040000000000000000000000" #h"E6F48FB373724153FFFC51758527C6E8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000020000000000000000000000" #h"6C397B0BF5992740BD6A787F16BD511C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000010000000000000000000000" #h"2CA57FEE77351E747799C8855780C63F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000008000000000000000000000" #h"194C42AA377D361BBDF283693171FFDB") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000004000000000000000000000" #h"61832D4C637CCE219D2FBB36ACF7992E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000002000000000000000000000" #h"945D2B20B9FD48F1961D04DBBA1708B5") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000001000000000000000000000" #h"EC152810AA2771AA5E871949BF12B6F1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000800000000000000000000" #h"E87712941A7EE80510D53509311196B7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000400000000000000000000" #h"776820A0500F2D90D4DF36F50C395674") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000200000000000000000000" #h"64958DB0758C1E80FCFCBB9FC6195E6D") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000100000000000000000000" #h"37F27D1D918D463B0668A470DE898AB9") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000080000000000000000000" #h"AA71549A4B290289C7060D76FF5A20BC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000040000000000000000000" #h"95EF0C6213EB7CF56186D76BFA617174") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000020000000000000000000" #h"2F6A4BD794419F9F34CFD0FED825B6CD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000010000000000000000000" #h"882C2B9E19854367479F0EE25D086F4E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000008000000000000000000" #h"D246FD18C625C1846741544EC4CE60B6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000004000000000000000000" #h"9EAF5A8C5673BE9F488D5C7B6521BD8C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000002000000000000000000" #h"9E7A685F738CB391FAE6ED184087630C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000001000000000000000000" #h"5E0AC39E49825B2424C7263AA8824232") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000800000000000000000" #h"0B06C4805E20BC990E601E5610A1BEAD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000400000000000000000" #h"78A99615E809CA88F6F6C6E9AFA532FF") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000200000000000000000" #h"9ACF5CC740AA37663000C89C5F8EE8D8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000100000000000000000" #h"35D76EBA8F59CA6A78FC2942AC5F7F43") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000080000000000000000" #h"39AD4C9AE2B4D46EF693303B54B53546") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000040000000000000000" #h"EA0833009C96171EAA2BFDEF50DEE473") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000020000000000000000" #h"868A8E86F525E50D3FF33A094A3AE119") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000010000000000000000" #h"3DBB9A366A2A3A660F027191B3613B95") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000008000000000000000" #h"E4CDE1FC6D811CDC25328CDAC8D0AD2B") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000004000000000000000" #h"332010FB6E39F82F00DC1FF6B6F8CFE6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000002000000000000000" #h"00293BFE5BB3DA2D3652D4E06EE361B2") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000001000000000000000" #h"9BC99B26E0114669EFE218BF014A15AA") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000800000000000000" #h"43C358B6DAB480D0EAEB96DCE57E5B85") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000400000000000000" #h"9842333B8E9FCEC35A8779CCCA7D025A") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000200000000000000" #h"5A47529DB0D103DCC34D2ADD3A19C53F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000100000000000000" #h"8F705A89D4C6EE7E27A14792EC49B652") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000080000000000000" #h"6D4B9905F05096B23D6C13565588F012") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000040000000000000" #h"23DDD34E8598F013C0559B3312341DBA") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000020000000000000" #h"7B5AE9F49ACC68F2FEECB2823C3868A9") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000010000000000000" #h"09F8EED21EB8EE33C02B90637EF24E6B") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000008000000000000" #h"00A2E8DB0417F61EAABAD6E9BF13E4BC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000004000000000000" #h"CF5DB5AA31599EEDB5A3143E08D23672") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000002000000000000" #h"E09B69B9C0E3365C0EDA54AB3310A5AC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000001000000000000" #h"33650F826366AEC9A09D7D038708737D") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000800000000000" #h"E84A1EE9A00BA66952B24A6E6AD0C002") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000400000000000" #h"11B1E0969380A0A24E876D6470872796") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000200000000000" #h"D88FCA95FA29C35FDCD9467715F102D7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000100000000000" #h"A78B86EF0E6959C08F70C810AF8E99CD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000080000000000" #h"A83E4F27E34360C8033CBC304EBBDF0C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000040000000000" #h"0AA5B4F05A0B42358ABF19F6E55F66D2") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000020000000000" #h"5C2AC2588982E3CCE99994101FC0A21A") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000010000000000" #h"60A3E107674A0B7F7B931C6EC35BC747") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000008000000000" #h"123D266844DFFF63DA93C4D806325660") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000004000000000" #h"08170908422DCB46EEB046F3D7E4AE3A") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000002000000000" #h"13754D93DC4807807A9535388553FB47") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000001000000000" #h"DFA9741DD3883E39FED5716A706A65EC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000800000000" #h"CA5C3DCA7BE84DCBE33BF5238EA3F4B0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000400000000" #h"6EBEED89B297D6918FA5CEAB7A0E985E") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000200000000" #h"3F79AB2119DEBCC44675E340C25B7D85") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000100000000" #h"A7739DE45E6051EBBDC2F0365859BEE0") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000080000000" #h"CEA0C2B3C653B7553605BACCFDD62DF8") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000040000000" #h"7F9742EEE96193CA8981739712F73045") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000020000000" #h"F0103101F4EC92C0CB48145FF34CF51F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000010000000" #h"55A8A3B02951558F343C160E7F86288D") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000008000000" #h"3F9206DB4F3083E8F6EEC33CFE2C1BBF") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000004000000" #h"F012723B2F08A28A5E24BB959FA5EFDD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000002000000" #h"1A28919DB3AB4A53D5A0E1E566982DF7") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000001000000" #h"E17C960B43B7E926C83DF749C6A5532F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000800000" #h"16DF63CFB77D31CC782C0ED3190136AD") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000400000" #h"1643D697AC4075EC6FE609472FA4C678") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000200000" #h"AD76BF6119FFC36369980D3466CF6570") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000100000" #h"554E53F64D99F89A5BAA7FD5B70E0BD1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000080000" #h"BDC10FF10FA5E3A41B096C870666DECB") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000040000" #h"6B12E2408646228502972EA7580B05E1") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000020000" #h"B9583810806D5A491B2F69FFF2D2A327") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000010000" #h"E8E9F4A50B834DDEF307503AECD8A3BC") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000008000" #h"D7F4A1C7F7954E789BD61007866FFA80") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000004000" #h"953D7D0FD6DDD25CA25FA23C9322339F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000002000" #h"CD4E607B4324CEC7372DE19CEA5AEF78") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000001000" #h"9B5C29709E0F0E586383EAB29E884009") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000800" #h"28B822B70E7430E44182C2BBAED4D88D") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000400" #h"D2325AF7325642138C355BC4ACAF938F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000200" #h"F4D1A000EC3A370B5A6386355CEE010C") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000100" #h"F9D198D9FDC650AFA72320AD4826506B") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000080" #h"5024595BEB4DAA2239D495BB023757EA") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000040" #h"8A6CDA8F518CA2FB0A860C5567C60104") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000020" #h"D6D90C40B07164436453E8312A633109") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000010" #h"3E73330AE10DF1B8B81D9CA72221E192") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000008" #h"5029AE60BF118AA69E47B235C3551490") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000004" #h"7299F32614EA0BD98D2375CA643EC47F") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000002" #h"DF4A7B804A4D3A13113529C509F8BAF6") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000001" #h"3EFC3791618B7D832BFA6AE030C09122") (:ecb-mode-test #h"000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6CD61BCB190B30384E8A3F168690AE82") (:ecb-mode-test #h"010101010101010101010101010101010101010101010101" #h"01010101010101010101010101010101" #h"142AA9F25DD64A8A6444304735AA6641") (:ecb-mode-test #h"020202020202020202020202020202020202020202020202" #h"02020202020202020202020202020202" #h"027D0E59F566E4EB40C59028971DE4DC") (:ecb-mode-test #h"030303030303030303030303030303030303030303030303" #h"03030303030303030303030303030303" #h"A9D4D9EF1B3CE468861211E5A738978F") (:ecb-mode-test #h"040404040404040404040404040404040404040404040404" #h"04040404040404040404040404040404" #h"9B944CD76B1C1AFD8E4D479D31A170C2") (:ecb-mode-test #h"050505050505050505050505050505050505050505050505" #h"05050505050505050505050505050505" #h"C773DDAE2D6DBB11AE23A98D78A2BFD7") (:ecb-mode-test #h"060606060606060606060606060606060606060606060606" #h"06060606060606060606060606060606" #h"890C6F733FCF1D7E41A468B341213ED6") (:ecb-mode-test #h"070707070707070707070707070707070707070707070707" #h"07070707070707070707070707070707" #h"477C7DD627EB6699EB1B31AE9059D9FC") (:ecb-mode-test #h"080808080808080808080808080808080808080808080808" #h"08080808080808080808080808080808" #h"0C0C610409A8D91FEA4571F3E2928FA2") (:ecb-mode-test #h"090909090909090909090909090909090909090909090909" #h"09090909090909090909090909090909" #h"D045C56F48507DD57F530AC780B25588") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"BCFC44E38461031178EC0172B0360946") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"88C1E0B1822115AD4989AAEB0AE8AEA7") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"56EB958E5FCA5254221BE0A2FFA051D7") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"D7DB722328CAD284BD4AAD1DEA2FAF62") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"E078A45C84ECFE8C92122CEAA1E8BCBC") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"F36960995C348DBD8DD062D4D5A89DCD") (:ecb-mode-test #h"101010101010101010101010101010101010101010101010" #h"10101010101010101010101010101010" #h"A8AA6F653475EC3F44253D171EF80054") (:ecb-mode-test #h"111111111111111111111111111111111111111111111111" #h"11111111111111111111111111111111" #h"AD7E4BA8610D935ABAF1544F93726A78") (:ecb-mode-test #h"121212121212121212121212121212121212121212121212" #h"12121212121212121212121212121212" #h"9EDA195C727103015CD512E058791749") (:ecb-mode-test #h"131313131313131313131313131313131313131313131313" #h"13131313131313131313131313131313" #h"76DAE7FD31F3B7317B40C35BAD704AAB") (:ecb-mode-test #h"141414141414141414141414141414141414141414141414" #h"14141414141414141414141414141414" #h"0EA9AD6FBD0BAE067EBEBF3D5593196E") (:ecb-mode-test #h"151515151515151515151515151515151515151515151515" #h"15151515151515151515151515151515" #h"B5875237099EEC0A4C53202235A33D15") (:ecb-mode-test #h"161616161616161616161616161616161616161616161616" #h"16161616161616161616161616161616" #h"F12DBE56066290FA3A7CD1C22E73DDDD") (:ecb-mode-test #h"171717171717171717171717171717171717171717171717" #h"17171717171717171717171717171717" #h"ABC9F137F453E79DCF2D6AABE4E7858D") (:ecb-mode-test #h"181818181818181818181818181818181818181818181818" #h"18181818181818181818181818181818" #h"5D846BBA803CE96E5A842B409C470745") (:ecb-mode-test #h"191919191919191919191919191919191919191919191919" #h"19191919191919191919191919191919" #h"12E6B6E0167FB418D929AFB38A029189") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"D8D9BBE0A2DE0A70106F560BBBB02A8F") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"5560DE385820F3FA6C138767FBADA226") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"F53279EAC16C11FED708C4DB841DB372") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"E6704A7E55D35C2636BCEF75A9004442") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"48B51FD3C42320E42ABCC3C1D9C68FC8") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"DDB77628D91D3C410D9FA61D57285D1C") (:ecb-mode-test #h"202020202020202020202020202020202020202020202020" #h"20202020202020202020202020202020" #h"67718DA41AA70EA260A05C4357F7CF9B") (:ecb-mode-test #h"212121212121212121212121212121212121212121212121" #h"21212121212121212121212121212121" #h"794C763D6A8CDB04231E8D1D06328A05") (:ecb-mode-test #h"222222222222222222222222222222222222222222222222" #h"22222222222222222222222222222222" #h"5982B918E193D69420DFAF9707083CB4") (:ecb-mode-test #h"232323232323232323232323232323232323232323232323" #h"23232323232323232323232323232323" #h"DA4D581382B09DD7DC8195FED2C5A51C") (:ecb-mode-test #h"242424242424242424242424242424242424242424242424" #h"24242424242424242424242424242424" #h"D5212C15A5C197D7CFC5B0C5B992F368") (:ecb-mode-test #h"252525252525252525252525252525252525252525252525" #h"25252525252525252525252525252525" #h"714B8415147ABCAC84BC737F4564CAC5") (:ecb-mode-test #h"262626262626262626262626262626262626262626262626" #h"26262626262626262626262626262626" #h"A12882BF1C4C764EDC0DE3BB194E7133") (:ecb-mode-test #h"272727272727272727272727272727272727272727272727" #h"27272727272727272727272727272727" #h"AFB7B55686201AFF7317E1B51CC1EBA2") (:ecb-mode-test #h"282828282828282828282828282828282828282828282828" #h"28282828282828282828282828282828" #h"41628154531FF7B12020706484FEFEA2") (:ecb-mode-test #h"292929292929292929292929292929292929292929292929" #h"29292929292929292929292929292929" #h"DC1E858FDC36FBF3FCEE00039F2AA0B5") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"35762CCFABF983E2E70DBCE5AEBE7219") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"285EA5899F0FEAB729974A75E40D3E8C") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"A308360BCC0C2CB210F6B16C64567010") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"E56FB73531A6E6BB83783C3896D6F027") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"9A7A4908AEACC28F55C0E79CB33EF20A") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"76D5DC61B62C82CF86B853321682AECD") (:ecb-mode-test #h"303030303030303030303030303030303030303030303030" #h"30303030303030303030303030303030" #h"E4FE632B6D3BDF0C4763557DCB46DA9B") (:ecb-mode-test #h"313131313131313131313131313131313131313131313131" #h"31313131313131313131313131313131" #h"69DFBE7D5240AC8838F4F32B669A8C28") (:ecb-mode-test #h"323232323232323232323232323232323232323232323232" #h"32323232323232323232323232323232" #h"28F6797D7416C245B77679E15AF77DA1") (:ecb-mode-test #h"333333333333333333333333333333333333333333333333" #h"33333333333333333333333333333333" #h"990BC9672F79EEAB8D0E6EC351FD57A6") (:ecb-mode-test #h"343434343434343434343434343434343434343434343434" #h"34343434343434343434343434343434" #h"802C87F88AF644AB0A045D679876B5CB") (:ecb-mode-test #h"353535353535353535353535353535353535353535353535" #h"35353535353535353535353535353535" #h"F9CF723564C34AE5B702AFD8392B15EA") (:ecb-mode-test #h"363636363636363636363636363636363636363636363636" #h"36363636363636363636363636363636" #h"D5B223E24A77978DA25D9392634B3C11") (:ecb-mode-test #h"373737373737373737373737373737373737373737373737" #h"37373737373737373737373737373737" #h"45262C366C3AB97F1ECD9197E6BC4F5F") (:ecb-mode-test #h"383838383838383838383838383838383838383838383838" #h"38383838383838383838383838383838" #h"A0535C0EE4CD69D8296A7B680A343AC4") (:ecb-mode-test #h"393939393939393939393939393939393939393939393939" #h"39393939393939393939393939393939" #h"88052146B98BAB8ACE2FC5A91BF4B7A7") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"F7562819928EEEA2486B56BD932EDF1E") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"F55C01154B81E31C56F821A4F06FF244") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"D5ED34A900D38DB5632F0BBAFAD5792E") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"13BCD4A8E28C352A305BAC636ABF0200") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"677C7E5157A116FF5B92A2C21A846DCD") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"2D2A719202601C1B2EF6D05BCC5C7DB9") (:ecb-mode-test #h"404040404040404040404040404040404040404040404040" #h"40404040404040404040404040404040" #h"0E4D9981D1E4D3D23811323E7E16B950") (:ecb-mode-test #h"414141414141414141414141414141414141414141414141" #h"41414141414141414141414141414141" #h"66EF378278F3F79BB7811C3D6FB90AD3") (:ecb-mode-test #h"424242424242424242424242424242424242424242424242" #h"42424242424242424242424242424242" #h"BFF5340ED842F459595F5FD38471C1CA") (:ecb-mode-test #h"434343434343434343434343434343434343434343434343" #h"43434343434343434343434343434343" #h"2A60F3E11DEF6D5A9F107455CF691D0E") (:ecb-mode-test #h"444444444444444444444444444444444444444444444444" #h"44444444444444444444444444444444" #h"28668C5387430A84C5899DD89D1B8A0E") (:ecb-mode-test #h"454545454545454545454545454545454545454545454545" #h"45454545454545454545454545454545" #h"490F01E815B7BC930F552DD96F4BBFFA") (:ecb-mode-test #h"464646464646464646464646464646464646464646464646" #h"46464646464646464646464646464646" #h"314B128A98582E634005133246D8788F") (:ecb-mode-test #h"474747474747474747474747474747474747474747474747" #h"47474747474747474747474747474747" #h"CBAFF2B405310E2923A366FE2B034A9B") (:ecb-mode-test #h"484848484848484848484848484848484848484848484848" #h"48484848484848484848484848484848" #h"D12855EC3FBEC40E1027BE3FAEF261D3") (:ecb-mode-test #h"494949494949494949494949494949494949494949494949" #h"49494949494949494949494949494949" #h"EF6F46A131469062E487C2E13608CBC4") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"B20950595CBF0218E287C13C93AB9CF1") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"203AE2C13AE730BFB03DDDE321699844") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"475C99D8572AE22B0798A5DC38A49FCD") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"FE801D4D9371187118FF3F64FC9B0218") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"14A41A5626E7203266E2BE73287EE701") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"190D0B71ED9EB775131A5AD5D2904B3B") (:ecb-mode-test #h"505050505050505050505050505050505050505050505050" #h"50505050505050505050505050505050" #h"8466377860649BD193978BF983271713") (:ecb-mode-test #h"515151515151515151515151515151515151515151515151" #h"51515151515151515151515151515151" #h"B405D04EB9E353BDE5223B4DD42163F5") (:ecb-mode-test #h"525252525252525252525252525252525252525252525252" #h"52525252525252525252525252525252" #h"A5529CD9487910E04F537B36B5BBA808") (:ecb-mode-test #h"535353535353535353535353535353535353535353535353" #h"53535353535353535353535353535353" #h"6B842FC9A563545D03685BCCDCD6B856") (:ecb-mode-test #h"545454545454545454545454545454545454545454545454" #h"54545454545454545454545454545454" #h"CE74C716ADCDD2C60B034CC3BC1613A0") (:ecb-mode-test #h"555555555555555555555555555555555555555555555555" #h"55555555555555555555555555555555" #h"A36DCFAC253D160667FACA1DC00BF429") (:ecb-mode-test #h"565656565656565656565656565656565656565656565656" #h"56565656565656565656565656565656" #h"D013F46A15095A3D4E7164B691270CC8") (:ecb-mode-test #h"575757575757575757575757575757575757575757575757" #h"57575757575757575757575757575757" #h"76128D217A927C703B526258F320B9EF") (:ecb-mode-test #h"585858585858585858585858585858585858585858585858" #h"58585858585858585858585858585858" #h"661D43017C1B48AE5CC709A56882DFFC") (:ecb-mode-test #h"595959595959595959595959595959595959595959595959" #h"59595959595959595959595959595959" #h"5619896CB9D9E4A765AA22E10AED86F9") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"E9D552F76E7D739A3EF120573D7247E9") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"8725E61063335C0A1599EAEE5870D6EB") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"7411C01B3A5FF29BC2A834EEA1197112") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"0BF495D77BF198EC62ED19DD0DB92FF7") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"46A8341F67C7B4D3CCB9A67BAD2DABAA") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"A41463ECE5B7F7F96AFC4A4FF514F3DE") (:ecb-mode-test #h"606060606060606060606060606060606060606060606060" #h"60606060606060606060606060606060" #h"893FD602ACE200D0746A5085311BAA8E") (:ecb-mode-test #h"616161616161616161616161616161616161616161616161" #h"61616161616161616161616161616161" #h"468A2FA54B6649291E02BE96BB67B0D2") (:ecb-mode-test #h"626262626262626262626262626262626262626262626262" #h"62626262626262626262626262626262" #h"73A1A244E502E7E250440D4745FA4550") (:ecb-mode-test #h"636363636363636363636363636363636363636363636363" #h"63636363636363636363636363636363" #h"822B7EDD011C0D8535050D9A42FA47C8") (:ecb-mode-test #h"646464646464646464646464646464646464646464646464" #h"64646464646464646464646464646464" #h"335D38E80004980416623D3F6D84EC54") (:ecb-mode-test #h"656565656565656565656565656565656565656565656565" #h"65656565656565656565656565656565" #h"A89C7B47EFAD33FA01A421D159E306D2") (:ecb-mode-test #h"666666666666666666666666666666666666666666666666" #h"66666666666666666666666666666666" #h"2685B8C0EAE7466D14DECB25102B3944") (:ecb-mode-test #h"676767676767676767676767676767676767676767676767" #h"67676767676767676767676767676767" #h"2E121F60C6661AA2C3D6CEA0D3227C46") (:ecb-mode-test #h"686868686868686868686868686868686868686868686868" #h"68686868686868686868686868686868" #h"08CA41A6D00B6C500A5C484222788E49") (:ecb-mode-test #h"696969696969696969696969696969696969696969696969" #h"69696969696969696969696969696969" #h"BB14DA91539A29F86B3B701C1F60CED3") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"794CA5C449A316FAA0FC9A24199A1DC6") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B68ACF55556986F9868A11E037A763C") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"B784A6ADD6361B4B2CC0E3890B8C8647") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"811EAA0B4EE6EC59024E650C5FA33D99") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"948272EAA7547ACEB09D468D1DB794E8") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"527E0AC9703F7391A4759353897E23FC") (:ecb-mode-test #h"707070707070707070707070707070707070707070707070" #h"70707070707070707070707070707070" #h"467F170403F1076E9F044DFEC1ADA103") (:ecb-mode-test #h"717171717171717171717171717171717171717171717171" #h"71717171717171717171717171717171" #h"0E57883FD7B0B29D8BF1648CAC05AE76") (:ecb-mode-test #h"727272727272727272727272727272727272727272727272" #h"72727272727272727272727272727272" #h"804AB457ACC8469D1B276D94F6A61321") (:ecb-mode-test #h"737373737373737373737373737373737373737373737373" #h"73737373737373737373737373737373" #h"9594EAE3F66E62A0092661755D961345") (:ecb-mode-test #h"747474747474747474747474747474747474747474747474" #h"74747474747474747474747474747474" #h"A9F6A08C545D1CACBF582168C49008A1") (:ecb-mode-test #h"757575757575757575757575757575757575757575757575" #h"75757575757575757575757575757575" #h"D2D5860796AAACA230FB103F64AD6C33") (:ecb-mode-test #h"767676767676767676767676767676767676767676767676" #h"76767676767676767676767676767676" #h"FB0EA0047D883FAD8D9389435941F273") (:ecb-mode-test #h"777777777777777777777777777777777777777777777777" #h"77777777777777777777777777777777" #h"8879538F10FDA289AC832170042B4969") (:ecb-mode-test #h"787878787878787878787878787878787878787878787878" #h"78787878787878787878787878787878" #h"B8E0812BB125789FE2830BB48152CD65") (:ecb-mode-test #h"797979797979797979797979797979797979797979797979" #h"79797979797979797979797979797979" #h"5001C9708981C78EAC4BF720EC9106C6") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"A15740D064C98916A439FF78416F1FAD") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"A2D4FBD605D8240385A15BBBD89BF234") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"603D248544382578273F848640DCFE85") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"CCEDEB7D3543B5D586D7C833D0CC1FC6") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"6C0BCBC223F68EB65308D36E6A7CE054") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"D587B07A5495E3B2594A8DA3BE4BCA62") (:ecb-mode-test #h"808080808080808080808080808080808080808080808080" #h"80808080808080808080808080808080" #h"99F0E435570BCBC800796CC0DF6D7654") (:ecb-mode-test #h"818181818181818181818181818181818181818181818181" #h"81818181818181818181818181818181" #h"B61AA33F5AA1FE871DEC688104F0C85D") (:ecb-mode-test #h"828282828282828282828282828282828282828282828282" #h"82828282828282828282828282828282" #h"B97EC69E0AEB4BB3EFD172E847D9697E") (:ecb-mode-test #h"838383838383838383838383838383838383838383838383" #h"83838383838383838383838383838383" #h"2AD952070BC16E82DF70257F3D0CC503") (:ecb-mode-test #h"848484848484848484848484848484848484848484848484" #h"84848484848484848484848484848484" #h"4998548EA747DDC9685E44DAF0B0EDBB") (:ecb-mode-test #h"858585858585858585858585858585858585858585858585" #h"85858585858585858585858585858585" #h"951A162352C8600A12AFF320E77BD4A6") (:ecb-mode-test #h"868686868686868686868686868686868686868686868686" #h"86868686868686868686868686868686" #h"20CED7A7FE2758AE27DACD889B7D5026") (:ecb-mode-test #h"878787878787878787878787878787878787878787878787" #h"87878787878787878787878787878787" #h"54061DF579C6F376A91E68CC6D9BD8DC") (:ecb-mode-test #h"888888888888888888888888888888888888888888888888" #h"88888888888888888888888888888888" #h"62C0001AD9D2CE1146B7037296DED530") (:ecb-mode-test #h"898989898989898989898989898989898989898989898989" #h"89898989898989898989898989898989" #h"0D6EF429DC67AFDE52F82F6B5847099E") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"29FED62B4604F50BB77FD29034D95F89") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"D56E7E74658B09DE318A661B71085A56") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"7CE0A202393A018BD321FB660D8A156A") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"AE89F2A8EF2023423D71AA9E01C816D1") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"1249EF77D53670615581E7000FC6DAF9") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"0DE028C4B302634BA8BD59104A0D48B1") (:ecb-mode-test #h"909090909090909090909090909090909090909090909090" #h"90909090909090909090909090909090" #h"CD689E38556B4C539EE457FD63298430") (:ecb-mode-test #h"919191919191919191919191919191919191919191919191" #h"91919191919191919191919191919191" #h"45CDF5FAA28D79100DD4A47000C5BEB0") (:ecb-mode-test #h"929292929292929292929292929292929292929292929292" #h"92929292929292929292929292929292" #h"5095E718A9DDA4D2798F5DD9B636F449") (:ecb-mode-test #h"939393939393939393939393939393939393939393939393" #h"93939393939393939393939393939393" #h"B4DA15E1D7211AE28EBD667C399D6281") (:ecb-mode-test #h"949494949494949494949494949494949494949494949494" #h"94949494949494949494949494949494" #h"AA304DDA87A3BB6C7FFB9692E034CCE9") (:ecb-mode-test #h"959595959595959595959595959595959595959595959595" #h"95959595959595959595959595959595" #h"796A7CDB8DF126B635E7C175834BC7C7") (:ecb-mode-test #h"969696969696969696969696969696969696969696969696" #h"96969696969696969696969696969696" #h"E5E956AC096977A8115AEEC027EB1F25") (:ecb-mode-test #h"979797979797979797979797979797979797979797979797" #h"97979797979797979797979797979797" #h"CC0D0AADA60579BF4B143564B57B3208") (:ecb-mode-test #h"989898989898989898989898989898989898989898989898" #h"98989898989898989898989898989898" #h"B76AFCA75AE9C61EA7E267F1E06C3C44") (:ecb-mode-test #h"999999999999999999999999999999999999999999999999" #h"99999999999999999999999999999999" #h"E3531E7712594758528B4532CDF08965") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"156F4464FC8E457915262A024C8ED5AB") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"114DA9E6BFE05D8D2707D0B31F4F2F0A") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"6E53680FE6160DDADC1855C75C42366F") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"F58D0495A8CDEB1070B089F103BCF02D") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"D3E04C33260283834E1CEBCE907D0FD1") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"18AE46B8BE8FBDFEDD1D9050305C1259") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"871A2560BEB03121506274FC6ED2FD7E") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"6C3912B32DA7EE58922CC2DF12A7F8B2") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"E1B5C94595A43BBC79466C04B054D0D2") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A71912665283F0BA0A7383E33390F638") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"AF9CC25E259A2C611CC02D0879055F42") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"09895C28CAA32440AC84C74A00890AC6") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"C4549E4724627C7E24359F804D8B774A") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"B97867B7CD8D07A6EB8469A0E6CD19D0") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"7C94ACCFECE37C652D5F492BB35B1D67") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"F95F9C46A6323CE4EA3DBBE18B10BAD6") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"CF7444A1264DD32D674DBEC5F9DE4F32") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABABABABABABABABABAB" #h"ABABABABABABABABABABABABABABABAB" #h"45EE88448607FCCA142CAE0B38B89630") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACACACACACACACACACAC" #h"ACACACACACACACACACACACACACACACAC" #h"C57F88EE947BCBB35ECD90DF8ACD41AA") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADADADADADADADADADAD" #h"ADADADADADADADADADADADADADADADAD" #h"6A391CD6138800A43A310D94F51645A6") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"F3325B5B39AD26CE85CFFED58D95605B") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"185B3CBD17BF760FB2FEF42811D0A152") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"6A69BDF1DF06CEA149DB27FA74693796") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"FCB340CCE23A67DD8462D8784B704A81") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"D10D476C5E2B4BD17495163315D331C7") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"74F62F91CE7E898BC23F9C288ECA8131") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"221AA35E8FA963289BF954402C7F5767") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"D9CADD4001B469C58E8AFEB2045DC14E") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"E956B091DA8616BC967EAE2BB93F0EFF") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"E8AF5AABFD522FE792E4CB58CBA4FC06") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"E2CC97CDA0F4CB35F59F8299221549CB") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"37641DC8E518119705733B0E0CC211B6") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABABABABABABABABABA" #h"BABABABABABABABABABABABABABABABA" #h"1414899DEC805AEC9710AE6254C39010") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"7442704A4793030E31B7CF71ABE37399") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"891D119206B454760DED44763ACDEA2F") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"AE56363468DD5F20CD55D1F36E53D078") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"490F5846EBB52D8090F7032D20AC7700") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"C0BFCC236DAB252ECB52F44F8E4BFD23") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"8903043F51EB14D66D9340668F0A16A5") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"0D49D39E655C6C3CB463B6B6D9D42DAC") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"D727F873EE8881D9EA091137272C5EE0") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"FA6EBF4490B740EF17004860CA5B445F") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"28AF740124F0785368E2E2231D579082") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"10AD33CFE5D9EF6687ABB9D065715F19") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"45F94DFA6B19E28CAC6B6AB84907DBA1") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"797B8A4D65FA02247D0F2F7603C2FC65") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"467B4CBF6E1E2A00619326E782B2FDED") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"E3338D230F714E09BEAFB19254757C04") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACACACACACACACACACA" #h"CACACACACACACACACACACACACACACACA" #h"E9F8E6856F91E653E19471DA5A36FF6D") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"2D2A2F80D265F48D16852878EBA3D802") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"826441F87A9A09A34D7C78889270425F") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"E544A455674A3DB0EEF54E73DAAD7E2F") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECECECECECECECECECE" #h"CECECECECECECECECECECECECECECECE" #h"6B0B240400BE03A62B45C62B0633B68A") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"BF33AF930893CC1DD62728B3C8C4CE68") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D6C0FC873214D089D1B41842529C891F") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"BA1C211B97C974D7ABF16C9314F4BD7A") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"6601680BB93A76A76148B84B0A6CA22F") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"0C21133D1EF307663230ADD65E8AA621") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"0E9DB7642E76801B56E7AA10659E8A74") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"FFBABBBBA569736616BD8F5A57C67092") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"DF7C69A685C40EDA694DC6F05C3DA5AB") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"3539B288714A2C183EF795BDC16E0913") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"BB715ABD1805724B70672F09C937C2EA") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"86CEF5D91A4EC4FB60AEFA4CD2FAA449") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADADADADADADADADADA" #h"DADADADADADADADADADADADADADADADA" #h"4535248C00F1B9745F30C0238EE5B37C") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"98038B500EEC91FFD310AEE631D32FB2") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"CF95D278FF432001BF462C9C6AFE0E61") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"A907678A089F78CCE753D36655ED301E") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"81EDED22C3F8B03FD81DD7A4C484A9F0") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"5F168314CFF7C28AB431568797F70102") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"B503E49FEB6C6B558202A2AC0731B0AC") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"DBF4F2F13406F1123ED2CBECA9B37209") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"027AEB003AD0CAD0EE73CA79CFE22002") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E320D12F068244F2E8B5D34EFD5EC9FD") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"26F3F4B12F14E0F8E21E6DB77080B6AD") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"F6A80024655F2E885A55D4F4AED3B2C6") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"B12E64D7541843AE65EEB98D6B8AC52C") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"031809FDFB7813A5F36E7248D3765C17") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"CE00D9344DC17DD46E47CDA0C1E6DFF4") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"30655F5A08BC1C9886A820F8F81DA572") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"F45717E9DEFD895B4327EDAC26E25EBC") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"87F30E1AF9A27A875EE181241395EE96") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECECECECECECECECECEC" #h"ECECECECECECECECECECECECECECECEC" #h"211005B8FDF30146001568F06D1BC44D") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"CE4CF623B3FB765BA55C79AE0D3A5124") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"54763022AE7632112D410CF2DF6399E5") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"B52DC47F8019984327218BC2AEAED3DC") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"7F1F93044414603842EC01F4D142C3C6") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"065B470D99883781F9C83F504B51A3D8") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"B0EC21D31BF5C015BF6947D788BAF805") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"E86178C63091C9AF6C4BBBC0635049BF") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"9CBACD826DEBB69F996F25DF5B7BBE22") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"C72F225961872C1224D0623F9CD0C06F") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"242FB42309111B33D25CCB9D7684BB9D") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"CC094AD32E382F3B4B306C0D6EA4BFA3") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"31B2E295D5C15293670F0189521A8CD6") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"04E816EC01432DC0C64955758337F1D5") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"B522DEB854C7BF853699EDCB94D5574E") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"D70C4BD2927D2764D3050E243218C870") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"EAC28B0CD7F1201BD090F3ADD8CF646C") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"D2D7D8214A7A6640D91A9D8EBB463625") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"60BBF3046D7012FA00C4F3353F1D7E3C") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"F33D1E49C3D6266C7F1C7238BBE7AB1F") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F1011121314151617" #h"00112233445566778899AABBCCDDEEFF" #h"37E13FB5351BD78D3E7912FDC5F80FCD") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF482BD6459F82C5B300" #h"EA024714AD5C4D84EA024714AD5C4D84" #h"50D29745329694B65D6F54EE65455180") ;;; test vectors for 256-bit keys from NESSIE (http://www.cryptonessie.org/) (:ecb-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5172978A58543DE597060983FD799F1B") (:ecb-mode-test #h"4000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0F86AECE7ACE09A8EAC0345C935BE91A") (:ecb-mode-test #h"2000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8C8D6ACDB23AE4B5BEE4E2C15273286F") (:ecb-mode-test #h"1000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"11395D4BFE4C8258979EE2BF2D24DFF4") (:ecb-mode-test #h"0800000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D50183337FD8B3FAEF06C78B2ECFC40F") (:ecb-mode-test #h"0400000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F3969970B4E37D9FFD9BD886200D7C0F") (:ecb-mode-test #h"0200000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FF101A14CCB71863E0B51E8583D22760") (:ecb-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0CACB5AB8A51226134656220DBF23228") (:ecb-mode-test #h"0080000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BF75C54F53A3F374DC549BE280F6C6E0") (:ecb-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1DC755ED6128DC50826E65632C7672D6") (:ecb-mode-test #h"0020000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D7A46C3A378DB6A9C041D7DB1835DE3F") (:ecb-mode-test #h"0010000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"175FDB12EFB7E7D950777FE12BAAC953") (:ecb-mode-test #h"0008000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1A5C489CB6E0608EADAF3DBFA8B5FD1B") (:ecb-mode-test #h"0004000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"7FD567FB07007A65CA8D98D4BF66F7F1") (:ecb-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3256E4481641ED28938AD6471414CD04") (:ecb-mode-test #h"0001000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"A2AD960B437DCD0669681BBBC30F0CF1") (:ecb-mode-test #h"0000800000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FB04B658FA923EA9CD5FB98BE54989DE") (:ecb-mode-test #h"0000400000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F3F43741881655CF074E36BD655F420B") (:ecb-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"637DCF9D891EAD8D85A842BE0DC8261F") (:ecb-mode-test #h"0000100000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"E663749A2786E3BA3833348A9CE5E7F0") (:ecb-mode-test #h"0000080000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"76F0F7C439E25C54A9BC7AEA05640882") (:ecb-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2CDE682FC40895F1E2464739FAD230DD") (:ecb-mode-test #h"0000020000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3242FE919ADFDCE04F163EBE772AD51D") (:ecb-mode-test #h"0000010000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CE05F79A80B2947B13BD22EE37FB3F79") (:ecb-mode-test #h"0000008000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5345BDE33281A0CB4A899A4F18C57563") (:ecb-mode-test #h"0000004000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2E971691DDFD33D36738C08A517B0B44") (:ecb-mode-test #h"0000002000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"EE144813E2194B18F1593C44932F170F") (:ecb-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F626C435E30ABA4FA6F6DCA30CC08833") (:ecb-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8AD30F69BD7446793C36676755D05F57") (:ecb-mode-test #h"0000000400000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"56851CB7277CBE4AE9AFF86E5BD49F90") (:ecb-mode-test #h"0000000200000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CA864AC764D6B9B9141A08146CFA7F56") (:ecb-mode-test #h"0000000100000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"484518D9A3C6CF7B7B92393DBBF78E42") (:ecb-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"093F44542B0E41E300C11AE77A48C6C4") (:ecb-mode-test #h"0000000040000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6D9856ADC56605F70EF069D639C9D977") (:ecb-mode-test #h"0000000020000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3FFB2FF7C5457744CABDFB89C0BBA7E8") (:ecb-mode-test #h"0000000010000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6D8254191931BE754D64F70FE3E226C7") (:ecb-mode-test #h"0000000008000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"23F3CC55C460EE949A9934C7E5C06CCB") (:ecb-mode-test #h"0000000004000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8739DA7F4A9D821EAA7A349E25741DAA") (:ecb-mode-test #h"0000000002000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"73E724C08890501275A0559621526948") (:ecb-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"4CC6569D4F6207DDB03B232BFA8AA481") (:ecb-mode-test #h"0000000000800000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"52A6D921AEF99205822B361D8D9DD998") (:ecb-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"970E1899AEEEB7CCD26F854CA25214E2") (:ecb-mode-test #h"0000000000200000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D1DEFC8AC21C95160CF71612AAC55A8C") (:ecb-mode-test #h"0000000000100000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D8C2A3AD65F16024265714C21B8A70C5") (:ecb-mode-test #h"0000000000080000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"55DE20482FAE35A03F0D57B7546EB980") (:ecb-mode-test #h"0000000000040000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"81BCA41F11D12EE26326E042E74961AF") (:ecb-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6D8D5C30A508436401396224D4E417B5") (:ecb-mode-test #h"0000000000010000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0FA1ECAB0B3C598C51372A5AAF6E1315") (:ecb-mode-test #h"0000000000008000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"945BF2690A9CE9ED8009004039E1E743") (:ecb-mode-test #h"0000000000004000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"73618AD5FD3A9740CB92C3F870C772B9") (:ecb-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"A7BAB4D0765D66F06FCB85A42D4CF0EE") (:ecb-mode-test #h"0000000000001000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2A659EA8BF9EA163976C33A0B7463A56") (:ecb-mode-test #h"0000000000000800000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"4D9D5CC19BF1B2D48EF2CF4CD313D3E3") (:ecb-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0D7A26F850BDD2A633689367901BC2A4") (:ecb-mode-test #h"0000000000000200000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1A1235352EC6CD1A7A1913E77EF7CE4D") (:ecb-mode-test #h"0000000000000100000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5FDC541376BAF15D5AC011B9C0B74E75") (:ecb-mode-test #h"0000000000000080000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CB8DCB7AD04598E8337747E02A8DF16E") (:ecb-mode-test #h"0000000000000040000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2855A6EEA8B20B8B25EDEE37A7D7E976") (:ecb-mode-test #h"0000000000000020000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"58B5CD00D833233E718DBEAABCC48E8F") (:ecb-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6DF58A11F96B67C330ED10FFFB1E6D74") (:ecb-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8FD74AAB8D136DCF1B398D1174AA343B") (:ecb-mode-test #h"0000000000000004000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"A81E2F57E80761E361DB1008AC1ABDD8") (:ecb-mode-test #h"0000000000000002000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BDD939E7A93F6FECC762E2E3321DFEC7") (:ecb-mode-test #h"0000000000000001000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"C281060452693278B48AD9076911EC39") (:ecb-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"C06C159EEAFF3CB4B509DB604060F537") (:ecb-mode-test #h"0000000000000000400000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"757CED2216A9912B5FBFA1E623077E5D") (:ecb-mode-test #h"0000000000000000200000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"9606EDC198F44F955F510FA525E9C80C") (:ecb-mode-test #h"0000000000000000100000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"ADE8D3FAE7A4651855E053F42FFF7905") (:ecb-mode-test #h"0000000000000000080000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"398BA679B6C0A63479F0C6FE25614F01") (:ecb-mode-test #h"0000000000000000040000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FB77ECA9DEF62902240E4BF3806F3A64") (:ecb-mode-test #h"0000000000000000020000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"B4313D0A9D34B21F69021A5458680579") (:ecb-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BDC7C4ED3B989BF8288E8B4ACDE3FEEA") (:ecb-mode-test #h"0000000000000000008000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"430A2DAFFA822532FD4843DF9CBAF824") (:ecb-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"16A2DEBA266577150B6DC34995902C99") (:ecb-mode-test #h"0000000000000000002000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5902382C7675AF5C52A6ADF349454276") (:ecb-mode-test #h"0000000000000000001000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0D912AA37CFB56223C6ED9E04B3D563F") (:ecb-mode-test #h"0000000000000000000800000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1FD8880BE6A6E51C0C0E9C2866127F7D") (:ecb-mode-test #h"0000000000000000000400000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BC4079EE5CDB86BDD8FAE650E2931D98") (:ecb-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"C52E414FC84C978FAD8CFA103844C306") (:ecb-mode-test #h"0000000000000000000100000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"DF6291B74EF77E82A8FB7C207213125F") (:ecb-mode-test #h"0000000000000000000080000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"530424A0F23CD90074F2D672A4FF3A96") (:ecb-mode-test #h"0000000000000000000040000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"83ED777537F5EE3E5769B8A07476A6AB") (:ecb-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5357341784EAB13F104FBAEFC69B726B") (:ecb-mode-test #h"0000000000000000000010000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6DBACA4C68AD93373CBEB1DB0963F33F") (:ecb-mode-test #h"0000000000000000000008000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"EFA128916DF70D852574EC8507625CC8") (:ecb-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0BD55284AC672E1A2F248FB89C22B514") (:ecb-mode-test #h"0000000000000000000002000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"E3222E0E2770496C443ED562ECBFC368") (:ecb-mode-test #h"0000000000000000000001000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6B689B6DB9374E072B45A7807DAAB132") (:ecb-mode-test #h"0000000000000000000000800000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3215A725BCFBB120926F8BBCE41FC3EC") (:ecb-mode-test #h"0000000000000000000000400000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F2475FE25BEF963862CF66C91DA0250B") (:ecb-mode-test #h"0000000000000000000000200000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5E1CC549BB39348529FD279DFE5E1FFC") (:ecb-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1A8EDD22AA0FE906267DF710DE8DB007") (:ecb-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"EE139CE12F8205D4EECCE6D7FD23B01F") (:ecb-mode-test #h"0000000000000000000000040000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FD84D87207D7BE3A79272CC9DF65E1E6") (:ecb-mode-test #h"0000000000000000000000020000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CE01B0EEA6BF6D981AFFB07FE1DD164E") (:ecb-mode-test #h"0000000000000000000000010000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1BCCA9BD22179B1C941947643FB01F0F") (:ecb-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"87A581347DF02FF9973A0622DF673804") (:ecb-mode-test #h"0000000000000000000000004000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1EDEB75B65B365582AB5AA265037FA55") (:ecb-mode-test #h"0000000000000000000000002000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"807DD7E0418803258EF677BA9345CF51") (:ecb-mode-test #h"0000000000000000000000001000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"70CE90D345621481A99DC8EE1A62DCD5") (:ecb-mode-test #h"0000000000000000000000000800000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BB51E835284E0F7B74C053151F07D207") (:ecb-mode-test #h"0000000000000000000000000400000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0240317EC3AFA5D4610C545C0D507367") (:ecb-mode-test #h"0000000000000000000000000200000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"9B77B76CA91662A9CB067267F0560C65") (:ecb-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2219ED37D533B05CDC20B16F45D3DBD9") (:ecb-mode-test #h"0000000000000000000000000080000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BC5A33AF9E4591BD4CF53B20728C3F85") (:ecb-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"68628B89F58C20E5195DB795C0A41489") (:ecb-mode-test #h"0000000000000000000000000020000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"5D177DE234B6288510163F2351750215") (:ecb-mode-test #h"0000000000000000000000000010000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6015D7BA2F33B88B2BE0016E022E05FE") (:ecb-mode-test #h"0000000000000000000000000008000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2D203E35B97E3B315C17D9F0F80ACDA0") (:ecb-mode-test #h"0000000000000000000000000004000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"E5800AF9BF96D6B7ED3A2AED899CA456") (:ecb-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"1163E6F8F1DE919686C138089EFA7986") (:ecb-mode-test #h"0000000000000000000000000001000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2180B46E9EAC63A165BE63DAE17889A4") (:ecb-mode-test #h"0000000000000000000000000000800000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3D751DC36B1046AC808D8275B48697AC") (:ecb-mode-test #h"0000000000000000000000000000400000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"DF022C5EFCEB5D3FE7E72DDF11D16EA3") (:ecb-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"C706AB7A20E0D038143B78D9D12EC1A4") (:ecb-mode-test #h"0000000000000000000000000000100000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8AFB006F196B00DAE7F0B36C9E88A3B9") (:ecb-mode-test #h"0000000000000000000000000000080000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"BED70262ED524A5C6A495092E2543993") (:ecb-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"088A58A7351C7A7AF594035514DE0757") (:ecb-mode-test #h"0000000000000000000000000000020000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"F5DF0BB68AB377B12321365C05480EA8") (:ecb-mode-test #h"0000000000000000000000000000010000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"512DC8D603A7E4C8031D3566F141B233") (:ecb-mode-test #h"0000000000000000000000000000008000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"50342EA0E9E81EC53E3683C8C1471602") (:ecb-mode-test #h"0000000000000000000000000000004000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8AAB01E320B17FD9945D725F5EA904BA") (:ecb-mode-test #h"0000000000000000000000000000002000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"76FB320065713C165DECBE5DAFDD79BD") (:ecb-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"A8AD014D22CD8FCC9557438B8228253A") (:ecb-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6017A9EB6F3336882FCCEDEC746C62F6") (:ecb-mode-test #h"0000000000000000000000000000000400000000000000000000000000000000" #h"00000000000000000000000000000000" #h"2EDF94990EB0F4BAFE1F5903102FE874") (:ecb-mode-test #h"0000000000000000000000000000000200000000000000000000000000000000" #h"00000000000000000000000000000000" #h"4EC81B0FA8FAE0025AF09D26F1F200EA") (:ecb-mode-test #h"0000000000000000000000000000000100000000000000000000000000000000" #h"00000000000000000000000000000000" #h"AF7F474333E74691E5D01A3A841F8096") (:ecb-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"00000000000000000000000000000000" #h"28FCE531836F2A255CA19DE6F53841E8") (:ecb-mode-test #h"0000000000000000000000000000000040000000000000000000000000000000" #h"00000000000000000000000000000000" #h"6282A41053316B1A4027488E6F747003") (:ecb-mode-test #h"0000000000000000000000000000000020000000000000000000000000000000" #h"00000000000000000000000000000000" #h"3668527987AC38A3F7C052A20B668F24") (:ecb-mode-test #h"0000000000000000000000000000000010000000000000000000000000000000" #h"00000000000000000000000000000000" #h"4C3473FE666072653E29354F07EF02B5") (:ecb-mode-test #h"0000000000000000000000000000000008000000000000000000000000000000" #h"00000000000000000000000000000000" #h"0A51D7A5B347225798EDE5663940F32F") (:ecb-mode-test #h"0000000000000000000000000000000004000000000000000000000000000000" #h"00000000000000000000000000000000" #h"D3CA3A8821A3D094CF63CF12136A1249") (:ecb-mode-test #h"0000000000000000000000000000000002000000000000000000000000000000" #h"00000000000000000000000000000000" #h"FBC5E4B37A69AD5F21E53F88E55AB95D") (:ecb-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"00000000000000000000000000000000" #h"CCCAAA0A2DEFD357EE31C2CFEC9D0E8E") (:ecb-mode-test #h"0000000000000000000000000000000000800000000000000000000000000000" #h"00000000000000000000000000000000" #h"93348B5393560AA416C6E6F0C99A58F7") (:ecb-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"00000000000000000000000000000000" #h"13AC66E49E23A8D3582AA7117F7A8F2F") (:ecb-mode-test #h"0000000000000000000000000000000000200000000000000000000000000000" #h"00000000000000000000000000000000" #h"C403AD02F23055CEE08281E7D0C7EB2A") (:ecb-mode-test #h"0000000000000000000000000000000000100000000000000000000000000000" #h"00000000000000000000000000000000" #h"65DFD53B699B191CE7A6610A405083DC") (:ecb-mode-test #h"0000000000000000000000000000000000080000000000000000000000000000" #h"00000000000000000000000000000000" #h"3D6F7E99F6512553BB983E8F75672B97") (:ecb-mode-test #h"0000000000000000000000000000000000040000000000000000000000000000" #h"00000000000000000000000000000000" #h"92BA0D580A954F8C8494A840F0252AEF") (:ecb-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"00000000000000000000000000000000" #h"958D8C9141CE21DBD69E19BA1E4F67AA") (:ecb-mode-test #h"0000000000000000000000000000000000010000000000000000000000000000" #h"00000000000000000000000000000000" #h"E508796197F539FCDC917ECAB19507E0") (:ecb-mode-test #h"0000000000000000000000000000000000008000000000000000000000000000" #h"00000000000000000000000000000000" #h"2200A6914A2050E99A55FB3BF20315E4") (:ecb-mode-test #h"0000000000000000000000000000000000004000000000000000000000000000" #h"00000000000000000000000000000000" #h"627C0B2401EE6C095404CD7AA59EA67E") (:ecb-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"00000000000000000000000000000000" #h"75159B707278DFE6FD8A024B9FF0D5A8") (:ecb-mode-test #h"0000000000000000000000000000000000001000000000000000000000000000" #h"00000000000000000000000000000000" #h"F47982BE40C39306ACF25A120BC1B4E0") (:ecb-mode-test #h"0000000000000000000000000000000000000800000000000000000000000000" #h"00000000000000000000000000000000" #h"01CAABEF85A1E081EA6983079A90EA34") (:ecb-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"00000000000000000000000000000000" #h"7F473CD21A453BF74CC76184D6F5496F") (:ecb-mode-test #h"0000000000000000000000000000000000000200000000000000000000000000" #h"00000000000000000000000000000000" #h"659442FD57B94862529D3E4C530826FE") (:ecb-mode-test #h"0000000000000000000000000000000000000100000000000000000000000000" #h"00000000000000000000000000000000" #h"88A9140C094A695716A2966B1A8078A0") (:ecb-mode-test #h"0000000000000000000000000000000000000080000000000000000000000000" #h"00000000000000000000000000000000" #h"28CCFC1BB6180AA7373DA1F5A54E47EA") (:ecb-mode-test #h"0000000000000000000000000000000000000040000000000000000000000000" #h"00000000000000000000000000000000" #h"53DFD8CB845FD279B337B52DBBA3CF4C") (:ecb-mode-test #h"0000000000000000000000000000000000000020000000000000000000000000" #h"00000000000000000000000000000000" #h"1BB5B100DFE6BA16983AD4A0F09FD50B") (:ecb-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"00000000000000000000000000000000" #h"A896AE30D529D4ACFFCF5B763309CD28") (:ecb-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"00000000000000000000000000000000" #h"F40A1B359A9B6B1197276C71222371F4") (:ecb-mode-test #h"0000000000000000000000000000000000000004000000000000000000000000" #h"00000000000000000000000000000000" #h"9FDE11C9E6CF9A1E9089820FD928767C") (:ecb-mode-test #h"0000000000000000000000000000000000000002000000000000000000000000" #h"00000000000000000000000000000000" #h"7771A5A99B099A2C861D084E790958A2") (:ecb-mode-test #h"0000000000000000000000000000000000000001000000000000000000000000" #h"00000000000000000000000000000000" #h"BE1907AA5CA148A0282850401C48AF71") (:ecb-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"00000000000000000000000000000000" #h"8E47D50827FD36B62C0D3BD36F863198") (:ecb-mode-test #h"0000000000000000000000000000000000000000400000000000000000000000" #h"00000000000000000000000000000000" #h"81AA1751209F9173258CD1625DB65E07") (:ecb-mode-test #h"0000000000000000000000000000000000000000200000000000000000000000" #h"00000000000000000000000000000000" #h"1EE8FE72574BD819C97A0DEA2A5E0B64") (:ecb-mode-test #h"0000000000000000000000000000000000000000100000000000000000000000" #h"00000000000000000000000000000000" #h"031BA0B3EFCAE9B08793C8107C277A27") (:ecb-mode-test #h"0000000000000000000000000000000000000000080000000000000000000000" #h"00000000000000000000000000000000" #h"34C8DFD0DC4BA5240CA21BF4959EEF6B") (:ecb-mode-test #h"0000000000000000000000000000000000000000040000000000000000000000" #h"00000000000000000000000000000000" #h"C7A4DA0D5892A185D35447DB904511B5") (:ecb-mode-test #h"0000000000000000000000000000000000000000020000000000000000000000" #h"00000000000000000000000000000000" #h"7A8B9982B6C8AE1B5DC02FC1D9AFA2E0") (:ecb-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"00000000000000000000000000000000" #h"C77E0DFB29402C587C6DD97E0BD09ABA") (:ecb-mode-test #h"0000000000000000000000000000000000000000008000000000000000000000" #h"00000000000000000000000000000000" #h"1AA2FD990BD0B0715B18482088DE0844") (:ecb-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"00000000000000000000000000000000" #h"31C2D486FDA54BAB4286A02D260918AC") (:ecb-mode-test #h"0000000000000000000000000000000000000000002000000000000000000000" #h"00000000000000000000000000000000" #h"545F5A95E159B5F0DDF544B60F9C28C3") (:ecb-mode-test #h"0000000000000000000000000000000000000000001000000000000000000000" #h"00000000000000000000000000000000" #h"45C84895AF0393588C67D9CDD5E4D7E2") (:ecb-mode-test #h"0000000000000000000000000000000000000000000800000000000000000000" #h"00000000000000000000000000000000" #h"745BF4AF94A92D32FFE44B41AEF39320") (:ecb-mode-test #h"0000000000000000000000000000000000000000000400000000000000000000" #h"00000000000000000000000000000000" #h"13C47C2F92F91D72F34381AC9A81473D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"00000000000000000000000000000000" #h"8836D5AA076110FCD5BD66F3BECB39F6") (:ecb-mode-test #h"0000000000000000000000000000000000000000000100000000000000000000" #h"00000000000000000000000000000000" #h"11EDE6F221E96C7515B1256DF055FBC3") (:ecb-mode-test #h"0000000000000000000000000000000000000000000080000000000000000000" #h"00000000000000000000000000000000" #h"4E3BE7D6830703A6185CF0BDBE7F5BE4") (:ecb-mode-test #h"0000000000000000000000000000000000000000000040000000000000000000" #h"00000000000000000000000000000000" #h"6A1ABDA47972CFF536946A1C7D380810") (:ecb-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"00000000000000000000000000000000" #h"74031DB865D2FC8319A320FFAC4694D8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000010000000000000000000" #h"00000000000000000000000000000000" #h"E1F751F11027548C057075E8D8F880EA") (:ecb-mode-test #h"0000000000000000000000000000000000000000000008000000000000000000" #h"00000000000000000000000000000000" #h"AF24FA74CA96D89088C9018AA60E1D53") (:ecb-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"00000000000000000000000000000000" #h"0E5214D31B2C9219F6C9686A35F210FF") (:ecb-mode-test #h"0000000000000000000000000000000000000000000002000000000000000000" #h"00000000000000000000000000000000" #h"2A72E2E692463EE8846C94A483C27E25") (:ecb-mode-test #h"0000000000000000000000000000000000000000000001000000000000000000" #h"00000000000000000000000000000000" #h"2B9C3298626F11072D7B1D80B47A841F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000800000000000000000" #h"00000000000000000000000000000000" #h"7468CAA1A5FFC828BE5A752C33132E90") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000400000000000000000" #h"00000000000000000000000000000000" #h"29C75ADD5EDE2680C169FF9FD9177331") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000200000000000000000" #h"00000000000000000000000000000000" #h"9BA78930CDD3357A2D84A49725902E8F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"00000000000000000000000000000000" #h"F190AC4C43E202F925B5FD1E4CA62DD6") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"00000000000000000000000000000000" #h"5716FB34A1A6B40C35B2BA860F12163E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000040000000000000000" #h"00000000000000000000000000000000" #h"43B90548889A171E85515AB05EC76856") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000020000000000000000" #h"00000000000000000000000000000000" #h"B4DE6F86875147F5276D584CEC11AFB4") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000010000000000000000" #h"00000000000000000000000000000000" #h"3DA6C1A8937583BF6491B2E9C52081E6") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"00000000000000000000000000000000" #h"9A54FCD26D9754ADD5F8967EF551EAB0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000004000000000000000" #h"00000000000000000000000000000000" #h"F0DCFA56A7E41A859276A6F8927B561D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000002000000000000000" #h"00000000000000000000000000000000" #h"5881A8AE181F16B64CD0C455389F511C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000001000000000000000" #h"00000000000000000000000000000000" #h"E9F7AD45D9EA9AA4C830B89EEC61C1B5") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000800000000000000" #h"00000000000000000000000000000000" #h"9118B623A63BFC69A9AAB868D752460B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000400000000000000" #h"00000000000000000000000000000000" #h"2D208D46FB2177C243C539FCCD4A1E9D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000200000000000000" #h"00000000000000000000000000000000" #h"2A4F52A297F20E428222008D9BE4A23B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"00000000000000000000000000000000" #h"EBCFDD28550C9654374590EC4BFD1CDC") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000080000000000000" #h"00000000000000000000000000000000" #h"FABB99266FC741241F6CFC0CED776A11") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"00000000000000000000000000000000" #h"FBDEC944B2303E3A08A964E24130D10D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000020000000000000" #h"00000000000000000000000000000000" #h"9897E33E6052ABA1F07233BCEF531E32") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000010000000000000" #h"00000000000000000000000000000000" #h"509DCA41B038225B30D8B7880D52999D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000008000000000000" #h"00000000000000000000000000000000" #h"3F70238F99F2AF394C31308D68F1707C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000004000000000000" #h"00000000000000000000000000000000" #h"E6FF6426E9025DD6519837F71A6C3636") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"00000000000000000000000000000000" #h"F222502AEF77C1F21DB79B08F7AB8CA2") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000001000000000000" #h"00000000000000000000000000000000" #h"C17D2C00477C1AA20B539BE8174E7202") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000800000000000" #h"00000000000000000000000000000000" #h"0F7B12AE962AF9C0C8CDCAA288FC6E12") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000400000000000" #h"00000000000000000000000000000000" #h"0E740EE58431521A622122AEFB163CE2") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"00000000000000000000000000000000" #h"CF0B94FECAC6F67070306654FE198449") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000100000000000" #h"00000000000000000000000000000000" #h"604EA1D0711ACB8E545C0A88976008F9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000080000000000" #h"00000000000000000000000000000000" #h"71D03D8F6F917FDF5B612180454F3699") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"00000000000000000000000000000000" #h"A6BCFE7B73EDCE71DB36AF00B01C37EC") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000020000000000" #h"00000000000000000000000000000000" #h"93D761851BB991221AE77968459787DD") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000010000000000" #h"00000000000000000000000000000000" #h"F117E4D5C88CC1C067C88AE38A5BF1D5") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000008000000000" #h"00000000000000000000000000000000" #h"B534328DA555A9B69AC2A5B08E3CE47E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000004000000000" #h"00000000000000000000000000000000" #h"7BDFB785D866B6487790B9F6164F5EBD") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000002000000000" #h"00000000000000000000000000000000" #h"5B3BB41E43D02901F5A0231768347B38") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"00000000000000000000000000000000" #h"917216669DB1600015F2FE7CBDDA0FF4") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"00000000000000000000000000000000" #h"C79B582FC430C0187D7B1D7B1E79BDB9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000400000000" #h"00000000000000000000000000000000" #h"B9A43998AED6BB7B79C91BB4C2530F4E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000200000000" #h"00000000000000000000000000000000" #h"0B24EBDF9A1D129F5E8397AB7412BC74") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000100000000" #h"00000000000000000000000000000000" #h"96D523E4EF1C888C72460DEBA8D58B78") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"00000000000000000000000000000000" #h"85708C4539C8B06DD787AFDD06A3FE24") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000040000000" #h"00000000000000000000000000000000" #h"67A106762D2F46B7880750BCF987054C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000020000000" #h"00000000000000000000000000000000" #h"8F46E37371E81C389CA94A8272A14FC8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000010000000" #h"00000000000000000000000000000000" #h"92DC700C11BBE46DA9559CAA7BA662F0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000008000000" #h"00000000000000000000000000000000" #h"90D2B52984DA214F392EF4EAC26A04FE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000004000000" #h"00000000000000000000000000000000" #h"832D440D62996C5BFCB7FAA08DEB4D2C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000002000000" #h"00000000000000000000000000000000" #h"69B7F725BA2B0539F6B45F2C8495D571") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"00000000000000000000000000000000" #h"CE78A2AA25F818D87C46367579FAE698") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000800000" #h"00000000000000000000000000000000" #h"F5E3E4DA4FC90F25F7D6679F076CA32E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"00000000000000000000000000000000" #h"F7618B001BC19F0195BD21021D9545B6") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000200000" #h"00000000000000000000000000000000" #h"D84E1E36E1100913C7AFDBFE5009EDEA") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000100000" #h"00000000000000000000000000000000" #h"9DB2838E3903829913D2AEE6465202FD") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000080000" #h"00000000000000000000000000000000" #h"361AFBF61BDB378CCF2B76C01469BAA2") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000040000" #h"00000000000000000000000000000000" #h"DC4C998046574B4CC447154F663E8EBD") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"00000000000000000000000000000000" #h"0D890EFA71666BE0A38B423BAD47C90F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000010000" #h"00000000000000000000000000000000" #h"F39C444538E646A2BD59B443F68C51D5") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000008000" #h"00000000000000000000000000000000" #h"9C6D37340E8F5EA22213E17A9F720238") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000004000" #h"00000000000000000000000000000000" #h"3A23813329F978C1C6C3BE1715011283") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"00000000000000000000000000000000" #h"CE24D63AFA37E2A659A21CF770109BB4") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000001000" #h"00000000000000000000000000000000" #h"DF329017478D86B2C360D55BC2B2ADCF") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000800" #h"00000000000000000000000000000000" #h"BC5EFA1FBF848776746FD7826656E25C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"00000000000000000000000000000000" #h"A3E4185241C566DD2CF8117D4D7699F4") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000200" #h"00000000000000000000000000000000" #h"EF7BBDEB18879C11E2979DCC601CB620") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000100" #h"00000000000000000000000000000000" #h"FDC76A95F9C87E394F82A787D7406D40") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000080" #h"00000000000000000000000000000000" #h"B224E2BECACF6773B9941516195ED06B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000040" #h"00000000000000000000000000000000" #h"B3951D0CF640BB7BD8F3D9948745FF9E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000020" #h"00000000000000000000000000000000" #h"F9C8966E2874F736765B89DA10EF4611") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"00000000000000000000000000000000" #h"3750F26BAB98833AB30444C0821A594C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"00000000000000000000000000000000" #h"D369C2B7C2337D67A87CD5B4EB45D290") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000004" #h"00000000000000000000000000000000" #h"F3A44B0F53DCC9F79E1AFA8ABB022C84") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000002" #h"00000000000000000000000000000000" #h"6E47C47F3940D369EC703E974AB350B6") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000001" #h"00000000000000000000000000000000" #h"1100DE2A57C47C2EB63277537ADE5716") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"80000000000000000000000000000000" #h"30F5C183F6C81A72F39B618B086CC2DE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"40000000000000000000000000000000" #h"DB11AFAAB4946101911DF90AFED8AC0D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"20000000000000000000000000000000" #h"1487FC298DBDA9C520CC5851B17D4079") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"10000000000000000000000000000000" #h"2321D38ACCAAEA5DBA682E7BDCE095AB") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"08000000000000000000000000000000" #h"C4DB11197AE15CF9DFE7D0F3457EC94C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"04000000000000000000000000000000" #h"1054BFF1A1564172460A0194B57EBE6C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"02000000000000000000000000000000" #h"2340568047F06139D03FE0A3C75CDBF1") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"01000000000000000000000000000000" #h"3FA18912A1C05E244663BD9A9B5D4046") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00800000000000000000000000000000" #h"7220FA3179267839BB03569E43056BE8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00400000000000000000000000000000" #h"C7D49A32A6B93D1323EFD7B99FC0A5F7") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00200000000000000000000000000000" #h"C30D9FFB19F2090109AD40FDAB73176B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00100000000000000000000000000000" #h"54CA1E1FD38713CD454A07339385739F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00080000000000000000000000000000" #h"034516E874272A5A325EB9D54831B6F7") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00040000000000000000000000000000" #h"42650A58269E311A3B4F7BC414D1488A") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00020000000000000000000000000000" #h"8D4916888A02DC18E1EE95B005C58E18") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00010000000000000000000000000000" #h"B192C07FB927170DF62D6C44819BCD6F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00008000000000000000000000000000" #h"973C835241ED02CBE39699AF2FFC150A") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00004000000000000000000000000000" #h"F9630817124B0787237D76697D66341F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00002000000000000000000000000000" #h"51E98EC760A328E35B8D77289726AFC3") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00001000000000000000000000000000" #h"FC2E80BE856AE38BE0682E8C273616AE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000800000000000000000000000000" #h"A440C29E6F4D6C3540D6C8DB6B02DE4F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000400000000000000000000000000" #h"E04312CB849684A440114B40C242F1E0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000200000000000000000000000000" #h"2186FC5F5947AAF6626DCAAFFFB47829") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000100000000000000000000000000" #h"D357AAA0B4548EB23E9CF1B5D33487C3") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000080000000000000000000000000" #h"02239634F2A7CB81D1CACA279659C637") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000040000000000000000000000000" #h"2EF92962D2F7D0A4B075992C3F8FA9C3") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000020000000000000000000000000" #h"F197F67C65438532F17DDBE41F87BA17") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000010000000000000000000000000" #h"6A9387BE237C03056921A9F85AB7A394") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000008000000000000000000000000" #h"5BE801A4767AD211AF20B295E4EB9F72") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000004000000000000000000000000" #h"D38007A33C45B295D06FA99660E8C6E4") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000002000000000000000000000000" #h"C87746C9F5405E9BBBB53D17544AD016") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000001000000000000000000000000" #h"142BB703DC8B4E870165F987B94A3D06") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000800000000000000000000000" #h"3C25BD8199CD580D684BD7EC53601EED") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000400000000000000000000000" #h"283CC22E28A7E48B9FB34F5454A1EB92") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000200000000000000000000000" #h"BE6FA799CE3E6BB239EE35FEF2744A14") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000100000000000000000000000" #h"99BF63EEB37E1C7E8686B28A0F13E120") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000080000000000000000000000" #h"01308C588EC24E97B75A1D32F8C3E770") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000040000000000000000000000" #h"F820CB9552F6800049E51037DD238E7B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000020000000000000000000000" #h"BBC26F6098B0F4D2235FC139041EB78F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000010000000000000000000000" #h"836E3B15AA777DEA46606FCC7C2FAB65") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000008000000000000000000000" #h"AAB58970926FE6CFC4017F23FB44C287") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000004000000000000000000000" #h"1DEEF417C2192D50694D1DF67F960E6E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000002000000000000000000000" #h"4E4EA43FAD14AF207C311D98A1DB4B24") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000001000000000000000000000" #h"E0731CEF0FAF7AE36B4FCB9E1AB95488") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000800000000000000000000" #h"C6FF60796386126058694CAA35BFF163") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000400000000000000000000" #h"AEA22D742BA1919C43E0A42719B1A9C8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000200000000000000000000" #h"843793D2EF2427D745B9B35BC0AD0555") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000100000000000000000000" #h"3C805CED7CBDEF4F896113D95D4BD975") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000080000000000000000000" #h"5157A8B222432635BEBD29BDAA9C490B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000040000000000000000000" #h"D7A88C8E82EB2F2BB827E56F33E7B1C3") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000020000000000000000000" #h"DA55FBE256EF08F565A70D870B969B27") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000010000000000000000000" #h"951F6F33FD34701F7C79FC94EFB119CF") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000008000000000000000000" #h"BE2BD92D9F3DBFD3225B7488FFEC09C1") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000004000000000000000000" #h"3C560897DF4AC5F3C33818E2597E90B0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000002000000000000000000" #h"52C4110C36C90E3A54921B3F1AAB66C0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000001000000000000000000" #h"9DCED6AECC426A4DFB6B648490A7D002") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000800000000000000000" #h"F2631BD62B10761B923DD415ADCCC59B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000400000000000000000" #h"2B1E1C0D54367440A122D31058057A42") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000200000000000000000" #h"544C870FBF43AB7CFCF114E00B05D974") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000100000000000000000" #h"1E8B06D5FDF11BF70AD8F8748F7F6C33") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000080000000000000000" #h"582BE6419DB732C646B80E8C8966C7CC") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000040000000000000000" #h"2AB0AEAAF06EAD0BA24CCDD46BCAC4D2") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000020000000000000000" #h"32ABA6C20CFFB3D81A4D3288BF4BDFB1") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000010000000000000000" #h"AB8F8FB0A91662A4E3C54C395BDD6711") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000008000000000000000" #h"F154670ADDE837119060F4ECE9D7B636") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000004000000000000000" #h"64CE436BCC7AAC1DE95D6CECC28C46C2") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000002000000000000000" #h"17A6371CFEAD87CBB6A545D9F9973155") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000001000000000000000" #h"532AC851EF076F571D6B1C9418D7E2E9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000800000000000000" #h"8CA057121128472C01EF7F6EC39EC63F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000400000000000000" #h"283DF89A06A93492543BCA4D5DB109E9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000200000000000000" #h"2A07389C26321F9F7AF46897D80E3CCF") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000100000000000000" #h"1473BBE037060B30273908A495C2F622") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000080000000000000" #h"C937D109334A404B55CEE675092A2D2C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000040000000000000" #h"0CAA09146104F478E231268F03EA4FB9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000020000000000000" #h"7FCA0541DC09F947145B69C93E0E382F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000010000000000000" #h"16739ED42CEF90CA03B686FF13A29A6C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000008000000000000" #h"911BB934A7D6ED03A5AF9DF7A28E8129") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000004000000000000" #h"3974614212BA6A30AC9541B7776CC29B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000002000000000000" #h"8D17F86E8423398AB06E739B112048FB") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000001000000000000" #h"76A0AC6091D6DAF57C303E02D5AE8F97") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000800000000000" #h"98C8AD3C3AB0EFB14DF2C96EC4A5923C") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000400000000000" #h"3AF0B1C79917659CF8E5B91D4ED31ED3") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000200000000000" #h"0F6C180C0D449B35A3C7026E513DA0D9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000100000000000" #h"646F2B75831CA1CB950B5CC79F320F6F") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000080000000000" #h"2877CB6CFED0900A25FE65367B8DF5DC") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000040000000000" #h"5122F1C85198E03E269D90BDA811A8AD") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000020000000000" #h"7FEC2A1C88A6E72D22FE71B513B1C34D") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000010000000000" #h"1176120721DC2C20A1ED31F1572ECBB8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000008000000000" #h"932B4B9980CF29A3EC9B982A2C0215CE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000004000000000" #h"BFE6D2C8354E83D26AEF557E2AD1C2EF") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000002000000000" #h"FE4C742734F30C62964D5917C5B63723") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000001000000000" #h"1663275B61F3FACEB365D56D8B51AE33") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000800000000" #h"32EB39C865C149CF81E27D8AE0A91BDB") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000400000000" #h"0229846F9F8150006A27D62E60A762DE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000200000000" #h"B88BACF0AFFAA2C5CAAC4C7036785A74") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000100000000" #h"C61820350B4DAF92077DB18B2563C050") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000080000000" #h"D4ABF17AA49B24F71DD5151339951D1B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000040000000" #h"D7C632D6C753246A176B659DBCEF61D8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000020000000" #h"1F34C055C434A025ADD592A5397D2D35") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000010000000" #h"C399CB8A665E35A23F660C2F8C3D8FE9") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000008000000" #h"09E11B6D984BD70089CB2360448A4B60") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000004000000" #h"E243F7445FCCF52878F8B83BE492EABA") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000002000000" #h"389F39873BDF652BC4F9043E30AD7CE0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000001000000" #h"0669295AA4EA970860CF675D6469F765") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000800000" #h"35C5F9A85171DC889BFD5332E6C8E0D7") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000400000" #h"E07600A31EA2F2F781EBC12A3DDC936E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000200000" #h"FB4CBEC86740711F59995673EB73ADE8") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000100000" #h"E572F84C3AEFB9DFCE042B39E68EA160") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000080000" #h"A87AB39149865D45B1E43D35D8C65001") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000040000" #h"4E5215E398BD5D0F7223348581D18158") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000020000" #h"2524BA2E297D0D2B26797441A7CDB01E") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000010000" #h"3DCE8EB2F6FBDBB7A33A26FF6485D4AE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000008000" #h"28EC64C3D0C3AA145F21F4067322573B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000004000" #h"EC6E0084F98693A0D3AD1E4790716ACE") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000002000" #h"F09BD8B4646FBAC5556B4F0B816B35EB") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000001000" #h"9CC8722245E3CD23DF490353DCACC9E0") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000800" #h"C73465C832CC907D4F79035E67F9AE29") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000400" #h"F311B9CF73CF5A8FAFB9DBEECC67B9E1") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000200" #h"56494DBCF09A6019B1C6CEE3DB0C844B") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000100" #h"0364CB9DAF55D765BC5CCD46B58FA718") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000080" #h"4DAFE2AAED6E49C98A7B8B979C32E6DB") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000040" #h"2F5BECD180A9449CE7A1ECCCB34057B1") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000020" #h"1C8B0DF1D643B9376B3E40B847850DFD") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000010" #h"674A46D61796154EC5DE8EC7EDA4BD3A") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000008" #h"8F111A48A7C598EFF1CBCB43414A7791") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000004" #h"CBD9C99FB47C9518151222D6F8B07446") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000002" #h"D449C5BE9B01257543932AF7B8777F69") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000001" #h"283D43A1CEA6187A31581D1606BB8B7A") (:ecb-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"00000000000000000000000000000000" #h"8F5FBD0510D15FA893FA3FDA6E857EC2") (:ecb-mode-test #h"0101010101010101010101010101010101010101010101010101010101010101" #h"01010101010101010101010101010101" #h"41ECEE06DDA0946C816F528A767C0EF6") (:ecb-mode-test #h"0202020202020202020202020202020202020202020202020202020202020202" #h"02020202020202020202020202020202" #h"05A4BD219836864E94C4B2889D3235BD") (:ecb-mode-test #h"0303030303030303030303030303030303030303030303030303030303030303" #h"03030303030303030303030303030303" #h"3BC24A403B3A75B8D4B782A9D927D817") (:ecb-mode-test #h"0404040404040404040404040404040404040404040404040404040404040404" #h"04040404040404040404040404040404" #h"A9374C03F7898117A1232C2E23018EA1") (:ecb-mode-test #h"0505050505050505050505050505050505050505050505050505050505050505" #h"05050505050505050505050505050505" #h"10A91632AE37ABC2D033F7BB14AB6924") (:ecb-mode-test #h"0606060606060606060606060606060606060606060606060606060606060606" #h"06060606060606060606060606060606" #h"C561F40FBAACBF9F391AB826A884E9C5") (:ecb-mode-test #h"0707070707070707070707070707070707070707070707070707070707070707" #h"07070707070707070707070707070707" #h"77244792EE580B55573EA54422CA3E88") (:ecb-mode-test #h"0808080808080808080808080808080808080808080808080808080808080808" #h"08080808080808080808080808080808" #h"AD0A7CB23D8395B73AA6282EC794F914") (:ecb-mode-test #h"0909090909090909090909090909090909090909090909090909090909090909" #h"09090909090909090909090909090909" #h"0EE4D2906BAA40545CA568384A931E52") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"D5E2D052295D9AA6585DEB4C15A19D87") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"33B778AB136AB9D21DF1790E2F2976BF") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"38C855D99A97CEF3D6B81050A4B6D946") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"9D5A5E0CCB48545792B7E5E377E93D32") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"6C3D6E5D671E9A741E3129336A69494D") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"FDB15CFC7B76C08FE55CF9A5A6FFBBD8") (:ecb-mode-test #h"1010101010101010101010101010101010101010101010101010101010101010" #h"10101010101010101010101010101010" #h"3F5E0F2746358A79867BC9C53ED0863A") (:ecb-mode-test #h"1111111111111111111111111111111111111111111111111111111111111111" #h"11111111111111111111111111111111" #h"4134E967037774D15B768CFB5AAE9278") (:ecb-mode-test #h"1212121212121212121212121212121212121212121212121212121212121212" #h"12121212121212121212121212121212" #h"8409D43358FB65E15B982EE201EC297D") (:ecb-mode-test #h"1313131313131313131313131313131313131313131313131313131313131313" #h"13131313131313131313131313131313" #h"8F5ED0CEE82C1180BD9EDEB6F1039385") (:ecb-mode-test #h"1414141414141414141414141414141414141414141414141414141414141414" #h"14141414141414141414141414141414" #h"2C206B2DD373A00B092062B84548DE1E") (:ecb-mode-test #h"1515151515151515151515151515151515151515151515151515151515151515" #h"15151515151515151515151515151515" #h"C8BDB8DB589874C0C63C61AF2396D356") (:ecb-mode-test #h"1616161616161616161616161616161616161616161616161616161616161616" #h"16161616161616161616161616161616" #h"2AC6DB0F6517E029674B1D6BBAC2F0AD") (:ecb-mode-test #h"1717171717171717171717171717171717171717171717171717171717171717" #h"17171717171717171717171717171717" #h"F8A68E8085367FEF4F2957DE5C39890E") (:ecb-mode-test #h"1818181818181818181818181818181818181818181818181818181818181818" #h"18181818181818181818181818181818" #h"EE9AF60D3B823A5A22BD64F431C33D0A") (:ecb-mode-test #h"1919191919191919191919191919191919191919191919191919191919191919" #h"19191919191919191919191919191919" #h"0C089EC9B30C05A0732EDD45388B1206") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"DA8B46B1DE2DF166455289EE80C007F2") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"F4ABF5759D1EEF9032003CE71ADC89E5") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"C45246D944923F22A52433E6834EABE4") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"933DFD6FD6A8F6002EAA8BC96E4D173A") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"7F578BE8AEA0B19532CD84EB6CE99C58") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"0946EDC0537114610C2C88D7038781DB") (:ecb-mode-test #h"2020202020202020202020202020202020202020202020202020202020202020" #h"20202020202020202020202020202020" #h"A378961A1BD0DC17A858748446D7993D") (:ecb-mode-test #h"2121212121212121212121212121212121212121212121212121212121212121" #h"21212121212121212121212121212121" #h"E00676475A7E79BAA3A4D827E90C4DA5") (:ecb-mode-test #h"2222222222222222222222222222222222222222222222222222222222222222" #h"22222222222222222222222222222222" #h"97705B12EB02AEE32E3B20C8D3D1536E") (:ecb-mode-test #h"2323232323232323232323232323232323232323232323232323232323232323" #h"23232323232323232323232323232323" #h"EF3F9529B28A89C27D453C5851701729") (:ecb-mode-test #h"2424242424242424242424242424242424242424242424242424242424242424" #h"24242424242424242424242424242424" #h"2A59340EAF729D9D420A35356AFFB9B7") (:ecb-mode-test #h"2525252525252525252525252525252525252525252525252525252525252525" #h"25252525252525252525252525252525" #h"7F18A8306EED7B7CAED0CA0A3B984868") (:ecb-mode-test #h"2626262626262626262626262626262626262626262626262626262626262626" #h"26262626262626262626262626262626" #h"3FF1B8949DD23FF33BDDB7E521C58B98") (:ecb-mode-test #h"2727272727272727272727272727272727272727272727272727272727272727" #h"27272727272727272727272727272727" #h"F1564D6E102AEF2B4E9DA47690DF1AEE") (:ecb-mode-test #h"2828282828282828282828282828282828282828282828282828282828282828" #h"28282828282828282828282828282828" #h"E5B1D4094AA87ABCCD772DE2376027C3") (:ecb-mode-test #h"2929292929292929292929292929292929292929292929292929292929292929" #h"29292929292929292929292929292929" #h"B1FBD116E78F6AE98E2E47398D1D6AF4") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"077480EF2B318CDB85270DBE23C2E891") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"8F19A3D1BB7977A3C6CE913C4D050517") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"9C484441D6D7D5F599FEEEB9CB9D20B4") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"1E50A480982009BDE185B63F362540AB") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"337AF3C8EB758B35422EA948B8E5E5BF") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"4DCB003CF973FDD11C1B436D6A231523") (:ecb-mode-test #h"3030303030303030303030303030303030303030303030303030303030303030" #h"30303030303030303030303030303030" #h"B4F6B60191FF256E382EE4091C243819") (:ecb-mode-test #h"3131313131313131313131313131313131313131313131313131313131313131" #h"31313131313131313131313131313131" #h"04E788E38D25065BFC003DDC34016A2C") (:ecb-mode-test #h"3232323232323232323232323232323232323232323232323232323232323232" #h"32323232323232323232323232323232" #h"BD6ADA5AC9D0F4AC07AF306F342539D0") (:ecb-mode-test #h"3333333333333333333333333333333333333333333333333333333333333333" #h"33333333333333333333333333333333" #h"AC2DE2AECF634D8980F1B8CE6C22DD25") (:ecb-mode-test #h"3434343434343434343434343434343434343434343434343434343434343434" #h"34343434343434343434343434343434" #h"96C1A8505DFEC968DA28A5FEEBA99C91") (:ecb-mode-test #h"3535353535353535353535353535353535353535353535353535353535353535" #h"35353535353535353535353535353535" #h"E4E4CB94E2DDA601172BB0DF5EF015E8") (:ecb-mode-test #h"3636363636363636363636363636363636363636363636363636363636363636" #h"36363636363636363636363636363636" #h"BC8BE15A7C1DD5B55B5BC358EBF59B09") (:ecb-mode-test #h"3737373737373737373737373737373737373737373737373737373737373737" #h"37373737373737373737373737373737" #h"35FC60E0CC820CB4139A453554C8FF9A") (:ecb-mode-test #h"3838383838383838383838383838383838383838383838383838383838383838" #h"38383838383838383838383838383838" #h"9CD94C5325854DDC0A2F643A308947B5") (:ecb-mode-test #h"3939393939393939393939393939393939393939393939393939393939393939" #h"39393939393939393939393939393939" #h"111CBA7601D9FB9A1C907574692C8FB7") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"6FF68C784289F1EDB9655354AE25376C") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"2976F1A757D38B5BE4E092DA06D35E02") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"5B6F7CC56E17890586C22BAF8A2561B8") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"D4EFA980403A0156DED415B023A95E9B") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"D08247B94300B32D960952E826B18C52") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"98600CA772B770B9D1A5ABAD1CEAFC0A") (:ecb-mode-test #h"4040404040404040404040404040404040404040404040404040404040404040" #h"40404040404040404040404040404040" #h"AE04F7ADC21C22C60B21F5C00A3DFA19") (:ecb-mode-test #h"4141414141414141414141414141414141414141414141414141414141414141" #h"41414141414141414141414141414141" #h"2034FB5D77BA8A5ACB3D0D291EAB5AAB") (:ecb-mode-test #h"4242424242424242424242424242424242424242424242424242424242424242" #h"42424242424242424242424242424242" #h"073E5B7C4AEDA8E389EAB1C004F9013B") (:ecb-mode-test #h"4343434343434343434343434343434343434343434343434343434343434343" #h"43434343434343434343434343434343" #h"B6DAB2B60D0632F01A34E022FE65BD70") (:ecb-mode-test #h"4444444444444444444444444444444444444444444444444444444444444444" #h"44444444444444444444444444444444" #h"87B8CD47F0C7C3E35585B1C224426CB2") (:ecb-mode-test #h"4545454545454545454545454545454545454545454545454545454545454545" #h"45454545454545454545454545454545" #h"A5064DD8B8C34EE5ECC2332A3E2BABFD") (:ecb-mode-test #h"4646464646464646464646464646464646464646464646464646464646464646" #h"46464646464646464646464646464646" #h"F24827043DEF50B138CB6075122532E8") (:ecb-mode-test #h"4747474747474747474747474747474747474747474747474747474747474747" #h"47474747474747474747474747474747" #h"15822AAD6F8548362FFDC73B4D5CE3A5") (:ecb-mode-test #h"4848484848484848484848484848484848484848484848484848484848484848" #h"48484848484848484848484848484848" #h"EC758A044AB108FB446BCC102A85D5E9") (:ecb-mode-test #h"4949494949494949494949494949494949494949494949494949494949494949" #h"49494949494949494949494949494949" #h"BC761F3BDA27472513624827E9384E75") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"544EEDB2B77BBD0518310DDEA64A71C9") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"0BE6BF7A86DA610DFEAA98E1E6F71471") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"2B71F5191680F17E5F6272582D9E486B") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"48FC5FCEC3367F73D493E09EFCA7CB65") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"E1CA452D48B458C516929FB74C284AC7") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"886F7BE40205C0191832E3FF637EAB26") (:ecb-mode-test #h"5050505050505050505050505050505050505050505050505050505050505050" #h"50505050505050505050505050505050" #h"6498690FE34315EC6B8F727C0DD8E769") (:ecb-mode-test #h"5151515151515151515151515151515151515151515151515151515151515151" #h"51515151515151515151515151515151" #h"47134F0B0409D108E59BD5C84A7B7D04") (:ecb-mode-test #h"5252525252525252525252525252525252525252525252525252525252525252" #h"52525252525252525252525252525252" #h"35C1D2053EBB859FB0A0CF1C57B0C1A4") (:ecb-mode-test #h"5353535353535353535353535353535353535353535353535353535353535353" #h"53535353535353535353535353535353" #h"8B1858D355BF485D52FDB62FC4F1E112") (:ecb-mode-test #h"5454545454545454545454545454545454545454545454545454545454545454" #h"54545454545454545454545454545454" #h"AE85AE86A47E18C6A737B78E961965DA") (:ecb-mode-test #h"5555555555555555555555555555555555555555555555555555555555555555" #h"55555555555555555555555555555555" #h"7352C66C58C333B378DF5F18DBE7D5D1") (:ecb-mode-test #h"5656565656565656565656565656565656565656565656565656565656565656" #h"56565656565656565656565656565656" #h"2805EABFB9835BC03B70D1FF7C3AD58D") (:ecb-mode-test #h"5757575757575757575757575757575757575757575757575757575757575757" #h"57575757575757575757575757575757" #h"A316D1C5FDF13F3215D2FDE07705B471") (:ecb-mode-test #h"5858585858585858585858585858585858585858585858585858585858585858" #h"58585858585858585858585858585858" #h"B2BCE2C9A9B2DF124CA02518F860CD22") (:ecb-mode-test #h"5959595959595959595959595959595959595959595959595959595959595959" #h"59595959595959595959595959595959" #h"83AFDB28C51770FB7BBCE55A3289C46C") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"CE49679C1F60CF82D63CFF5E0205CB82") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"DE920AECF4C02A57C0D147D87D1F9708") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"AA4A5B5BDE95CB89C20FCCDFF5562A25") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"40D23C429DE4B95ADA235FFCD5B271BB") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"A47A425592D54D4092285E51D26C9904") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"774D4FE2F609B1D028FCFD943569750D") (:ecb-mode-test #h"6060606060606060606060606060606060606060606060606060606060606060" #h"60606060606060606060606060606060" #h"52043A70B14C1777132491ECFBE88056") (:ecb-mode-test #h"6161616161616161616161616161616161616161616161616161616161616161" #h"61616161616161616161616161616161" #h"B1A32F018FDB63CA167CF0E72F9629F5") (:ecb-mode-test #h"6262626262626262626262626262626262626262626262626262626262626262" #h"62626262626262626262626262626262" #h"49C4EC0B638B38334DE266900B2DDC87") (:ecb-mode-test #h"6363636363636363636363636363636363636363636363636363636363636363" #h"63636363636363636363636363636363" #h"5B8110F987FE41F1ADBF2553E8ADC2FD") (:ecb-mode-test #h"6464646464646464646464646464646464646464646464646464646464646464" #h"64646464646464646464646464646464" #h"7C3EE9B019038955E48439947474D94F") (:ecb-mode-test #h"6565656565656565656565656565656565656565656565656565656565656565" #h"65656565656565656565656565656565" #h"CFA3C8DE4E878E8E2704BEE547B06C68") (:ecb-mode-test #h"6666666666666666666666666666666666666666666666666666666666666666" #h"66666666666666666666666666666666" #h"77AFED8B47D1C0AE4EBD878AB833F4F8") (:ecb-mode-test #h"6767676767676767676767676767676767676767676767676767676767676767" #h"67676767676767676767676767676767" #h"586A2E64021F6A08F81EB4F85021D6D1") (:ecb-mode-test #h"6868686868686868686868686868686868686868686868686868686868686868" #h"68686868686868686868686868686868" #h"2F0163311D82C6ADA22D385762CA2777") (:ecb-mode-test #h"6969696969696969696969696969696969696969696969696969696969696969" #h"69696969696969696969696969696969" #h"76343F98A358DDD3154DA2EC06ACDA84") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"5299BC5FBDDD3AACAB3F8AFD3BFF969A") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"BFCB21291F2FFFDBBAA538F11C38F9C4") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"3C0DFBDCFC687037FCF41F0041D4F9E8") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"1BE029F3ADC93EFA5AEBF368B69169EE") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"DA4A15CDA66D25300C94FFC0BEE8CA14") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"49360779359ABA649A7C0AEB719FD06F") (:ecb-mode-test #h"7070707070707070707070707070707070707070707070707070707070707070" #h"70707070707070707070707070707070" #h"DB8381DA6498BE677A0B8D352E9A8A4F") (:ecb-mode-test #h"7171717171717171717171717171717171717171717171717171717171717171" #h"71717171717171717171717171717171" #h"E89143FD946549271010A98030B1A581") (:ecb-mode-test #h"7272727272727272727272727272727272727272727272727272727272727272" #h"72727272727272727272727272727272" #h"CE5B2B1CC32D41C5DE924C8D1186499C") (:ecb-mode-test #h"7373737373737373737373737373737373737373737373737373737373737373" #h"73737373737373737373737373737373" #h"133398CDB0FAD25C7EF187ED54CF8C99") (:ecb-mode-test #h"7474747474747474747474747474747474747474747474747474747474747474" #h"74747474747474747474747474747474" #h"0D276D5DF8F06405A2F1E40EEB46371D") (:ecb-mode-test #h"7575757575757575757575757575757575757575757575757575757575757575" #h"75757575757575757575757575757575" #h"1F7FA8FD6562ECBA741F97BA1F3516E8") (:ecb-mode-test #h"7676767676767676767676767676767676767676767676767676767676767676" #h"76767676767676767676767676767676" #h"67C9D36932440232891E1AE3861EBC5A") (:ecb-mode-test #h"7777777777777777777777777777777777777777777777777777777777777777" #h"77777777777777777777777777777777" #h"D7FB52A59B5EF5A7525B20A2534D3843") (:ecb-mode-test #h"7878787878787878787878787878787878787878787878787878787878787878" #h"78787878787878787878787878787878" #h"13A47B1F05EECA7654D5E8954177156C") (:ecb-mode-test #h"7979797979797979797979797979797979797979797979797979797979797979" #h"79797979797979797979797979797979" #h"80B4C22450C346A8B7A543006DB18F2F") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"23DB80B36E88431C6E3BC27D321C4E68") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"F6AF4CF2C330606D556B0D04C8E2B416") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"8C30082710E0109645EA1A3C5A5E4A41") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"80FA1D463D24B97315BECCD0AFE34FEF") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"46D86A3DE28D8F888209C74E6382AD9F") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"44473A65D59610CB6483321A10D43CBE") (:ecb-mode-test #h"8080808080808080808080808080808080808080808080808080808080808080" #h"80808080808080808080808080808080" #h"8B5F6448DC21B7A255806EE216BA610F") (:ecb-mode-test #h"8181818181818181818181818181818181818181818181818181818181818181" #h"81818181818181818181818181818181" #h"0F33CB570C72235A2D8F0FEC7B545B63") (:ecb-mode-test #h"8282828282828282828282828282828282828282828282828282828282828282" #h"82828282828282828282828282828282" #h"4816FC73256660AA7562BE0E5071BC82") (:ecb-mode-test #h"8383838383838383838383838383838383838383838383838383838383838383" #h"83838383838383838383838383838383" #h"43AF4160467E80059290A6AC7BAA4A46") (:ecb-mode-test #h"8484848484848484848484848484848484848484848484848484848484848484" #h"84848484848484848484848484848484" #h"1FB4670FB79559C60844223EBAFDFE36") (:ecb-mode-test #h"8585858585858585858585858585858585858585858585858585858585858585" #h"85858585858585858585858585858585" #h"A60E6C0DAE838AFB8D7C2D8EAA0BF64C") (:ecb-mode-test #h"8686868686868686868686868686868686868686868686868686868686868686" #h"86868686868686868686868686868686" #h"C5D9B82890DEDEE4E5E1919EED08DAE3") (:ecb-mode-test #h"8787878787878787878787878787878787878787878787878787878787878787" #h"87878787878787878787878787878787" #h"250703745A955FDDA99A757F83AC3042") (:ecb-mode-test #h"8888888888888888888888888888888888888888888888888888888888888888" #h"88888888888888888888888888888888" #h"D2256893CBE5A1C0C9C913DF01100FE4") (:ecb-mode-test #h"8989898989898989898989898989898989898989898989898989898989898989" #h"89898989898989898989898989898989" #h"CE78B65D592C20E260BFBAE226A39D2F") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"3CE271926127EAA4C1292B58622212E8") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"BC73F0065D686EB1ECF28408EB7A07E4") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"562E1BBCA0AE3BD89A021A62BE8AAC97") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"D59A11F1FE4D358BA2795D4CB228BE97") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"9F229940801606D80BA97D41BB874812") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"5B047EA4379D790C47F1C1ED1718B585") (:ecb-mode-test #h"9090909090909090909090909090909090909090909090909090909090909090" #h"90909090909090909090909090909090" #h"A759AB33A4372D87B4B4609846187E0D") (:ecb-mode-test #h"9191919191919191919191919191919191919191919191919191919191919191" #h"91919191919191919191919191919191" #h"76BDF6D200918080969A45948E74179C") (:ecb-mode-test #h"9292929292929292929292929292929292929292929292929292929292929292" #h"92929292929292929292929292929292" #h"415B8FC9F03C29E4A60EB761C8E74A05") (:ecb-mode-test #h"9393939393939393939393939393939393939393939393939393939393939393" #h"93939393939393939393939393939393" #h"742887F818D35C945DF724422EF5EBB0") (:ecb-mode-test #h"9494949494949494949494949494949494949494949494949494949494949494" #h"94949494949494949494949494949494" #h"E467ADD5DD64E5A0885D244A5DA2F631") (:ecb-mode-test #h"9595959595959595959595959595959595959595959595959595959595959595" #h"95959595959595959595959595959595" #h"B6F68148ED9A6D72F13E4D41F518DDBD") (:ecb-mode-test #h"9696969696969696969696969696969696969696969696969696969696969696" #h"96969696969696969696969696969696" #h"02FDDCC5052D78160A897058D1A7AF34") (:ecb-mode-test #h"9797979797979797979797979797979797979797979797979797979797979797" #h"97979797979797979797979797979797" #h"5DD31E247695CC3DBD78A647AAAE5E88") (:ecb-mode-test #h"9898989898989898989898989898989898989898989898989898989898989898" #h"98989898989898989898989898989898" #h"BEA9FC7C4CC6D377E9516220D4499093") (:ecb-mode-test #h"9999999999999999999999999999999999999999999999999999999999999999" #h"99999999999999999999999999999999" #h"479A3AAEC96F126159550697FA06EA5F") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"27EC7D1AFEF6D3ED5640FB682D2655DE") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"4410B85B93E6323885038EA347987522") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"ADDDDB68ACE7B693E415A47CAD9E9243") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"D022059811637D5E7D79D00DD038C971") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"1C894F59DEEA393CC8F0B10D0776C4D4") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"4C590C53DB8A1BDD0E5B632D7526E447") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"AB82622223DEE61E171E16F02513B299") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"25145659D41C2B094FFBC95AA480BCCA") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A4412CF097A9ACF4864F079AE20A4113") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"FB6B54DDF10D1EACA89359AC97AF2D33") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"7F312533F38FA2C4BF0D7C839123E8B9") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"DB249DBE78B7AF0EA5B680BE36779893") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"5E6B1C020CF0101A65E0C792FF6F9D56") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"FA7CAC608B8DC8D5724C5AFFA4955E8B") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"CA1E477E26F4B139F5CE82BDFB33889D") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"2F079CE5524DBB13D63E967EB93292AC") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"EFBBD75DD535F8266C1B669204ED3652") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB" #h"ABABABABABABABABABABABABABABABAB" #h"A8F953FDAF7E245D4CDDEE67FEBA703E") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAC" #h"ACACACACACACACACACACACACACACACAC" #h"067E5F98CBB6D3300FC77BD563D03E36") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADAD" #h"ADADADADADADADADADADADADADADADAD" #h"9D7C6FF24EB123C880631B1BBD05903D") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"7D031A7C7F285FE9EBFC376D81F5ACFA") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"5B7EAB3872097577801D89B4B32C02E7") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"3E7C551467F9D5A37FD908CD53BBCACB") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"7648DC27654E287CC1DC2238A51BCFCE") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"3BB54679AB2B2CEA276F39A02BE753BC") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"BBCC73D1E90D383D986B8423B3CFE4A5") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"18CB14A2ADF005096CA5BF66EC99D26E") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"71F64CA25E1F8A1FFED4DE47B5DB5AB6") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"37DEC731BA8BE85DEA95E4C00D1B5149") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"959AFEE28E44407156F897B03AF341AC") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"92A0D0EBF5B8EB39A9C2BACB756088D5") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"83E154BACD52495DEB7F3E27D7F94185") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABA" #h"BABABABABABABABABABABABABABABABA" #h"944BC70E999A6E83D6D3BB3D1E4B3D0F") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"62E3BC89CCAA4AABB84E711514B72869") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"25994A3B6E0725D3E22E0590CA70CA71") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"DD235399C2EC127EBEA1430F90570D2A") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"60B58AB96CB2B80768FDC9FFDCAA2CC5") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"5841CF7EAB45A56F67BF95B22AD5BD6E") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"8F1731B452815BE73424CCA396FCC0C5") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"1E1EAE83B0F3DF2A437CEB165BDA5191") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"CC112FC4D16FFDBBA9A89774D97E24E8") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"B4FA203D1D739EA2D5449AB82F2BC5C7") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"1ABDD362C683018E3E3D5048F2042925") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"FCEE4FB9FE9BF8BDEC454AAAC43FA059") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"A80A46F397AF6F6C6DF47350E4D55D27") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"044BB1F4251DCEE03745E15E5A887720") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"71D1224C8DF1FC3D13459CE2F6F7E6C2") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"055E63A9EB7F25441F67AB97D5D13789") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACA" #h"CACACACACACACACACACACACACACACACA" #h"1ADB9933FDBA27CF859C82F7C07DBA41") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"FCF29D7D2A87FFEF7E3B806292D419B9") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"6CD27F41B3D3DC39E681696A7C190A92") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"D6669233D43127176FCC93FFCA953600") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECE" #h"CECECECECECECECECECECECECECECECE" #h"CCE3FAEBA35643C5A749E589A532BAB2") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"9C9436B8B7EA53323B1FD0BE13FAB980") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"16ED7994B93F42AA47F7B8418E038AF1") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"948590A5F7280D77F7E90A23C237ACE9") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"7E667E550C0D1E34A2992B6F297127B7") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"B04EFA621DEB9DC468CAB452D71870A5") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"EEFDC6C8BF26D7FE343EA46270A66581") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"74F9907E9C10DE9637DD670AF0BD3538") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"4B21E006C3E8427DCD2DB42A0A654D41") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"AA7BB1307530885ADF97BB17A94D77DB") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"28E04622125B6C7C3F6E7CBB936828BE") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"4D674671F642E2526F079CF7244A12BC") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADADA" #h"DADADADADADADADADADADADADADADADA" #h"2A2D10E96ABE5A49191C8F09DCBAD8DF") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"885BC34961A6BE3DE3B01C072B4B83B1") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"AA63E58592B4E9383F77E28C85A19861") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"76FA05760B9636326A462BAFAE319264") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"997EF7F6DCD1B6E9FE6AB3BF017C3DD7") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"A16BA6FFB4F2A315C773394930C7CA55") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"41A686AA18A1DDE19CBEFFB40C20BFD6") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"FBB5480BA5DACBD651C25FEDEAD9550F") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"79C6F04212FF6F3CE1337FC94155C0C3") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"C9B3385A6117688088A74FE69D85A75E") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"40DE94A956298229745B1D6D2288ACCF") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"00E8F328C3EA3FD56879A7AB76676F58") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"FA9473FDC7FE510CF4F1E90619F8A069") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"B60CF82FE8A1BD7085AB14A129004D2B") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"218FA02A1A845D760AF7303A04D152B2") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"2ECBF0AEDACD98E84A9E049CD76B893C") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"BBAA2D7E3E3B95E3135CF0D037372A7A") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EB37307C4283D3B44703BDB09B8A91DE") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECECEC" #h"ECECECECECECECECECECECECECECECEC" #h"DF67EEB3D6A1BDF54F414A0DBC79BC59") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"F59A986D73D98351420F755BBF3C5F94") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"A9B38C2A80B204248F2F3458BA246D2A") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"A2270F4FC2FF6BD4759E7760B9F138E1") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"AD758DFCF9482FCE35A83CFE114D3C7B") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"A792EA51C9410550FE40CF8169183326") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"636284D1BD6169E93A34AEC638A10DE2") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"AFA32B1472F24054CAACB70E0B7D58AB") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"6FBF54EBA62CC155CEC5544B9652EBF1") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F91CAC6E14B53586A1A16DC13AEABD09") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"1D5D55D3A316B49767DEF93FD270A06E") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"191615B13852CCAE755DB689815E01AA") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"47B514031DFBD57082DB1AB6AD10830F") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"9E9F120791DDD28622F4C029C9D5440B") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"27165EAA5E3FFA0F9F1481747D92FBAB") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"3F0DC37A7123D78410C19A756A18E51F") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"55615B53EEA249F18C4246533D3C4E0E") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"35725FFF671680BE7DBD46D1326298A5") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"DAE333F1F9616CCDA06889F871F30339") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"5983A4D8DD1904C2ED9A2A416265552F") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F" #h"00112233445566778899AABBCCDDEEFF" #h"E5C82D388ED59B96EE87E3F48A6E879E") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF482BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84EA024714AD5C4D84" #h"A565F4A3F2AED0708F3885BA9C216946")ironclad_0.33.0/testing/test-vectors/tea.testvec0000644000175000017500000012432311305364032016723 0ustar00;;; tests for TEA (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"9327c49731b08bbe") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"77316e05c9ed06fb") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"d6b88f1b6b1e5f3f") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"039ff567e117b685") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"56b44dc7d3cbe7cf") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"7230929cc60bd350") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"08e7c8795485edf0") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"7cc227951deb2351") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"691d4a5c210cd865") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"7421dbb014a8da4e") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"3446cd86de5ee499") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"fa79b09fb5a395f6") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"e86f97ed5579c450") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"7b27e59efe093a9d") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"5e34d77e40c1c08e") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"7f904680db138017") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"67a6286f3e956426") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"731134baddf1af56") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"2aece694cc553274") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"971cbb6f10a84aab") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"81f67368204d961d") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"aed4c11f29c3ee68") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"898512b5c44cb47e") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"2f86859793b707f3") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"a5df8e7a43abfe53") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"41214c96a1aa5770") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"c0c1b413c1e62808") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"d49c70278bed6dbf") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"65a876c07202faf4") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"5a02e3ff6fb66706") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"137ce12f07eaf814") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"64baca9d167905e3") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"9327c49731b08bbe") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"e30512c28eeea4a4") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"83100f131387357f") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"feae28fbf28412fb") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"8ede81aaf8f6cf68") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"520f3196ca4a4054") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"12b0a74271e3eb4a") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"23f70ecf046d2cfb") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"1000370381d9445f") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"b949b51e2a0d0a4d") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"2c9823206679d350") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"d118f873147e281f") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"6fcdb64de39bcec0") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"887f289e858955a8") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"7b7fccb8e9005c8a") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"577118e0241ca2ff") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"7439cfb1b55cf400") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"d6b11f91decca7de") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"58f3c12fe6df1ae5") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"925a64f5d790da27") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"9c442947b9eba40a") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"4399f437f62208a9") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"0b6b0544d06bac31") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"8e3b191e5bd9db45") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"f2afe2e3442d82d5") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"935bfeb4fb8741de") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"d23ae44d8df72de6") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"e4bdaf27f28afc70") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"9deb2a7cb651f53d") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"bc46ac01e593404c") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"9e1fb17206eacb2d") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"6cfc01b6dd3a443f") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"ad882fa98ac0b700") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"76fbec33247fae1e") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"68b029484578df4f") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"7a5270e3d27645d6") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"8217710f75d1ec9e") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"0c7e62b6682096cc") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"6921c16bed66d6e7") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"6b1c0e516c417fc3") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"27fd02f4fdcc0700") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"34307256916d51bc") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"332157afac442492") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"a1b452f99342d76f") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"27039c8a04126de6") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"698088435c3eaca2") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"8051ebb7f0f4c8c1") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"a1df700526ae75ee") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"b63f23e428c5d599") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"f88577597e99f773") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"3c00bdf07d46e359") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"3a4023a7492ab211") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"302c29866d314f3b") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"0241ad5e5b1fa3fb") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"a194533bd3b90971") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"6bb7f27d7e7d5008") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"0becfc29a97bcc6f") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"5697db8eea1801e5") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"4b28c230c87f85dd") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"d75651dcbdf6dd4c") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"124dffe509974c10") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"02ba21adb33365ea") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"1882bca9e45dd111") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"b8c098cd5b0e38f8") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"ad882fa98ac0b700") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"a7ab58c50a0d12da") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"2517a5ad9fa057b3") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"15b5a378fd36d424") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"976288897a9fd129") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"b96cc163d3bdaad8") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"846f1f70c284c838") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"1df2bfd8c87fe527") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"796b760e590acb7f") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"36f1bf1828068cec") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"02d54a62eac951ca") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"5a4d8851bdfad6e2") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"47a5087aa93f5ba5") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"3c089a00c8c4e688") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"eed06ff0b59791df") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"3c3031517c5053ee") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"fd7711e03883f332") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"f94d1c40e7be0d92") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"1595d41e9bf8431b") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"cd2dfa96b5676f02") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"8d78167f434aed2e") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"1de2bb0fa0dbea11") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"12bc2dee7a371205") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"72edcc6dfbd71d47") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"b54dd68f68370762") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"9964e3052949b1eb") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"98a3dc15d4c1aded") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"98cf76a774d542a1") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"c060a5c7d4240cf3") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"e8cf5bd0f6bf1b72") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"def21aefb9e791bc") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"0c6d2a1d930c3fab") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"8781ce72034d3869") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"09ddd7913c869215") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"9b661e3461de805e") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"1b7edfe2a1e1cc22") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"97257c1452e0760c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"a829abff1aad9392") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"2beca07c86f23510") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"a763208c598d9b83") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"9c20a1b65a076a6f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"1a9da0c81206cf11") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"f6ac9170a48c9fe7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"145be0d1a55fc54f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"b4df727a2f5a531a") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"778d51e4d787db55") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"35a4a07dd40e9ff9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"7f845ba4b746d187") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"19742487bba154ef") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"87128954980e3368") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"a89043e85f428494") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"88ef6a7c3492d779") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"520f29c26ba32867") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"f1158ae1bb398eb4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"91cd327ac0395a14") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"6f543d43d53d8e0b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"06856a44c8654250") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"f3d25d3fd25a81cd") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"98f0bf018000eebf") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"d41d2a52455014b2") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"203a5315a9c95c76") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"cb8fb4c59727cc17") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"24d04d6b7e80772f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"9fbae93b81bbf328") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"ea14ebb91520e9a3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"d3cee88f818622c4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"fa31da3d2c6a7b2c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"7f01a1c8c0ff896b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"286f5b2256a8155c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"3a85599ecea2bb97") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"45fbe47c4d7fcbb0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"4001dfdea732e43a") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"1d482095ee5827c4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"584f74f72b9eaf29") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"410ba3d2c769eae1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"8166d090d938d8e3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"894ffa534efb5cba") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"00605d13f6d3f9e7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"fa70972f69be35ef") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"8e0a303c90a7efed") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"17a55cbfd6b29db8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"10bbabbdbadf26f4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"32838a75b094b49a") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"1dc14862509415f6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"34764113aeb469f5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"312fcb7ba57e33cb") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"449ceb904d4d6bea") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"7cf0e015bdc8e777") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"f9ce9df9ee21f6fe") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"e0f51f945e0b2ba8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"147baa1f042c259d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"07e0ed90197b0420") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"2ffce6557d7dc86c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"7c5c5df258aa0907") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"e634482517da1b17") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"414091a7a27f9c32") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"41ea3a0a94baa940") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"2f120d74c11346e8") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"4442f8d4aa85a82a") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"9cfa50ce173efdb7") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"8d069ca00ad1e84d") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"bfe33e626a810f67") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"75a64a0807d4b737") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"f66b8b44e58f83cd") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"649f94b7edc7522a") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"2423c8f1a00306c9") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"e710d88b3815bcc7") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"a58a4f88c9a60f6a") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"f4f2fa0628f698ae") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"8c4006ed1009ae7a") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"be2210f91b44cea4") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"b59a724383e64603") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"41bf4ad01b90f160") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"c0c027758888d009") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"ca5836af61a16b5e") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"5dc2a0bf5a9368a2") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"5873fbf503f14028") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"80cd4baede16ab79") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"47c7ae0be4805446") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"39caddc8e8980743") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"0e0594de27842831") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"e73b591651a532e8") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"238e897cab8b2f32") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"98ebd0a86c9d44f9") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"6842817862d3a80f") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"5cc17ee36f96059c") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"c6897542ee6ca837") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"f9029a328e706536") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"ef53138050dba703") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"fc6c459ce3e86e44") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"7a1f37b8196035f5") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"edbad59d0d34f459") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"94396505412e362b") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"289da1d0239c8fc5") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"1026af8e5bdb3db7") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"74a2a6e1a325bcdc") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"b7a792601ed5b90b") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"322143fe8e99f0e4") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"c30d63f15ba8b687") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"edac480d578cade7") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"715eb080d0c1f5ed") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"d8446265709152e1") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"b2c2e490afa7b274") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"a23580f9c49d1c14") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"1654187171f4335c") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"76e0e9a69ca67718") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"cf421cce8fc3836a") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"cf88a2cfed916afd") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"3e49c79ccdeb26a6") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"be263d90298fb174") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"a055d94d6363d66e") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"726cc505913d91e3") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"858ed3550525f887") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"648d4430fa5be9b4") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"3a9d773824006b08") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"3f7b22532a290ac3") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"4bb0f07cc533e275") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"09f9fc03cd356d39") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"0569c83b917e0037") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"e9092584dc95f75b") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"72401d37f9f3f4c1") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"e0de523dcdebe99a") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"2c0aab9fe3ed14b2") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"fbbfaef47778b728") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"0de59580c3bd4584") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"9dbc70561cbed832") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"7579489bb71d2635") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"b489539ada8a9b56") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"1d30e56b88b55a4f") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"0467e0e5f4c8ee0a") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"380f5fe14d3e7674") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"ed1caf2835111c22") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"b8049e13663c9183") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"c72c2936e47b976b") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"f0a60b1ff2f2ded2") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"bb5bfa9862a06e66") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"5848a5318a489af6") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"a1a6a805fc62dd71") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"074ca556d95c3114") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"a94ca82b49e7903d") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"a6f1060f8e0fb9c2") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"6ad911dd9f036677") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"4ace4acab512b016") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"54879dfdf08a0bf2") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"6184606dbfb3da7a") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"09d57e7f80230931") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"779f50a69c4845f0") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"bfe9f7e76c75fa21") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"61d282d08081c9b6") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"45b3eb0ddf62848e") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"83128170dcabee04") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"5d93d40184a418f4") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"e727f33c912a8cf4") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"b367bc7842016ee4") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"81facae0da45bc1a") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"bf01cc71a42bc537") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"bc899e0edaa0d664") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"9c23cc07320035d6") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"e7eab7005941477f") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"4d28983d6a8b17cb") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"607037bc7d32fd05") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"d94c73a4ea44261a") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"bc33d4dc7e4296a7") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"f71f131429609c6a") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"6053c13bde3631b2") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"44c6b2b1f1bd9962") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"bf2dc1e086b80496") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"17f6bf773408a4a2") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"2199ed6aa129d361") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"102fd4f8f468d4b5") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"c6e481e258d97703") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"7bae8bff812f80c0") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"1e939547eda92715") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"867b3165076222b1") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"71629a979151ffe4") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"d09fab9b63dbcc42") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"21209670b1256ba9") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"65ed3a28cd39db74") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"3b479e1dde59ba82") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"3c2eae873ac45eb5") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"e4f5d786d39166ed") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"5a7a8bcd492108cc") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"d5af1001c716308e") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"da1d3a2d42e6d0a9") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"2068f7cd562454bc") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"80bb348eab42f5be") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"962eb247b1758df0") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"7fb523d20191bda3") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"893869a65eea372f") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"037f81d6c9b80c46") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"9db6e9bba0e34b50") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"0804ee28e0eb1a1d") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"1e689f604f2c9d0c") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"88409aa0a0df005a") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"a17a88800ef52202") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"6ed32542bcfe488b") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"72d33c2a6c0435ae") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"31031922560e9832") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"e52e25ef733dc5d8") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"423ac788e5a40ea7") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"d8dd7adfb7cb15d7") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"fcb3d76b6fb2c95c") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"c249d053dacdaac4") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"da791058366763b9") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"43d7f2e58d6cbeca") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"c766f6d325182284") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"d5cb7cc8c9b71920") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"d7757b1c5548ee5c") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"164e5c721b5cbdba") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"e365320f05f4ba14") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"a7a1b3f7775de991") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"5f8e5e101d2adf8a") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"f971e0af77b5b70c") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"bd0c2347001550ef") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"5adde566f29fcf1a") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"69957b9deaf24580") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"d27ed9ccb317a05b") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"d4a570532b6e2ee2") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"a5a0ded4a1cfe9fb") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"9d9a09be6b2787ab") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"9a411ffbb9907017") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"22d680772f45facd") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"2396da1e2377fdd8") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"1c507819d72c02e9") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"ee6cb03e27f2def3") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"3c54090c29919fe0") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"26a5db9f8cdbd558") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"73d240c92b912619") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"5f1667ed8b2b7b5a") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"8c39b64fa0aa5c3d") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"f965aa5bbc713939") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"39bab4b42b7a701b") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"566fbca0194694d9") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"121013323e172df5") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"f6ddb09402443b22") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"292fa5cb8204ff76") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"a447d8f13c9cf1cc") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"e7414872a236133e") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"c8861591ad5dd8b1") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"3efb35b5e12595e5") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"b0b2fdf5f452cb9f") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"7b1b1265e4adadb4") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"5b4b8912b4a1b121") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"aa0fc6d3b9b580b3") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"7496f0504c4569f6") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"f7b146753a44cda3") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"8f48e0d94b79ab3e") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"bf26624a48eb2e07") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"296f2cc76f095831") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"104600a4c1dfdcf7") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"8ac437bde9025817") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"a6dbf25d75cc371d") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"8dcf3a83803d610a") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"d1c97a2b9bb7e410") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"86e4022b4c89e31b") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"8ba235dc6406c026") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"ab6c23ef8d73e13c") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"07b771201e4892e3") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"765602d5e52aea55") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"b14283dcad7ccfe9") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"874af9266c61b550") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"a9260f13bfbe6c46") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"fd2afb96430fc051") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"036b8624c9081e15") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"bc723f0513ce905f") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"c61cec8b227c4f78") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"87603977b586b080") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"88635b498b3e2a57") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"a7ef784b9e2555ab") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"44a15541c7389400") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"933f358da4286932") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"cfa3a01d6fd369dc") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"fed82bbd64ff5f58") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"bde494d8c9f0b584") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"8c911f229fa765c9") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"e667cefd15f63afc") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"a6d992a149df4ecb") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"dea3d546236e5c0c") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"4e4787aa962ccd7f") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"750a264052f88a69") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"5d406bf14493d8b9") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"1d4d7bb4796df7d4") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"63dfc04a8daeef43") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"5416aabd3a610884") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"155f3e314f36f653") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"080b08449902f8ef") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"18590d824d5ef2be") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"8a13d81f2e9f4865") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"e0672bb124d1458b") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"9bdc91da010ee40f") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"b9c94a58e5e990e9") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"0b7c32e63c6b8013") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"8a268641c5d7a276") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"d3043f0d7bbeefed") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"56aa2db644e7ce76") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"40d3e7c42214ad16") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"6a05c72c6268012c") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"e753a9ed5046ae88") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"c72db1e599fabd5e") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"634025ffc80bfec0") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"381723194ae6e3ca") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"64d5fc8069c8ef5b") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"697bcba45e593e44") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"4a2889f5fa9b9750") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"1d613c043cbfff71") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"1de1ed75d42a9597") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"a2d35c7e826c595a") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"5b2ce2e874889d0b") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"2cb64d9f0bc28f71") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"d3c61b06b8f603ff") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"40ef405e698d4eba") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"319bbefb016abdb2") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"3b7689c3f5fbc86b") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"52f7d60b787cf3d1") ironclad_0.33.0/testing/test-vectors/xtea.testvec0000644000175000017500000012432411305364032017114 0ustar00;;; tests for XTEA (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"057e8c0550151937") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"89598070902cd40e") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"5fb5b0ad37e48ad6") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"3af684a75a5147fb") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"d2f3b71258e07935") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"bb8712d8971f2da6") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"a38a09d1c9941692") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"ac6176429fe586ce") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"1c2edbad8eb5edf2") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"f6e79333a663e1af") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"0163be481b1fa595") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"55437d3bac4cbc79") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"b37d26c43061fda1") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"9db753bffb7224b2") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"f25051857fbd5653") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"adb76b56de2af0cc") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"a96996d3376b41b0") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"26292aa3168a1c8f") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"2fc8306ecfdb1600") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"1d0e78ea21f98780") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"bbc9e2812b9d2f45") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"a2f55fd5b13e7006") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"17b8f1fa6d93c9e2") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"5dfc2196e32f44e8") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"874a60ac1bc1df62") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"6b6e03497cf13d3f") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"d0b0132855e50656") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"cf06d4a07ac9e646") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"85ff754dd36533c7") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"25c504e6598527c0") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"3060c4d622544b10") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"f6d49f47bebda63a") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"4f190ccfc8deabfc") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"1e92dce665425870") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"3e32351309a4613b") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"723ee378cc8335fe") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"d74b94a6413ddf0a") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"d9c38dcf48c27648") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"6e76fa73e5c1923c") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"2aa2591e2ef2c12c") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"20f3c626ec8deece") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"4c98e9fb0fb19996") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"4b659bc186112260") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"93095547e89c06ae") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"82a1a38474c48472") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"a3571f7ae044856e") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"4f6995f57258d1cd") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"94b95f169726e564") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"56d222c4b3c2c8d6") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"42b01d4123bff6f8") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"f4f916143731bc7a") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"12878f7e038411ed") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"669f06ec05bfb4f3") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"97a286be6e272cbb") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"580c8dc05cf68baf") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"b22b78f250141309") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"751c895707822ef4") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"29fb3245f692f76b") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"781d64ff6e5bc204") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"86bc4e99c3a08e92") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"b7ff2c530c823788") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"313813adbee6108e") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"dbed436ebc8173a0") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"e7c6923ab603ff42") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"70aeb3d7177d9093") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"122bfd56040fb665") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"b61822bfcffdeb8a") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"3aa8cad543c9c29b") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"4db46e34f8cafdaf") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"07fad5cfa9384ae8") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"e380854eaea76a96") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"c071907987323ac4") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"383d0b8bcac923e4") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"0aad1d63c2945f73") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"9f057aaac3acd5c4") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"fa51f81f49ae9d66") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"eea19d0e6e82264b") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"dedf335fcbb234b2") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"e3e532af56830947") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"44a5771dd2537110") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"3eb533413b8e0a86") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"baf9b99b32c96b06") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"9776223f6f90cbce") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"0e4dafd91f7630fa") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"c5c4889f42854948") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"077cec6752fa89ad") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"71f182c8d8a4445a") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"21e76f7295299598") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"413b0f81ac90390c") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"b750eeafa754cec2") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"f0a8d25e6cf62b7c") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"579ddace1b60b3ee") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"cfba07274b8a1f4b") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"03eb0c8af495360f") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"ef1c8c7eaebc9ca7") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"6f50086ea5fac1f8") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"5612980dedc8f6ac") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"218f4ee454732dac") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"1d79d210533d2df5") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"6b6006bce161ca40") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"01d970816e5faab0") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"7829bb13e3beb043") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"ee0a657f83602539") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"a05ee2b67549bed1") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"c4404652e384e446") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"7306d364a6e5ef6d") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"0df4c1f5faeb430f") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"51816e1946ecd779") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"b460a5d685b0b2f2") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"d285ebc617ba85a2") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"6c633518c5a87e47") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"281941f8f60d2639") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"0ba76ebe02f3bac0") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"094b157cdb20be90") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"4fb4a4e2c6128d08") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"2fbe07f7dcfaecc4") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"8685885467b52e5c") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"3bd49dbfb5a5c64d") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"ddf3d83832dcb3a2") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"d818e18f03235cd3") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"d9702927b9edfef5") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"9ccb14f1f3188ca4") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"ba898b48743134de") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"61982e6f0ddeee07") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"c6c77ebf05b0548f") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"1a5a806001580fbf") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"5bed0f1b5a2d1bb0") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"5bac83ce2b9dd3cc") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"37a3cbd9f11c28d5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"ba13e75ac2a5a822") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"85fc1a1d611eee20") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"5fd951cf2c0ee5b3") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"8f7be95c376b4ae8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"2e9d3cee86a265a7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"4da8ae5f1b4c72eb") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"8104f05be73b792f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"8cc479c5c796bdf5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"db9624e776fbf690") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"0010596e95997cf6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"1da11bf5eb203169") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"d84c8b01d9b02c98") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"77380f036974aa17") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"5ab58fc6a4611deb") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"1b968322ffccd844") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"6cbf0995d3378dbc") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"529348cd78d44b7c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"d05a15d62d871060") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"332426226a827c15") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"939da4f4c06fbb50") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"0887e46423672943") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"62a7765fb86d6555") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"2d1774541561e935") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"a387b6cd9d875463") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"054bd4ae7eb2ab0b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"f8581ece047b514b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"9e596c6099197d34") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"cf1118300b8a2d38") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"aac63d7962e76615") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"b063f59ef08dee04") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"a12e34ee8d374ef5") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"04a1ea610cbc468b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"82884825fa40f21a") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"850438051d12e62b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"d6091ec280935dea") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"ef9bf9a02a6b0e4e") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"ad3b49321dcdf009") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"f36f98736c04059f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"45a1900684ad9ac0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"665e0411896d342f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"1c15c6f3bbc1c372") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"b679213660bb0f95") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"4708a5278930fe0d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"c19f3fc0cbdc242b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"38cbbecf65733670") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"3d285e63feaac3b9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"3560e4c6d544a15c") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"99759a8f624e55e0") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"a576978e82837779") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"554466cdf8677820") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"c32dbb5807791754") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"eb4bf9684d3308b9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"1cb0bf5c78304c18") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"caab743c19d1b177") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"981c81403f0b1487") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"2234eefe50cba46b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"7b3797fdcfebf074") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"47bee85dee699930") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"a1eaf7cf0476ac6b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"f97364517e73138d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"75177a2a6db3458b") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"59bbf3abd6e7b32f") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"47186468d1d2343d") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"dee9d4d8f7131ed9") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"c2eca7cec9b7f992") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"6dbba048da4980d5") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"0893c0cef311d09a") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"ac57c2f620bcd81f") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"42961e9b859a8c7d") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"4d15ee81f3212de4") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"7b5c26ce9f0e205f") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"227e75d2e5ed44b7") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"3c372d5cba6ea9b2") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"2871260d5a71c9ec") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"aba81904e6fa6572") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"37189cab9c385957") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"70d084dcc7211149") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"624be0e58157f64c") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"a898f219d312c13b") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"0193ee11b7a5cc4d") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"78d8cd024ecddbaa") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"d6ec2b55c9b585dc") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"9fc227635ba55864") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"aa167a02df574cb3") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"76835dfdcc6cd542") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"74f774185ba8fa9b") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"7e195671f5a8e8b8") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"a47d783ec8cdbf28") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"c41faaca8e4d0fb9") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"285e17ef2fd2e318") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"491cf8d65b10c4d8") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"345ee5b9bcad986f") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"54442c2bfb68fcae") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"f37e1390dbd22d15") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"2b12633ecb40162f") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"b63a89e38631c79c") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"b370c52fa21c5c23") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"b4c681eb52aa604f") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"9dcea55b723bc1ec") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"af16e40356be7a26") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"5ed66faaa68fbd6c") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"6cc8babe7be66934") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"edd367fac6ba47c2") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"6f6fba42f179aac0") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"45c2235da9ce20f8") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"087988acc74010ae") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"fa6e56d6f669a6a3") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"b60ac5f2adecb720") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"efa8aa336f688d7b") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"f52d9003733e0335") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"0e28c8467f07bbff") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"ec21033f816d9ffe") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"03f67661c7b98eda") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"b7af74308f740a27") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"3a710681a9d67a71") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"4f3a4a958c96bede") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"b1194aece4145808") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"2e4558bc7f7c3b22") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"babc0f66e692c3ef") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"792b6c335e787154") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"74e2b7cea882a183") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"17c9c659e8462fd3") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"049e0c0e04d0f705") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"e1fdef5c2dd78042") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"9b9155fa2be6c82a") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"584e6d17646fa958") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"ea1954fda380d726") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"4b888e74020282c8") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"1a399dffa67635ca") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"17474646ea434ecd") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"8855bf8c56664d23") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"1c738e2ec4b2b202") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"f6c88d28ed039a67") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"8d5b0d47e3157ca8") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"7acf364c19014cae") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"308d664807ecdae5") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"06a0f3715f80f0d2") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"6823886050523984") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"7a0dde97bfec5f7c") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"d3b87d45698dde3c") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"4f5739127ec7c7b2") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"2b54d578f851f206") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"fecbd598eadebb8a") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"dcc652a8517a5742") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"0e4c2c7dfb441098") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"73fb0d371337eec0") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"bc010eae08cd36e0") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"013aa92050e0a55c") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"18c1c92b4b78e993") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"672c27c1fa9f8fdc") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"f9ba99c220cc1229") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"d4d2d16bbb5301db") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"4c45d27f79844495") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"35f54fbab8b763fd") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"11ae6a139c88f010") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"d879be552b6e615c") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"528db83d8d4c0e89") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"8f231e99d9ca5335") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"c40e41baf5577956") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"8b25118caac69103") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"01abdd1d8d23aa38") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"8f37afebc7074acf") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"350ffefc24336cf5") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"5adf37f7bdfc3c4a") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"cf49b758568c0508") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"cdbf60e70ad3fe21") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"291b711dd184185a") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"f38d8249ba600204") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"89e6926dc2c2c32a") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"0df6c1b16396277e") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"455ac46c4a828fae") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"082fb40fa04b8c4c") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"c361bd889bf729f2") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"c27e57bbb40979fe") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"18b45390097a0c2c") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"bce072cce554df17") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"0a0f408dc52b0826") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"e233e58b1ded3531") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"e323d0aebc98a570") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"350544fb23a531f6") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"1af234e26092cd52") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"25ca08738d2322b4") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"228976a72fa9da56") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"aeb7685a09847972") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"eccfc863027ac218") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"ffd67fa25c4d4008") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"20320dd3161d16ba") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"4d361240de2d78c9") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"934f21687967ae69") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"0356593b4f4594f9") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"a9815d67db9f21f8") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"5a26375c1dcb6eec") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"e3f18c5f8b445616") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"b61ea8a33192fda4") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"7479aa2d845d5af0") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"c09c3ffc31c0b4fa") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"9336d13fea3f9557") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"ad68f180abde3e8c") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"6b55314bbc35aa92") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"0227d9d9ce9036a7") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"af45b52450448eb8") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"d3f6b9c4b2a9d02d") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"762e5d3664363226") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"df4473d3c7150708") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"841b3fa419d58f3b") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"82de7fb2bd9ae44d") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"c166e556ca141bf7") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"e851ea6f934a8c88") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"ebcbdc15d84898e5") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"b857fa7cf30692ce") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"ec2ac2bb08ee9ae2") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"6fd60d673af73e1e") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"f58bc170c372d8d2") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"1a7656ba6057631d") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"2a04ba10c699ea8f") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"a265f8b2998f3ff8") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"4ad47e6a86097852") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"0e0397355865c674") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"7160de4a01f460e2") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"cea8e043bb8ee345") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"64ebdcb89cbd3c33") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"9446a63870e4bd8a") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"a92ec0b09f25f32d") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"6abb6055e3378e1b") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"812a93d73dc1170e") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"d0e7686164fbf21e") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"9e0dbb606f0a75da") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"c372d4fd81f3fc61") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"de89ceeba4bfcaeb") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"e124a6347d5ef4e2") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"3173b314f53f448f") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"e033b6a3529d0ce5") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"d1b52825fc10c40c") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"8d340c8420c99ea1") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"6e1342722eb8e580") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"ca9e906353d4b541") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"c84f0fe2b8a77afd") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"2d3ec4e388043aa1") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"92ad8597f5eb6d74") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"c59fe8645a348de9") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"9e904fa6b3bc3638") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"dcc60608158986fc") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"65df92a21aebba1b") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"bdb9a96e198fe6cc") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"c0e5a070cdbab6db") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"04da8072235f085e") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"808fc81db3066ca0") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"ede0990518897ec6") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"887e42d1fd71715f") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"3a49a43714e5d13d") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"daa90827c5d4daf6") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"a0d81f09fa942ad4") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"23b03ae46bb683a9") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"f06c0932c8cf54ec") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"94a9952860c23248") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"62004deb3d4f6202") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"91513792982d5930") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"8d2c4e9cb086bdd4") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"de68f3ea0ba5063a") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"ccbbf408e1940997") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"9e17ea9cd355733e") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"d27764f2b359c95e") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"b9c0536ae8b2aaac") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"afaad1e807d79eb4") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"b2b7db49c17a1674") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"314a2dddc25b3b97") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"39df171efe0bb9a5") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"d0b4956e2f5ccbec") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"7b6bf7cf44b1f0e3") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"e63c9fd15f5e8f96") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"69d9d95c59285392") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"e7430e21c59dfd47") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"936101d17899d963") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"dc1800f0e68d343d") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"c53ac9225bf06006") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"1af13c41692c088c") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"d3218a9862a41b3d") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"a46dff56e82676cb") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"629206d57db55d32") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"03bcfa756081000f") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"c038c1b07e235041") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"83451e38d35aaa42") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"e1434cd917bfe9ca") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"1cf236e6b08c1cd4") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"8b34caeb714e806b") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"e93d812ef82ac4a8") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"6d8d00ca3a44363a") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"7cb2c51f3c2bc0a9") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"23a8bfcac71fcacd") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"085f381dbecb6808") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"05c406253b8bd681") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"ee82b9da81f1092d") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"a9a8658312ec9e21") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"304c11bd68ad0141") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"90af0b1bfda4beac") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"e465d180be121564") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"d83ef1e2b0c6bee8") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"b88537d3ef1037d9") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"63619a230e1ae6f3") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"6b47005828db0e54") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"5f95f4e139358438") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"d32ba8e607bd6d4c") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"14e35cf5013b1085") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"6b24b48ce7bc9fb9") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"995c53eba2ffe670") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"0009f46ef04206dc") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"294403ab0a0f950b") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"d0b9b490a5d432a9") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"4f0a863c9af66e64") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"605c82f308d45d28") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"844467793e8cef13") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"9bfceb92f55477e9") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"bcb4e1de1f1caec1") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"839e2276d993d011") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"d155316adf5753a5") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"7ba21f967624e072") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"b397264e7ed29963") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"c8cd90f1e20846ae") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"28fc2891e623566a") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"d9a4f870ba1f45d6") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"67b41e0aa05f593a") ironclad_0.33.0/testing/test-vectors/cast5.testvec0000644000175000017500000012501511305364032017170 0ustar00;;; tests from the RFC (:ecb-mode-test #h"0123456712" #h"0123456789ABCDEF" #h"7AC816D16E9B302E") (:ecb-mode-test #h"01234567123456782345" #h"0123456789ABCDEF" #h"EB6A711A2C02271B") (:ecb-mode-test #h"0123456712345678234567893456789A" #h"0123456789ABCDEF" #h"238B4FE5847E44B2") ;;; tests from NESSIE (http://www.cryptonessie.org/) (:ecb-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"EF854DE5D7D1895B") (:ecb-mode-test #h"40000000000000000000000000000000" #h"0000000000000000" #h"3E50834A3AFDD951") (:ecb-mode-test #h"20000000000000000000000000000000" #h"0000000000000000" #h"6C5FA655407A380E") (:ecb-mode-test #h"10000000000000000000000000000000" #h"0000000000000000" #h"B0DFC4E5C9F257BC") (:ecb-mode-test #h"08000000000000000000000000000000" #h"0000000000000000" #h"3F822FB3B0C9C28C") (:ecb-mode-test #h"04000000000000000000000000000000" #h"0000000000000000" #h"75B2AC4AB060F043") (:ecb-mode-test #h"02000000000000000000000000000000" #h"0000000000000000" #h"935AC5D1CCE3C5CD") (:ecb-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"9E468256E0979A5F") (:ecb-mode-test #h"00800000000000000000000000000000" #h"0000000000000000" #h"59F292BD3B08D7AC") (:ecb-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"546C4968B908E896") (:ecb-mode-test #h"00200000000000000000000000000000" #h"0000000000000000" #h"D43D7E92F3AA127F") (:ecb-mode-test #h"00100000000000000000000000000000" #h"0000000000000000" #h"7AC9BE73E70B1312") (:ecb-mode-test #h"00080000000000000000000000000000" #h"0000000000000000" #h"0600189023CA09D1") (:ecb-mode-test #h"00040000000000000000000000000000" #h"0000000000000000" #h"2FB6C23C21451925") (:ecb-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"8803FB7B0DB7A9A3") (:ecb-mode-test #h"00010000000000000000000000000000" #h"0000000000000000" #h"93A4702D63844097") (:ecb-mode-test #h"00008000000000000000000000000000" #h"0000000000000000" #h"02F5E8FAECBD2EC2") (:ecb-mode-test #h"00004000000000000000000000000000" #h"0000000000000000" #h"3F92299A5CC63B4A") (:ecb-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"484DCE47A87047F3") (:ecb-mode-test #h"00001000000000000000000000000000" #h"0000000000000000" #h"2D51FE333776874E") (:ecb-mode-test #h"00000800000000000000000000000000" #h"0000000000000000" #h"01E49D47516FFEB1") (:ecb-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"F4914E49CEADD52D") (:ecb-mode-test #h"00000200000000000000000000000000" #h"0000000000000000" #h"B58E493FDA5ED282") (:ecb-mode-test #h"00000100000000000000000000000000" #h"0000000000000000" #h"4C6CED3D1759C223") (:ecb-mode-test #h"00000080000000000000000000000000" #h"0000000000000000" #h"C05CFC0A3B6360EA") (:ecb-mode-test #h"00000040000000000000000000000000" #h"0000000000000000" #h"20DB6A71F0B2DB90") (:ecb-mode-test #h"00000020000000000000000000000000" #h"0000000000000000" #h"EEAC9804EBA612D7") (:ecb-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"65B4AA119CDD25AF") (:ecb-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"F781BBAB06314E4D") (:ecb-mode-test #h"00000004000000000000000000000000" #h"0000000000000000" #h"1A2D537BC7AA0807") (:ecb-mode-test #h"00000002000000000000000000000000" #h"0000000000000000" #h"C425E1DE6236DE88") (:ecb-mode-test #h"00000001000000000000000000000000" #h"0000000000000000" #h"854911691D25C05F") (:ecb-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"016D443DD0EF4506") (:ecb-mode-test #h"00000000400000000000000000000000" #h"0000000000000000" #h"5C1381E9C8BFCDCC") (:ecb-mode-test #h"00000000200000000000000000000000" #h"0000000000000000" #h"BACFB74E0D6BE8B6") (:ecb-mode-test #h"00000000100000000000000000000000" #h"0000000000000000" #h"168158BA1958DD41") (:ecb-mode-test #h"00000000080000000000000000000000" #h"0000000000000000" #h"322D903D31B14135") (:ecb-mode-test #h"00000000040000000000000000000000" #h"0000000000000000" #h"D50F1567B1C3149F") (:ecb-mode-test #h"00000000020000000000000000000000" #h"0000000000000000" #h"CBADCB678491508C") (:ecb-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"22CF0E4D2C488AF2") (:ecb-mode-test #h"00000000008000000000000000000000" #h"0000000000000000" #h"BEE20899A559EF68") (:ecb-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"A3996936624E2B2C") (:ecb-mode-test #h"00000000002000000000000000000000" #h"0000000000000000" #h"8313130424DD980C") (:ecb-mode-test #h"00000000001000000000000000000000" #h"0000000000000000" #h"B28DF6C2F87CF763") (:ecb-mode-test #h"00000000000800000000000000000000" #h"0000000000000000" #h"0C1292506F532F78") (:ecb-mode-test #h"00000000000400000000000000000000" #h"0000000000000000" #h"B13AA665278546D5") (:ecb-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"30E40EA440176A8C") (:ecb-mode-test #h"00000000000100000000000000000000" #h"0000000000000000" #h"38434853FD54CB3B") (:ecb-mode-test #h"00000000000080000000000000000000" #h"0000000000000000" #h"A082786343D6E937") (:ecb-mode-test #h"00000000000040000000000000000000" #h"0000000000000000" #h"1F4C394EEE7BE70A") (:ecb-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"45A8ACC0C530A216") (:ecb-mode-test #h"00000000000010000000000000000000" #h"0000000000000000" #h"90341ACAF300CCCE") (:ecb-mode-test #h"00000000000008000000000000000000" #h"0000000000000000" #h"B791785F3A2038A0") (:ecb-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"5FB305CEA7D5E26C") (:ecb-mode-test #h"00000000000002000000000000000000" #h"0000000000000000" #h"1434F39FC8C46F29") (:ecb-mode-test #h"00000000000001000000000000000000" #h"0000000000000000" #h"F250342A891EBB2D") (:ecb-mode-test #h"00000000000000800000000000000000" #h"0000000000000000" #h"1F87C1DFF663D707") (:ecb-mode-test #h"00000000000000400000000000000000" #h"0000000000000000" #h"81B161F882EC1F22") (:ecb-mode-test #h"00000000000000200000000000000000" #h"0000000000000000" #h"8FD52EB0E9DD180A") (:ecb-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"4B3A39BE8061272D") (:ecb-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"3185204FD5BB8A4B") (:ecb-mode-test #h"00000000000000040000000000000000" #h"0000000000000000" #h"02E38E3579A134E4") (:ecb-mode-test #h"00000000000000020000000000000000" #h"0000000000000000" #h"F7BA0DA19ADBE4E6") (:ecb-mode-test #h"00000000000000010000000000000000" #h"0000000000000000" #h"2E8C4128D7022215") (:ecb-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"4E4796EF83C620FD") (:ecb-mode-test #h"00000000000000004000000000000000" #h"0000000000000000" #h"3482EA478149C884") (:ecb-mode-test #h"00000000000000002000000000000000" #h"0000000000000000" #h"46344736AF6FD584") (:ecb-mode-test #h"00000000000000001000000000000000" #h"0000000000000000" #h"B4D0EE3537A03475") (:ecb-mode-test #h"00000000000000000800000000000000" #h"0000000000000000" #h"8783A151DD7DAAB7") (:ecb-mode-test #h"00000000000000000400000000000000" #h"0000000000000000" #h"330156A864ABB7B0") (:ecb-mode-test #h"00000000000000000200000000000000" #h"0000000000000000" #h"FF82D24877E58781") (:ecb-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"23E4303830F8D85A") (:ecb-mode-test #h"00000000000000000080000000000000" #h"0000000000000000" #h"D81D32FF8E00A7B5") (:ecb-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"F8230811ADDFCDB0") (:ecb-mode-test #h"00000000000000000020000000000000" #h"0000000000000000" #h"655F264261BD89A4") (:ecb-mode-test #h"00000000000000000010000000000000" #h"0000000000000000" #h"81A2E3A49901B551") (:ecb-mode-test #h"00000000000000000008000000000000" #h"0000000000000000" #h"71DA16E5350E73A2") (:ecb-mode-test #h"00000000000000000004000000000000" #h"0000000000000000" #h"C25B521F4DC83BD7") (:ecb-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"60A0CD7A8C3DFE95") (:ecb-mode-test #h"00000000000000000001000000000000" #h"0000000000000000" #h"2CCAFA6B45FF4BA8") (:ecb-mode-test #h"00000000000000000000800000000000" #h"0000000000000000" #h"0413C755869B3D20") (:ecb-mode-test #h"00000000000000000000400000000000" #h"0000000000000000" #h"DBB16605E738A58A") (:ecb-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"E737E2DD10133F43") (:ecb-mode-test #h"00000000000000000000100000000000" #h"0000000000000000" #h"EAA0828A257F4663") (:ecb-mode-test #h"00000000000000000000080000000000" #h"0000000000000000" #h"6D72DAD84CA179D4") (:ecb-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"50B88BEDC5321569") (:ecb-mode-test #h"00000000000000000000020000000000" #h"0000000000000000" #h"83A8BFAAC0BB29AE") (:ecb-mode-test #h"00000000000000000000010000000000" #h"0000000000000000" #h"ED8E574A5A904809") (:ecb-mode-test #h"00000000000000000000008000000000" #h"0000000000000000" #h"1DB59E9707C97834") (:ecb-mode-test #h"00000000000000000000004000000000" #h"0000000000000000" #h"66F0E8C29BB0B9CF") (:ecb-mode-test #h"00000000000000000000002000000000" #h"0000000000000000" #h"B2ED3A1531C0D7F6") (:ecb-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"75D742554B503DCF") (:ecb-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"F4BF6E0D513C65D0") (:ecb-mode-test #h"00000000000000000000000400000000" #h"0000000000000000" #h"C49D1E4FF3C60AA7") (:ecb-mode-test #h"00000000000000000000000200000000" #h"0000000000000000" #h"36911221165FDDC2") (:ecb-mode-test #h"00000000000000000000000100000000" #h"0000000000000000" #h"9BF9D1598D21ACD2") (:ecb-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"330794307604F886") (:ecb-mode-test #h"00000000000000000000000040000000" #h"0000000000000000" #h"2DEA71658135D05F") (:ecb-mode-test #h"00000000000000000000000020000000" #h"0000000000000000" #h"F74167923282F52F") (:ecb-mode-test #h"00000000000000000000000010000000" #h"0000000000000000" #h"4A85B2D6D0D923BA") (:ecb-mode-test #h"00000000000000000000000008000000" #h"0000000000000000" #h"C2BA0E432C762ECC") (:ecb-mode-test #h"00000000000000000000000004000000" #h"0000000000000000" #h"C726E9A6D81EEE4D") (:ecb-mode-test #h"00000000000000000000000002000000" #h"0000000000000000" #h"60F7A8BE9DB706AA") (:ecb-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"D10E905544BF1044") (:ecb-mode-test #h"00000000000000000000000000800000" #h"0000000000000000" #h"8912579BE071FD03") (:ecb-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"4EF32D2359D73851") (:ecb-mode-test #h"00000000000000000000000000200000" #h"0000000000000000" #h"6A1E1D7707DCE956") (:ecb-mode-test #h"00000000000000000000000000100000" #h"0000000000000000" #h"898D5490B051FF78") (:ecb-mode-test #h"00000000000000000000000000080000" #h"0000000000000000" #h"19F6F03AAC2C2ED6") (:ecb-mode-test #h"00000000000000000000000000040000" #h"0000000000000000" #h"521EC33A6926B94D") (:ecb-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"D88C0E48553890FB") (:ecb-mode-test #h"00000000000000000000000000010000" #h"0000000000000000" #h"B3D2CC395834671F") (:ecb-mode-test #h"00000000000000000000000000008000" #h"0000000000000000" #h"E5B5723FB3F95A1E") (:ecb-mode-test #h"00000000000000000000000000004000" #h"0000000000000000" #h"050010F1770C302D") (:ecb-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"0F331B1B9151361A") (:ecb-mode-test #h"00000000000000000000000000001000" #h"0000000000000000" #h"472EAC6D605B0506") (:ecb-mode-test #h"00000000000000000000000000000800" #h"0000000000000000" #h"8C07518F6A78FFF7") (:ecb-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"3C6B6CD8950396FB") (:ecb-mode-test #h"00000000000000000000000000000200" #h"0000000000000000" #h"E45F8A602705E91D") (:ecb-mode-test #h"00000000000000000000000000000100" #h"0000000000000000" #h"411A32E76FCCC69D") (:ecb-mode-test #h"00000000000000000000000000000080" #h"0000000000000000" #h"79B212E51932147E") (:ecb-mode-test #h"00000000000000000000000000000040" #h"0000000000000000" #h"B5C3B4D357FCCC09") (:ecb-mode-test #h"00000000000000000000000000000020" #h"0000000000000000" #h"A376C6C50C472008") (:ecb-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"AAD5D1C6A101F3EF") (:ecb-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"D9FC8FCAD48C8207") (:ecb-mode-test #h"00000000000000000000000000000004" #h"0000000000000000" #h"4D9214E4B16C875C") (:ecb-mode-test #h"00000000000000000000000000000002" #h"0000000000000000" #h"AF87AB7B3BA5D255") (:ecb-mode-test #h"00000000000000000000000000000001" #h"0000000000000000" #h"C1E8328DABE3EE01") (:ecb-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000D844AFCE35696") (:ecb-mode-test #h"00000000000000000000000000000000" #h"4000000000000000" #h"501C44F14E59ABB8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"2000000000000000" #h"C5F833B098A7B4BF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"1000000000000000" #h"12A3910F21AA9689") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0800000000000000" #h"A984BF3C4B606B8A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0400000000000000" #h"01244E4D4573BEC9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0200000000000000" #h"33BBD030509A1AAE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"62C7D78705B69201") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0080000000000000" #h"C2CD4CEB8233AA2C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"3C518F056EEA080D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0020000000000000" #h"B053D84D6D776A45") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0010000000000000" #h"F5976B5A23EBD435") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0008000000000000" #h"26EF4E726B4300C6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0004000000000000" #h"00DE9EE7EF40F784") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"72C2E4721771ADB1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0001000000000000" #h"6B4E05D55C726980") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000800000000000" #h"738F32218912DA4B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000400000000000" #h"20FC7693F51BCFEE") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"7B3D23EDE2E7F0CC") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000100000000000" #h"4BC5B57623107A6A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000080000000000" #h"36DB7DB56B9DEDED") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"067DDC1B5D970425") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000020000000000" #h"9F024030D92CA56D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000010000000000" #h"70F0BBB5B7668646") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000008000000000" #h"006EA1887A12D170") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000004000000000" #h"C0611754E09AA011") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000002000000000" #h"79BF5E2CAA6A3DAF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"46ED1F52B5B9559D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"D190E5631B73C5A6") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000400000000" #h"0961B2ECFFD93933") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000200000000" #h"94264A0ED5203638") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000100000000" #h"C67A47D369B57B85") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"342D7633EF48BCEB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000040000000" #h"7EFC3B1845D986EB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000020000000" #h"B56EA85BFFBC0FA4") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000010000000" #h"CABE3D27862D5EFB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000008000000" #h"BA4DF14185FF32AF") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000004000000" #h"8F0289AA45946E16") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000002000000" #h"2192A1C13CAB0749") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"5B577B8E9128FD84") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000800000" #h"4C4EA46E8C096255") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"0CB194032F16B8DA") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000200000" #h"4507939A7EC4040A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000100000" #h"3276C89846D533C7") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000080000" #h"AB68E284B76F7256") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000040000" #h"E3004D46218B9428") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"61BFF8D033E47310") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000010000" #h"E08CC3CAEFCAC0F8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000008000" #h"B986D33C7B8AF266") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000004000" #h"44296DF985D5B6B1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"6E9D5710AB4C7C78") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000001000" #h"C9793934CFB0614C") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000800" #h"CDA94B6BFA73C69B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"CAAD0D61CE248CA9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000200" #h"0FABE55E3A8B487A") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000100" #h"CC692E69AE887249") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000080" #h"06646851AE39901D") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000040" #h"3C9596DB1883D2DB") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000020" #h"095CCA9A1A84E38B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"BCE9B8F3CC34E9F9") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"1B451B8B885A7DA8") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000004" #h"0332D472F9FF9EE1") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000002" #h"5102D2D608639663") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000001" #h"D4B9607C9B9EEF9B") (:ecb-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"13C502B354D53871") (:ecb-mode-test #h"01010101010101010101010101010101" #h"0101010101010101" #h"03EA441C3CE90553") (:ecb-mode-test #h"02020202020202020202020202020202" #h"0202020202020202" #h"0FCE7D728F6138AE") (:ecb-mode-test #h"03030303030303030303030303030303" #h"0303030303030303" #h"C947BAABF7FFF0A1") (:ecb-mode-test #h"04040404040404040404040404040404" #h"0404040404040404" #h"044AB7D6A2E875E4") (:ecb-mode-test #h"05050505050505050505050505050505" #h"0505050505050505" #h"F3076E0480FD1B9F") (:ecb-mode-test #h"06060606060606060606060606060606" #h"0606060606060606" #h"23F99D1EFDA9204B") (:ecb-mode-test #h"07070707070707070707070707070707" #h"0707070707070707" #h"D5F0ACAB764761E1") (:ecb-mode-test #h"08080808080808080808080808080808" #h"0808080808080808" #h"C3F818B9E6BFAF33") (:ecb-mode-test #h"09090909090909090909090909090909" #h"0909090909090909" #h"D5EA1A88D4F48803") (:ecb-mode-test #h"0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A" #h"0A0A0A0A0A0A0A0A" #h"E77CFAA6EDE580A1") (:ecb-mode-test #h"0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B" #h"0B0B0B0B0B0B0B0B" #h"15EFD651E1469057") (:ecb-mode-test #h"0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C" #h"0C0C0C0C0C0C0C0C" #h"CDA162911E3C2405") (:ecb-mode-test #h"0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D" #h"0D0D0D0D0D0D0D0D" #h"F63245D5A06EEC7B") (:ecb-mode-test #h"0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E" #h"0E0E0E0E0E0E0E0E" #h"C87E8750FF8FDDD4") (:ecb-mode-test #h"0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F" #h"0F0F0F0F0F0F0F0F" #h"7668146E424460DE") (:ecb-mode-test #h"10101010101010101010101010101010" #h"1010101010101010" #h"55A07970924FC77B") (:ecb-mode-test #h"11111111111111111111111111111111" #h"1111111111111111" #h"1FC34DB8EBF21BC0") (:ecb-mode-test #h"12121212121212121212121212121212" #h"1212121212121212" #h"EF0051C5DDEC53A9") (:ecb-mode-test #h"13131313131313131313131313131313" #h"1313131313131313" #h"C43D14B8FF13251B") (:ecb-mode-test #h"14141414141414141414141414141414" #h"1414141414141414" #h"2DAC46CD829D08EE") (:ecb-mode-test #h"15151515151515151515151515151515" #h"1515151515151515" #h"60895337A0C292FA") (:ecb-mode-test #h"16161616161616161616161616161616" #h"1616161616161616" #h"D6E7AD831E3BACD4") (:ecb-mode-test #h"17171717171717171717171717171717" #h"1717171717171717" #h"104F8AF1497AE9E2") (:ecb-mode-test #h"18181818181818181818181818181818" #h"1818181818181818" #h"D07DA88C9CB8D1D1") (:ecb-mode-test #h"19191919191919191919191919191919" #h"1919191919191919" #h"74B3CD54797F7C64") (:ecb-mode-test #h"1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A" #h"1A1A1A1A1A1A1A1A" #h"E483B165F91F88E4") (:ecb-mode-test #h"1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B" #h"1B1B1B1B1B1B1B1B" #h"4E30A66C0340CB32") (:ecb-mode-test #h"1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C" #h"1C1C1C1C1C1C1C1C" #h"67B392DDD4D60B3B") (:ecb-mode-test #h"1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D" #h"1D1D1D1D1D1D1D1D" #h"5A173639029747FE") (:ecb-mode-test #h"1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E" #h"1E1E1E1E1E1E1E1E" #h"4774317AA39EFF49") (:ecb-mode-test #h"1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F" #h"1F1F1F1F1F1F1F1F" #h"B52B9DC6A941A7A8") (:ecb-mode-test #h"20202020202020202020202020202020" #h"2020202020202020" #h"D24C12E60F182DE3") (:ecb-mode-test #h"21212121212121212121212121212121" #h"2121212121212121" #h"C90077A6371469E0") (:ecb-mode-test #h"22222222222222222222222222222222" #h"2222222222222222" #h"636C807E203B032A") (:ecb-mode-test #h"23232323232323232323232323232323" #h"2323232323232323" #h"91578F2FDE1EBD73") (:ecb-mode-test #h"24242424242424242424242424242424" #h"2424242424242424" #h"647B7B36BBA9AB7D") (:ecb-mode-test #h"25252525252525252525252525252525" #h"2525252525252525" #h"42E42E1B513D4110") (:ecb-mode-test #h"26262626262626262626262626262626" #h"2626262626262626" #h"92CC5DBF71818457") (:ecb-mode-test #h"27272727272727272727272727272727" #h"2727272727272727" #h"D34CF5D065DA63B8") (:ecb-mode-test #h"28282828282828282828282828282828" #h"2828282828282828" #h"805876D05C017BC3") (:ecb-mode-test #h"29292929292929292929292929292929" #h"2929292929292929" #h"A8EACC2F2BE0AA6D") (:ecb-mode-test #h"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A" #h"2A2A2A2A2A2A2A2A" #h"24A1F474DD90B566") (:ecb-mode-test #h"2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B" #h"2B2B2B2B2B2B2B2B" #h"F3E09755FA8D5D91") (:ecb-mode-test #h"2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C" #h"2C2C2C2C2C2C2C2C" #h"841B00C99FE2F11B") (:ecb-mode-test #h"2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D" #h"2D2D2D2D2D2D2D2D" #h"A1CCCAABFD533449") (:ecb-mode-test #h"2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E" #h"2E2E2E2E2E2E2E2E" #h"10E6ECAA6163E77B") (:ecb-mode-test #h"2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F" #h"2F2F2F2F2F2F2F2F" #h"209BB27B03EC7D9A") (:ecb-mode-test #h"30303030303030303030303030303030" #h"3030303030303030" #h"0966DA2B6BC0E033") (:ecb-mode-test #h"31313131313131313131313131313131" #h"3131313131313131" #h"7379A558117B1963") (:ecb-mode-test #h"32323232323232323232323232323232" #h"3232323232323232" #h"8B24CFACC88DF2A6") (:ecb-mode-test #h"33333333333333333333333333333333" #h"3333333333333333" #h"ED96F5C0E5D76A2D") (:ecb-mode-test #h"34343434343434343434343434343434" #h"3434343434343434" #h"BA1CCCBEBD793F2D") (:ecb-mode-test #h"35353535353535353535353535353535" #h"3535353535353535" #h"0A590DF4D85B90CA") (:ecb-mode-test #h"36363636363636363636363636363636" #h"3636363636363636" #h"206B0F8919CCD4CB") (:ecb-mode-test #h"37373737373737373737373737373737" #h"3737373737373737" #h"31145228A354A0C9") (:ecb-mode-test #h"38383838383838383838383838383838" #h"3838383838383838" #h"9599CC2E07EDCDF7") (:ecb-mode-test #h"39393939393939393939393939393939" #h"3939393939393939" #h"55FB8CB5FCE94871") (:ecb-mode-test #h"3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A" #h"3A3A3A3A3A3A3A3A" #h"1B0204E231F94CAC") (:ecb-mode-test #h"3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B" #h"3B3B3B3B3B3B3B3B" #h"CC6875BF02D0EDC8") (:ecb-mode-test #h"3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C" #h"3C3C3C3C3C3C3C3C" #h"C04004650588AEF6") (:ecb-mode-test #h"3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D" #h"3D3D3D3D3D3D3D3D" #h"27D1240ED40118FB") (:ecb-mode-test #h"3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E" #h"3E3E3E3E3E3E3E3E" #h"FC1DCF3AF7589533") (:ecb-mode-test #h"3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F" #h"3F3F3F3F3F3F3F3F" #h"36D344B3027BC561") (:ecb-mode-test #h"40404040404040404040404040404040" #h"4040404040404040" #h"BF62D780F4A4340B") (:ecb-mode-test #h"41414141414141414141414141414141" #h"4141414141414141" #h"1922B7FC3F6C54E4") (:ecb-mode-test #h"42424242424242424242424242424242" #h"4242424242424242" #h"2B3C44ABB2A2F6B9") (:ecb-mode-test #h"43434343434343434343434343434343" #h"4343434343434343" #h"2BF4CA6564107AA5") (:ecb-mode-test #h"44444444444444444444444444444444" #h"4444444444444444" #h"0DE485ED95EB7916") (:ecb-mode-test #h"45454545454545454545454545454545" #h"4545454545454545" #h"ADF827AEA3D7B480") (:ecb-mode-test #h"46464646464646464646464646464646" #h"4646464646464646" #h"5400D10D3EA493E3") (:ecb-mode-test #h"47474747474747474747474747474747" #h"4747474747474747" #h"5FF846D6EE31BEAB") (:ecb-mode-test #h"48484848484848484848484848484848" #h"4848484848484848" #h"10CFCE9C3F6D6744") (:ecb-mode-test #h"49494949494949494949494949494949" #h"4949494949494949" #h"4F059F1D68F94763") (:ecb-mode-test #h"4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A" #h"4A4A4A4A4A4A4A4A" #h"164876F0AF5BE32D") (:ecb-mode-test #h"4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B" #h"4B4B4B4B4B4B4B4B" #h"45982518CF0CC3D4") (:ecb-mode-test #h"4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C" #h"4C4C4C4C4C4C4C4C" #h"1288424AAB4DBBF1") (:ecb-mode-test #h"4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D" #h"4D4D4D4D4D4D4D4D" #h"2C54BE0B869B541E") (:ecb-mode-test #h"4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E" #h"4E4E4E4E4E4E4E4E" #h"189E6AB98E9EAD08") (:ecb-mode-test #h"4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F" #h"4F4F4F4F4F4F4F4F" #h"CE1E08676A9F70CC") (:ecb-mode-test #h"50505050505050505050505050505050" #h"5050505050505050" #h"54504A4E9D5B7B9C") (:ecb-mode-test #h"51515151515151515151515151515151" #h"5151515151515151" #h"0AC63B5D7D8BEE3B") (:ecb-mode-test #h"52525252525252525252525252525252" #h"5252525252525252" #h"A8CD8824E3E9B510") (:ecb-mode-test #h"53535353535353535353535353535353" #h"5353535353535353" #h"75C2D459ADEE5E6C") (:ecb-mode-test #h"54545454545454545454545454545454" #h"5454545454545454" #h"F9EEBCBF321C576C") (:ecb-mode-test #h"55555555555555555555555555555555" #h"5555555555555555" #h"916720C6878CDFB1") (:ecb-mode-test #h"56565656565656565656565656565656" #h"5656565656565656" #h"4D70959A24DAB704") (:ecb-mode-test #h"57575757575757575757575757575757" #h"5757575757575757" #h"46B082FD94327BCF") (:ecb-mode-test #h"58585858585858585858585858585858" #h"5858585858585858" #h"8DEA569C738AE33D") (:ecb-mode-test #h"59595959595959595959595959595959" #h"5959595959595959" #h"F6BF0BC30C91AE2F") (:ecb-mode-test #h"5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A" #h"5A5A5A5A5A5A5A5A" #h"45E6FBFFB680F50A") (:ecb-mode-test #h"5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B" #h"5B5B5B5B5B5B5B5B" #h"FCF0779EA34683B7") (:ecb-mode-test #h"5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C" #h"5C5C5C5C5C5C5C5C" #h"7189B7F0A6F66705") (:ecb-mode-test #h"5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D" #h"5D5D5D5D5D5D5D5D" #h"9857CD8DBDAC4218") (:ecb-mode-test #h"5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E" #h"5E5E5E5E5E5E5E5E" #h"667D23D8D2E4918E") (:ecb-mode-test #h"5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F" #h"5F5F5F5F5F5F5F5F" #h"E71E41A4AE4064E7") (:ecb-mode-test #h"60606060606060606060606060606060" #h"6060606060606060" #h"D14105DA05845F1D") (:ecb-mode-test #h"61616161616161616161616161616161" #h"6161616161616161" #h"F7EA089B0C135B31") (:ecb-mode-test #h"62626262626262626262626262626262" #h"6262626262626262" #h"3C66E859B6C77122") (:ecb-mode-test #h"63636363636363636363636363636363" #h"6363636363636363" #h"B957E277BF8AD53A") (:ecb-mode-test #h"64646464646464646464646464646464" #h"6464646464646464" #h"4569435BDD43C104") (:ecb-mode-test #h"65656565656565656565656565656565" #h"6565656565656565" #h"79CD41DB6991CACB") (:ecb-mode-test #h"66666666666666666666666666666666" #h"6666666666666666" #h"4ABD7FBB9A50D520") (:ecb-mode-test #h"67676767676767676767676767676767" #h"6767676767676767" #h"9755C63EA9C43E15") (:ecb-mode-test #h"68686868686868686868686868686868" #h"6868686868686868" #h"95EE3C2F402A43AB") (:ecb-mode-test #h"69696969696969696969696969696969" #h"6969696969696969" #h"225BED53D34E01F2") (:ecb-mode-test #h"6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A" #h"6A6A6A6A6A6A6A6A" #h"479C7B1C099158F3") (:ecb-mode-test #h"6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B" #h"6B6B6B6B6B6B6B6B" #h"171476C71BBD0079") (:ecb-mode-test #h"6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C" #h"6C6C6C6C6C6C6C6C" #h"C0AF0E4CB0E4B4A4") (:ecb-mode-test #h"6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D" #h"6D6D6D6D6D6D6D6D" #h"776B48A129A470FE") (:ecb-mode-test #h"6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E" #h"6E6E6E6E6E6E6E6E" #h"1192D5C8FD231A9F") (:ecb-mode-test #h"6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F" #h"6F6F6F6F6F6F6F6F" #h"1C11E716290F3E23") (:ecb-mode-test #h"70707070707070707070707070707070" #h"7070707070707070" #h"82ADF4FFB3F5CC1C") (:ecb-mode-test #h"71717171717171717171717171717171" #h"7171717171717171" #h"78C75F6FFABE43F3") (:ecb-mode-test #h"72727272727272727272727272727272" #h"7272727272727272" #h"05A191935E72562C") (:ecb-mode-test #h"73737373737373737373737373737373" #h"7373737373737373" #h"845F14C8316AA12C") (:ecb-mode-test #h"74747474747474747474747474747474" #h"7474747474747474" #h"8DACA678721295EC") (:ecb-mode-test #h"75757575757575757575757575757575" #h"7575757575757575" #h"8F85A5931E371A1C") (:ecb-mode-test #h"76767676767676767676767676767676" #h"7676767676767676" #h"DFE4B0D5FD51C611") (:ecb-mode-test #h"77777777777777777777777777777777" #h"7777777777777777" #h"2EDDD077EC82D42C") (:ecb-mode-test #h"78787878787878787878787878787878" #h"7878787878787878" #h"08C12EF5A29A34C3") (:ecb-mode-test #h"79797979797979797979797979797979" #h"7979797979797979" #h"C2E689A5926B1469") (:ecb-mode-test #h"7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A" #h"7A7A7A7A7A7A7A7A" #h"89264B9EA39B750C") (:ecb-mode-test #h"7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B" #h"7B7B7B7B7B7B7B7B" #h"F55FF33E57E15027") (:ecb-mode-test #h"7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C" #h"7C7C7C7C7C7C7C7C" #h"B4211BF2050986A5") (:ecb-mode-test #h"7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D" #h"7D7D7D7D7D7D7D7D" #h"59E3D7AE37632B3C") (:ecb-mode-test #h"7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E" #h"7E7E7E7E7E7E7E7E" #h"1DCD98BF8E3CEFDA") (:ecb-mode-test #h"7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F" #h"7F7F7F7F7F7F7F7F" #h"FA1FDCE135BDFA6A") (:ecb-mode-test #h"80808080808080808080808080808080" #h"8080808080808080" #h"F481C569295DA7B8") (:ecb-mode-test #h"81818181818181818181818181818181" #h"8181818181818181" #h"647D9D7FB4CD1444") (:ecb-mode-test #h"82828282828282828282828282828282" #h"8282828282828282" #h"E0AC3FE4289B03DC") (:ecb-mode-test #h"83838383838383838383838383838383" #h"8383838383838383" #h"9E3A6BE24809A5EA") (:ecb-mode-test #h"84848484848484848484848484848484" #h"8484848484848484" #h"0A550D4300434938") (:ecb-mode-test #h"85858585858585858585858585858585" #h"8585858585858585" #h"FA28C2C72CDBD40F") (:ecb-mode-test #h"86868686868686868686868686868686" #h"8686868686868686" #h"5507C230A13FA64E") (:ecb-mode-test #h"87878787878787878787878787878787" #h"8787878787878787" #h"C0865623E4C0530A") (:ecb-mode-test #h"88888888888888888888888888888888" #h"8888888888888888" #h"4FAF087BAB3C0410") (:ecb-mode-test #h"89898989898989898989898989898989" #h"8989898989898989" #h"50AA81BF2CFC0D92") (:ecb-mode-test #h"8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A" #h"8A8A8A8A8A8A8A8A" #h"E9F95FA12EC17C51") (:ecb-mode-test #h"8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B" #h"8B8B8B8B8B8B8B8B" #h"CE3BE6306F62212E") (:ecb-mode-test #h"8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C" #h"8C8C8C8C8C8C8C8C" #h"2E774C21F352645A") (:ecb-mode-test #h"8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D" #h"8D8D8D8D8D8D8D8D" #h"FB60C17D755F16F3") (:ecb-mode-test #h"8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E" #h"8E8E8E8E8E8E8E8E" #h"B7520F518D36A0F1") (:ecb-mode-test #h"8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F" #h"8F8F8F8F8F8F8F8F" #h"4494B183948C451C") (:ecb-mode-test #h"90909090909090909090909090909090" #h"9090909090909090" #h"5714C7D798BBFE1C") (:ecb-mode-test #h"91919191919191919191919191919191" #h"9191919191919191" #h"7C4B8A8B0749981F") (:ecb-mode-test #h"92929292929292929292929292929292" #h"9292929292929292" #h"BB67FEC861FBEA45") (:ecb-mode-test #h"93939393939393939393939393939393" #h"9393939393939393" #h"1FDB856313CB5B2C") (:ecb-mode-test #h"94949494949494949494949494949494" #h"9494949494949494" #h"A16B1E9E02527BF8") (:ecb-mode-test #h"95959595959595959595959595959595" #h"9595959595959595" #h"FBE639AA0E97E7E4") (:ecb-mode-test #h"96969696969696969696969696969696" #h"9696969696969696" #h"DE1198A1E8346884") (:ecb-mode-test #h"97979797979797979797979797979797" #h"9797979797979797" #h"365C214A1DEA8676") (:ecb-mode-test #h"98989898989898989898989898989898" #h"9898989898989898" #h"B9EDBCEED003C29C") (:ecb-mode-test #h"99999999999999999999999999999999" #h"9999999999999999" #h"DB13FD14584AD7B9") (:ecb-mode-test #h"9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A" #h"9A9A9A9A9A9A9A9A" #h"934BB6498EC4785B") (:ecb-mode-test #h"9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B" #h"9B9B9B9B9B9B9B9B" #h"DF3A81E1F605CBEC") (:ecb-mode-test #h"9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C" #h"9C9C9C9C9C9C9C9C" #h"B605EE708B899F73") (:ecb-mode-test #h"9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D" #h"9D9D9D9D9D9D9D9D" #h"C3B3329AD1441719") (:ecb-mode-test #h"9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E" #h"9E9E9E9E9E9E9E9E" #h"00513DEC53CE2736") (:ecb-mode-test #h"9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F" #h"9F9F9F9F9F9F9F9F" #h"E325603C3766D2F6") (:ecb-mode-test #h"A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0" #h"A0A0A0A0A0A0A0A0" #h"0F7F21E937709510") (:ecb-mode-test #h"A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1A1" #h"A1A1A1A1A1A1A1A1" #h"F7AA07D98F058599") (:ecb-mode-test #h"A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2" #h"A2A2A2A2A2A2A2A2" #h"B5B59A5477E3FB06") (:ecb-mode-test #h"A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3" #h"A3A3A3A3A3A3A3A3" #h"4C2BC22974B7734D") (:ecb-mode-test #h"A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4" #h"A4A4A4A4A4A4A4A4" #h"55C2E6838C1FF979") (:ecb-mode-test #h"A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5A5" #h"A5A5A5A5A5A5A5A5" #h"5A1B17C8BBCE9BBC") (:ecb-mode-test #h"A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6A6" #h"A6A6A6A6A6A6A6A6" #h"4ED8F930538870D0") (:ecb-mode-test #h"A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7A7" #h"A7A7A7A7A7A7A7A7" #h"B0D825A1973C112E") (:ecb-mode-test #h"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" #h"A8A8A8A8A8A8A8A8" #h"579678CE5CF2364B") (:ecb-mode-test #h"A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9A9" #h"A9A9A9A9A9A9A9A9" #h"4A66F8DAD0B92B40") (:ecb-mode-test #h"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" #h"AAAAAAAAAAAAAAAA" #h"5E51CBC951FED9ED") (:ecb-mode-test #h"ABABABABABABABABABABABABABABABAB" #h"ABABABABABABABAB" #h"162D697D599BEBAF") (:ecb-mode-test #h"ACACACACACACACACACACACACACACACAC" #h"ACACACACACACACAC" #h"25C479AC7DCBB3C5") (:ecb-mode-test #h"ADADADADADADADADADADADADADADADAD" #h"ADADADADADADADAD" #h"873C3DB72B6C17EF") (:ecb-mode-test #h"AEAEAEAEAEAEAEAEAEAEAEAEAEAEAEAE" #h"AEAEAEAEAEAEAEAE" #h"62D1CD613580EFED") (:ecb-mode-test #h"AFAFAFAFAFAFAFAFAFAFAFAFAFAFAFAF" #h"AFAFAFAFAFAFAFAF" #h"1C140194BC8FB722") (:ecb-mode-test #h"B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0" #h"B0B0B0B0B0B0B0B0" #h"1C17392342782F74") (:ecb-mode-test #h"B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1B1" #h"B1B1B1B1B1B1B1B1" #h"4725C78D37917825") (:ecb-mode-test #h"B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2" #h"B2B2B2B2B2B2B2B2" #h"72784284349B1D90") (:ecb-mode-test #h"B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3" #h"B3B3B3B3B3B3B3B3" #h"83454AB3F4A47246") (:ecb-mode-test #h"B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4B4" #h"B4B4B4B4B4B4B4B4" #h"9F33B1421DB9FB61") (:ecb-mode-test #h"B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5B5" #h"B5B5B5B5B5B5B5B5" #h"77A779C1D3757406") (:ecb-mode-test #h"B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6B6" #h"B6B6B6B6B6B6B6B6" #h"90314C094B0E23AF") (:ecb-mode-test #h"B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7B7" #h"B7B7B7B7B7B7B7B7" #h"1D50C146124AA364") (:ecb-mode-test #h"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" #h"B8B8B8B8B8B8B8B8" #h"0FF2A5C6FAA86AB5") (:ecb-mode-test #h"B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9B9" #h"B9B9B9B9B9B9B9B9" #h"9005E3F81FE3E8BB") (:ecb-mode-test #h"BABABABABABABABABABABABABABABABA" #h"BABABABABABABABA" #h"3DDC8B59E763022B") (:ecb-mode-test #h"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" #h"BBBBBBBBBBBBBBBB" #h"731C525F69C08501") (:ecb-mode-test #h"BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC" #h"BCBCBCBCBCBCBCBC" #h"106DA3CDEB2D6D0B") (:ecb-mode-test #h"BDBDBDBDBDBDBDBDBDBDBDBDBDBDBDBD" #h"BDBDBDBDBDBDBDBD" #h"419B11BC936DD5DD") (:ecb-mode-test #h"BEBEBEBEBEBEBEBEBEBEBEBEBEBEBEBE" #h"BEBEBEBEBEBEBEBE" #h"74FC227708EAA900") (:ecb-mode-test #h"BFBFBFBFBFBFBFBFBFBFBFBFBFBFBFBF" #h"BFBFBFBFBFBFBFBF" #h"9C6AEA6BB5EAA0A1") (:ecb-mode-test #h"C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0" #h"C0C0C0C0C0C0C0C0" #h"7C3EABDA658C1BE9") (:ecb-mode-test #h"C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1" #h"C1C1C1C1C1C1C1C1" #h"3F5A6FB1B799866B") (:ecb-mode-test #h"C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2" #h"C2C2C2C2C2C2C2C2" #h"EB3FC8DAC64FE987") (:ecb-mode-test #h"C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3" #h"C3C3C3C3C3C3C3C3" #h"41639BFFF983A391") (:ecb-mode-test #h"C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4C4" #h"C4C4C4C4C4C4C4C4" #h"46E998D95C2F7D82") (:ecb-mode-test #h"C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5C5" #h"C5C5C5C5C5C5C5C5" #h"A77869425FBA6F85") (:ecb-mode-test #h"C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6C6" #h"C6C6C6C6C6C6C6C6" #h"679CC20A4CC8DAE3") (:ecb-mode-test #h"C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7C7" #h"C7C7C7C7C7C7C7C7" #h"FC63CD59B387F7EB") (:ecb-mode-test #h"C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8C8" #h"C8C8C8C8C8C8C8C8" #h"806239D1D675EC08") (:ecb-mode-test #h"C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9C9" #h"C9C9C9C9C9C9C9C9" #h"2D45484E913A2264") (:ecb-mode-test #h"CACACACACACACACACACACACACACACACA" #h"CACACACACACACACA" #h"DB12E39337991E6E") (:ecb-mode-test #h"CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB" #h"CBCBCBCBCBCBCBCB" #h"986EB04CE6B5C83B") (:ecb-mode-test #h"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC" #h"CCCCCCCCCCCCCCCC" #h"74B7ACB1C4E54E47") (:ecb-mode-test #h"CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD" #h"CDCDCDCDCDCDCDCD" #h"0A3E756B2F5D3B78") (:ecb-mode-test #h"CECECECECECECECECECECECECECECECE" #h"CECECECECECECECE" #h"CCD7203A3330E59C") (:ecb-mode-test #h"CFCFCFCFCFCFCFCFCFCFCFCFCFCFCFCF" #h"CFCFCFCFCFCFCFCF" #h"231CFD138D215FCE") (:ecb-mode-test #h"D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0" #h"D0D0D0D0D0D0D0D0" #h"947886BC1713140B") (:ecb-mode-test #h"D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1D1" #h"D1D1D1D1D1D1D1D1" #h"9850392AB1C5DF58") (:ecb-mode-test #h"D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2" #h"D2D2D2D2D2D2D2D2" #h"A3DBDE5CB3B0D14A") (:ecb-mode-test #h"D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3" #h"D3D3D3D3D3D3D3D3" #h"516EE0CE139FF3AA") (:ecb-mode-test #h"D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4" #h"D4D4D4D4D4D4D4D4" #h"67A08619967B8781") (:ecb-mode-test #h"D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5D5" #h"D5D5D5D5D5D5D5D5" #h"4237C2B1C20AD741") (:ecb-mode-test #h"D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6D6" #h"D6D6D6D6D6D6D6D6" #h"9B270032AF9790D2") (:ecb-mode-test #h"D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7D7" #h"D7D7D7D7D7D7D7D7" #h"F485014561B43A95") (:ecb-mode-test #h"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" #h"D8D8D8D8D8D8D8D8" #h"794857ED7836797B") (:ecb-mode-test #h"D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9D9" #h"D9D9D9D9D9D9D9D9" #h"BDE24546BF1ABDAE") (:ecb-mode-test #h"DADADADADADADADADADADADADADADADA" #h"DADADADADADADADA" #h"1A33DBE057FDFC3D") (:ecb-mode-test #h"DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBDB" #h"DBDBDBDBDBDBDBDB" #h"F74D857E82C66088") (:ecb-mode-test #h"DCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDC" #h"DCDCDCDCDCDCDCDC" #h"88D72547385B1D2F") (:ecb-mode-test #h"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD" #h"DDDDDDDDDDDDDDDD" #h"E3CA2146C71CE583") (:ecb-mode-test #h"DEDEDEDEDEDEDEDEDEDEDEDEDEDEDEDE" #h"DEDEDEDEDEDEDEDE" #h"2818AAF1A02205A6") (:ecb-mode-test #h"DFDFDFDFDFDFDFDFDFDFDFDFDFDFDFDF" #h"DFDFDFDFDFDFDFDF" #h"27DCAA26208ACA3D") (:ecb-mode-test #h"E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0" #h"E0E0E0E0E0E0E0E0" #h"8CD523F19F6A269F") (:ecb-mode-test #h"E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1" #h"E1E1E1E1E1E1E1E1" #h"D5AEA349553161E2") (:ecb-mode-test #h"E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2" #h"E2E2E2E2E2E2E2E2" #h"64EB3CFAEFDDD61C") (:ecb-mode-test #h"E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3" #h"E3E3E3E3E3E3E3E3" #h"CAAABD1E2F033824") (:ecb-mode-test #h"E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4E4" #h"E4E4E4E4E4E4E4E4" #h"60CAFDD281C139F9") (:ecb-mode-test #h"E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5E5" #h"E5E5E5E5E5E5E5E5" #h"5F738EBA5C7D179E") (:ecb-mode-test #h"E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6E6" #h"E6E6E6E6E6E6E6E6" #h"53203C41C2C28ED7") (:ecb-mode-test #h"E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7E7" #h"E7E7E7E7E7E7E7E7" #h"811A8F9F1BCDFE9C") (:ecb-mode-test #h"E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8E8" #h"E8E8E8E8E8E8E8E8" #h"933989D7EF56E534") (:ecb-mode-test #h"E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9E9" #h"E9E9E9E9E9E9E9E9" #h"F246C569E15DBADC") (:ecb-mode-test #h"EAEAEAEAEAEAEAEAEAEAEAEAEAEAEAEA" #h"EAEAEAEAEAEAEAEA" #h"FF7EC5C73AA4D892") (:ecb-mode-test #h"EBEBEBEBEBEBEBEBEBEBEBEBEBEBEBEB" #h"EBEBEBEBEBEBEBEB" #h"BF744BED738C8060") (:ecb-mode-test #h"ECECECECECECECECECECECECECECECEC" #h"ECECECECECECECEC" #h"893AF631836FC721") (:ecb-mode-test #h"EDEDEDEDEDEDEDEDEDEDEDEDEDEDEDED" #h"EDEDEDEDEDEDEDED" #h"B196D17B5BD8EB03") (:ecb-mode-test #h"EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" #h"EEEEEEEEEEEEEEEE" #h"C3854743B8E39971") (:ecb-mode-test #h"EFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEF" #h"EFEFEFEFEFEFEFEF" #h"5ACDEF9847F8085B") (:ecb-mode-test #h"F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0" #h"F0F0F0F0F0F0F0F0" #h"205BDE6C6CE800E2") (:ecb-mode-test #h"F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1" #h"F1F1F1F1F1F1F1F1" #h"012309B3210CEFEE") (:ecb-mode-test #h"F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2" #h"F2F2F2F2F2F2F2F2" #h"83E92926264F123F") (:ecb-mode-test #h"F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3" #h"F3F3F3F3F3F3F3F3" #h"5BA80701E5009A1C") (:ecb-mode-test #h"F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4F4" #h"F4F4F4F4F4F4F4F4" #h"75B12595A8F1CF84") (:ecb-mode-test #h"F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5F5" #h"F5F5F5F5F5F5F5F5" #h"8BE8D04B7506BFBA") (:ecb-mode-test #h"F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6F6" #h"F6F6F6F6F6F6F6F6" #h"06AFC3F429493838") (:ecb-mode-test #h"F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7" #h"F7F7F7F7F7F7F7F7" #h"2B53DC24D5499DDB") (:ecb-mode-test #h"F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8" #h"F8F8F8F8F8F8F8F8" #h"D1D5A311D568E59A") (:ecb-mode-test #h"F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9F9" #h"F9F9F9F9F9F9F9F9" #h"9D5D2537033FEBB8") (:ecb-mode-test #h"FAFAFAFAFAFAFAFAFAFAFAFAFAFAFAFA" #h"FAFAFAFAFAFAFAFA" #h"20AB2D42A0C94052") (:ecb-mode-test #h"FBFBFBFBFBFBFBFBFBFBFBFBFBFBFBFB" #h"FBFBFBFBFBFBFBFB" #h"8880794BE00876FA") (:ecb-mode-test #h"FCFCFCFCFCFCFCFCFCFCFCFCFCFCFCFC" #h"FCFCFCFCFCFCFCFC" #h"A826B58B13B7B9C1") (:ecb-mode-test #h"FDFDFDFDFDFDFDFDFDFDFDFDFDFDFDFD" #h"FDFDFDFDFDFDFDFD" #h"65B7E9FA03B72838") (:ecb-mode-test #h"FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFE" #h"FEFEFEFEFEFEFEFE" #h"1405A7801255ECEA") (:ecb-mode-test #h"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" #h"FFFFFFFFFFFFFFFF" #h"1D0C41EB2B24A69B") (:ecb-mode-test #h"000102030405060708090A0B0C0D0E0F" #h"0011223344556677" #h"DF7F1DD20217842A") (:ecb-mode-test #h"2BD6459F82C5B300952C49104881FF48" #h"EA024714AD5C4D84" #h"7AEE54052CB37F9D")ironclad_0.33.0/testing/test-vectors/cbc.testvec0000644000175000017500000000245211305364032016677 0ustar00;;; Tests from NIST document SP800-38A.pdf, #h"Recommendation for Block ;;; Cipher Modes of Operation: Methods and Techniques" (:mode-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"7649abac8119b246cee98e9b12e9197d5086cb9b507219ee95db113a917678b273bed6b8e3c1743b7116e69e222295163ff1caa1681fac09120eca307586e1a7") (:mode-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"4f021db243bc633d7178183a9fa071e8b4d9ada9ad7dedf4e5e738763f69145a571b242012fb7ae07fa9baac3df102e008b0e27988598881d920a9e64f5615cd") (:mode-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"f58c4c04d6e5f1ba779eabfb5f7bfbd69cfc4e967edb808d679f777bc6702c7d39f23369a9d9bacfa530e26304231461b2eb05e2c39be9fcda6c19078c6a9d1b") ironclad_0.33.0/testing/test-vectors/ctr.testvec0000644000175000017500000000245211305364032016740 0ustar00;;; Tests from NIST document SP800-38A.pdf, #h"Recommendation for Block ;;; Cipher Modes of Operation: Methods and Techniques" (:mode-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee") (:mode-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"1abc932417521ca24f2b0459fe7e6e0b090339ec0aa6faefd5ccc2c6f4ce8e941e36b26bd1ebc670d1bd1d665620abf74f78a7f6d29809585a97daec58c6b050") (:mode-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"601ec313775789a5b7a7f504bbf3d228f443e3ca4d62b59aca84e990cacaf5c52b0930daa23de94ce87017ba2d84988ddfc9c58db67aada613c2dd08457941a6") ironclad_0.33.0/testing/test-vectors/ofb.testvec0000644000175000017500000000245211305364032016716 0ustar00;;; Tests from NIST document SP800-38A.pdf, #h"Recommendation for Block ;;; Cipher Modes of Operation: Methods and Techniques" (:mode-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"3b3fd92eb72dad20333449f8e83cfb4a7789508d16918f03f53c52dac54ed8259740051e9c5fecf64344f7a82260edcc304c6528f659c77866a510d9c1d6ae5e") (:mode-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"cdc80d6fddf18cab34c25909c99a4174fcc28b8d4c63837c09e81700c11004018d9a9aeac0f6596f559c6d4daf59a5f26d9f200857ca6c3e9cac524bd9acc92a") (:mode-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"dc7e84bfda79164b7ecd8486985d38604febdc6740d20b3ac88f6ad82a4fb08d71ab47a086e86eedf39d1c5bba97c4080126141d67f37be8538f5a8be740e484") ironclad_0.33.0/testing/test-vectors/cfb.testvec0000644000175000017500000000245211305364032016702 0ustar00;;; Tests from NIST document SP800-38A.pdf, #h"Recommendation for Block ;;; Cipher Modes of Operation: Methods and Techniques" (:mode-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"3b3fd92eb72dad20333449f8e83cfb4ac8a64537a0b3a93fcde3cdad9f1ce58b26751f67a3cbb140b1808cf187a4f4dfc04b05357c5d1c0eeac4c66f9ff7f2e6") (:mode-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"cdc80d6fddf18cab34c25909c99a417467ce7f7f81173621961a2b70171d3d7a2e1e8a1dd59b88b1c8e60fed1efac4c9c05f9f9ca9834fa042ae8fba584b09ff") (:mode-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5130c81c46a35ce411e5fbc1191a0a52eff69f2445df4f9b17ad2b417be66c3710" #h"dc7e84bfda79164b7ecd8486985d386039ffed143b28b1c832113c6331e5407bdf10132415e54b92a13ed0a8267ae2f975a385741ab9cef82031623d55b1e471") ironclad_0.33.0/testing/test-vectors/cfb8.testvec0000644000175000017500000000140211305364032016764 0ustar00;;; Tests from NIST document SP800-38A.pdf, #h"Recommendation for Block ;;; Cipher Modes of Operation: Methods and Techniques" (:mode-test :aes #h"2b7e151628aed2a6abf7158809cf4f3c" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d" #h"3b79424c9c0dd436bace9e0ed4586a4f32b9") (:mode-test :aes #h"8e73b0f7da0e6452c810f32b809079e562f8ead2522c6b7b" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d" #h"cda2521ef0a905ca44cd057cbf0d47a0678a") (:mode-test :aes #h"603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4" #h"000102030405060708090a0b0c0d0e0f" #h"6bc1bee22e409f96e93d7e117393172aae2d" #h"dc1f1a8520a64db55fcc8ac554844e889700") ironclad_0.33.0/testing/test-vectors/arcfour.testvec0000644000175000017500000000115211305364032017605 0ustar00(:stream-mode-test #h"0123456789abcdef" #h"0123456789abcdef" #h"75b7878099e0c596") (:stream-mode-test #h"0123456789abcdef" #h"0000000000000000" #h"7494c2e7104b0879") (:stream-mode-test #h"0000000000000000" #h"0000000000000000" #h"de188941a3375d3a") (:stream-mode-test #h"ef012345" #h"0000000000000000000000000000000000000000" #h"d6a141a7ec3c38dfbd615a1162e1c7ba36b67858") (:stream-mode-test #h"0123456789abcdef" #h"123456789abcdef0123456789abcdef0123456789abcdef012345678" #h"66a0949f8af7d6891f7f832ba833c00c892ebe30143ce28740011ecf") (:stream-mode-test #h"ef012345" #h"00000000000000000000" #h"d6a141a7ec3c38dfbd61") ironclad_0.33.0/testing/test-vectors/salsa20.testvec0000664000175000017500000024602412221014735017424 0ustar00(:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6513adaecfeb124c1cbe6bdaef690b4ffb00b0fcace33ce806792bb41480199834bfb1cfdd095802c6e95e251002989ac22ae588d32ae79320d9bd7732e00338d06acbb08e5ff8fe3392e71e210f120448e3b81487e96ae91146d78af3b9ac90544614abe2f11598fb4d3ca691b198483ce9e9ffd442f2d032bf0160af424cd1d1d4ea788fc220") (:stream-nonce-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4dfa5e481da23ea09a31022050859936da52fcee218005164f267cb65f5cfd7f2b4f97e0ff16924a52df269515110a07f9e460bc65ef95da58f740b7d1dbb0aad64cec189c7eb8c6bbf3d7376c80a481d43e628701f6a27afb9fe23919f241148db44f70d7063efcc3dd55a0893a613c3c6fe1c127bd6f59910589293bb6ef9ee24819066dee1a") (:stream-nonce-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c6c628bcc0a41875eed7f7d9fdaee0e414dfd61fcab561e70a3933516d7e956aaca8ceb9516acd68103f7cc36510b50e02b70198dff5fe8a6b28997b1128c4d75d8a690dc6ac50c30211f46f2dd3aee00e3fdb29baa7af7db55b706309fa77ccb959cea20d38a60d55e901cbd5eee9c331d80005ae037788f740fe8e4e44223a83d06a643b9a0f") (:stream-nonce-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0471076057830fb99202291177fbfe5d38c888944df8917cab82788b91b53d1cfb06d07a304b18bb763f888a61bb6b755cd58bec9c4cfb7569cb91862e79c45951f2bd323dfb37bb430385842ce448344e6e6e4a1bd31e9386c24e342dd86d73ea3caf55bc7d01dfa943981ca927f87adc8fc5b4858f5b935b17ddfbcf4de73e4a370e5d44bc3b") (:stream-nonce-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2face6630a19841bea1918b036081117dfb2c346ea1d338f4ee912dc3497aa9c4f01b254ebb8e6c779417a55b7ec7532d78a85d11008e83d4740e62dece2ce9a04fa2d478142ad77118e3e1e00053113191abd882b194fcc74fea131bd53e906ebf9c2bf56e3bed078a0cf704acb9dedf9c731709134dced4869eb18d81780bd60dddc765b4768") (:stream-nonce-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bacfe4145e6d4182ea4a0f59d4076c7e83ffd17e7540e5b7de70eeddf9552006b291b214a43e127eed1da1540f33716d83c3ad7d711cd03251b78b2568f2c844521a59209c1a32e18a0a020bfd20d9ba2031b17ac99987ca958d55328b19d2eb0d1eb41b18a5a5cad63e54e7266e7374415635eaf4ef8365638c08cb8adc90c9be597500dd3028") (:stream-nonce-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0c78dfb870e8eb917fadf71c406653790ea106cd0d7d9e62a04a6f6061e75e7a8ed3cc63aa86be53d87cc9302cdf1f37f2655db5957c6b7d40c713adb05d88baf8c188ec24e9bda422741accaeb4f8e3b6c91c690c2ffdb05a1d14e2caf7fa50bb45b88ebaaf2aacf7469de6fb7e5722de4f4277d97bc6482daefea1faf0df28cec680f00569fa") (:stream-nonce-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"24f4e317b675336e68a8e2a3a04ca967ab96512acba2f832015e9be03f08830fcf32e93d14ffbd2c901e982831ed806221d7dc8c32bbc8e056f21bf9bddc8020c9906aa0442cb586673471d1de18a12abed6f8f36856680e1bf10b4f2c38d18beaf1432c971fce9666b0a5baaafa10428d5b4e51f5209e3ec50c7ffaad4ca3586695260338dcab") (:stream-nonce-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"adea7b3b2fcffc1ea139a2e71446e4d0469418ca2f592b2ee293369fedb9cf2e90e06f2615f39d3b06261b9ebfef4334aecb3b31d7ded653d15fe56897c0770ce06235022f9278653b03836e8feaf71e492359cae27ab08633237ea4da2460bb5b835cac67b2bdb8205228a49a45e526403ad3802844f74627980950e34f8acf7cb43f27827a62") (:stream-nonce-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0a602a8170373f59a58cc0fec473861bbaed944522128fbf51c7451e2ca4706531bb71d1c05388071a5682fd652854f15488afc88f3abd625ea1b532590b9bf1ffe7d804cc957e56dcd63195ab53c9eecaae917eb661cf54322d7f19720b7670a8aeb71e4847f46cb73547fb9369b6c2fbda1605134cc1ac632be6c6443227f2d8b308d83da987") (:stream-nonce-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a02227917cfb23954d264862cabc97279a56cedd5623e02ce8387cf92c6cb2d7da0c0c246cdac7fc90a1a0c63f69e764272034f45967cc05ae5a3db66a569e5d9bcb5072b7114b73c4b722d4ec5cacbcc0f8b2ec88cddaceac2e186d410203b2e205c71435b4fe3c462fe481e7c5c45f855fe8265ad27abf5b09da906ee795b25a8ccb2fd0233f") (:stream-nonce-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4dcbd3857d88bf9c29043331d77dc79b9aca77be1ff320ad2ba99990e5a2e3bd1ec14b06e13962138b1b1423ad1ba658e7c22404765358b7cf1574fbdc94bf30294de643703aa06e36f3c23bc349b58ca0e9d9cb1c7119a57d01c3cc03eaaeaf3ed78c47402cbeb6eed7d8200a5956148f8275d815bac3f9b9b65956886ccf2c6970a98d01bb93") (:stream-nonce-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a0c0c1d4dc2fca5d9ca0bd41f3ee1fda714d202518f4d9b5bff074120de1c09a152d34dceef89ab06cb8199d441cf2464ed0698f561dd751b185acbd66084fd35d4315412a22a8097242aaaba25421e040808a031c302bbd4ff55ce0291dcc007bb2bce75885bede29d3e8fe74457387c69bdd261565aebc304780f39f9991d4692afa207e27eb") (:stream-nonce-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b0fccf2a49f44ff1a2b64f0512f0ea5ff56b0a506f57f03383e73f1c8ec0f31d0a04655d9024df31f4d285c18d52d13ac89244510ef999f61d12f1cd0638a8a7863b5405a4b00f594ac17f41bd0ead4125316d2133fc147cd35ddcf241816796cb803a25ca359b257caec297bbd2ee1ce57c6aa0cd79ad5325595c0229c500798efc151f926fc6") (:stream-nonce-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"82312d198486a1d21ff344766c237c1fac64f00024995c63e3d69e357c70d58ad5e17dcc47cff898ad202d26bc2511a189d8cc90524e3ac6467b36a9123cdc9daf67d85b5e5619c50792981c90d142596b53efb8937ab4954b8ea972c2782e4d620a1397e55f2580441979dd78e00bc2e6aba24529af665ef79b7873b7c61259a0fc2354070c75") (:stream-nonce-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e534eebf62c68db133e504befa51a9bfcf3f010e08c2f9609a76bfc7edf69cc460386c6a84269a5638ec488044344d952a5c796465247d8db17ba0a68ac1dca466c2b13375699e8f1e5b0cd8c81ee7aa4d2c5c961a7bbf5df6ec34eb3e8fc24ce318dfcfe3619fd57d0782b28c54d5233c78c51df82863dcc0c13bda1619ee3762494e4a23c933") (:stream-nonce-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"184c66766652751716eb7d4f9abe1b91c3a58c2d96a922b4fa998ebf0055f01a3253abd3996ba6effc0c51cb225367fdf31bafccdfb18adfaac849971e2ea078dddca277e638db49ee8e56dab09e2a51711ea0315b7b3d99236209a50dcc552876ae8f38f16d17ce2208a784414c6e16b785bdfc1dd503e875d64288bc1b68b797f6db3171aa76") (:stream-nonce-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d801ccce9e76001f02bf02174974d17e80de7f367852bb99f2a947fdf708e2ab568c735c71c8a2de476949366e7100c8ac845b63941406f152257764dd4efddc92addee8ec8c884f5e06db4ce02b5bb01ac4cbd4a5e194170f442ded502ac73ab0fd233942231140056ae31694904d784230fd888457cd46351e513cb7f61187e71413817b3d33") (:stream-nonce-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bae1c89dc775071419ba935f640a058a236fbe68ac2050a04016b5409a6af9d8ce72e128c245dc887af568ac452aac268ad7833188e956d82f9bb0ed0517aa3e75edb8ca1fcfdf5d4647c133a982adc89a11d9d14e7df3f1954d3cf1187496c9d38d381581824ad20c09104b2d9b7cdc896ba353543d5f7753a8b3fea7e8e7b67c6fa8b820a714") (:stream-nonce-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e3cf8804b2724e0bac95c761afc33427d4027a1778ad7bb7cd4a050b059b6b8a391cb8c980fcebb458c707f5d00aa67c2737cb1a93d519170eec2d5408ca66a1316a8cfed15a724c620e7c8e53b1285b178e925ba6e144a85750cf7b9a47547c25a436bd328f0f0ff5a9c2ec35df1438801dd641e7506cc955ca10b769c6a46ea95443643ea035") (:stream-nonce-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"22d0930c31520d4a4bc8a4051eb0c8106bbded1487d33f4d67120f2f62d921674e5ef0bedae9dd0f1095ed56478af2526a8ea6451f9daed566445ee991fa0ec1cf65b20a45b9e4b37639228c45dc05c894a62ad77224af6183fb52b10a77ecf964a81994e423843eca08fd9f695a093cfbe4673a49d3a4b0f448cae34f6384a7927823ae62509b") (:stream-nonce-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e69f6249d4ca0d07234cbaaae3f558285b4d2e8cc411acdbbbbad822350345794f3894c07279f044df14974e229c4533b1ecb1f26e0f15d8f3a9fefe5ac664e07ede7449127ff020afe9cd80463705e0f53c3aef3b173498a5e26f90da0c34296f795e7bcf4e410bbe6a9506bbb8c178fe9b897b703fae37c42073928a96eef8fc4a474ff07d51") (:stream-nonce-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"89e7ec87585409d4c293d05e812f97e82c5e382c06a46945c735f489e940779b4a3cf2bd9ad2e3f0880f70059347a558b692f172bf684d322be25c694efcf0174ef071b65ca441f0af9d97350596a1c53e62330d587bbcea938cad160ea3be5ad1117b07823e2c9658455d9d0bfbee7668d0434fcb2831579e1b7df4e5ef37f173cd0d62a7201b") (:stream-nonce-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"188f63ff53c9c33fd38b40c6c01b4c0dbacf5e129ea6c06849a3f130d9a9b7563b9cfb5a29a165eefab7134426be28bd51579b2cd3c9e3fdf41fe52fd33d3d2c4e2a30785453c44bfac4da7d125b740710a25b7fe3f64cc9a1d1d31130cb0289467c0a1d870928d2325ea5f13c1c00945a21412f7f1608272c77796b1397cf2eb68b82e31c1d94") (:stream-nonce-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"daeece4a147f2785c3bca8ba3b51de9667854dcf32688e7ebe09ca0725d0eb2a7a8ba742284718bc2d4f6e35348caf5a246347306d9b7945f0657ff0f8fa5c74d5189b74668b14792d55aaea54b4dc5a9b4fb9b3418736eb5acf4a0a6b6ca16e11f5dcf4bc50b29a83eb6aca05988de7ad2cb9654db2e5deae9f81ec6462bafcfadbb1daac09bc") (:stream-nonce-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"01b78cff7225c0515172f720f25e826b3d35402ab188b3db675f2adbf779f79ab6362a193d446d2c02017add29aa77ea3888ec54556f4c3dcd249aa643493df8138e492aae89546716650a0073fbca8bbd7d41d164390db1e574a5d3c741a99fbe93c7e72b028c2951d0c4e517bf43113c3e64b036008d5cd9ebecdbbd9b355823db16b55eb9de") (:stream-nonce-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"24dc2eb1f5f1bcc7ba86f7ff6f1112becceae518d1263f436e0e7fa6398e4953b60547e234a67bcde9bfdc640224ef9bff404f4593e08226980d08911e6e16d56e2d3dd1fd4e4abd9fc9fee2df4fb393b808520e77860f999a557957b5b0020653260c6da3841ec34ff134d732c768676fb4f27ba397b373ca3f7b669832e219b162beb3fbe159") (:stream-nonce-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"22691aad3b5b09a0656bf0f646ee6c3b7185d2b3504bcfeb3e37c7491753096bc4a0859d5b380a961158c378818597cd9ece5cf79a54d2b2f182b62848c93a4466cdb2335143861e589a61426a8675c2641a33e953eab55fe4f632f7e9f593fa7cdda2545884a6b023b835e8e486b7e4757e5b1ec4d40eb1f2f5025a3ea4181ed325689e976fc9") (:stream-nonce-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2c04a6c6820e31119eadade4aee1ec30265ab1c9df86ecc617f0509965114a0fb3dd560ca27ca82a5059977b3ea98c829aff8368ee68c1af4ec084a0e260f42478013cd8b0241e4223f6302538b0e305c298c243a44eb2795c82da9f706cf5a3a20ebc5af729bce278d2446eed809f13374f51a7f66be87f8e78d82ef15e74651687e2b9e2327f") (:stream-nonce-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"95d9a81eacbdb203db606ecc8307056c10ce243d5666e02984a9d0ba3a6cfbe56f9671c7a85c377b8a481830326428bc26316639c48594bac207e6c001a20ba560c2e71c464418f362570271c2f838ca1af15f5291beeaa283bc0213b17f3fb57e2973e872ce80ebc9626c1d0b7f547f05e487c18b43be7d8ba4c0ef1af16346f96234bef6c553") (:stream-nonce-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"44a74d35e73a7e7c37b009ae712783ac86ace0c02cb175656af79023d91c909ed2cb2f5c94bf8593ddc5e054d7eb726e0e867572af954f88e05a4dafd00ccf0a9580cd60cbbd34a12713ad263e3ab30fb9aa538342206dd075714df75c9386d38bf91910d6077838054d8938064ee383623db80bedd7aea0cb9e606e3afa7f47e1d028facebe6a") (:stream-nonce-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d87bdd6cbb53e84c36ce13f1680ae66fd365ebf65161fb807dbf47359fe0d9ca4ee24a9712461fede45fb1a85347c47fdac2d4ff3fd6cac9879524a93514d8c6da06f48eb107c31d772d00c08e848c8fa89b0642af73581d9379d5fbe367a4c99726fa6f70dacff113b215e2df5fbf7660d82d0b237341bfe0d7fc95fb1756678bcf7832db3c21") (:stream-nonce-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"10a77d86da3250cc9029f7a9cbd875fd7b98e49d3b44b30704db499377b2c81ec1b630a01c99732a8886cabfc53f7932798c39fdd88dc91f3227fb82254d93931fbfd6e52f6658f78f388eab44cd6789d79ff5ff5858715376d02b621c6c5960a7cef206369aec97d64d928dbd24f2ee9d485fb270dac86e268ed03401806b81b12fc63490a406") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9a97f65b9b4c721b960a672145fca8d4e32e67f9111ea979ce9c4826806aeee63de9c0da2bd7f91ebcb2639bf989c6251b29bf38d39a9bdce7c55f4b2ac12a39abea8a17646d1a7782f4f2ae5e9f2bdeac1241460ba80bd5beefbf8794988834c4d94bb6c9134d512664c90dd0ecbb218d5a24fffb69ceb42f5efab584be6e100ba7d194437521") (:stream-nonce-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e3be8fdd8beca2e3ea8ef9475b29a6e7003951e1097a5c38d23b7a5fad9f6844b22c97559e2723c7cbbd3fe4fc8d9a0744652a83e72a9c461876af4d7ef1a1178da2b74eef1b6283e7e20166abcae538e9716e4669e2816b6b20c5c356802001cc1403a9a117d12a2669f456366d6ebb0f1246f1265150f793cdb4b253e348ae203d89bc025e80") (:stream-nonce-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4758634c7f6f698426d7af6de18a969ed64814e95cf324f0b3916f017e5621ae2f9b6f3916847c98be755e3542889e94a61c2a557d1e79b406a3a02bc4d7de8f95775a9eb4ec4e1072eae0eb3d90aca1468ca5dc012a812a84b5bc8a71a4518bc7f99f11d0d122a01fd9e6950d33e3efea409ff19970e157a79b1e43e0ebb04ffa5126b117ff94") (:stream-nonce-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"01f191c3a1f2cc6ebed78095a05e062e1228154af6bae80a0e1a61df2ae15fbcc37286440f66780761413f23b0c2c9e4678c628c5e7fb48c6ec1d82d47117d9f27907e707ac826ea2718940e7d6cffff75b55ff21436119f9a69f6b9e54116601df58a012a06725ef5325a30975d8d8746a50c7e44ac468795593935264a154b633bf0883fd528") (:stream-nonce-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cfbb693b22156b797ff75fb8c39a3bf86282ac141596ba3bde028b37a26b0c147f75682dad0b6c96182095ed8f760244df956aa5b944ec87339181deac923e5fb65c371dd0da2d3933991a216de774d22c88336118835f24cb28a602217c6d68077353bbf74acc6674f237d2597530aa24bdf99438b487b3aeaa0800922ffbb1b0db07b11e8727") (:stream-nonce-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c29ba0da9ebebfacdebbdd1d16e5f5987e1cb12e9083d437eaaaa4ba0cdc909e53d052ac387d86acda8d956ba9e6f6543065f6912a7df710b4b57f27809bafe39d5b1687fc2ee3a851cc58e4340d4ef7127b9c42871a5b04f5f11167658fdc2be485f30a4e21a2a8639ea2f2621523c9c9e542cf5dd6f442cb3e04b4f9d3c37a673d7c2a4209a2") (:stream-nonce-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8e65365b2aed59da1f30c8d39ca1a4711f7406c35077e8a0e7e26d721646436c5f88faa36c12556d815213a9e17f9e1d6f13815cee5132c82affa7aef1b4ae541bce90352cb6e8b49a515ba28e185bd3ab51d95454ce2a603c494c7201f299663b614f22d93c5a349caada5ea43287cf4d968cacf64e7f63d53f85f7c406e6354affe4d9e48839") (:stream-nonce-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ff852567eb72687dc56c122d61b2fb2a4fb9e8e8da62313b618d10f8e0da521b176e879cd78e641043f0fa4a22211566429b7c68ec645ff5e44b2505d61a2d7167a831cfc21335b3a8d7ffd30a68e2ac392d7353464c9a09ced54481426cb3e4282ae83e47a36ad6d18488667b37fb3945fe25172dd2d5d6b7366edd2b7a2b2cc11ce6317946fc") (:stream-nonce-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1a19b2f70ff50bbf3e1db010a64106788e36cdf2dacb0e3cb3d046f18d3d6d0ef27e5fc1bdfb7849f0e75e59addcfa17d629a565d58d5875bd0a3f6c617d446c56f29be80b5b04eb51ff3f36613bb56ce05fd3d7a0c98f409698608033a57cd4962251f82e89fe64c0e9a9e711bcf158f4bdbf62a9d1abbbdee6ae6d50224049a1f7b77dea8473") (:stream-nonce-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"03cabb8f5c632706fcd1afecebcebc5f222b33427477c18d5682f2df2ca5a059ce3593f669be764fdd94d025af2f6a7c8916c06a1728424ae8e1d664234efe1c2e3ba628ca43c963da8e750b8d8b7620521d3c33a37a44eae300915425f1aa503d0b18948c078dc6736c81273c7a76c2554137513472b2bc222f51774315f4964312f81f13aee8") (:stream-nonce-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5fb37d0c435c5f6a932b9c368a396fd109241a11575056c317e9632fa7beb39f040cba097f0c5bb3119a781523b980cbbbb0a1c78f085e0f34a6ad6259f1955b324f2ae5e052e6f5d637e73f46cc2a949d38e37ab8e0952e326fc496bddb4f1c122bd2e21363a64884a2c7da194998318ed4492eb78411859a9c2efc1f3d259fa47275ce07d32b") (:stream-nonce-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eebcc82bd97ce194bb556064acf2aac063fd956db43dff6bdd01928447fe89b85d660de091883c84d0df0f3d48e63675bab2850172bb018496c40ab186795eb7a8e63672d7f3876af535d2475eb09b0407e8d0c26686781fbe8366e06b077602ed2efd38094217e4534c4dd72cdba1776f6b056460b2035f21e4ab5344c10eabb747e26574d2ad") (:stream-nonce-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0947ec9d1780f97dbe98e1e4c6030c8d882a117d95d0bb5a7845bf0fa17d1912db0786a6ff807fe5d15efa53e73d68e10df8979c0023dd00256cdb01bc36c81bf18948919f36c3cb72a5ddffd323699179a92d4c2563cf3145bcd7d45d8fc08caca9ce7e0a8bbb10d2a81fd8b0f7448a4f07d4286d1c0a638deb4a667fcccf21ff9dd457a6e1a9") (:stream-nonce-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7229f9da8030c037a68cf8bf4c26711d7a462a05a4dcbdb1df9007c9fccaa102f939e30fb25b451e25e42e0aface25f0b29dedf564c7122eb0694586ad38024f0869abd87350055c60ce2ad7a861191ef9336bf4617754ed784f15eb87fb2b1914a8776a4101ac6e3863eef07630e3b00ccab704afee6d95fad7ebb4861128c479e9cd47a0a875") (:stream-nonce-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"231ce097ec25c62f6f88f3aeac2161d623f49bda15deee488999fe6e03fe90831630186daefabce08b5f99dea9b410f15bd922d40bc35c844208f77655cb36e7c2be87f5eb85fe9c5a9bd89e6ce5d7621ac4ac866d85946665b894db59a1a6f238e6c9365ff52ce51b6121ff0efacc8c49bf48e9dc54dc06b32fde8eb8c68fb11bfd2fa0cbbe6d") (:stream-nonce-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"63a69de8bf56a6ab1b87d5cc06b9e9e10735f8fd3ddf294bcdd8be822bed1788699c63a960260af7cddd8d765236751e7d309f44bd41605047835b62102547c533c45fc78612561e743f8a613817815c28772fda25a8cdc7d20812963a0fded2c7267839a4859e3219bb2181cbf528c90a761bb9e61f85a7847dc2eb6c8515c9f112336f50fa54") (:stream-nonce-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4e297b1d7d88b6fc06fb8a4edfb6cdc3c454c77089f44b4633e91e94e7d78fb0bf8b82ba22421d83c2461996af38ecfcc5b91f0a4c4ebe8147da668cc422af1bbf6acee60765e1481bfe31ec649adabb992ed7e3f78ff404a813429cbf97a5d9746abda2a3475e6edab911b1baa07ee620f68ea286a0f2585f7f311485966838b6edb70a7c5b55") (:stream-nonce-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a2073e7395e244aca2c1ffb7fd5b028edb5fb14ab9aae440baa32a7e86f80f85a9b92252e06d58368baf9afbbce889bbbfad6da50e0c6a42b5b04172ae5ae6ad3bc69bc8c8492956cb3d6a24991576a2fa23936ee6de4742004eac7241d4fd1f8571473620edaa8c75d68dbd7785c3e1f30e6cc56972f1b022ddbafa219e2aed18f3904349de4a") (:stream-nonce-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"28aab59ded8c589fb915488126e4e02eb74f395b42f06be7c8ae55ffb2539c2969562450891bee78c7cb534162321abdb300aaa8c2d9ceffedcf474df8ff6f5f233e81fb0f686a2171bd792448733e327ef6e74a69ace59ac28dd0edd2f8cda4714eae60d52a8237f9bdba0bcb1d1d7c214104aad3b33ef9d9841f44fb02b528ca2521ce999871") (:stream-nonce-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"045ba0cc50a54ee8f15a397b8b5fe0beda6e72bbe75f783137bbfb638e607cb73a08a7543c4187736e284383fa4709634d29c707ae2e95d7de178714fe00dc2bdca62c92899ddd5d718ae8d46af9427cdf0e83c4951d95c8ab1946162dfa0cc7b49a39fab429ea47903edb44914b927fa01eb38ff92e2a318b32d105087470523664bc25249aea") (:stream-nonce-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"110316c65c7ec67cd64f3eb3cb9ff90f70ca61a7caca27caa97e6f5a729075bbd7ca3e2d718d5d6e6785af6d834c6009130a41403cfc3afa0e06d9ad04b962fa5ce950698352c6d4d51f00a68feea38eee6c0500cc1e93db5e44e46ed8f0e145784342d4b8534552e13f16e33b8f999d1af8423aa74e51efc4161a27b8a696c890c13900765c96") (:stream-nonce-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dce9544b7f0cfcde2a7938b53508d2532287e19b64b129248865efc03d6b822d1a29e8705bfae01672a03dcad2f1d1b691d88381871753d838294dd150b626c47800c5ca9177f8bfbcd5de4e5c708389fc02657dd90ca781646de2f358a6f22535136d02da620cbce03a85adccab6c987008c83ee9a8862ff2c42442b984d0f8bfeac64233a952") (:stream-nonce-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b7d7771a42c21f1f72b8d9d0c06f5ae6fe5eba82f69e0dda651541f14aeea547b55826c28f21ba63c5a00cefbff2459cd58ab7f6f0f6adc50be3661397185e9215516c746991b8c87b7c63b2712bd1a3baa82355f84a6553f43c68100bbc1be1a6efed88e89079070359deabb7bb41a4fe4e4c3230813b206b0c041db8405225979e86d55ae73b") (:stream-nonce-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c520a61c7b14ce02cc1ed0f5474280f1cc7e7b113960aae7ff48225f76b3cfe4cdfb92f9ee512a52bb7b9d34cf08921ab5e671167f8bd8466942c54af190cc3f5f94b27311f575b7046260efba1ce4844f101ecc6128609d5d3be58774eafb1948a1e8284ad44ff52c7ed2a2b465c970dd615ed67bbc36b5e40d49ff4f84a73a71ce7a87b177a7") (:stream-nonce-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9f21b2e5a06876df47ab0a010deb60831be735353ee6fbd7b81c9b8523046cc800b349fbdde8aea4e716f6868c6a0ef1ae2335ee9ad81e7e63d70b38421142f3f5aa621c03127b009d2274439117a305b2288fa7e8c7e0a893fce60b91541ba1d780cd00a030b555a8055b67ddfdfc5f24eb796d0e0218c868d9a610381f9de46fdb8c833b2703") (:stream-nonce-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"05f90c7cfd4d79e5029daf2736a7cd293a6379e8836c0b6d85154e090345801931cb88c0d6a89add50f0b7d6e71fa316f02eee833ae5ba650f54628a8fda3d6f7f57e96b3aece4e02159f4b1bcb72f29fc062158326ec02fe605aca4609593ececfe1707f3eb5ba2668510a3b65a4e753352f0e53b06eb667f8247824ab8d473214759b325bc08") (:stream-nonce-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d2653e3b01964f08fa5d2bb82a841fdc3f1b531e9394c91e4947a311b76529eeba9d3574883f5a86301ea0f055f2ebf5793299a267726e1717f33cb8314f6b44e17c540ec3f6bfcdbbe000685f1c723c4f93a8a78804d2e6b4b292499a129e46315182092d0826a28a219f3fa61ff7d5a4e9fd20ced13d79a33a18ae3731b3e35dd2bc0d7635d9") (:stream-nonce-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"48fa1ca3848ab72cc254665823d4f0eaeac794010c05ad6149f4c7b25c09f4bbccffc1ef9b7c23421f728fe61ffa1e5b978b4581a73a81cd51203714a4319e4d5493f11497dcec8b4f409082ac64e2e276dcaaf327361518d409cbea92f69524b41d493947fe9f0c4cb8672a12f852cdcc6c214f5ca5d69c319bcccca59211dd27026eca3b9ab5") (:stream-nonce-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3d025a4d1f4fa041165eb1e21aeb3a20e35c96e815978138e57bc20712ea18e7d5a0feb24f472e581ea7ac6fd31a0a5a1ed4323603f57eb1bc50754bf46227dd7e0aba194ab3108936217ce78427e91fae519311bccf27fa11e97223484f21f5f06f76ecc3870671ca4da6815cef6cec5aa4464dc249afe5475fd21403bbd115261c2feeed3d65") (:stream-nonce-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"18dd36ae9cc764ab8e0ca3121b8351fa62ffca6228bc20400c92d31e10b663959bd1b075e8fbbbf02d2940b6ce2eaefa9e1875ade7b2ac9d90bf6bec2760d4129b5db0f98ff72304bf1ec9a0272643bebfc6201d0169fd0924bcf8cc14b54b16c54d05fec41e1925689dbca47dca52056e065535982ac9f45fd3410f3cbab1892ea969663026a8") (:stream-nonce-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a374c1f86586b0d5a121e1f734ee70cc7072284b322bf61f88336ebe84b53219f4d1fee2c5eecc4a421ba8aea9d108e721a7a82dd979f2559bb0e45cc88c8780e69e73ed75d055d12646c1a2a04d5c1b01e5c5f4fa67c5a27f6735ab8aa989df6100adf9e7ccc89d50757019d3ed840b5b307299dedb41e39f8fd47282d5ceb99d940ee28cb69a") (:stream-nonce-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"721dfde792cafb9d6951eac5ee3c8d2a5b8fa88fcc4eec75aa3859dca0700fddc1c4bd1c2ace9770b652a2f69295d14161ffaf2461f808f5a36896c97533341d1ee2986819609e5d4be6de519f6f654dee7e4307d8a670360086b1de6dbd4e675234b1614fc6635dd9d0fae0cd0d0e408f0d47b451b49cf4879b7e88b7b67c58901950dfb3b6a0") (:stream-nonce-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bce0e4eaffc5938f48acd80a9422912cfd6809cca6b261ad51a785334b91e33113a529063861404d4812883e90438576f78d6c3b94f316bd9e28bad74df57a1843c0b2929775fb58d76ff995681b394ad0147bb9ccf1973e000ddce68b8bb53c8a8808319b9c0b85d5db5da4d4fb201aa08bf1c2dd7a3c0242d5cc45aede0689ab3288deabfa90") (:stream-nonce-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"317d791ffc3244d546d67610c5ed433513edd736097c4ae8632d86db9ed12c72c8ee40b11ca832c144035d56a52f1379d796f552e9a1de775e64268e5558f042d27787d412c3c06c137a33fac1b525775247b14f502d09c0d6bb34088f1d96a3e1fb713f8e484579767c31231e922fb737be05c43600c81a8374b9a06a60dbb088c4ef03b62b82") (:stream-nonce-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b18cfba23f81884fbfea037648b1715cefaef1d8cd5c98957353e82b838fe332672b3d7c2905979698f6f6d98eaae8f98da16ef393cb150228fe6438440c57592fd7d21e0fdd37af01026fdc08ad1ade0d29ca157f2cbc958759169ef79076c893e4294a86a165e001a4e1172acff52f50f86c5cb5c9a6fd053a61ccf93fdbce01ec361d9971c5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3da3ff98ebb6054d93052181b58a377a66fee8ffb6510253f817e7088f54d6f7f59d5a2d42c5495cf20be539bc55247a3118858876ae15718bda3378361f9ae34b6d378df343650b4cc3355a0355e50dd9b5d3fa36df9507a913218182199467f9500bd2bc52f6c2acf25aacd62015354bebea3d2db74c0e056b7258eda9fb237f7ce671d70366") (:stream-nonce-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1931dee53a4bb873ca7bff1b10d55249541e087c3f9b5028dda83d273665aecceaf37bfaff6c49c839ee18da721a536956e05d61f4c977647f2391c571268b5de36fe9716d45a019a24d8de42038d8745999d6804a6a8527604396929930a203a2205d6ee010e36fc454ed176cf7fb95916dafda87a853aff41ef5fae792f89d0660397290e8d5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ee7f56813e8f606501a50b845ec5d2ec72590785656c2a56101846cc1e60741c2efcd51611172f1fb80b1d02f836b93817f631bb3d3e5198db83fb008b228cee57a065fd2ffc1b29d658d20f80df740fb665cf024f318582b08ac4398f49ac67d182d40b1d52f9597a87d5c7a1bddff161bad7383e80a0aa570b1864b6f62867188090cfebeec0") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8fb79eda0cbb10644a1703f0876ecec7453049569e6877f2271b6df27b39193b7b85e55325cecd66102fa16c8fb17eb28842b7c2f4f3cf480f11b3d4e0595b4ed37253a2560249b9e496a46387833f397f85ad9d2b60d5300996cad520fa7202a22ac53e48433b14918740a2a207ad0dbb111f81eb15d8a27ce124ee4cf03034a7c3d5b67f49e1") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f9975f708a8ee2a671093806629a6afbf1bde5b282f05d7ada9ace82cc16724a3b6c067d51ff9a40f5ff6fa4cced81341fe552f51d54e3290b6a85aba1622d6dd5f84556cfd8ac6ced9d7b4735ed8e4b2456ee57935c5d10cf04d68011a143c0ca9db7133f0dacb81d12455887ea363b39b5b24c79b7ca8cf0ea70bb1dfbf81812b1f4c79c7bda") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9367fda2a9531fe50e7411b885ca223e5157a6890dd72803bc1b64dca450c5ebb9876e8d92dd50dcc087eb57d9e05549e5b46bcd8f0d75edc6af1d32db89481a3d6ffda15a757f88cc0eeca026961463628acab3ad447605ba5009c90aa096f2156bd831bb642e2fdb4e08abb93dd398c5ae42db72e7862137978d70e1aa4277353391d389268c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dd24388d80b80d3bf6a8027a56ee0d613c7af75796e3639213317752fd0572923beccd2046a4f5c86a6535380c08128c90ebf12e7a2c8a7de6b044602cac31698b09eee510c838ed15e154ac1ac4a6dd446678a9a10e9ec3d36579d8cb4ec7e7cd8aa3abda2902150a3fc1b03639c8cda76d1246a7e6002f1798723d57df2df662c06f32337594") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2591af4d4b7e4d6227959b7d146ba286b617a69169a62534e45ec197b010b36c50ed53357ae2100bcc5a1b99742059f9b54a22fc82a1e72df282b8b85e41b6829530acbf31da663087ec12cfc29bef7f6021ecb4c5e5eb7bdd998f75b277085c7264ac262e44d97ae85e7ea9d770581ab35b577a73f0147c311e7040b4a528217ff983398922bf") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b0a39bfcb11c10beecd1adcc09c568bddda221d74b09c0da290428850c46d6116e86bbd5dc577cd87bf78637a470d266ce67dabdb18b182f88f82d7527b36120b7cc6ea5b23a44e9efe663ab9dbc11c63818192d59ca5eb0fa26f1ec11805bf471d2e7d9b41934fb3a5ff2ccbfa4bc2752c845ef7a905ed099f28fdd25257ab411d3357d4f7168") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"78dee08e6c1c517f6e7efd36f84c8b0484ba5c972af3b8ea54cbd405ba6f4ddd09c15966df67246b4ec0ffa082080634ac78c925b11b3caab877332d251e4244211b829384ed079ecb712a0c15dadcaa8def5763dc7f9780049eccc5fa6f297d07deb9d6f2ee9d9a0b88f318f2c6946024a2c002bb2c2b41d07e13039395fe4512772b083697a2") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"20ac7b62c412eb92c3d412667cd1d593c4fafe9b5bb31e2c4996b1be01acd41f923c691018752311295c970fcb0823603504b7471551c69fdea361d1501ce0cd43ba508cbc18d1b8cb29c0862119051a2ec3947e205e9792c0d09e707079c293831b1596462f9389354773dee3c5c87c762bc857ecab9b105ca32595e222e5763014fb31bb973c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"858839ef2e43cb1924da19f8c6e933a474b2b44ba0711bd592ab2d16b0dba220e560ae3ebe699d3f8fb8ea8def9926741f72f58a6d5a723b27fc134763c2742fb114d8e296b7e92e1d7490ed3f07a24d94c19dd757d99e7939505c6cebcf0dd6b981155bbed2a90c3180f6c4cbc6a92bc9b04fa94d8611cbf6e42c2c4cebc6e134bcfe04cdec10") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"577d157d8c2901b6e68ce4335f4e113fa2acd5a8a01aaff49beece94317457b12fdb517fceef0d440c6911cfc2df4de05f7a7a2d8d2a2788b8bbf963d6677936cf4c75fe17e4792aaae11877c581735f1a544e1d775d69c4091f11be406033bbc04b95923ab4dc58dacbeb7c30d59eb2dc466f1b66466486004a91f454ad0de24b652344f61d6e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"18f49ca069a34134ed3aa06f24b6856854c20b407d274ec817c4ca35722fc765e532fc1202f2371bbfc397a4de90e291361d0ee3bcbd5140aa08e65c521d8f23b908b8bf53473861adeab3e26c834871ec1cf0ddfd4a53b6795d3bc6dd51f9e2860b38a04f57adfef923c0eabb9e4b4ba0c68bcdaf9dad29c24857354cc308fb6c7d2aac7b8d4c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"91a6930a7d6395f780d8ba2cec570615ee9ba9b3804dd692c3985c1292e62ba939a30fda2ac876d169ee1565be2a74b08900c5dd434802ceb055ff9d0cfbfc2ead150da8e841f076e359e21807f50ed1d074a870d3a7012382806c53e37aa7a14ee852f700770d3371bcebac2826e624cf0eb04207467837d96d7b2ed78b3bdf90ee7007f7cc9c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"68d63a2ed9f7996915b3e1693bc82a19962d125b150065e55caa711582556c7a08e3bd0639ee609627816fd5ed2b29702fb0321912660d475edf48b648793423ef40536415c36a82777aa7604884082e7ddbc54c1fba717940a2b5232611160857511a94659204a6a0b68de29c19ab70b614c8b4bb7bb8198bdc70f0840c1f8fef37a98d27b186") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"546ca200717e23724b9d8057de79115de9ce292bc8fe96feb309a9ba3a84f2381550681c225638b7859ddb3b6dc74bcb8f5bc65c297cd7c508529640085c87b8f8b0a6e2acdaca8a2fc4004a8848c19e5b382723960e2202f53105c802d5bea1f37af610f288fc30acf8069c44235a3501744a8cb0228434a29fc7d9f948caa217a3ae7083549e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f290a9592d12c8ff2c5e6a5b697844846e10591ff1bb3dfd6e33a389168ef1070e205d01e2f16aebc5b2acbca353e78cf8851a50558dd296ebf7d92c5f8957e4608020d5f6582c28b5ec968b377bee9c31daee7c7f7eccf4e473bfa982230e850be4c28cb57290f517bae7afe8e1b42619e12a65ed62f785c5502c8729fbcb5503ba90bb7b91fd") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"df6457bd040def99301b0b2d45a20674b9fbffc3ec22c867de1ec685a470072dab2bec461e73384a4756f22ed113a31dc6c3e823f032accc209e98c058f95fce75225a34fbcb8131c3768cee68c0cc45ca0696d63fbdfe7f69a084487fb2febd872d0507f929d22c155b12f69d4c2b9a4e8ecd9f49de5e8d889288a32e0ffd936d200dcd5a31fc") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"066ddc44a21a9585ae3b882c4835bc6a9876bf8c9f0027e4f776bed9a6d03cf46b43c9b30c7203c0a028803c50e7925f69825060ff0fcbc71b2762c27c026e6ee8a33bdd532572a4cf2cc29f031d527d9e04f5adb6dc2870a4f742499cbdbf374a54a8d2323ab44bff8fa33889be8b365fe52ec9b55291194a324b3a85d3ebc20f70786dc575ce") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1b79759543ac0af68a72f469659b15c14f8dfa3dea8ec58a6d22c720e339b7c9c18a9110ae89ee0e9f882653ce1b71d64382aeb651dcaabee9a64e2f1a87f5a07c16dee436085b663dd4411c2d2af710cd7f77e3aca5bcfde36b22447760786ca0346fb509563c99290276694c0ac766d232004789a28f1b6d3cf50b3ad3ac07a9bb17e175be74") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9712d090441f8accd55cce9277b1ec8e963c9b77e2e1b8850f33db844a6730d134acba7f227f076166d7adf4502b8c92c410fbaeac5d7fd9f182ac6073107c1d7bc32e3c8dbd0e54f2aa6d29f0093d36faa040927ed2d863c2a47abecb9797def0ff8cf3813c7c00effb9c8f695651cf6cb327f2fcfa2fe3d37d7862d1b9260ceb88ea4e5fc99a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"23fb3608e11360461db4b755abb550bbe86285bcef33bd3b90a83f1f1b5b55050b922218851e475045c012361f68d2fe2ec4f2a63d9dbbc2f0ce48d7194e58135dda359e74dbfc367b98f8b75ceba4f78ebf3785b10ed66f9750ce5dd1a6d483a08ab4db27970340fd3620ae8e36a90baa5a2f63aa9eb57959112dbba5d5dc1d6d12913807f578") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"899f5de6ae015cfef1ed6f7e56cf92032d6deec61e911048ef670b36ce4d2c0b2b27529202acd1fbf4885898a75e57d4b3305c37068ff55abe3ed6375f7da7251b0266075f5d62ced18dc4f91fd1cacad24831f3ec2a5bf11753d9afd66790a6a30417aa59256f3c80c543425c540c9a7b265aa7f6ad5aaf71360d0f7ca8d5f7f971e43ea5771a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ee14a77396bc82248519af9b0cb3aa77f99fe37083b2c01a60632317313875a2cfb72c6e862f8898858d1bc40c228e6b81d16b30e885b3bcdeaacfcc781558bf697f4d4e1dc9203d6f8dd2078f54d810ae80df9005630bdac47adce66d50dde46508cf7bb394910e3e4da8cd8abf3a5059d284b4757e597c7764757ef966056512e02244f37a94") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8bb3d52970b9cbe559359da16e0a160e5e408246f6e84c11cd48970f932c4d6ee7b6131ee42331fd67abc9aad40936607ccbb2ff90aeae63efa7a3970a29d6ad3330f593ad81326ad2ab250745a82ed7ac831190730daa53c493791e63ae0b54924b2c37e6d4e7b3aa13d45839c018d12ff7098f182d09d092565a80e2a39820867bea92036cff") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3b96da6d09dab960107cca06b6455a0d057eb54193c51c71b3c57493633d8a28c0d9db96772fef6aabe33bd88e59836aff29115950a3f55c8cc0d31a4c0729c98a7af425a854471fd87f0560ce7bfab117b0b493c997b88f625350f4f8e5400ee892b1529a7a4d27619d9f9537bca14524500f1bae771347820212fa4118a5bf43b797be47db9e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c0784e70beccb536e93029b3d719eff45821fbfed10ecbba219c9ac374806c984128f10e6340d20e181938d96fd08e04574ca727a15dc545a1b39a4b4306271f713c18d08db173ab5035e311a6eacba501f5aea71973a655fb6e25542aa0074fedf0945fa358aacfaedde7586ad7ebf64757ae58223d45e890c6e238477de48ef26042b29431ac") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c70190dadb38119bb2845ffa1afc300cb64be0ae662e3541dd199b29470fa238f8c7ebd469b2bb7792fd8ca9966bffc5a001715d7c43eed385eb2a1e466595b2a0b9d46cbc65ac0c58ca17d8c7c8eb5de6c0e097c727f38b47537cac7c1b20aae53fd16c22693fd0982b46ba0be462d591895887898ce7b8f35ef50edf622fab80fbe341515ccf") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e48c2f264bf9e8374b78fb652baff1e33ecb4b1c635d76a64ecfc4bde00ee5c877e1094d6480ca382815cccd5cc3677046e801c29a860eb032420dcaeebc36f431295417b5869382a50b9b18f003025d8cf7e3f7416689e8e603c7f455e5c70bb706af71642cd1ebb682118539c79f15dd67fe6b1b454018b8c9ac972810e1276f20d1ae10fb37") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b66c1e4446dd9557e578e223b0b768017b23b267bb0234ae4626bf443f219776436fb19fd0e8866fcd0de9a9538f4a09ca9ac0732e30bcf98e4f13e4b9e201d9a7d9208c0a870e7b67af0204a7c885048c32147e4099198ac05347d9dbf53ee1dcac7311863cb4e316f8b5f29380a92c5aa8b2131851d14d69d7ee4abf9c4f56d7da4f9f5470fd") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4888247e70e038617bee66c3e0e29d5866229ed482dcae97194625e7cd5c3f3dec143d5a0c7b454d3a009a16ea7a7e6570fb47c0e2c85a2dc0938ff793cc1ce1f38e38a9c60dcaa3a2464bff44d9a85e498e26e673c1e8116f9bd56c215e2622c1ae427708c9b39a24615ac968b7b45ae394d6d570fd9d74d62a0701f1a4230d2762b094c63045") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1a643637b9a9d868f66237163e2c7d976cedc2ed0e18c98916614c6c0d435b448105b355ae1937a3f718733ce15262316fa3243a27c9e93d29745c1b4de6c17bf882c528c0e85ea5d1868f557565c543e18cb9080300bc98b407254ae64236d14fd7c75c83f485f694b2b4a9fcaa0f4b093d2d548626d33252ef1b3ce6fcfa25f27c3b7da053e5") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c77e800c6e0a0915eea59b3a220e1bfd5cea221af7530c146d6923cc06e43adf4f1db23281cad37ca4b8cbb48a87d60a22be974d4944b8b0cdc06bece3667cd65209debd70bc3b85ed88ec38191700d340a14219a1d64f29aca9d48ef84e5062933f71026037aa8abf92c231d44039047e00cf306c6c4396cf9945c54ea329f9e1cc2479218f6a") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"94b7b07e184bc24a0904290b2601fc3ac70bead7b1fc3294360ed4ef168134530b4d1f3f28a3c3b248b2e914a8dcbd5326a240c9bb361a8a93d023725bdcd4e3eb52497c325250937436a33ac56aad83f7d47f204bc4eed8dc102168eea3a36154077a2652b4da0b39b186488a134b3901e45c65970e9f9fc6e48d7e0409867dadba297cc16a85") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d8f8cf2d54c73980c6525696ca1461a72488d5344a5dc88e7b7b4e9be340eb90865d7836104e6423886d84eae17dcb00a05c4265216964715b0e565d3116e6bad4a4bd17ce6e106eb37b9bf340ce109a7baf50e832a583f2bf3497ec21f265ebc8b83228aae17bd9df304099fbcead6882e8252127596db178daca31be8d0fed47ec0b330063ba") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2e6c8be7dd335292ee9152641b0e4efb43d27434e4be70eac4cafae5c38b2e5b06e70b9966f4edd9b4c4589e18e61f05b78e7849b6496f33e2fca3fc8360824c42684e67de3571ef2bc5755949eb42b133331014f7d1383ec32ed54400ba8a34c664036064e364ffcaacfabe5666e33e44624964493549a70a35659642652c6c9bf171a2fa8733") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"61e82d85af20e65dc82518fc37eb30b3bd7ce293d5dd367dcc2e078d3ceff4ab1a2582ad89016e56028cdebcc42e9f7e99eb6d29d7954b04b60e1f9511375ff8a52fffae879937bafbb583d02e211f6b6064408078cde7896512ada6593238e366b37f4b3b3ef448cfada7d805a5cec2322cb3572aaa5bf7f75520594c934bd61961e129f66cef") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e7b91d58c4e691b918376c1eac982aa2630aa06d7671900057e75319dc7bad22aaba883d74df344b5e68357d8552afa7fd054605579ba92ef1317e03e4fe77e35829c714ddc3fd93317debe5169fede1ff8873828a8e6cd00157d781e7803dfaaba914c77dd782a0e3959a14352c885ea854a0b058b2a90846c3fb37e82084243c70de2d5e2cab") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b197e91bae534cc168abe570495216211924653326e712e39ff11107d70ad362c97cd7b1aa64ba07345737a56419561e877049f1cc51733a26a0293a09df3115b97c2abaf7bf9330834ee1758286ef1efcdf2d4e41d5ac2c3e842521adf74c24f4b0d1ddcc7e3b4005bad172bd057362bd70c4c1458407434f378b55308ae30f56706efd5614e7") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c479970ea6535cf907890e328d955f508ea530fe1d1406ccc67eec8793bab5010d5f1038227967f15dddc1afc210ae2811fde28e995b039914202a828254770bcddff17e129ec2f1925d66b1df2cb71b72f6b792eb6a4a6facc906c6b7d2605a53fb3bcba6183bbad1513c4a8869fc7dcf0fc3d20dc1aff75a575261f68069bd2674ac909c3579") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3f4b4ecfcee736695e166f55d056ee8208a56d973b97ce8a43756a7c0583e924bc80ab16e96ebc705aa22d7747e38de14c02e89e27e41a106a87ddfe63252de98246ce785e83b479ab212c2573c45145b03069a0480806737ed912430209de205d21fe99f5b1bf8b7203af4c90a5f3e2a1885a45a4b3080a59967a306b6730cb413dfee86836eb") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3b93e4db6075df2315c36fd40b34ebbcbda3f50dc3322705c5da6a9e90cf99def990202814fa48ad0c72febba546d0874bdc4e87a7418417ec2eea48147b6664fd1331f6b0ca488ca0f4e172de72568a607344b42ceca00fcae4b213d1daeef1e2feaaaf7d89104a5febbb77315e3bffb7e4f27645019f5f37d5b1b00d5600908505f8b1f68d58") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c0f37deca63bcc066a6ce18c5f100e1f4f5ab560bccaaca2df1f5a295bd4783f7372a5dbcdaec3cbada6451565da9636d25b1b59783158a7d11ea7c3260ce73dfe182f79994b2aa42a72582fab13559a2e3262dc1fb4f2becc4fc2eb67bfa612bc88dcc8d21fb6963c78963b27943cfeea802209dd257f415760723b9c80413d90801b1fda9686") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8a3a7019ce1e45b028f50718852133e272351eca59caa9d5d6856550281a9b170ace298ddfd89fc19959e60a883bb20bead49ff15acec0542491c7746b8ae520e9d65cf491c1a7dce512766cae92e425ef0f715e4a39a6801062914060f04512e9d60daacac41f2a57380a1f095e301d6a06c5487e24945c1d6da44a3e8f463e69e92b282db82c") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a4d22a65e376e91f8e078b3b03891120bf63f93df6b305214cd746271d2d6d724d18c0c6cff75428e048ee1d7fe484d8237f9910d9dff0be39d3ab7a05c8298de0cc945578f9ba4b67497e0f55a0f30b5abe4f4d81da023337a728bda2f762633dcecf1562bdd43d37501753647d67c36dc57319de959a96374bb52cec1663da85b1ce37fba841") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2aba3dc45b4947007b14c851cd694456b303ad59a465662803006705673d6c3e29f1d3510dfc0405463c03414e0e07e359f1f1816c68b2434a19d3eee0464873a67d139ca0645f425e3b1f82d6eb994a60c803f5d69bbd73a64557f767e592a35df54e8446cd3d7f37da921e0af8d11ab855c2afb07a1db87e3858d9b4303b1ff57a341b62aa8f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c8a37b5d0a5cc2b51e8b4c510f5ca0838c8419bc2734ab88c2654290bcb154173531f314af57f3be3b5006da371ece272afa1b5dbdd1100a1007cd7cf67be39c181fb1433c10d6c710a6a103c7582747eff153a10b1b57746f75d9af33bfb54cf9561662ff7c25be7505f2c5161037997f93d8db251f39c1bca99a900cc64e808a23cceb78cbb5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f28343bcf4c946fc95dcaaed9da10b277e573fc8ebc8cee246fddc533d29c2ea05451ed9a821c4161ee0afa32ec0fca0dad124b702da9248b3d2aa64489c9d26f0b0b13e2728db4218195cf404f23ea0f42f9ce083c8937e91cce6d3f3cfc787fac1012ce7a8e07dad4c8c510a373fe16b693875e43041261f5dab747af20626401e6245099a44") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"df539c50f729ffded1620c385c08be9577b2f8447035e725a2356d75d35a749f07c7b1101d4a2ebd0ae9d3cee05019e2cef1f8ae30fd050e4d7ba5be928e39ac0e41dae9248d0d82867d8f7c565244a0a81fe7a12f8b98b1b87ccb1d1245d406c5eb62960e0daeb8afe48314cc6a243783021b56678e8f4eb22e2c4db91731e213a3a213c9bddb") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"621f3014e0adc8022868c3d9070bc49e48bc6b504aff11cb17957f0ebfb7612f7fcb67c60a2fbd7a4bd7c312e8f50af3ca7520821d73db47189dad557c436ddc1c67bf399d735eb4649597d33d48f0f675b29b1d52e4d8aaf85a17e917cba49879082cb4e7bf01d12826b5ce4b992b153ef5461ea9887a96a884b3f279be7165e236c2afd50d22") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"37696cf82c6ae5f6f7c7229ce3a7e2b782e93ce3a6f625468e2ff2c2abb899a3d0b0ca34ef2d279d6590a3ecf381710acd2779993ee6bf00603b8622643080b3d56f6edaa89cd65c0931d146d1bf3876cc08951315d4e6c6d0b42640633bf7cd0a5764e742c687547b7be85d616148c4c19785a9c4c97699a9b64406ada18ee1337bd895883c3e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d2db1a5cf1c1acdbe81a7a4340ef53435e7f4b1a50523f8d283dcf851d696e60f2de7456181b8410d462ba6050f061f21c787fc12434af58bf2c59ca9077f3b05b4adf89ce2c2ffc67f0e345e8b3b375a09571a1293994ca452fbdcb10b6be9f8ef9b2010a5a0ab76b9d708e4bd62fcd2e404875e9e221450bc9b6b566bc9a595a7f6a0ad90ac5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"88308806e37cee12745bf2b2660d2a602ea7c719253ef76b937fd6b921ab5083fd74043310582a48c536acc11caa8e98e48d8d1a1062615fbfb5e95951be57251ad6e1e958edcf7235c38dc686346abd186c00fe8d3d7185d362c2b7569127db51dcbdccf9f5098a60afd2bfbe9b7caf31ff90cf4fbe94aa5498aaa5c0b4f1b5ad7238e2872fb0") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"11493cf7e037bd62977304317057912fb88ce29f416cd218e92d8ac9e22067464daf8f10f4f3fc1d869f4962b67accace7204c0cf39d82400577e733923c59e94cfa5cd2809345cede091d0d271ba72f3d12b9f9121580d21e10efaf4b5f968296ac738972face766a823c627420e417c17614b37bd7ab235a9e5870b32dd49bc4d79b396d47d6") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b55d0fb3907cd0aa7cd297d8a87023c9e6cdf4b17e081c5df26fef23c537fd9d1eb72d5e0e06e82a9441cf24eddc5151f5755ff430084207a35c89a48bbe9f5e1f88872690fd05edfda6eff590d247e5793c1f649f007b2692d5295f1accbb7409eff43ff79159adacfa3deaab872c0445e3fb26946a8e6955236a59b6d83892032c7fa4668a91") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f0e381d61de6eac34d3b83774381b2c3e2355916978bc32fbf3c18d16164516d88beb4f40b5ec55d371f5a4373ffe088b941e3ab5c6fcaa17f4ef89c7103dde9936be9b1291e04188b60afc76361e9d94bfdffe3738233d76ccca7abf134bd1aff4504ece88717ca51bbb5de1c4fb3a7bf68cf86cf7faed839b40cc102cce69838fdf12fd0d855") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eeb4004d405f15162759f9448d51c32f7afb13a0e08216a60b31b98ff335710a9099f9edc1ba283a58dfd47204c3e35e604e8a4fb69e53d6e8d49881174eacdfa8e717bc3314858213c278dcd2862d020c0ea1087cdc7b199fb176d73730d1eaf1263b6119d55c21e5d42173929a30dd31b8994c3ce5fdb7042b6fa1129f4727f3bff9ae325a3d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"98313a9a6ada90a82bcd4ac37dd75a64755d214d7dcedfe59efad73b2bf0c9c0beb1ff8ce03a5d2e8a64b411fc24ad9cefa2b8c7c5cda4ca6e425e350d53d1913d72071aac827fa49dc21fae13d0b7ef0bc6e6c5a7623c6e5643ccb3a42f304c1ebc2e3ae13b5fec469424eefe8aa6f7e11c63c1d22036242fc05a2558bc5bfbb88fcc8adef398") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3b6c7a3611e15f78cdc5fccf2e235af2aa351087f033321d4dca262ee14bcebeb00d7e7d0c70ed474fd366a602a14bcb2f7c402c09f3a922badd3e2ee59f3e500547927fd436858b61e0f147b05f126283d388fc70fcad61d56c555228c916daf628ee9a0e101f8da889af286a6fb89015d7d07caa17b3a330129f9d51ef31b098d2e5ac07cb5c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9e2e4d806bd940849441b1a78d56d2a70d618f2f74ff10b4d3a6dd3627050d74ae046998151694c4cf0e250016e7de916a4a2d7ce1107a752f2eb8d9cbb3cd8fb94fe7b9890c908de7351ba1f3a0339757b7d4c00572797d870aa770e6c01964f43ba3b0adfe8b9aaca11a3c23a52d727bd86c49261cde64ed9623c55ac94ba726d79e9d444064") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9a183a89c07dd5caa46d63c7b39f0c4fb0772c0b6d3d609cb468f49ba48200d5c0c0f12e8ffdef51de17a6d3ffe6715614bfc66519f3fa9a68ad58071dcf8acf76bd4d43799b2801316a59f7c961eb29c36bc8f7f70161c8f8cf3f3481a345f9dc7a1377e9ae16f12bdaf6ae13ec1d4f1acee48e7ca918e00304998f3869b8399d78f3f3184634") ironclad_0.33.0/testing/test-vectors/salsa20-12.testvec0000664000175000017500000024602412221014735017644 0ustar00(:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cfdc41f0c6e0a38abf71d5c7e8ec7b5d5eb266f8f0a55401426d5d636a68c1adf02ced40350a1edcbcfcc342ab7c4d68e08d9ce2d03ffffdf4c7f5b95fdf95a7eac84ef61235047f448ada16b681320ff600c8543ae8e00b651457da7a1dd463c03a51e7f058e9bb14eac4842bd4056225d7cf475496ce2e9f3621b20125c9cd11c63d7c504bcd") (:stream-nonce-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fc207dbfc76c5e1774961e7a5aad09069b2225ac1ce0fe7a0ce77003e7e5bdf8b31af821000813e6c56b8c1771d6ee7039b2fbd0a68e8ad70a3944b67793789777087c2da45bb9c1a0b547a616ff118e0091d55139304b0fce4336be8343cc95b40593f14dc9ffa80080f7602b0e99e433e06b25de3a50a33aa64d50a367a21ace660ce74d2071") (:stream-nonce-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ddc79aa848777639489b1c383b9e89e2d8b6d7d2bf5f2718b8a9aaf4e61f5b76d4e37345dbaa62d0a6898af6cd383424e7d9d00e23ca4252d6b336b113ba4a1017c1558a47b465193ea0d7a05e5e0d3e4515c652df59917985ff0a40c6dbb4a991ec58c407588138d452f434bddaeb9754546df7fa3f3faf98758a56c274c2f8b0634522cf157a") (:stream-nonce-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6c11a3f95fec7f48d9c16f93cc901eec8d347bea4c64b63f3e1cd88df4f03a595acc0500efc616dcfeba3e839f0f72c5a54a0801b90c864eeaa7f48cf37dc36554af256ef287be7dc4919f52d739dee205eea8dfce58261889430370d428fbe040ebc030c371253a31354d4b4bc615238b891f8a68726613b4ddd4b3ffbc58804bc22bde9a5a03") (:stream-nonce-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5c5bfb7d7879a8cb92271e120c8f710bb88221e484f78e065511a43ac79f694284829a3ca48f09b3b412123913ff6fe54c109a074af686e51ecc610249d54ff844024d12156935b57e0a695af265476cdbc6a57d8fc3bbd1520a3c093b81d8c3cae91a3dbd1d02428d3931d7e51726a4344552889a8f0bf850bb7e0076f8c0ddd01bd03c7d36eb") (:stream-nonce-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e27e394cc6b72eb535fd92d1bdf9f5d624671d5bfc9ef233f6b51f12bf338ae172dc8b7f4ce899bd5ff85b0546f022deb91fea1abac32ee1f7b671e7d6dbf9d6daf59b402482b681f714c5d07fe5e7507ffe1fd27de0ffe05ed9f81916cf9f957e7f78d3bbdd1f8552fcaf6a3685376f2082d13aafa9d80660930df9cbcc7b917ddf1fafed13f3") (:stream-nonce-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e81b59467f0f390c6e08a287bc05b1d6bff81f5c6c00474f5029e03829532e1dae125d36e79369030d3d9555e1a507682460ee2dc833ccbe7aa6a5177710920996feb154b7c36a0babd38e06b4f68f7a0f4f8d211a8cd5ec3e2169c42c35eba3d7bc88d02b925c1e78542288ee9ff2666c034f510a69f9b7d85d670d2c349a7e7a44c866a22722") (:stream-nonce-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7099ae9d9cb1ab463f1386999890eede6b02d8d6679bab095546a93a3b3718cf105a2bfc94472d8afde35db1a033063bf723639c2031dceb76641b40d467f4407603f7100386447c1a6528f49ad54d37370cba3ecf4c390b4af1f6240ca84640e2f26c904cf8e8ca16e841f32db70d495d8a5f362ff1810057ef31d4c9188f26b80b0a7aa093d2") (:stream-nonce-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fb6bd50f88614ee55eb18124d434b4260c39a482d47ca9df71883354ef9dce19043bdd8ff41beac80d4c19d0b0b424bce58d6d64a796e2137aa04ab7cab2d9b12ee9b37d68a965ba8ad0823c45966cf8fe9948890fab47a724195d32cdbacf7b47c5daa786190926069edb002eb76cdd7c6c2a208180ebd309cba710904c1c9354414eaa377ae6") (:stream-nonce-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9bc4531dbb1b3c93379c752ffe09efed7d6df88aca380d1c5c632bbd8e6ef665fecaee6514e3bf29e900a60247f2a8afb07987d38e4b05a3b8fcd99db9aa583a219068fd39f9a00e06e84d1a5ba719c46a2da1e00c7bfbe6471088d9b2e3caf57c8a01428059ee3700042f1fcd1d7c5c2346c2f14178442d63fe981268538b43c0510e4300d126") (:stream-nonce-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9853aa7b7e1d59f6965b9344f4fb46fe512d7375530f29e1145af6e78eba7275e38f66a780a07508bd7b925c99055a97deaee5e624e8d9de316b70a5d1b80d538c0abe924d3c185bc77777745056044a06c8f9b2f56d827638a8ea84d0a5e9911a829580dce8d8c7f8b268a980278e9274f17278b5fd4da64f78bf4fdc35e66c3f0de1d6e78f30") (:stream-nonce-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2c05d37ac04089bd756d9dc8c6b89e60980ae502130b169579aad1c8273d0f2dd8433b8939c4a810ab0a9e55e8e84918683d140575d8652d3d427f1a6d6b30c1466a2e972dfab858ee2f818ad2f3d8b94a4bbb4eb5569a24983fed4461ff1f531a6a227b65cbc7763370447c8c7aed12bb437d91ebaa729721fc621bd9133679810b0d39dc100c") (:stream-nonce-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fe2b90336d89ede44eb48116eaa3ac5b230c5c340fb4660dd2e0c06bd317112d81faa7dbcdb380abac5dbf93061833b71af04c3c3035c75cac42a0ef2addbf5376cdfc99556025c72bb0643803c8ab51c03876eb61b04aaed5e11bd65b4f485413c21f1db679b2acfddf8e7b9c84c3ea4ed04477d4200233f615db7c392d47a8eb4cf2fad7b315") (:stream-nonce-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2583bcd1346638cb3f4afb128473b79157f83aea38ed80572269480ab4a5540d026b0132eb22b8f51e83269d104d217fa07b82d75c1b78a0a958fdc38f15d6b949e2345d5f0734d0310c5fbfd35ad2b6f6360d02ef680536b3b1d70e7cf0b4e840071cd768c2e1bf009fab0a309d995e3d566652c3340a203c68565f12d5b8ef5a862b55427822") (:stream-nonce-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0a2172125b88c3eb438ae305ce6b95579fe534c1235b76cece16b471b3863b0458d09e455f806fde25908565501f6b4e38ff83d8a3a7ff88ffa462f582d55d3f44e71946c20a5760a9e8ed2e8c8cdbacd3db01693c7c31e4bc8fb225d0bc4f54d94bb69ba654fdcd2ebf285709af722bf02334b8c22f67bd447f07ec5b018fb10d36dd06f2fab4") (:stream-nonce-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4c706130ade7bc98837e6e78939e25aff5e63de2fbeda1d9b0bcdefee83519de575b4ecfd4749164d9cb52e7dacc880c5f3dd1d195cfad190a55ec755a08bbc8e582f54878fb57fdf0414852235a0318f149786cc35606a723c562d8baa501d8754f5e21b2809b64027a36f807dbb1ee788a536aa2fdeadc581d2d2e443f9f75aa501fa1992f80") (:stream-nonce-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"72d031be4c8c694b7f2b5e530e9fd650cd0c69d1b42e4b74d17a1c000f176a125128d9b3de3f4aea6019401256793334a212bc9046e6f042b8423ebe933085b31094095af223732ff1c2e3f2017ea2d6eef6301d14828ef275193adf473ec4100833ce95426a194dbcaffe87d7bc01d97eb0d8eed1e5b712ebb791433045e2327b8f6dbab7541e") (:stream-nonce-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"82340bd08fe3d91e8b5ae237303ee1940ad2f8804a9d6ffc2cc78b62baf3babc62309b95623fb3e377b6e25da61f74909a099042aae2af4dd9550d6af5445c340ba2672e7be491190c40fd3020fc814a9984611556b9dcbd97f347e0cb245c2f879b8e18cfae3d6d6af914f6d00c063a85d5e993ad69049ede448baa8cf75f32e1735e85962334") (:stream-nonce-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7e01723f7e6715769cd2056abb8243a3d09668828607bac94bdd90eb3c274fcc963a2ee652444ec2d2890f5396730a7ec1fb1462b038a4f6a3f82a59110a2f72fb4c6d5fed6e3b5058fc92e9a38ac5afe9ceb7771b1117c78c9161eade3c99463beb157fd0c172605dc28ede1595a0cade1d87b37abac9ad991baf380b35272979d0437af3c392") (:stream-nonce-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"27d8a44499e20e287f65d9d8b672286fa4105797d943ceb64e713608634faf8ba5352c3f83fc90f48d4cb4fea0557a1fa95da8ab22e30ba39519faccdc9ffef078b1b55b72090b05b80f4babaaf5f1533f14e667deb1ee17b267f0ace71b99f45764bc3f86f2bda60ae4e995483a0c4f0a670649c14758a1eed525fa868a443891cfd8ad787e28") (:stream-nonce-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"69b8e2de6cf57335791ddc4e386b921ea168d1215e5b34da34a219f14e96af7147b703c867bc11696736ee9a2f7d2640990c665d1af9020a9981df97226e7c15b1487fa3cb63ae57cd3aaa3acef11268bcc5b56d358fa7dbed90cddf364b8280f192ecedffccffc4848349df46ba3df6ec6ccd6bee9fb4f1c9eb3c8ee3b9d97e09bb70acafedb7") (:stream-nonce-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3be4d86d4021c41f9e5a0f70c0e3d73fe9de9802a1f61d0b83d9f5660ff2dbac68b43fd553742e5225ba2bfbd3b2730bb851915c688ab05fd691fefd0d804796b325a818e95d8d99ef428ecb6e5d50513e05043515a1704d248a8e555c5556090e65bdb678b3da7a8906a1b3b545269df83a3156a2900be3b11862bc560e5289316feca09a44f4") (:stream-nonce-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d05fcab1d30a5e733d65796cfe1adf7f906122a54f00f3cde0631932550df9bbb67253ad38bbd1244576c86c91eebd7ef28890b6023690e8ac1a5775109ee50a63a924635e9a3d1362f7b548090a01645665cda142666664b4835b68bf057b849c157099eb9965a46e7359404f342a65cac289ea5e933e4c074980420be6e4cd19eee7be14fb25") (:stream-nonce-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3c1e21c2c26368df800a76a6bcc14bba809376f383e7458d072dd2aec6fd6bc0c491657a908ef156f8c9228a61339cbd24bf48d216dd9cd0b57b142fb8486d3c136acab2aaebb681cb8f41bf7c49eff749c8e8e57bb1988c66fbd48fb40f5238bfa655256023df47b8291c996d3a1f264e1c2586b8c4f25714f5dc9b392f73bc333d230e0eaa36") (:stream-nonce-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d419f343d42105c551b8da4a071ce0849e41ec551c8872220959a24374b73dbdbb151420d86bdfde86b25aff9a2f9564821a88b0af1d3993a1603129454f34a00f245fe84f6af975fa3a33d190f850cd2603a1e846934bf0e01193a6f0f3ec4e01e40d8260d9813f715d2ef9b42161b17f893047fa3212d9be39bf669621cb26fda8c5c2e9a042") (:stream-nonce-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9b2e739121d5277ce5e0604c4a779ed888d9b1e6084b172e037e9044779fb6ce39eb4b9bdd9957b0546a399d7405db89d0e8caf73f8e4e0d56a48b229304f57f9a225cf60dc0ba4f2cc1e7e3ee78dd629c5c4dc02aac501873424a7d614c1506611c72fa4d3fd58b29f2f62d427bbe7c65b098ea7cbbe8b552bf0267fe74c685e53a1a48028a2e") (:stream-nonce-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2133c83347abe6b66a4439a42740cb7ecc6c443395b17aeb9fb3b0f7109beaebd4c4d166b884d3393bea64e250c129e492c916ca5b4d24c8d275641175cf0db4e18af33399c4755d6d419c85452690ff89206da361905c4a4f528d756222131ec07f49ee3ecce2f739161521d6891ce7abe4ff0ef57d47c7d2bfce8c0b1cf2b962f41727525b35") (:stream-nonce-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"61845adefcb254d007a50e4823a7463f032b010bd62afe89fc65f1616ec2f91f641d18e63e1a5300d074bb62c647bfea18cf7247e0c643e9ca65a6bb3a00aea2772e242658c4f61bb1789ec558a43e4711cfa085bc1a81beeb1e0fd0a671b0e5af2f8543734131d74faccddcc9c1d0f197fa1cbdf3caa5f68f650c971ff1ba09f9a9bb7592151d") (:stream-nonce-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cc779d108bb75080f5edf19ba5e1a78c1e9f2c01435150c121b85a1bc5c2e4ec19d1a6477ae4b1f5347a9597030423cc8960714252e281f43820e45f4576db5c17480992c374100c5cb196e2e79850be60db92b2a43f69cd991c2231abb25302e66f9febdda4ed97f4613f1d17d1894a41358b301a5d5b1e8b2d5beba8ba075d6ca203f307011a") (:stream-nonce-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"98135756460e96587ac7420919e6aedd0a1b3a410b845a645f0c2b2316652ca48d6161232c3151dbb890b3e4b5bd968779f42fc1def2c11d2c7afb1903d236d6f5bd623e7bce6aee50af3464c892cb399e29623e282bfa766d450b92b6a18370fd9e28849a9104f8b08806c9ca1db2162d9f487f740a7aa0764888a262c848de37609671a91dc5") (:stream-nonce-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e50126f5def07ec86cbd598c6d73eac748bc668a409889db23e4981f2602eff8d131e427690647a978b4ede5200a857c69b8ba545ed510a5630edeafc01d032b6a4ba33d61ebe835309d91deab75beef23888fcd7a46d461708f89bc1d8adca7a7f47c8c079208bd7fb4b815d82a78d5f7121856df6cd53b52425e3de4c52b198496db5425eddc") (:stream-nonce-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ab8a3e54be4b9878bf820f45e85e0c80a00a8e9d06501ee4ba21246e3cd638fd20fb979dd6f9fb8de4695a0da7043060dba23817bcb78c94ea83682ba0ecd5e1ac0121e6a3615e66f4056e21f94e6fa5b8746de22020f7cc3eacf86466c2c9b53740251e49c72dd081e53679936d1bd1eebfe439a4ab763ee888eb8ac463c991458a0cecacd58b") (:stream-nonce-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a33edfc5ebdfe7cdcc4d25b2ef67a3ea54a5ab6aa56886082defcd6434720f93d752616e1b28035b1768c47343b354817f8d7454fc48096359df424dc0f1a19216cbd23d4ce4c5104a337a6fc7c237a9a0829291d0365d3de5fd6e10025723b96d49db601f2c7d972d7190e7b916f5afccd94f89624922a622209877cbc2d506a51eaa9806e493") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bd78a2f8118a563c761db4f2fbe055da97f90988d27594d9c5dfd13a3efeaa3f68f0d2564850adf5017433968e4b3405ac49a39532124fcd6f47e415c7028a83da50179ed65f7a5c28e96ff325a4e154b47e11dddf1f601a0097d744e706224b214f114ee5e6a77dcf2df58ef20917cabece166054ba672a6b73f0da0da7931074671f874468b6") (:stream-nonce-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"afe411ed1c4e07e4d0cde3b33e31ec190fa4cc796a58bafb848ead8d07d02cd2d4b6f9f30cb0b57007e3733895cc8d1060107975acaeeb689b6cf614ab64a3d608e397d664b03a12cb31711c6a3f1528dd0031b6adc87574a2ad8e8f470f4aa18f21c6ed7b5178a9978847dff457edd5192c7d70b7a8636da61a98eb2053c285f3962301b83533") (:stream-nonce-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3017b4c29e30f223a756d5457a5e2f80a873dc3ce97ee9f9dcf75136050ece45d4a0d2899e82a45cf3c01401db2415a3b537adb5bf8ad4c6f3b26a81405e85f60ad6e3e06a81b2837dfb21ed655654bada362e21d68a7e032ae22f10179e4aeb7accea5b10aa813fbe9db17ec10e4149c5cb6cda420164e7f6e7bb3075d12c29547d5a90153cf1") (:stream-nonce-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d35370fc409ee2729711067694626557e18a0c423b5ede308cd51ef08d12973744bda1f9e10f33c7d2b0e4cc31db1d7c2a475d1a9c3abff48bbb7d7e901653e261d2988081d7a7e0972c63c34358f7ecc31875eb642ad2e4dcf083b3a73ccc5857bc040655ca776cbb639961511eafef9947e416d86c737dc0b397903b5fb33de4ab173721c762") (:stream-nonce-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8bd936269bbc32e02a81095b89e8384be127b0fd751b6e5ffc2da7ba75c19b2723d25619c3d6517be1f4f32739e92f7c5d4bde842b689794946d1d5bc70d72edacaa0d012bed630b9aa002110ca89fa6ae3b4d202c2b58341e6c66147f1dd4fbfda823e326ac178ef84bf589e96587d48d2985a7c2f3b83629f766b5019144cfeeec411439327e") (:stream-nonce-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2817baa279c2e38743a8971a554e1dcaa76833afa424c3d5c4a2fe1cbecfca3b617f46af068a542d96d7064312311cd3b8685bbfa8129fdfaacd4f1320ada9977aa8dde2fa830a0898c12030a199d690fa7da7ef3a9d9ba66d6b954f41a85a7e872dd4409381f452c5bdb16143c4d5ada51fc52da5b60a4ee099741ecae59be4d8495ae6427826") (:stream-nonce-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2a4a62a90ad578cd3eda7f67e9c2037853eb24c0fc27150e8b19074207ed07237d42acab61abd7a33d5ffa3f2f9a03e9ae92fabbb6a3382669dda25125206b197ce4ea8a2bbe96c5533557838e2d398cf13544a2f21ebc2fe40ef2e3dec8b698e814d89d601ba8445dad9f038bdd92ce1a8d3314c9ba3b5edc7e97b977f5eb7f37c3c76d1979f7") (:stream-nonce-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0b5b3d1e653759c67fda0a4ea40f030f791b0cf5db733dae33f83ab056a772c0d310dbbf5372909a625b7bab4d1fc47d6bc5d8427fb69a74e5cd8969d150dd849fb37d80bdf8db5d22a8df249afbd459a6ae3674d11c98cf9692b218c9ced496d5f1328434e09480dacb434113e2c245792f5dc78f93ae31922544251268e8e0d4782c3d557527") (:stream-nonce-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fe752c0b2e97a64791dc1fd2ab71b3a855c35e30f83babd0a138c886f5efa25d36bf2e42d626ae0965a4d7f0d2b6371d2b12ce82de0706c3865ecfcbf4842e53c1eca0620d65cc0e980e00b885cffe5d586c2615ded8731e511a45f438d3d6ed234daaad0b094ec8a4e163a36972261bd7ed4986ddc999365ea32e506be982854caa59ee4f88c4") (:stream-nonce-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9ace05ee9d1a6793d3fd02710232ef865fedd42a8fe81583040e8806741ab32a60aa9b4cdf4ddef80f603b6ff907ff5ecb6698948435aa311568c017b10a01003c532515106114ce7bec5929076f81fb0bcf07ec5a8a545d19cc74ab93f3c19fa9b39ef161a93a0959c5d2e2f6f460df04e6606d63c8707b635f98296cfd9fd1518a64676a7e44") (:stream-nonce-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"75aac0ab48296d7b067c9c19d369d7850b2641ca830e86b759f1dfbfac545d2f59dc53f9290223c23fcb1f5b5196a3753bcaf34e9481e96769c52bd8328f349f90f4331131ce3407812c75b3df3bc8a03f73869f516125125f7ffd57c3aad4c85e175b8023f824904169c6ec5e80dd04b978fcf466040787ce3991b590b9fe87c34b50d9766bac") (:stream-nonce-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cd99611264ddcb292089ed3b4d22d5750de700d3f5ec0424b72cf31ef6acf196b171a900c812fc6797d09d2cf4a1d3bdfff07ec2a906230b7088ac4e5324d3206e0599fd1d695542f8b4cae95939a3ddbc8d5fb953ab069270dc8c4e00597e033ecf45744b859cd174ee68b7bab8e0ff3f4f1e9eebbf384b177710aba8ce6e6b17ac4bcb825927") (:stream-nonce-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0c14df3b3cea13f6548b99078c2fa1920935fe9201fbf82c668d67fa0726191fc30ebc5da1f7d717dacd790f81d487e4c179f26826cfd61cb6de6cfdfaf61009b57ac44d9b208d153c5984b7baf0519ab4670bf638fd7bbc9f94e6152a76ea18d01ec45cbe3028292216f665a4cd58918b05e6facfe2c4cc400815bb9b11f084faa057d29e303b") (:stream-nonce-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"03e79da8f3fe895d01fdf42b487285a82eb2381f56075c7ba51f607ce2471a7ead574140cf23d8488998d0b5ea5ee228d6e602b87f30a4c5f1371265e73efa85ae469dc4d474d2b16b59c30d02a822d517576848337aa00411db6f2b77f89552e3e8258d5e1939fc716a46c9f8794d1cd34f9ec60bbf088725043b3ab5082e5293f75d031e53c7") (:stream-nonce-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ca5ddc232c7c2e95ca642d6173322e2e81c99e8d7ec363ca2876378b8ef77ef375b5a2ca3e7886e24f2eb4cd2a3afd6929af0ce85e199d730a0353fb6d42bffc76ec5b4da36fb3e3fe4721ee5ad7dbda7f8bf3b0d6fcfc6a39f96b6f28d8277fd1ab1f230d6abfe5886b3ae900c84f4e7c63efc9f7561092e1e22395dbfccdfb8e604465b64b54") (:stream-nonce-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3af52d28fac3c6d35460b43ce8c6df7b5669a3fc728fa2ae27d83afb66f03c5901c57869f5d7098047f212cd9c1c298b3bd53d5b0d84c66e749914d2be4d7211bc40acb457f63c1610bd9e1306ee933033f5da29d7418fa3bd528f7588002ba4542b3ef4865968ed5e30b7dde5a1c6471432a6aa3c1ce34de56271a55932891e529465b1af489a") (:stream-nonce-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6bdbb3a8a2ea6788bb5b49e015a0e6e8958e734f2218ca5d18fb13bd472f6a72960d80421fb01934de479911cd02866572f32830a7b1fdb166288a1afecdc4ae0ac7719657bc4a4b6c74613cac878f24a2ada56ef2826c4dbb9198cfdffe9118558ffff60087cfd3ae75b5c94d0b90c665244faf28b7131dfe5ee8d9d0e06db9cf2ddc3d99e8f2") (:stream-nonce-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c3c9956a5b83f093b58d5caa632a67d1562248af6dc04f01e8625b293fff379d737539579af6592c328c92036ea49f753aee4d0890b40ce6f38961ec336c9f7197dd46621d01e99fdd018198739e87b0aa253e3172e0d27a6aaf52a03ef85eedcff85ad899d321a2f304318707999a9d9b3d24c15067364910372821f180221330744c2e0c6311") (:stream-nonce-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5fe1c89df08561834b48fcff2f67066b7664111eca60afae7ff93925d894d82215f4363455061ec5976b7e1ceb2ef2974a22b89323bd8525ffbbe0a9b116b511fff230fe92d4483531faac90ed53da38b584bb5066519779446b5d7883bad083cc46369c832d05db8a9ba9143e72c5f877b2aebd0c720a7d5247a2295eeda08c6dce8ab2ddd336") (:stream-nonce-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c3a645d5cc7285747292350f997e38f9a115dbd83743222e9018ed47fdb348d9d5ed058012528edb35b7e9ab6e26274a68e891c1703ed1e67d23b8087c9b06b97f09970c0ab9f65cf27df04e9a10623e3164834b189aa1b51acd754adaaedc31eab07e4322a54813d8ac3becb1f421347a309d1c2e2d0fe46b6e15428ff1d3ed79fb1339f967af") (:stream-nonce-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a404440c5894a57f1d38bf7c8cb16596c693d5763015f4577815d1e3a7f891d48f6452a57e1434e618f39800c388fb8288fa117f00f5f71e3f9a18d59737a197546d58160da7dded4ace2e54855e52b112fb8bfd5fbdef5b580717c7b9bfcd3f69be7b6930597797de19bbe8f89caddd8307c8d0a6955d53bd30dde566f66a240a5235bb4f5713") (:stream-nonce-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5c766a9576d5828560e7f5ba53626065bfc2a107b46a0c4eff2fc9b4e8b62e0b748da6ccf0222757766ccffb1e1bfa718e17c65031c4fdff8387630ace4f44210bbee3bf18d1e41219e4312a737676d55d8aadb4cdc73b852e9ae8bb6e9e89ea5cfb08656cf5d7f1d60c940815cf0cbc1b74d9f91f70c9a78b20de426a4b7727caed8cf45ceb67") (:stream-nonce-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"da019d14d91d709f083b03f612a0f1db5fd6583e0ad26da83e3ffc18b5279f64342d111583b7c4f4f4269dcbb87b968070e37897c9d655d244471d8a76a6c3b632af28924618983133b20fc77f9f6ff053e0ff41cf52a15be8e527b7edaff5db3b82af47f10fac4451dcd99f3bc7e530c9341285dd31ad22982d711322e147de3d458f80fc02d6") (:stream-nonce-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f3fab8664d7d9020fe57839fd4a25fc785d69c7e10c8fd6f009c606fb9544fc5b5ef827541844fc3149c6e0e9edeef66137762ed128dc894c76cdc415c0bd7acba6ea95f4130560aa6922d10c8bc1e2642e96630d192dadde9a4b7b3bc4bcb818c2d681cedbec8e1706aa38e557f2c5df0dfd5ac9aaeebc858253d22097986cddf1a7ee0c7a8b2") (:stream-nonce-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"889851a91f36854982ace9f2af47071a47945d1d929f516911855a8d111b0eab464686c39c8468a69508b5d01878efde0684e2984ab908b7dc121d07c5826843e057895b82871de930e62516283a4b2e0909dbf4f6b087ca814e8562a742f99b9482789641feacfd09100ff784e14df503cd4e73a20a12f39ce673c0a48e83c1c8ee6e680deec5") (:stream-nonce-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"71cc8b00ff34bae424eafdf3305050733a2b68f0098f6e2a20c9995ca20b5be1f84e57d123c47507d41463a0f42be8e7e17bd7894b3b1b0691c61a200aa5f9e60aeac62896a17d10f5bfafd3ec06077ffff6e5ab5b13bd652b90cf5bcf7e761cbbe78f1b5fecde451d4a6b81a3bc213135b28ef20e7da57d0dd8dbcf5bce4bc2f1bd17ff1062e6") (:stream-nonce-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"150429243fd7dd449ffc36fd4eeca94327764bc23def8d7c42d7e17be76b7ea38e194897c61df33aaf855368d3b7ed60630e80c19b7c9f3e81805e456cf00e896e79ae971e3a36825d89f40ad1e6feabf54def7768b6a24964d8ea20094568e9ce062b78cdda54dd7e9766059eb334a26e853bb9696279de141581d53ca7dcf6dcda8fb1366319") (:stream-nonce-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c43ab39d357434696a7b55cb0b6403164c5a3c88b0383d3f870a502eaf91287a4f592c311a10201ffa7bff2e8bb55871d240d751caaaebb68261b5c766b5d533971687c9dbc753870d2de0c5f08dc0b3d831c24e768c16c48f18a711921e01557ab22cd7b3b82bcbeb2c528094a3fc181e9c91b0c79db3ea0118c7c252ae57424dc175030122ac") (:stream-nonce-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"26809ff48b88828368b882e8b57643817265bf4a7503f69b1c116503c8d92e86bdc4bee76321b7d3c5d3fc08f7ac0f37fea03669f5a6c6781a8bc561154c3cc3c92d2cefb77107203ee546b1f01622924cbc8e8bed3a7f52eb5f957f195db5fe4371eca4253898cced15556bb7c40aa6bb69c3db8e54c270da23fb2ebc497d868d70affa2124b7") (:stream-nonce-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5fd60580568a798d7a8f703ffde705902c96600031880edaf9bd7bc8aa17fa522132ba8dad4d019d3f8a39afd1968de80cbea9b3a686ad6a2cc3256b8b944a02be397ddb5671f2faa83aa3833ab122f35fc7c515952af2718c49732640b301c78c72a3720d24b8d09fe3159b1b6e1d79e77ab01b5829e1697e564e26c68caac7332e80a8c95dba") (:stream-nonce-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f14213aae4b9009e3e186711d38d2e5f7f9e1582c3119faf35e2bd769c27af98f91b1f3be438b9c4d9e34a660c9503af1028e46991791dd5bda0f72402e918b8f813d6b9a8f1afc5bd8286e5446a3b625affc971b7249bfcb427a93f69dbb327849f82810affe4741c976c9468cb16a5209728b9bf2cfd341cf51bac1582be8832fce001bcdea2") (:stream-nonce-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f2fbaf4aa2e4d48b69ec904907bda430cbcd06cc2d0ee01185e37fc51f2c777936668123d4aee32f5f706191f94f7457f2b9a219bfe2e6c40716eb70750e2ae6f4c6a9d32be20a56d89096d9b06c8109d34d65e92bce98dfd5d4db348a8ab60c4d4f453a84ccd8e65d5ed93b4874baef5a3f59a1343c4a4b34eac3b20c0e08a2092c518330dd88") (:stream-nonce-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3ea85c20cd99d8cdf441e86c90bfafaf435308232748500cd88b77489b38760cad2c72abaea433a4ac189f0c8f3a39da25e8e33f28c3512ef6358aeef833562e7f436a08f261e95a316bea3001411a168780852b7841f1db7892fe601e05f78d5e02cd1c2f7b8ae0732d7b8f4fc076aca2c06a296878a6ce9af6a499aad42d9f957bb5582ad382") (:stream-nonce-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1acb021c011b6cc590099ffb9ff4b1a4c05efe65d35698f52736d42dd1f3e380e702f1e97c75cd8cddb441a44319178833530946613b051efd4a295f422f093408d0dc3b279c0ae22df3ea7860da9a29495a8e71854cc27c020a425c8365f0830c19b0fbc6b4846c5d76654846d02905ffe328cf9b00e742902e42b28f89de8f541e19c6f6bb70") (:stream-nonce-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"351c49ee8da408d2cd177722640f1259e1d4a1a55a955e08f228669c6f5d70f9a70df66b1e6125034e7d95d9cd8178bea06c1f3261b213e6a13605f44a50347c994343b455bf0fb0a94d609ca402e1ce0ab5d3dd2ea1a1ab4d9a06045d59604c5e158a99818e1492aedede6efd18bb0a4d2b0240bdbd4c9f6fa1078238ece3a05291039c02bb6f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8e119bb0b8bde4d6fabff3199266aa733068101b85be6c3bd680d0ec4ee97f49d821696426001aa1478bfa02c64ff0334e5a79550193590b829e57f3a029d913c8e281292f450225c41d0ccc51014172a0baced6e459837f0fd012a91010362be01ae3a847ac9d369585619859f70fdae4f53d0caa8b8da41c9e53d6b3afef5d66d6aed95d5db9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f30a5ef13b151a20d2e5728dc8da78eb64bf02f3326b68ede5bda414286fab2ff7c44936a74054313c497e1c599da64a2bd853919ec0a6cbd52f354577f661fe0e6625d444c593938ebb13180ef831c31f5389b2c078919c29cac1d65d00b8a1ccd41ec80a1a7f5b796623b5595fb4e257327dfcc62bf503b0112d5cb5bd7111efa8920badd169") (:stream-nonce-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f3a25fc7983b10230ccfe8d6de2554a33611513c4f0d7e76f44eb1f96ae6940dad71d2b601c5a28e9a689594f273abc453988fe14d38bdc17a449cf8f16668fe13b75e413d611a1fdc446f0f03ef2df6d8145dd99ddc63dd7b82c2749237bf6c2fc7b401d7eba89781e6467e20162f8160592d29e64502bc54362eed4ebe127239aafa7bc4df99") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8fe5ede2de15f2d933a7840294cc4e479e25dcf21e1432c6035a07eaef2203f77de51b170d8a1681203cfe978f678f067487689b1a95dfb73740442450c0e234825fb56f8c51f51de752e64051b15407454b260afc941d411ae2cd380e6bc9fdd6edbd5026e71399ec2d73433fcdf5f067ae89a6e4ca734680c94cf48f036f776b5654aef22107") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2ed94b8914e6c0f85689758b28b9cdac66691f5eae81e523810f686a7f10b98bcb50b999f2bb42de0f1aedb38bed48d8599b868772ab0389df80fccfbb3828e8f062c1ba0218b40c7d1875767f938158a303077e68e7b0b70b5c5d4c917f0bb3927ca44e23220f4420128ddc90f2a7b7b8e42bd27370769fcc2e901bae24969c3aa102d8686bca") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6baa38f5192efa68a70a433c0354faacfe530873afebcdbeca49e42b6bc73b1bb0673a818a33a0e8e3849eac364e965ee74c189a4bd2e7987d95d93dc319c6e037a0b0f9f10273196db4c56790fc2f46a912e5d9315a0f0a6890b89f621bfc9ae7720cb9d306d801d759ae1185ae5da2b17c62a5fbba085e98e831d0c2f63399b535fca2139a58") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e8cfec23054add82143359778c886091b7fc3d9d6aa915c93996bffef825ecad185264fae45a3515f03f68c55cd4a58fd99b87643369b4982b22ef320d2784756643819c4ea3adfc685aac0564947b8806caf2c3442e32ffa481938ef4a2c73f9c9bec9d1b2b6fa5f9b66e678601cf1998162041221b9396eb7b7b158336629683b4afe230490e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"142ac682a47ee49a5bfabd25d414739b28c8ead8b29c9bf7a36c19d15b6472b9fcb7d10da83f8a65992e51bf22f1e697bfda441b51effeb779258a93107a1391781a0f37b2a99c2df508b869821c4dd50870664ce0ebd241ec4f9f6c6f7980507ec5b4ad32176c69fcb9f7b367559fa57b666db1fc2bfb879920f6909f727c2fcb5d6588928a4f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"28602482c19c96b0d29550ffda680b4ed0a137326da872521971b3956ea349ffbd22ba49867ceb88d6049851d53c23b4baa3b8feaa7709e42270d34fe6fe851f949069125876b1a0fdebf0f753971be473c8575235462c7f9f970c54d757bf6c10ff43f4f25b326507a43b54cffb1ab536c86361979d2b29a3c0eaec655a979ccff0550f0e07d0") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"544aa4c11fbed50c7f98285dd744b4d1a78f1a35a9b0e8c2a64ad34cbdd20025232166a5b4930f298f23c9a881c658f21be94698c362b162e84739f82adc01dea59c18e2f0c21cec59ea15b812f7393ef2696cf583fdb01eb7d7e99569d09282f475b1c558cea51fab6d0daa8e4a8bd8e191a82f1020e6eedc01c7ea8643991f9421a01a5145d3") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"10949ef19c84be727dbe17e0a2a4e366d0e09197ac1c47edbea24abb8d63c98c8d40562386ac4d710c62062c37a3760d9fb7e58c247c7d920ffd4333802a323edb5b0132724cad69848d47956a407d82f71bb5bdc378218bdd193b8f4a736f90250f7abbaa40e2d69fb2cca841e64b5a1d94576fcdce5f259cfb857a43d6e56d2f92a574a5d895") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1f57ab80fea0de91d7b031bcac6706c4dbb45500e02ac3985972ab761daef925f9ad3f74cddc9c50fa264d7432cd68c0c633759255e4cf263c81b539645f2101e7ee2b188a3aac6d051f0521a39a2b238100396301b66aba4316dec639ef9949efcb61582ceac05fd480945dc3548a831c851d30ca3b9c37d01eaf55ad3d68220af5b1d326dc96") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7e1b5fc0704c15144ea168a57c37304b88b8dff91ddd4084a30591ec78d3e2a870de8e040590ff4a3d1540a646ab868e230535bf4b93572832b930ab929b0db48b8489a4cac5487f18cfd591e4bb672b6c1b350c1fd0f5cf9ff312722fc4b259e524fbf1b847038ba2496c7d944daa242ea3536a359d019002f24b08d0f363f18d522f50f6169a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0a130049832398f6b0e3b82172d1f8e9980b74b304cb0ab026dfba3b452a0018760142ef1cb55e1797ff869efc2b63660fc75a2823da26b186b4b5e1a01fa20a8a05e90b229183a10ab59ea11042f568e41b7b1e96e781d3d9cd7759e8983ca290ff6719ad47d61f84841438c35bf66b13f517d45d5d37b3cd8b8b02a8f1d3ee02179e82d2a6fc") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"28068b9d33b621fd64ce3bf9a24a874cd19aa0d29d080f979921ee9f5477d6370a84393ed33494e2c387e6398ea1517a3f65791531c43d817c34fd6c2217cfdab0b82e269e4d606486514b702a020e617d4a6bbc8656fe90d8fa3d5d043764fc0199610c42c8481c49b49f3111c58fb6d5e5b93707cec1cb10f434bc8dfd18795d31a0c5dcaa1f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0ddcdc8acadf15147f994ee05ebc2b182168c611c85cb331f23b9aabc6ad131cb0e4d9bc23b4a29f6c24186787ac712fdc33add04c63cb7cd9eb630c834ef2012fd6510a6615e151811b2d15380b695ce46e56469ad21bade6bc1f13cb02c72200dddcafde8e7a25b8a4269e10f0a128be8c251426043de5fc2faf18cc45775dbf3c061476e772") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1b81e6b2a97f0178f9a0dcb35b6bae1e2f6708330626152ef8abdf1bab7198639ddbfa90b51213ff29a5fa69f06363403f0c4a1f481a82d7fcd2ecf3733e6e69499e89070da092139bb11f26fbbdf355f72546e18796663bf9288297b2e8227d5ee40793599c3f4fd1903a1d498346d884e8b8750a87efb63d20ef03d31856f525961daafb994f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a65dbabcb5e3c043b79f8722054622fc3b18bd742501f6d6953737cb77c290784bcee66e9001c21754f062a71912690e97ce4b074499b14d76d4bb829757726714334b434b3d57fc5f3689b1a4cbf34bc02c5fca586e262b7e4a4aaa19a8b297abcee49d502afcc32730a3eaf1a50bd2866910b5e912cd4b057c0a7a4ac1d275934341f25edb28") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5379581303174d6871a1b1212e9e6e3a8361d1b0cacdae8a8f5cfbf8b1aa9d1236d22bae58fd54dda4df9f8b937db3a5e196140e646075313e8e32264d05993889df54c331b42d5409c649bd41c3dc03e6501c09f92330a13656bf8d455a6fbc34f7f4de5f4341b8a86e31a4d73b67a016b14d74feaf2e7f65e4c5e0d3e0172bc946992247ea49") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"656a372632f4ea0f7578d34c1b3ab9713f0ff393645a5b55838ef20e1898896a07e8993a78a35209e94d2398b999149b75d3d1350eb09c4578dfde9393cb835a47a6db31be046f2064b15210cd2dc346e082615c2590a0ecd6b3c6002f43a6b0b1c317acd0337c642bc10f06118d53554af310a413521fb666304be7782321c9176b1e21ab8d51") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4110e3db76e86b6da84fed0e2c84945e4fc1b74d49a583a0172104c19a4408120485a11e6d48b38b69f5b311fcb2c7350d39180908663f09d0d6d2d36cd96f17a73934962d4b0f9cf77aeb74e78adc082639b9b25f24f0a4c1f7e2f07e9257e44b7be3f527a3a2346739598ec5256189f277cce877c228c63d1124e913328979d695d78f356cf9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1012f91cacf688dc7867a4858dfe6c0858d53361190ea6ea3b80fa1a5c9fe1a2afa667251bc7e77efa54f189c9cebeb2ea1fb2e6aaa11d24952c42e8b7fd77f93c282ebe93c0677b944e09aef8ea1ed9ed73b8340125245a6109b23e6435bd52853efe0eceab4d30070a64d5ac2b85966eeebf14c361b4fcdc27fcf61f5d62bd1a7d3f2949b966") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2b142b4642310893e7d347f01c02aaefdc9f84098dcadde99aa235daaa6072353e7db534f75ada801432a0899aefb4cdd36fd3dcb5fad5a5a56754baf9a35eaeff089d98e59b408daa9acfcf92b0b756e3870782509c8c3983f43798551b572b283413939b59b66b633c972c65a64439ace789f55e97c5f95505f6fdda50ff75c809988bc22f74") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8b3261ac7d7d487323dd6820055ce0692f22aca829bbf51f47fc2d03777fdc17134abce5dcb755b15580381bf4ef09910ac9da1eb0f9644395b911be994b5cc2df30efe1460c940b8bffb1e3649d27da00206837edf685d0ab6d163cc0ef591ee98aa082011e295761e272f4de01a8643e6d00a8a26225efa8a85aa4c7379e4f41332a09c4df10") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"477423301d5f5efaad23a6f34e1f6dfadde5cab4178f80ee9adf106150b7fcae9cca71938aa0df09182f9c8b7f9ddb9fdc0b609aaff552ded82e0cb1e81db98b041cc37eca69474eaa8050f3edb4971da9d1361b5978257b0b5482638607cdfb6c0ce1f5344c9433a77a76e710f6678857d9aec6dfb20b1a5b27560b89fd237c03563c015366e7") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9857d4a59d1c7f56c332a4b0b695beef03b3dd31f9aeeb89f3d52e0dfdfd115cfc5d60fa69da83de5c7aea2c8d818e831539aa03a9af3bffda1ab02f4daf58bc4b8fc6061325238b74565743cfd5ee92cdf352d5299e814def673e9e67716b0691288e2082271ae90e3477360f63eb2b0293d5d63aad778a2461c2839ec6ab13cd4af5f59a03d9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cd9d281c5b0062260630fb0e577cbc6fae38684f5f5634087f6c45e2a75587f880be2b5d7ffd4a7f2918e9fe4ea134f913a94b2e0b10273adda01dddb1ecc6d44779a34deab24fd0cd49d40b7b31d426cac4abb81b4cbb2e061b430d2b8eb32298b51eadb0debfd8ccf7cd6c833a22362744574f11500f9a43157799de110258815a03962c0901") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6eee40fc23de53872bdcaf838ae2db30995d69b2d0963a40d444443bb9515e552a073ff5b73374c02b2f064149acd05c1882a743d7c273bbfb6f2fb8a2d2aff915d350f49ba55ea9777a9ba84af0797b03945f5f18cfa6de84ce733ef7eda68fd90b1b054ebb3aea9c798555c5e82fe506208427938034d09b5f89ef369b83d12e399a7e321d99") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"28081a4f5bda85ead5db706b496406b40c6843f5f5349558113cf4130fe39ebae28b6f4fc53e38d54bcb1d11d465297ea780fe445b6683c93a88b8026688c03e6ce70120fd1e641ce79d1140f3bfa8202ae73e5bb91be9d72c61773b491eb1ea49e941d6f73c3328160066ea7a514f0b2d6b80d7d83f0b5fb1eda29b539ea50e223e584629286c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7f198d70b4b1d1634c1820de2004b3bfc5307c2498eac95f0005cde5ec9e1b6da514829eb2315b6b43de24263422b6019fcddf446ab4869209948af5d85ebc6c741c24878432628cdbc4f4e9d5196d1e2753fd69326a8d9bfd49306d8c17fa6fef85f1cd676bfed5d2cde59a60443a9b25b5d22b6b07b80d80457c4696effae9282b1505ac3b33") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0828399a6fef20da26620d2df296a6667011aea49bd5499e538a0f720618cd5c0c2d8b3f836413b73c797046f619e3f44e828ff834e60082f74bf661e115a89be6e6a1fccee183858a59b975b44c2db476ee9e4e11a26aa82dfed91a924f92943175813b94e9b035b8462907743eb91887d5e8223498a1ef30f8fc47192244c3a03a87274725d3") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"edad4db0a296eee2046c26eead8f545e746682a1c2358f0c737dab85dbaed8ce71088c825c0ce382feb9c308fee7e5cca3c90eb99458acc9eaa354223c742497e1165648a49fc798698ce0d8768c50f07ed389dd98860c2cf59e1ab9a82517e6ebb4c2d6fbd4d39ee70b2ffeac0a144cec93a88c348543e367a489c4bb6ecfe6373d78da3e4424") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fd2da0e40468588b1543ee85e09c4fcd79508b7c218e036bb7f2b318a307cce84ac24265835ca28b71e47ac8438a1b9f0e27ddf55b026e89a03f4d85d761b8cc5790924304d500928f111a7510f12795ba3a4745cfc1d3cb18d9f04e386ebdf37798585f8c293adf26749bd49dfb1662ac59b6169167860bd80d95ea5374c7430f38a4e44cddf8") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d952fa95a3c17b5c245aa19bfcb6f988b854ec5959c05a01a04b8f6a9e5f9a2bd6e29550fdc43a4ce24ddbc4fbee93167a9391736187966ed784124f2dfc3464084d751768b9dc13bd8dcce98370ba4cb6584aa4a0a604a65065eecd8906ea5e5594fd396b9604b994ab661e994284bb0db4f5c95ff90bea150ad9024d6157469e698654336f8f") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"84e40f5cf15fc05b7dcfa4f2fefb472813691c2304cf5869f0fbd4b6ac1ec4e79c586206c183dcd3f46e57df23c0d6ebf5a576ebfbfd7293191d1d0ed7fefe794981afd3f2bd0a8024ef6358bf270a1e2bfa6ffce2724737c1edde8d8d43d8eb4e79d7a2422da279606915f2f8e7ade4fe90d2710da6bdec7f173b0fc8b3fcf897c21d2b9b83ab") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b459fe9991f9293eeceb4b15a672276f0944df5fc7fc90b8f3ca7fb2731dafb6db5b29119d2106fdb6ec19af27a0883f7b816fa303695b0e799a02a0868769f0eaf94680f471763d8d772ecc4b83511e52f2a79fa6e40dbfbd2304db6a30bf178d8a0297baadcc716c778d3456f42133d29ce8f21759c76320cbfd71af294cccf7e8a3a764b4c6") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ce11522bfb447432e4050b040aa99df899d6bbfc09385cb1da154a12b999168ef911951e77cf1f13fa172bf785159e549a2811e582225a9c47b4b795bc9c989a7027c224ddd4d2788f400578bbf176b59ad429d4283b0fae77e0b459176e74de8d7121e4788448a4ec594bfa249d0351228f8365c59d24282ca1cbcd59c36a69845d867a2ef55e") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4b6affbe064af77e178570c790b8233a1024639ab7d5f04497e59344cd970f1aef237b7fb99ff1bdbefab1fbea54f4326adf4a0e49783b1475e542cc805ae79f44a833da637919785adca95bad1acd12fe5437e103dc2aaf99f75f76e52b42f735fc30d08ede4aae272e69b31a405f4cef3337c656bab8c796f0b3258269cc12b161ad216bd23e") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fb6460589bac9514819d48fd0852eee82df2fad8c8ed93b2d857abf90aa5c3a167b225a9b27f880eee8364d00ae954970d05644ecb7e264c866909aeb9a08209346d592951b35fc4dbf4b46a566ad510f357b6c52cc122455c475259afca7bd33a8da92ce898ef198add746957ae863d4f0d8f71d2fe4a715cca5770650d537378435f84d57815") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ef45df01e8a2cde0e74dda5b2daa52ea93dab8b69612b8a4e1147deb7b4722a63ee63d8622ce8e43c75dad76207aac01f42233c569e2de64470b5ca0f361c8e46d8b8e2c0ee396f37a37fa95da5a636d351d1672f2dcbe277862e64bad9ff2ff8b8a4c27dc0b69b48956d81348ac29d09b9ccfcb14f97d10857c614739290cf111b4e539efc1b3") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"24485c2a5fb9c79c7a3599faa85141a3319a547b1061788f823c778bcc355b157eebafae21636e0b136455b164f8536367e8c4854e6a1a1fb36469c8dda2aad925b16d99973fb9f635c84f6ab0f51b161351194852b7c5b1b131fe447b021295d45625def7e060e806d0e04f2311fde9da6957cdcf6ba097ea0d689129905fe1327255192bebb8") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f750719446843f494de10580e6f114597f6bc8dea596703a65fd2cab4db791061c9d961de8a285d3a6b7ac8d8f86443aab1e3753729eeb1744b1d53f904977af2a147d70f50ca58d6a6524ffdd37e2de322c150b79d589254952a3f605fa7324b12ccadbb66f69599f1c91719614fd72a184c5f68d3d30619e9547f1a442207b4521db74e15c3e") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fd3fd08857f0661cfb43804323873f7500202066e62d71b69736da66241c6306931990fa3f91257f90af3a2b68b95c892db803036a7614fe90b0054176f54da48049083ad11fe46a15fa9d0bd792b290e4991f1f5e4bd8811036d3aa7aba66f530ab401356c58ff2e54968e810deb6c4b2927b31ae4742816d8511732ac7e30d611d725ba1f56c") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b16dfadcb2971f7acfc54a2a643bc3f3d8cc351893c7249ba867749b580d3defcb67859e64508de8bc4a409807e82b74093a571fd3f5dce84a691038544d156a5e8317ba29035f4c9011fb0817e67359bc9112581b009872a0b1ea34864e9678f396aa59c4780ff3492e6e1fd2f9828a665f7fa6a8f0844a7e36d212b654afb22d36c6cea5ac94") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1a02e8c28b6ff11e6c84e2dcbf70ece7851a3a87ea588dfee015f3d75d5a6009cad57a0c32ff3990f97d574b9acde08309c1be51a88b9785a1b8b37d0181f0ab66aa76c14da99d9eabaf0853eacacd670457b9664122ccd860cbf32eb750195c8fb4e1b63e3d405a5103f0c85b1bb45530461219e649ac51dafa31473e461d7b1c1bdb8ef021e5") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cda45560e027c455af3206c62e97c24a2e7e817cc188fe4c640c3a59638e2fff23b6c8f6f0ad68f9f1c6136c055c6c71eef1cbdd62db1a925eb33ac94ce1c8158a0f51f548e928400c82a362b70bf540050dfeb3d4d4090005f9b1a2815fb0136649d234e2a235b3028b48af90b71a98c489d474348a51e63d9c66dd32d0c8207eacbc1891fe88") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"172c5192cb6e645bc527b2539a8d741267c191cc59b5ebf40be5276e4eeca9b4b31f3b434b2aaf28ecf61c58e927f7d0a021d87bf287c9c6d0754a5795c4c6b4768469085e9887f53982284eaa95fbc9989b139e18ec696833c568fe79d007279f9a6ea2077d880b72b3543055151211e754729a0b55dc670276e987d66d2cc63cd8ae1973564e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"582da7fd3359727e7e222d1ee2503502ccd024227bcb1aff715634e26a5d9627e847fcd97bd9241d6f372901540fd2fc32ca80761ce1afafa3646a47626d7f41655a288a6a3c897f931cf7fa6e2fa1a7617cbdf50fa5e0d190dfd27cb932d54ac562f8bbb7791167b17c40e13a6fd99bdef0f5f3460e049c034503b4447d8ba5425147a96a5726") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8f63797d01a6c6b2d77c9413f5d31bca4c7cc8bb21f94d45c81760ef9d91ee7250c4e3c6a15c600f6eab0aa236d97b9fc144ac7e12caa6cd7d5838d56f98657b72f519d6b1701b5758f1f68e1111b239068fef43493142332c2c2accd8babd488fdb223391495b578b3713b97f7516eddd33d6bfeef50e5dcb08f0f54ee30aee1ea688ed2dd520") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b62fac36d7481c7d3301b77a6dcfbbf61362629f256905da3799a8cb36b29b0f7246f4cd601518c8e34a7b30e77de04976bb2d87ed40a6e61044dd5a08751447cf0eacf15668665a88daf1c75797575edd52624269efb3afad28be35e3ac1ef4cf952c3cba018e21334a8b20ddda93917293c0ababd08f5804100ef20871aff44647ba2bcda7d2") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fb7f2990d5cde4ab446b5eadedf8d8b48f729ea00c2262b16cb679472c99383e1994b8a08c8815548f739420f1c061ddbd322248e3a923627d4eea41f91ebab7cf18b9e8de27e5f452244f5be65f840e01405de2704fc472f0e53772c62e8b06c1bdb0f91ef86149cb3197a3df9d6a7a4a55f07a50a37aa8a1965645a86c4152d19acf82d99d84") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4e591825603717b8d216c7a363a43977e6d0dfc15fd027b2d5e95dc4cb217a90c4f55d4a43f4f8ad614eb95acbd1777a2ed57a05d83a024a661449b652e760a9e94358f0634ca242e5e23f38633099ed7cd713ea3554ba95769c177c1ade31c390441d4b041f506fd2f6b7b151880ba5d7d67444b0a87958e83e6ba3314bbd7341324042ae92ad") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b2fc0377eea35aa3aaf01add5efcff1cfe60265276cfcf133227c29db57a5ba01bd2bf9e89d8886ded21cb0d5596e64a4c4e56a476b8fd40659543706880a5646aef1a4254e17dac5d7592d206bd3ed4715db2772cb8d8de3e13a73c006f87552d79fdff5bd34912dcb167f60be92429ad1ce4be2c7c724d5a17644f158765ff0e1bb64688203f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e618cbf75bc2f490b204e2f0a47a0702bf4308aceac5bb781f6a8d3834c29e57f48a337241ce84e25c658c2c4c53d689d7abf42885695562a5ea36be9010bd65b7f999aaa1000f96b51350aab7749e92a843b165a3855ed32c86664294fb7c103c28b5f5668c69f82164c86468d7341381ebfc004909f610859e85791d323169687b688e8be3cd") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ddab819d4e5af351bcfe184604a6fe9ca4fada59fa4e023cf090303ee7ac572299eeca31d41c62dffae5e34437aaaf7a4cd3f66d9fd514f97d98186809e016241b5dab1ca7f318abaeab51eb39172297a045f76f91ba0d67da060c943932d08dd10196072179742ceb49b703fc7b659846dad33223fa1c81b51131be503fe1f8bd8d8cebd7c398") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"12f5f5ce33a4e85debc4884fda0063676b0debfa0d1b852b2b4dc3196f4cd0de72d31226cb881b204e525a7ac94a81001185eedcc5b44ee236802fb03eb05b44e83cf9ca320401a7ee176e3c57bb6722ea7c4aae15d40d41e544f07c462e3782059bc1c277137429baf25ab230d971361b167053e29dd5424b73daee6711bd85234c50501a480d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6af4baf2bb6b08dd3312a00c277c6b8651a44e18ebd86bc9a020e7e3fdead4d0f585e9f0b278fad812257b0dc8a406cd8c59d9a711f02e2da115f557c814bfd3c78a6429f3ee049b5afe7f4c94dbc85038d07ce541edb9fe6399a5a8a82ad0b78041803a613a6b749826c8a2cef37ceab6fee4c2a2a99d3d13af287a15c4663fda13e746c81713") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d86566d6c3b7c0a63d56842073c00227f3e53333531b177123218039deb27c813bae5a297092e3e168e83d0090037a9f13b584a669abfe1fe710b513eaa7ffa8a2c74210a2227c06a65affeb0a80197eb8ef762e6447ac0cf015e4eb90462441c4641c4e5e994eb2965c603525acf149da1829cb8cacffa46a7603aa21424c464ef81b13a6e784") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cefe947b34c1eb37ac2cc8246e67e957e18bfd614b9540a9aeb1da86e3cf6003974f4a74f57113e408e7b0e765ea44957bde29cfb31f3321ff54a2c49d555b3216221df1fdd349c05f2ab769ce0453df8259dbb91edbb472a8d0ff2f0ef264e09ae25f8e7bac92cfd1367b06cfbbbad6b6d8913dc5a4a88c3a46478f95990e6fff819b7dbeca68") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a1fbcf2e7af81d0898c868aad18706018ce7af1dc3ca4a21fd4760b332f2aa290e19a4a91322813dff602978b7b284a5b2706e913e49760bbf6261bbd33ff89a0de9e9973480f66320bb64e6053669534d4c70a5208cc1c46524f06a37d14adf04bd284bc86c538c4624747f78fef92a00f2a0777f41eff00a773d463facf6db1093af79408534") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5779f0e9fa86d2395e62b472c996e882e342e8d62063d07f2b4644ff465aebaba856276f2a91fbddbe8f6b7e4700855176aceac036e6244d24ca1245cd89f85d8064808974806453c86a29b9e168e80883a3d117fae9c18ea7bc5a2d002252004b971d8f7578bfb3768e2eab3eab10080a7a864c4fe304715d78064fb754457d31e1484af7245f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1b178dbc7436c0c93bbf1edd7de9d32a08a6854742fe189a849c0c8ecf01ed304a1b02eaf49160f0bcdc176847d0c54c47ca546967147e6e105e4e7d124446c2d6e9eda793e0f628326c8e3946a8be5042b8276985b09f4e5376f2385a985be2009bafd42d834e0906d890e8cd3c968f24d434e79ba7f4febf3d4687b50667ce10f5c86d0f019e") ironclad_0.33.0/testing/test-vectors/salsa20-8.testvec0000664000175000017500000024602412221014735017571 0ustar00(:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a39d5af8fe112fafbd6eae7d4e925708ba05f9a3c2e24ba025a55c9afd468f0377692205c44ae9df37b88e30cb5526a62d8699a37cc4457793f59ac1592a5998fd2ff6077518662381268c3bcddea7ec6281d59a58c197adb065fc05239a5d7584499074acb08a45864b6e8780ff01fa931825464ca7ceddf65282304d2e124cf9a9c67d2f88c5") (:stream-nonce-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a9c9f888ab552a2d1bbff9f36bebeb337a8b4b107c75b63bae26cb9a235bba9d784f38befc3adf4cd3e266687ea7b9f09ba650ae81eac6063ae31ff12218ddc5873e3f87d0782a56bad6ad73a12eb66078030101d0e53597fd79dbe8b2e81c8aa7dbfceb805f1eaeb25005af21fa023ad20dd7822e35baa71ba3edaf6063f28ddcfc657c31be65") (:stream-nonce-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bdb18d7c9d50caa37116d1240dbe626b9c9eddc555bf4829e5527a8c20f0b61bce2cb709d3fe0af504ff17194f8944c1193cf450e3a6cd00947b5c188eb3f97a63a10cb753c0a14c8218cb68e8d1d3c4fc1a372b7410622aeac77bef95e3365f32b71fff7f0e247e56b348d5e5202741930b907f7b96b1d9d2c6386a8198fb61798fddb0053da0") (:stream-nonce-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eeb20bfb12025d2ee2bf33356644dcef467d377176fa74b3c110377a40cff1bf37ebd52a51750fb04b80c50afd0823549230b006f5994ebaaa521c7788f5e31c720b723927e477669b53ecf258836718fffac45d89d04c6f044b2aa4307728063dd42d1a1bd9d5fb2318f5057d4f2124f3dfa986d2bbe3bc868240be1db8849cd8a032b32537e7") (:stream-nonce-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1e248b2816f788ca417c3eb1dc9cea54b23b9a784fc3b597203e4b119d6c634560b43232dfc2ed3a741089110df2379ac5abf284bde30a8ba701f1fc2bfa64cb1734faa2fa2678168eb93cb13820c0d4b9e9e05e7be938b4ad77f0490e8e372a012e5ed4b5a1ba94bbc4edcfa93437d2436921c44218f45dc5dadc43a258d5834c984076d0fd9d") (:stream-nonce-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"714da982330b4b52e88cd0ac151e77ab72eecea2023139da39fccc3abc12f83f455733edc22808318f10499ea0fceeb40f61ef121c39f62d92ca62da885bdf2116b299f37be983c9d91f9cb20f3ed14d4d15d9d156077b1fe601d59807f06e7ecb4056cf53a865aac2ea32f643f75f10ed770d4b4794a501c8ddd845bb6a510fa39fd44981fe27") (:stream-nonce-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1622448c8dff22675e08898728c21389f0c8910e181d838049bc05efe97fb5f100996ad2f85252765476dcff50fbcc0cd0d53caa6ec95ece5a118c92a3b4f721679d1fca8d1a8776727abddfb2c4d640758b2f9572735f07b2e1e6531aadeb824b0770bfb42459922236cf5cd719cc5f44618a724e7e59fe4b4fb90f83a1c7c1cbfbdff0fc2abf") (:stream-nonce-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"78516f569c48ce781eeadd78616488333ed99ffc70dd8ca8d386486dae2121a237fe4dbdfc1338bd603470533708a59c526e3a0466a439bb10790101da3a342f86562ce647137619af1ed80e54f2caecc97efbd9d24ab18bbbe7675d7b14b8f27eca57511a3cba78e08c0dc4feefc23906f235a9aaac867faffd50363bfd2afd0cd1404ebfe4d5") (:stream-nonce-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"36b359afef4e2e2b6d4a69c1b1d1dc25f44fb23dfdec17c6824581a33dbd27f8ec9535185ca2bce81cce95fb4cc777e4cb408efcb74e18fb7c3917eb2db04b4afcca266819cc5eba5bc3dbc2c5cae4a036e8b46a1a9d288acdec72b7546958107a93b73a8b32c8d88f02cecba7e41bc3bfe0918f59b376c8b04313fb601fd8bedadd2c44d6588e") (:stream-nonce-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"94351ba832c7542961ef76dddb1c8d29b352ecdb003fe5be386ae24dcc3c89b6666fc460cfc939aa17b0757df456bf9e0184ae68c3f1ba3f7109ae26ce3269150aa0bb2684272273888ed0a3bfce9769e318548436053e9be966e3e1f179ac0a8a4dd71ef88670fabb3bb4ded86d77db5ac3b156470fc788f1cb6daa29aebd1c0b993ebe082c71") (:stream-nonce-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"858f158ae8b9f9bffb98a5a065e8d57896f4f6bbe6de7570694cf6a3ae60f8dbe1a2c59d4c161dcf0f79104fffde2e201eb9c3114f9860969adac58a42a74113136dae9b878da654e0722246c7b601f4c2922adca52651384e934db32735d1bab51910d5be205e11cb3304e0d98cd27fab13847fefaa19cbdee9d36bc027c63ea10bb15f5b3ac2") (:stream-nonce-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"187bc0e94fc07793db29c72b87e00c15efd70c84f03129630dd46871979203b412b2323ddbf36ad13b9fd9f23b792123b4abc357dc5f790656dc2bea0c3f842fdcffb5b582700fddee74a4fca86e0092d6c72ed8f4aa0c70d6021a9fd4abf11dff1eba783976ce554940993a64acd7d6c5d2115970f90825d31c2daa5be9ad9e9df03159ae178a") (:stream-nonce-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0b50282563412e72419a106ed0df6fa42bc90254c874d3e34f8c55b3d3f0f07e7fe7eedc459c0e79327ed87649d1ae59f77d58243444733e5f2ad11c7103ee304c7dab228d6c094e3e1ed4b6ee08d41be0e0c96534f3b3763bc3b02d97281a50f4f29ca78fac45be696eed5e4e3a9fa4d74f36b75e0b1c09fdd08f488cc512942915fb1f64e02f") (:stream-nonce-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f5d451af5d3eeef0c20a202a195f79cfae70276dd14e73f4bfddbd6f0b0c9b9a1d99bf1c494822c230bf5b085ef1a1255d34be84256e2d5d727f3c9c00b6408ae874615e46db95db915eeb2cb047d212a78088dd7780c399a34a142915258937307f0fbf39a19e7825951e91c8413dd38e1c153ee05d0fdc67f064cf2b75f3c24221e9b3ff355f") (:stream-nonce-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c1b2d258f984479202632bc279cc7d1b20f4c12de10dc312375f297b957e6a06132ed8d45d37a1c04a8156ac6175ede25fc11e1feb9fb5d5c28c9bd0753661f4604df4b014aef39d26db6a451591c95030dd8c83a6b53e3423a4e3b7160e01d373e1a3916e3790733a7944d84503c70885e59d613d8542974130b9b12add016f5ec68f95e3b0f3") (:stream-nonce-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"49174cea1810f6b1e8847c365954f156db2d03a020164755d803197a0e8eb83373d3f717b0ac76387ef00f73abb6ba0125f124848a6af4623d6dc684c00c9d354840ce2aaffcc30095fa3ab2fec553893c55be4b8bfac2bc065ec4752ab95768f30c2699c80fc05d887e7ec03e2fe629982b87faa5ef26bafce9364fce15d9094de13d3c5b6152") (:stream-nonce-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"364ab207979c2a28df9f80c80bf7f9aa8feedb1c2cdc6fcc97cb8e480d0fd2fc3659a5713e1e2f6f436c1577cbca7aeb8d4d902261bc4285b6a695aaa8ae5ccf80f6ff9ba532f053595213ea09ad3d5d8084ab01a573a385a9a6cb6befd8cb397c190d3371d7580fb9f7de52d0a5530fdef60a02855bd3764acf7e96631164565e2faf5af61f3a") (:stream-nonce-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2ec8b1ad634c4226880d71e9e371b9463abd6e8eeb850b63674effeec452bcd59d83f9c1a7b91de7cf1ce9661d02de5ea863fb977b51ba75250dbae48b4748f5220415f76bc6d039437c050cf08531009307424e61a147e1777cab4688bfb39a1ff2af02fc75e55bfcba20969f8e3b6ce6a8ce34aabdb3bbbfac3b9408c96763e5592c191d8842") (:stream-nonce-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3d11c34c0a8a96eedeb7ee665490fb954d38f4d658789caa3d6f221e6babc45d7178b85103e7acedc3355d4a9c021ef751aff238ccd08ebaab5e9003155614f38f3adda4bbefeb27693d21f510707881cfc91f50b083cc950ceaa4127d7f3552497eecf62d904189a79072023908aae8475856eae5ba96500f2b1bbd0eb9a515ae9d210bfcaf1a") (:stream-nonce-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ebbc802295eec35cbcb755730c5dd20d75e17e112d034761955002ef2c6854a29407627797fed6d1583ae50683f0185da883319b464ea87e2ded9dbaa7e3ccb83ad63cefbcbea5ed51749c06cf24a9b298acf8fc6e45c63c2e10ce418aa403e1c7a6daac578b3112cd1399ee0a11ab76d1d0fbbd4836e7359ab79201043a4b8e86cf434f15ad73") (:stream-nonce-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"72ecb8e37ccc213862152b1583c5fd05247a62b82c3c3f8b5513f65c954c082c76a51a22e803842b87b5a0662b58596cdb74c2a68919acae32bdcb918dacfa0414fe54030c1db799463534e3379f4bb86da5e0db3b876e1a23d89e2f9f8218a95191b7ee90c053e71d57398f8e25ef1ab3c2d50530a4a75d4058c94149b5d632973e2f93f75770") (:stream-nonce-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6e69d328e9f980eba0b5d1be4a9250d0b80b2d263c00773649c3d10bafe31bb09342f5b404e17ed8ea5838b9857a0b9b5c1f219e9df5512d04080593da4525e4952b9143de7c8ba71ba787e7f098dc33388cb41831520c8f4134a44569d9a4e01e5cc3ceb60c972199cfa9cff7867c9a5a35f871c738417c87a83c698f0793e2da7c224694dcc7") (:stream-nonce-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c9836253f12e59f0b3990cab89af17e4109873e4796bcb8b17b3761822bed1aec079d4cd47e2a0a2ac2095ba0f12f1e1d913c21f42d793d04079ef72cc22c3d623d5e1f398a289c6d5b3df30e29f00d6a6033c0059e18c712c0716529c976335c4bf8ea899a37c0fb6a238978d60cdffeb7e6d37889245bb8019fadbffa37449589197700467f6") (:stream-nonce-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0d3392d1ad9fbffc65b70284846e8df5131a5880b321b0e018bc446d123f32215d6b58d4cd42b94aa8b691d0297ec9c28b8a130fc49079f0a077df0de88be7c0897cd620cfa91e928f844ff22b566828c53bb16528e015b67ca2b3cf66e466243aa90bf82308fc0e99b0dce2da21c06289bd7c7fddca5321393f93485da4565cbb866c9a0f9662") (:stream-nonce-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e81023ba54b0fc630e9b1b37185d1e6eb6c45db03b1a0066328e1b4fa7047e0ec794619cdec2590e9ff117c6a571be37ef795db70951f201da63bb62350359e7fa3c35999e891076270f30846cdc89afa327bee2b0267d21bab22e2237e148f5aaf9c19b60f90356234f0d9bb44582581300efc650369098f2ef4870dafe6f7e00bda5e9325a8f") (:stream-nonce-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b39ea8424e0c1af81c760f05a47095c6e26a7464aa0405e8eb55a9b8503b2bd58bb10c638ee57fc55818cbaa58168a4eef5be33a92fefd753ce0205e8ca5d126f8bd0c8ffaf5221b441b9ab6c68f4047a7f11ac6c84fca0c4801dab63b1d890798e33c75d891302b4875c3041b666be5668e1dd4c2301e843240e21bd1ca5c2ff4f66d3c3dfb35") (:stream-nonce-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"02edd6f00b996030d515bb9957bc1bd6da7c65d96fb921e4d4c459025bf7b23a7b8a1daac7bf893e2a9baf8f3113015cffe36e52cd84e62532791e7cab2bfe6e416deddb4a7a04d06eaaa42736dfcc600fa69a5ad06a4e5a092009deef53bbf070a1e595287dbbb783cf86943d9e9031dd2fe97067f179bd14a814cc64ab51f4b0e5feddfc2d51") (:stream-nonce-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6c27f8913202901c1e1cf2970d6aceba671f9e68b46d93d83daabab4ca34cd08183f4920609a956b5d247f73bc193c311d315ba0fe46471afb553ddf004c29ce1b2e08f5f8b63ab33b79e85f622426f96996fd83d5d29cc11359ae2068ec64c7fef41a7c352f3e352f4e8219e96b30b91e6c70741795b745769b38514b86bf1109d193c9c80ed0") (:stream-nonce-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9add2ff382a6543b03c0808e9d050011328d03eaa77ef3a439788fa15f48bbcaf68cc3c53bd6268ddc5dbde73b03d4b78686df9a19cca5d400451b24a5c8b882c76680d31bd99c52e0faf30b01baf3945a97c214c4409ca06ad2dfbf208a6dcff47c219d35e2eb755543f9bca7c02f4d5ea6a77a9cb7b966c5ea31731e2547ff9c932fbc47acbc") (:stream-nonce-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"00b8988d9ffd0678682d45fe925f2582a54eee440ba991429608af4bd7f03b05a1fe337e2cdb4555c93ca5fcadb7d0728b48927e7067aadc46e065d091f22ba6adefd99c4acb2276e300952348a53d2542017838bf5510b4bdd746a6643c0326eb7a83d6c6612ff4e02035397e41064e32e6c9b82c6bf6d95f399032833c2f852f51d7848477bf") (:stream-nonce-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2dc1d28ad3537e7aece5a7bd757b0e56e75ee869bbafaa0b148e24faa89d620911c01825869209b0905d225b6a71358efd1f33011eceb81f918293e77c6cbc69949f54bf1b801b91882bf3a284ee6cc3f7e74b56fd97e55ab6b7f57cbcf47cf6040c571823bf22cb591a186a193da19c950af991618df5b768f9dd0607a7695ea75208af4352fc") (:stream-nonce-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0ae2b7cf851161acd829ab43002c2aff1fa5d5eb66db5d0561c48d0e3e54b65a58f47721005ed75f9d2ff2687f0ef200b3f05449bd891e74814eb85b87429853bf9adec871ee84012b2e2172dded085c1914f4e201cdfdfb08946bb3b661d7270cf68d7f5e02a563d148438150b52268ce8d6a16f43ea01444f1718d22ad18e7672f9a1416e357") (:stream-nonce-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"87faee84cb16c850c74991ef1cb155c3b6d708b887e84f81df61770075aa5d7ba2aa58b11c079eae611641a9a9949abc7e23ef7ec9632d8068571351c94fe36d0cb3248ef65e4412ff757d3aae77bea26212cd4e6d49e1e994615128c6c1920674197200fabe09f287eaf0f9267dc3d41fcf1a3f0dd3b8a666c77acd5df598e24c55f435198fe5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9f591da5f99c235445ea91866ead681b977c4ffa036d770fbca79d41fb014178cf8ecf3164e5e77d7495dc0195081edb2f45c8a1b17d2bec8df3ef9fb7618075b2ba83d17e3e44cebb4dfe884d8274b36fb2cd8fd0b7339747f118f0ebbc190a61e600d2f68b296b17ce264fa4cac78e4bca0563efb6e7c7336c9d40727770edaada9ad06545e9") (:stream-nonce-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b1f599e9b0d96df436ae31f5ef589565b92d245db5a1d4c7a78e5e8d0146f8a49d326c1a3bf50c052c9c8f114dc74972c4469591e31c9ed11927aa9871f38583150767f120f97365c8724d01ff69c19b595b6ec7ab21e26a45998898ddb05a066d24d896dbadcba13b6dec08daed1344ff897bcc9f7ff134b486612d1e2e7b7a5d0ca7df373a20") (:stream-nonce-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"16d9429c9c3be35fc5daddc7ed769dc2cdcd7e5ea3128de22fd0ebbeb15c06a39fdb5d52ad9eb30318576ba521249c6e3f5c84e39479be6de1d45342c5a8502413279a4d74c125a05017aba0ca4cbf656690feb8cd5c5da00f40c69863f6ed1eb7652621b62132fb0440b569e7557cc1f82548f9264265ac81988080b79002287a2224bef42b41") (:stream-nonce-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4cb569029a0127dd65804c8012699f64d65cd08465cd01913aa15609b2d35df2e6ba9d5fe91cb92bd90b8df2f0ea0fbf6aac7bd2a15113dc760177392b262bd52874197c5f2aec7c40cb8017cabd6203c5a0840bf06341972a2aee2a466b0b713c92a3c35dde3bd70dcc04fbbb73d4655dc1de3a8805c8149000ae6cd5d52b8e35bbf90f9173a1") (:stream-nonce-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f643b666050840dfe854ed075cf84a1936cf7151275df1a62814cf17ed802eadba49b040fd352eb8d55e41f0e0a205dcf97e9d3dadd8bfdb3bf312ef89cf963d79ef5ddf5121ff497f7a230b65c3de46f0e43786df6dadf90ff4a7b154a8cac685ae192a08a680114cbbe2a1102b3d97cb785e20cab52a31844603f47712675325ab7c464d9f5f") (:stream-nonce-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c0a04790e17a7a886926abfe0e3d5e5863e56a6fbc83c0d77fa3f25a9e686427519e31d1002611c8fce04d66a28bdd1561ec451be47829ec2fa1cdf9bfa67ee8d715869226fc2224d492c89de1b2a5bcfcdae585176e40bb572efe41598ca469270c7219300ccd29d32dbc9aa1128abc2b2299c8e5148e954db6a6219b97280247a3408f2039e2") (:stream-nonce-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"77d20a750d06c16ad663f52c69d3ca0ee61a8cd8e12149b2d888ab0033664e1a19871b84c9957acc6d3b5de4aae21e270571203386b213b75cbef16a8677d85f1f9745800104f2a090a2bc35aa1c86b7c86d6fafae085910bd462cc949632790b68bac66ef384c1ab8b2993c6ebe8b14eae0a3d7f3ee328e00981524722f92aef0cc6c096d15c1") (:stream-nonce-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"07adba33b91f2442f4ff5ca8bd0f42c9638d1bf3fd502e32eabac76d42ed1fb73dda60e286c47702a7c1c25c5faedcffe82d3cf45b0d0067529aaeb322efaf0b5f08474f8207799c0ddae617c0aadf408e880d166a4f5f5bf5da4b82b68764ec34cfdd93bd0faed1d9d759ac4105ac82dd5d09dd3488dae1cb60bb7c88f6b76dc7fa1fbb8256d4") (:stream-nonce-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d14216994f0bf9ecc511b533bc86baa5e3692f8a9e4db3be9cb2716372a7da6d53488d00f113cef3c5dece445b32ba1dbdd89d27c4f7032f01f488e2b10d43c9fd5564fada69040384d9a91cb6ecc5915b97afcd948c33b7f77d2a8c70f8e8b56d9dc8e7fd29f1b11895357565af9e864161e5a920d2a9f1eb2c5556882d30c426f1994317664b") (:stream-nonce-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4b715b93e891e145d036be7fc588ce2579bf80b85ba7f856215a8bfcf7332e7bed018651052dc376de21ef0bf9f790b83e1327898da349e52ed67e032305854a0f09ae08728a629c704f258023d0d047031c05d76f0de8d797e2712d1a403bf5fbb33bf489b8a34ac721908d60db5fbabc531f4771ce4da03c2ea5a688151ada2c8b6306b30f1b") (:stream-nonce-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"02934258a13df757e7932a01eb9431ec7a5dd4312f82e3f59e4d965b32fe6bd3b52e7577360115db71c1adc94ef122553deaae929223ad5907a6f42171845d7918bcb073b1a89d6db45d2a6d8b0d4c3c55abc5880054ad3e81a2db8e917aad64bd3283076833eb3002f094718c9f9111f5b5712ca65714cbc80690a0d9dda3ee4c8e587cb88efb") (:stream-nonce-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cf5d5c95a1ea7c0de9f029e3ae60ed71bf0fde19075816899fa8aad4b84947e42e7163a07171a7bd06687ed46dc368d15dde25f43a3e803b519a32d1655fae2fbe6e21c59ea981dea101e420fc45bb14454566694085141fdf640a50abf459c886630b1fe2993a148f1955cd724fb74e733d09326a1b78fa288d99f33e8884cc9fc5ddd6c775b7") (:stream-nonce-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"acbbcf2469fad6200766829a216e23551bb6a1c9f1913d159828145fe57728794d155e51d67bd3576aba3f1f4a1651bd5b002106cfb43ce4047e7efb3bb1efedebc945be81f2426c0d6037675356b7125a7d07c1ac96879e19b5a09b0b1b968b4a0748014a7ffc617636a74a3b8ebe2a6c94731a5dfea11a795dc460672ec4bfb4a7ee12345ade") (:stream-nonce-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"02591d4104a132102b1f9ab7fa8bb6419bb8c8968c590788a69225764e49f83524b524b4e7d930f3ee4270b6229ca2c71ed154eb890264fb179ce68110e875a5a955de6e8822d29c695aa6044a511822f22b22ff5f8832aef8e4afe015575b62495495383a99c562a7e503368193e24eda38844e5b28ac71ef92cd9021c06995bc4154bdf2f4dd") (:stream-nonce-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1cef4646746364f2d5d533904ce807314f561bc1e6be8dfea9e1c94cc9d544fb57321dd1d4e25f9d59ea6ca6f2d877741cb874571563d12bee2276fb2e2582cb2b94176e82dce6be1c5ba854bb45d4ebbe9f11f523ca34d13a4a3538d433700cc31992fb5754e741d45d72a3a885e497cdb35902261ff077d3ae126a1a86a2b474d44cddff6ff4") (:stream-nonce-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"78837aeabba4e1e05ed8f225354779102739ed6819d1de2f22e4e41e72bfc498a506f39ee4a8c6d224733cba17a28cef1597f0078b5e2343cbd5768c2c886cdbb8c734c259110dead9339229e2d5e5cbcd00bbd3ed7e7bbff4bed7175ed75f56d89c6a04976ba0c04d3bac8fd41f23faa63c18461bc9500d5d850811c73b06f986aaefae77c8ba") (:stream-nonce-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e2918f7f848d87abf76b53603a272da6aab539ef2e97fb0838e991b42545334aa779a8feebcfa80676941542f5aefa7c39588f1e0a4d92f6a8348ec6a76f75dfc616fa14f79117790a5febd9ecdcf0cde9db8bb8901438a4f364d8072f5127006f763edcb6ab04face8d28e996dbc46f730beef6bf365d4903d60ee3d38db235786f4126778375") (:stream-nonce-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b14afa708ea9fbf995d72a5fa694615afddf9887d8bb787d53ed7d45123aefa51b6ba015d2a2ab4df3a3d4dbf4f70ce04f5598ef35d1cff3f2c0523535707b972f98bfbd8ffa51078e7baf03bed9d13d6ebd78ef2b3439506923b40b0ef06b9deab0a0e42c5118be33880086721d0cdde0012d7145491c4c698faa9bfe03285b181a6db9f16fed") (:stream-nonce-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1809178dc254faf363aa75d3eab0d7a3df78aa1f6e6650ad12b35f1f2137fb09ac2a0a7943b24c1378edcc8b17232bcc3d2d6ee2c38a8aace29aea82952d88f6c8a3912d2c8c2e7c0acee9d5e4805cedf298d19fdba4971fb467236e2bdaca2101d2236cc4f040e16d00af93db4ce9be9c7d438c4fab0f9517d5d20e1863eec1cebaf7085cb81b") (:stream-nonce-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7be573107e3d6ddca99c5dab4d6ff35aa296211b5eee2ceb07af24481bef2bc3f0e3e1a008064b77cbd6e3a4d5240e7460e6a93026e9750430d027b05a222468046084e0c8442b22dbaf79658bebac59dd2241b0c5eb6d90e994cb87c51adc8bfcec77e1f27677df7e2db4dd494ccf522038b6aeb405bdac265997e13e0105191c96620156f6bb") (:stream-nonce-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b5f4f6d2082598aed309819ee9cf0b60f8109916e898d3e8029e89bab646a7e8a109421291e569e9e7be23777359f19d77da97eeeeb54a09904cde59cfb71a48f1e0041e3ca4cbddc1e7049066a9079655e78296475d6c4643d4a45f0396d7d055da827229164cc41ad26e09e39cee5a6cb7bc5b375dd2ada6e68abf97446104e0c1255691fcfb") (:stream-nonce-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a18075dc33ac352e1a427f0c4a304f0b27b02843c3bd604d71b557e20b0d005eb0f2425340bf87ca65b5455a2f2da4f43654bbfdc2384afdb1d50331f363b735e1b2d1be3ceca98873433ec27dbd0231d09506c2b09c2f42e65021fa93b7882f981f065f8476d063b5d0b652e92c231fca8e193a1509bbed37d451985bbeeac2d090b3fd01bd36") (:stream-nonce-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fd5f31939ce210c9896c510e12844b3107a4a474830c086787a39a3dba6e2b5cd9df49f4b4b03a495370d394500c49991cf1539e7745d5ba663f9062729ec5c3103cac9ce0fb6712c6a91f80e12606fd3a83fe78d0bf27e8ba01ebe0b04aa7d0a2551d1a8c40aeb429c13b4c26abf365b3022d5f6f0e34a29125db9a8323c2b2d0b4e2e342a643") (:stream-nonce-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8a898600194d32bd7e98310cc789393f7d6ca125619df3e2e6158f3420e1a5e8a5bfbade00d07a4d14ce1cd823711badf1be192726760138f04c0b8d41c0e31837401607ec88cfefbe0e499a43300bc74b99cb06371de2f0daae9b2c8ac78bd2dddaaad81b276eebd11592e039373776e36880d7ce3051b50c07bbcb1f86f3b9cb0369143b82e6") (:stream-nonce-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3ae02e103ca8b1b02da5c8906d8b57dd09ef270bf4428d4d1cfb1eefab285be4d3ac59069a2aa26cb2fd8faf08c1312b6fea7ed55896743fe22f97cbea66af750397132228683123fe5afb0d156b3dd51a98005c2b28798ad32e696492f8769cee0a97748fef440d48bedfccfa6f9eb2483c5b652723c7b4f28ff301ae820d1d7128ef97fafb75") (:stream-nonce-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"429208ab25c90ce3c88f47562d33c1297078541e791e6ff1d1a0d014141bb64861511298578b2a40e9954ea0a5f17e95aa8f7f02daaa59673427d54884ff6e427ddb8295bf3b96f8b375deef0d535559446083f6f2cc340189f9374605315eea224d1c4ee2ca52cb3a63ce436985118c8202b522aed653591f5845fa047a073573179600082a0e") (:stream-nonce-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f38fd468ffbe057e8721e587c25eb85e4f9a714e6541e4eec59e7ab07b364fa9a516b9e48a7ea7029e5695c04f074da2fa0ce855fb72f4b4a7b62bab5fec3b14f4c5916ad04bdef8002ae10f4fc99d62dffea9ea48251d6309ac1aca3693d04363185e876222ebad110d19efdfad632c8b7f768b3ebfaedbc5139fa63945efffb1a5e808b6e49e") (:stream-nonce-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"36e180eed55077fcd1bf4ca05feee741130f080944e520ef7956a2db571f5db2564e04247b483031104223e4ad39ddcb7d6ce31decf1e99e6a69c1a2d568f3d196ba5d29708bcc980d6d4d1d0b0b64608443e52189af75b63179e06aa5a29fc6166140c07275c16c487a52a36c00095ca99b5cf6a988f89649b05be4139f639ceabcf8428b9be8") (:stream-nonce-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1fe49ae6c0572ff3e4febd8ff35e3e6b3cec62b5c4edad1ac77aa2b72d53a368d15a1b1f29848c67cdf3b8d6a7534380cbe4ca23904631ad5cef8b2440852441b4dd5dd1f3a0be023981b7ae1cec529e03b2047c278b3ab8a3150077ca6a7205703216a20fa62906d10e346aefa5d8a2b432ba904f4218f6ca99b6bb46107d2e36bba440b4e78c") (:stream-nonce-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"18723430f7a27a67c635bd11ab939b7c8de8ee772b0115251b97684a656a1a4866eb9087bd52a43d9493356340d529f1ee3988a16da4ddf70b8f8bdb1e41f99b44736d70c3faa5da109376cfb07b026215e5a40f15db48559fa39264492edb35acfa9bf788eed2927b91fdb82226e6b46146b89b82a9df9eebbf31446c34ee97ec622a40424216") (:stream-nonce-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"10a84b30d0aef7dc7a03915bb4eaad377f43f8a1d5fba4c8c86a0e2003ac7e5347da3690cf9f67b614343e8329db664ef5214c17a8c80c81342f838d53323c928d73a2da855ce9a132e4d6470301c5720a49c52c5758ca0b41023eed39a9a3b58b0984229b9a723e05253bc3aa76cea589b9cc315fed93f293f0c168163defb59cf6a958ea8318") (:stream-nonce-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c05599478d44ef413665348804f655240d30bf320a5f7a586692c11a7557d00c86d4f80ea2b0bfeae127394f7bdf36c61f52542a572c00b5ebc21efc79bd5063d9934f771c6136f8d62993efa3c210c66b43fd6f1c03c9bf776b88e5d451b6aa0d34234ef2c5d7bf2eef0f4560be4c8acf40ed74cdf7828ae8e1d0deea59d6688fdc0853e87c08") (:stream-nonce-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e32efb0a6e44bc99f6d6b24ecd63a7a15e6517304179156af4b43438df006d4099e5d8f0a7c7af9d8dbbaffc26c88684df0f284649412ae2a5f8d0ba2efe967b89cb22ac2477a786da7b0b1b9fbaa43ce41c36eb47e21248da7824d5782714b4ef4668eacfe5315d59ab6282114c4b2642a784ca0d3319df217169d8bf3d4917e67bf9777d8177") (:stream-nonce-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b414e0b704a007afd03e9166ee934b15be82180ff2c5df0f67aa6892e1891ce6ff86affdae0c79378e09c990d52276c06f2e9e512fbf0e49e3cca601d65ad01eaa6e194e370cb2f53d145ec4a1ef4584aa72ab4421b58b08324e0b1e6fc030ce1d14c032d2ac85d98da068b3aed9cd4d60c9d2b1c4bfe1ccce69846a2c330352b3566a19f1fc70") (:stream-nonce-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"93b9b64f1cf33e32ab793b6c011d9d55f30ed3468ed2804aad47dbf37dadcf7e835ee714df2eb7f735ee0b6f7977a4c0c12efade37ddb779302387a4c2bbde9921b13546ab5eb4587b254d14221a7a2e0e5d947d0602155c79ba1f417fed6a4d3aa4398268bf3e589d0be0b390842801cfe172efd645b00ed91a1506481ff230adea08b6712962") (:stream-nonce-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f2bd235886d244406a159b41b4c0a2a1020a0887916de130c27c0b5962c0d9dc186cf3829ae946f022db3f37600aeeb02010d3db1b33ccf970ecf29999492a3679b67066bf70a0be71d01fffd4e0ab5de1b3ff92b6a4680f4e4ebb77cf12c44bc26e34b2eee9cc8c2931fc29acd4a78aa5075bc00cedc6ccf64e8c290c481bad0839f2a55f8939") (:stream-nonce-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b3cbc6e2fc1fcb0f6b681ba3d716779becd4d86379008b7f59b408013ab7cdf14da8b4a4f58e6e8aea6329356c32b4c770624b175eb415927c1566d4c29ee93ff314069544dd42462d7402b1842fffb97d28904046a72d1d850dbeffdd7fe80b1230143911090c9fea2f71cc0f68b8cd6ca7161cdf640ef16d320f6c24c0c38a7fbb85d1f1483d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9f1e45d9dc058592f1dc52dafc9db815833180fb68e7584f2199fe52e96c69f0e8f875bd1e24c6cc78777264fa5a99caf22b0f6c3626200aaa653895fe66254b12d5b274f944af0795b998cdb96a14c2421b7df9f93bf1ef9d59ae078ee2d1da9754e7e228409fbf22bd731a3f98c05f8c4ec914918c652dd2eb5f940e7bd6b31dc9ccf9f5f1d1") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"58e3e792d47174e14ed75de036fad005a255f69eecb35f088017a904b436308a201d6dbe6b85423282dffbc491041581f9bff36477596cf3a9cbae6e6e23b903199e9f13986797a75d5cd25ee7d299f599dde4f12e65d1853c510027f2413434ad9f294db459290dcd7775281a1e0e7e4779604fe3bb84ce48435e82220aa87af861d4d76cf32b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bec67142acba3a7548fd965edb1a6d62d361dc181c955bdcbdce8da8ed85eeb0eb026f87d788882719a9fc64edd63bb1edc5f91c95a2b42016ce5d70b1126506952618961be0acfb5a5b4be1a5283d6c251031abb6bcb81f0e23d61e3dc90445111516bd8795864a5c43096ff7b70e70e0155c2d6ed3f6b3069440d9dcc63b9f0e6474a3c2c5d1") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0b54bc5a7f78e85614e8f15aa040fee048fd961755e9c95c807521c6f16a085046872d1b2f4a84697a665e7571d6d5888f7e854414db64c52f03916cecc7fecf5dbc78bc65bac61bdd059dc1595b5059365e9c78e995221f9186bf5c158930c1f0369971feb1b6fc63b8c2512f1f2bb04420be70d15dca144517693ffa1fd3ef18aa9c6bb8cd1e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"df2a1cd920c387349eecc683a5a12271453c66150fb4e0c14e764672a93b361220f2f99634603cc4e3e4253ffc226f534256b7c2fc72ce9655e885c7b0fcb199bfa706dffda5b1e88b5a358347cc80007269635a230fe55d2142e3f70f5541aaeb42a152db03b89598e966a0f228d99d8ee0eae7bc27660ba47db1685ae831c01da024e6bc3a3a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8f46ce157824234856f419f3e93f69ed3c6dd5641474acb0031ad2e4859a77a1081cfc311275d62a2e19921bc55e677966beca2aacc0fd0fa2feafc6902d2f5b4ae2b84034782a5ba8f20f4f389563a8b1fea05db17f82ce5de1a156709df559ff696b6cb95ffdfe5b2e682eca309eaf3cae2208491d2ea77b4a204a81f8624ca8ab2213a1b99a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c51cc1da64161d17bad1515d3ff256bf40a09a160401f73eb8b5dea94e9471a918f219896784f68193bff3f624533b99a33302bce1135f3156e408f6e387990309014d6d58715415c2ee6d54d04948d197a868209e15deffbe710080e26d83d1e6cc22eeb025c4da31ce949982c5e9209b95ff8169e17427f5e4019bfeea91c4ff51a76ec4c88d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f88ec429b0da918a0be7d8af139438772118e97db4467406130823652d349a6cb4c052d3054f580cc77d42c626a7ce96441173e3d7f373fd379bcdaad224188b23ea417b269f0871ee772b3c67a893f3d0c0f785a62c69edaa3395048eee92f12c4503d45584671392e41c38e3ee27809968612c3b12cfd57ad543bc18f08fdce7366cc64c09f9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dc321d0ea3682600ddd0b851a9638bc8020dc3eea4b8f79293561101eb384d725c499a2d4b5819a812f2bbc4692821ada26798a42ff730458b8838f8ccaf29f586c037390adf8b1cfb9b94f935bcadc85dd7c980d0d7ed17bc1e6a3a682d172a73c40b6e4a3f06d83f6d4e2870c97158b905a13cec6ceae7c58eaa01cbead0a12ac87d0cf8e84f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"12f86ce9e9afa6af2263fd0e76fb46dd7d822baa3a5082b0a48ba1e643af6c59e93acca528d7cdfa46179715de78c4e6720cf5a9f9b475c81eefe09bf12c34d210b534ea2223990c275a535b8e545d1ee4fb39ef9381660ccfa6f0982a52962195afaedfd1022d6487f5499b75b20f2fc443763e7d6a67bbe0f1ffa4b7fdb6b89406736041bd95") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d7dc98e71cd65e3952f5ae27155e6e94645fe031530fbdc20c2d080e2dc9a37cbcf0c60f1aba601537ab95f9fd3b805613f0dcbde37a52ff8aa887b62fbd16c4c2ba6d0d906e67793185f2a6efc535b1d726a7c915ec2cb5efd68de6cb151a9121ae3c176ed8c150e80ce9b077b1372f22428f2917896c5b99994acfb5b67eb2313b6d7eb88e8f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9637a03cce57413e17265af5a1d627063f2a99d039ddd108aeff47f2927b48122fdb7a928e8e969e9283f2fa2aafe04f573aeddaf23b893eff265cbb488f193b06183dc41526957e2d38664f19454758aad7229c0e3605c158d9f8b99b115e9d7302d55c2d0c91c2640fb715b77a1b14fb167441e54dff0354de2f07f35730a53ff08915f378ca") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9ec434a4f74ffaa67bb03c0a6d3e4bacc41c5fa2df2e79b94d78f7b2bef4eb89e9b508645b96e55f71c11bbd87cd841c380a7280c40fa77a7293d01e0d871f07b89f43452f4c8941a91eb0e77d92a7b142a2c4698fa46d424bf0fdf2a6660aa5c7e69e178af8eb9c6ed6506ad5c2d59ed0dd8c0a78db36bbf88c888473227aea05b201e8978416") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1a2d747aa75ae3a2b8442b00d2eb899dfaf741ea043ecd307b992747f240a4d67ff6803ab5e923e691df50437ef57a031fdbf898acdf3243ed87ff480b7921a04088e9697756be80b251d05aacc790756ae34fddd1c2811de6abef7c77024950d08e002c2559a42d5e90d871373716fb337a1a7bb377fbd7de095792e23a0076ae79b328b3bb8b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"067201c43e0e2a0cde624b5df19aed14b65998055792979b87c140e8f3e444b85963a16a8d92c4c5e79bd1e9e3a4d7374b175b890f8b42e6f91d91b23ef0bc5a5f1f863babcd022e12223e7f2e80142cd8766014c0e7f60215ebdef5a0c7741afaed709e67d0fecef3ac0b1175589ba23319767397e007aec31a54088ed7dacc6365e2a3cb7bb8") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9842b4425800876d996a8562a5d9d3c5f19fdd17bdace941cc91c48175a93f84b7fd42d6591b35bd0fbb084f4d9194156c2c10818efeb2f1c9f984a9cfda2a8e026c584f74e04fc1a0b9b061aedf448fdc487f3e0e40eb634e4808dc355aa12dd9e5d2139ae7233e3bd8e86544ebca611c4ae92797b829f4354a355c5eedc2dc4491c74d46356b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"53120417a8ff085d2a910a64ce38b5fc6dcb6e9dd03b787dc6785faa826868146daf9b5b3f439f3bca94091ec2395e2b7cc66d4456ab8b8f220e2671675f70ec042c01e70619d74ab774329f0cba48e9805f0c5b21e044efdf8eeafd57f713bb94c4cdbd1095431c76e560fbdcf59654a6cfe93c20b62a1a6960e74d5f0603e5ebd8082088d0c6") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4c639316eafd27253132e22a09dd424ec0ef11ad2275786876d32ce4fabaa2e379dd41dd805f316b31fd98c20d444b6bf000e778dc90682015bc8549d1530ac11424b597b0adbef90093895a79bf4e4ae786b447a09ea64a24b2fea38eb72134012f0e2afb19e96a1368c8cfa8052df0a1b458bd90dd2c8e7f353f62b9b2dea625df37091bd3c2") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"628de0d8a44e07c181ba2a2e83f405c69e89c125e8f63da226bacfc1f4ea1d1c93bff8d2fcbd16e7a1106b783639cde8cc3b50d6ce7474ebc3031d9e1414d57d98d8f51c16618ed2fcfedf5807f829da2b691c95177ecd08d32acedcc3d573ca23be8f50970dd47b982480c4991eabfdeb23b88c55bff7d1edadc5cfe8cb6e17cb2b8b3080a6e8") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"958255b3f1b1fd9c7f75cb59be2b51a49755db789367227fc5d05050c955971809a0a2f4dc94dad9aa7f8503c4fbbd184a87f7653d1624d9989c32406f6a5da14e5c651fa5b4928f8f669c2620e8249d0f818cda58732ad830e64dc5ce5db854f45bbd9610e019c0080f746fc46848e46fb13949a0b848b53c26a900d729933a96a704d82aa95a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bf0683a85b512cf9383fff11273453f2146e853ba85ac87fb6c4d8b151dcf8897e868a8cc1a7bd16e01b5839b13be6966ce7496e88e7694d2c8075ecb48d7bef1680bd0d011808f85324cee4152db7864f7d1eead2a922031fc544f80ba0a0d44eda5a5d631044a1dacb013518e7d91bbcd41ec56c5e5027883c2bb48580e4e558e50b9e9f3f96") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"41a0bb88a1a2b14a94e4301aef36e31b28b995f564f9804c26ef70e34b7ecb2c91eac1fca2c116b9f892d7e196adfea0c7e3723144af4157af3b28bfee4efa532990da4ec3a229ceb68a012a3f5cb6e3e17a9479f0133ea3eb55d8894f8e5b30c08205df5d1bc25fdd252fc78b851e714b4f1c4051b0cd6372c17b0d770fd733f18e55170e1784") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"70514dc14903dc077d3426f625aa83aeb4e69c47d3fb2a93602f60d62fd6c2ad34bff7f206e6b2be375984939752ff3591dcf136359636c909618a9ab93807fe3697b06979847dd5cae34d2be01e9fb93cd7f2ae4308c7eaf33d8c5094dbe0d32421c043d4e075b13fef9b5c18227a631727bbe817219c6e1b6eaaa1772d068bfb5aa0e5238e0a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ca585f5b6f5694a1adf0b79cdd95b24a9957256ad7b51c1d8f2891b608e86ea05c18a97646e6f5675b0bd8d9220c9fb7b06548b025107891f1996125b50caaf97e2878afb28916100e5d6020eb4bf6590cc3c98228590bb2bbee3ff021a3bc54887e42a4772da1b05f7cff600dc66ac7199b68f5a59f743829212ea267132fff272df001676ec4") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"83cf85bcd626c09652bcaa41dfb088a29e902e9081f35b986a98c673cb5afff885fdc78d82d159cbdfac6ebd39f130e24455e50b33b6901e46a41b8079e04aaf8b57d112a286d06a84863ba975a4c8f58f979ad3c79f28f5c5d1098529b9cac45a07fa56aed43265a5ac69ce77656bf9d7bccec994bcd59384ec3eeb619a8a42093b372e82e2f0") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"46935eedb677fc75034ddf0579a6f622d19b1a293f6b3981687b0a8e5432c1f134ac24dabe2dc030ab28a9d61922922fd59eb2222c5acdd60121f201e8983a842770550dde8f9e5060557e04e9cf0af41e1b261a6d67c240eab3b3f97175ba2875a8b2a3e9f4f55648a95ac21c65aebcf7b1dedc3db860417e8448a0060617ee5e71f4518171db") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"61fb24efec27da9a173d11f472ff8d57f2a18b826972f7b7a03f0f6ea879695c052b095bd7cf3258325c813c797040c18199185f2ddff4a056c1e529675df3aacde0e88792535a5f161c5520bffc6438b8cdd72534f9e4746b53503d53fe2ce7ec10ec8a1aae9a8b0e02de5fa266f781c06faf838f32a933b315317e27a8ab679f8ed755c90b7d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0ab8fd02b07d9fe49b557b1c474c812b6b46a16d2bb8000710f67dc2613c51f9b29e6f4eb5c92df84ef2c7e8662f4008eef15e133af72e0ace417975fe15f9ff1eb1d98dde0d1702d1665ee6a884cb7098afae2c959fcda5435c783504f7d9de2b6d47934ae7e6c37b3971a1d01d2f199c24ef5a3dcf95c0abbef0b50491a0921ebcf75dbd8d2d") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"472251678e82f653a05ab5e7240365ac3141ecdaa952da2b5ddfe52dc6f7e8c4703e48c7ec5a7a48a51e4235602e1d2c214c9ad181bad0038e22650ff6f5c8f63b1d66b85109ec7160e2012e931832799de338506c2c25067caa3188b4ce7bb4bcd7930daf6b792d3eb91c94819cc96090a4b51f95cae423a93ccc5d981e14617cd4f36a5ef1cd") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"182cc6b98732a698004f9964c7035d64ed0ca69f9230abf5cf0fed2d58510ea413ce7ee94d9a0c665332f7009d3b46279e143163ef54f3ee7e4938864bf8a2adf01ce2522b9de20418e45fc2f632dd92b286f8a5318adb9ade737eee673a91be6c70b415590464291b9f6e2e7129033a36dc75972ce4f57b0d65665604677834022c5cb171a545") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dca9f0c7328c0d00896f3a8af0ae9039c68cd8e0b4f8641032c8c46531e7945ed9c76756f9b208db476e6cafbe32ed69f2671e0ff9edf1b1d00ac5541e58b0d19ee81a58f0a0ea8c2ce5e45e97c9bf3782ddba8866f18eba1aa6e2106b6504a8cd769c8dd2eeb8cbcc0cb0b9d423ec3ebd09aeb188603af02f03e9b9dc0d3ca51602c37e3b60ad") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e5052ca5f20de7b5051870468e82918f7e94850c50bd8943c9de56b76a1bdc94c293a18d0d3e4878c5a79d7d426091317afc633e5025efc048792baf03f6d7b6e5a67daef77d570413ec0fcb49a610aea9b4352f6197abc822c31141e85df8350314101491d2f01398998bb7a5399743f752f85badb129ec8b24a40a0474800cd863a42f69fe59") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8eb7774e5ec6869056565767b351fc16a7cbce69ff44c44341cbebfaa36ab1b6990038f7ad25d286d2c0d70a70f4d0bf760d0d825363eb397f5a796ce0f6679d22e1d93cc41b3fa0643af13c278487206d9f3523046b7ca6b154cbf5359742cfad69925ab196331a20a94d1ab8b2b19a04d608e2cbbd4bc20e4523e5c0cab8f9c6dcf4b9f85adf") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ad6bdfd1130c8529f066262d7a4ca06cb9927596655eed4b2284ea0c5589b484283656491c753a54bb2de8b9076bf25d92f2a90a865ee62853c224062d9074a4caf532b037f2620f7b593d3fd4e6798efb98153dce7ca5992a4a1861a10ba4a9f7aaaa84e75cdd3456a6324758ebc5235c72821669626c3d3ba4fd5c0b2b3c181bb7b9f5de3708") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ee94037b1aa04c6947469ffc96b5be2f3407679bfcbab69b0a3b63d0d1d37cf29aa443b236ce7e8505b60c6020a9893626600a22213633daf818d2cd8aaac3a1fdf31610ac9c937f9c495d37a0d923211dc1e41e48b160f39ac04bd13518e546c69566f2584026e72d5bb3cb4b80e55ace8cd55265d346a7a8f6917ab7b9132f426de4093889d4") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0fb642b20895d7cc5282225ab9a2420a19b0d78607512daf55bed6d5ec86b47dc1d93dde05692c7220a71aaf50237f4e251619d8248c9cb63982f4d46ab113d8824a7d698d7fb94863b731a6556ca11f32b609baeaea721583a09d607a2357649d2b322069a94a4a184d4d0d998f084e512f628021d60510d7e4c527da536eedca53da7c44a0ba") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"696dcd3ed41b223a325162d7717d5c4f28090412cb733fa8d1ecadfcfd88f6b62152d5950cc49e566a5645f511247bd91b361814e838917f7071cd45ce1a67edd6306cf524d9a9987ff9d5b7b54fa25498e6f477ca9a98e859e38bb675b259d47189202a3169a365e836a0afb566b1ebc6c9ffc9ac2940d324e166d60094650fb0b76f2db01a24") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"abd8166de66084d88e71c0f197f225258dc59976b473dec6b94f32507031e7cda64275ece6b81ed4f4dff5c854c0c800144098248cdcedc35544fe5d7de668ddba39b9ad470b038f0fb0a371d5940467a5679558aab91b0b4f89979d95b18bd9305c0fa37f3396bfc62ba9e04602be67580a5b9fd9747e8d788af1c8c91e7f085d3bc25a7ecbbe") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"91fa16499fd62cd3d693b7263b0167f4e8694ac86ccfa7b0630ac08622cc462d812a4e67402114996dc61047f3f461df6b47331d2f37fcc53751d303c7e268c729315ca4d0b69238bf9647d054a5fd1f33d33f82e90a2e70d946366c235ea30d06fd614c33e49943ed6218b07629043c9cb82d295dc679c4c088c9a1558b9a7c9409db074e3627") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d10a854ceb8809ed5662e541c3b6a4125e8b094bd6c57f1beef992c1119f04bb3184f47308da7c4ac59fd05a23fa36acbe8ec362171b257d835fbdc9cd588418e36ab879e190a7a126dade9d73809cc78c7fdb66faf435c197a49c685c235ab99515466f5203331ebb90e25d316ef7fc1fab4cf0e3f919704785e87a2265cf32c7ac7f2017f902") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7610fa0f75d9df28e7fcf233ed20480b0fcbb56af381f7ec36068d35e07628e121fef8ad79de82025238d6480e69700a513191ef9dd56b8fbb0019873c0a107cae6a4638b1d1232e939552441a8d619b92d34254bbc02505a6daaad7ff20d991ecb83d8f03d1210399bcb144673d58fd2fdcd51b7e0af37993b6f32cb48a143c92d8129d222cec") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a89f9974985d63bbbe561bad624712abe963af5c468b1c6c9e87ed9170bb933bf198d61ef608d1ef46d0d9bbac62bd6a0dbc562aa5e80578de62fe155a82e61e7ea9fc73f0b367b36bdd519e86e752d8b09b7d1bf4516c05db3c2e71503de4a351a48192f8f6fd2728623bb9d723fdaf8ab7428eaf61ed0bdcf731fac273d29846f2ce56bc3fb5") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8a1cf31257ce802bfd52f06c7f0ab9ab90191df3dcab95c350f0a286bc9e39b518674c1f48b0629842e580803d1074e38172cf5d23460ced0cc79e8b17950095ae57aea66878cde50e2347358361e8bd6ebaac2d7039bebf3b4de3acd6ae9c5eb223bc73c0c8a90180264272de6aa71fdf993dc7bdcc4ea22e55696482952c266e6ac05da2090e") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ae11b972f708f2430fda6848239da6fd0635f94ce152fe8c07f8647ec67e35a2d6840068f308d57d770a356cf5c83528cd9edf94622d71f204205c1e3cbc29a100c4d7b49a88fac5bf51eb8bd30b377fc17a79df50ac9b101ca798e27acdb97778abd29abe99c9c236d549d86a8557668bb27162f067aa169f5406e13336419c48e97baccc3cac") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"675e88b4ebb7c9e13b48b8391bb4dd6a112c7f688f623fcc3025212158267d59078c39226dfa40a6efe5b8476c66d9e201ea921c0bbac2a06e478578eab2e141b1bd5d1308aec425e09d87ad30de6b9ac0ea38b5ed1add735043f60ebe13a9f4da0abc2c3777b199a97f137fcf5debef6ead685b3e195e6c233e55b153e07765b66620949d475a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f3f1d5f1e9a6d524408dceb15013c8806ff638516c24e7db342aac74906c161cb8c1c422aafe459e3d7116ee89ecc48c28c3287408eb4df096b9c7c825001af3142bc6ed3f35ba56651a4acef8e58bc246f2bcfefeae4bb52b42fbd8e7dd671d4afe13ab039427af7f1ef0ab9190ac902f0508fc10b28c2bf7697562dd3ffd485f6ddc0a870760") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ec23882036e96bc32349c38cf9af39e6be54597d5751e2f4e8462f94ab50cf4ae84c593e79bbb1c516e5d94c1c20dfe7852874fd8a27f16b0c8214ab746b8378dd7efd59328a845734088dfbd5b7aab9b8d0f9c9c219905ada722e8a613d8b7bd58aa0060b553e5e4234dbd6b4526075dd4ed4646d8affd332139f0f5559dd1747b1aa22f5a753") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"08367d6ef1761e7a85505317d61d18070849618add02ef043730b396a7f144cdbfd66f5d690c849ac3546146b2dc5c60443456a4a760dff07c94a4fe217d68a6ba69f8342b17be7690d8b52727b9861a937c50b498ea641952f0da0038007deb391c446d6aea4590393f615136953326bd28082ab201f7bb178830a8630c01cef818363b566a98") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"adea4c486447ed9b1753752ef188ea2ce2abb0f1e4138db089a77ba4b9792fe305c9a14a652c51434968fe71dffff1b273af1e54a10fdc6be6eb4dea633063653aab75604813e08a0fd08f98314aeba5e266f0660cba28207cf8d01fdc11ef338ea2ab340c77ec3fbdfb741628b7e048acaa8c8af7c3d0cb3efb88c97cb1cf29d6f3cec5e99f67") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0ad51d0dc8ff1f2bd9169bdf03b7d5cbaf7b0247da5ed045fab35f9bd7da211c00983d17e38a1e075e9eaa6f833179acf74167eb835018078a02e7033cc061c9e5f4639c2d86e13f79c962da170a219586c0edde2c013bfea71dd2b49e3c12d9878369f9996fe1958abbfa43c8ab163fa718f45332e060e819b5b6ee56460c68841fe691bbd398") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7f08734392894c728c2f04d5afac53b13ee75c2e64c10ce7288048f169a1ed4246918c4d0dfe1d4598d493508ca21204abdf934e992b2519f5d5141aa4bfe070fa7e22e99b046154df54c7c1492e83f0977304f5704e85389731e8408f8ae7f10adde9c18a7a75062ede51269c479c0bc585f108e77a645dcf9ecff658d5fe44bfe73a91dfa8e2") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fe8458fd30eb5f75a41d4884b8bd23d2755b5321fa6dc849ff28ed3c727d21bc992b9f33466ab0798d6ba41f27ca7e2e477e0a180d5234aa7e6c136cbd3d7a446f52c702bf3a7c108a4832ecfa69968a361d8bf5817eacad5d4eecfc2acba3932208ad2ef04547290e4091411bf4c05e0457ffdf118dba9f6b2a5a3ab0ebc29c38caff1251e072") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a1fa3cf16ad34de987c250eac12330d1c99ac60e57ac6e2bbe10a3fc177b11e3e19a1952ece90a331cad75b4c13a6aee87fa8143e0e714e49423b659f977716a116efd66bc8526684acf94c91af2bbcd8a060c9b73b3d1d1ad4e046b3115aa295400261fed9e947da348012353314253fb339d21c07eed911e6ea5f24b932e61a32446fedb32d3") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ec417d93572bd5381b0a68438c91b629ef2842195e0929621d71008711dd02502c9fb19845b596c318f05cef5ef99533d436088472fd52258c939f90cd3df22a2d9e94a1dadd08b89953b0d52260de00ae791770c1a97927da34eef93e341d7069c8ed0004c1546fb4b9cd11cb81370ca207dc7d4090e2d962dec08e39160c5b3acf0375c5bc3b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3ff1d6b964d063e1adf5ea5ef39cd6626af6cd8db24c92ed2b73173814b302626b553d8d7a7f5bffd6a32c83568285f75e372734ced398a8f96437f43f7cc50d92ba573a6dc843702a8e7bef0e5ec5b823c3c31bd794b3168024dec92467fc640553913595cb2a8555d3d23aa27b10dc5c78bae7ac95ff9dec63b18e3e41933b798ff9f8e5318a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b8cf4b7824c3e4f0b34082b265970ae979ea25c28f7cc7c8e14e4bd92fc05846e4cef20cd9f16bf3690422eb13ea63c5390cacdb72007bc30ef1cfd37f5c007814a93086e2defadf4725872679e9c714481717f795a83fbde82df9854db292dc4a6d2cc8e9725e4f066ba8bcab10fede1d9c9d40e6ad49dd2227cd271ac83cd5b0ce1088289edf") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"520f357900495620f995f7b94323e8a04ff5662ae6d335ce56dd647b33b31c43e555c508235541ff6bd4d6b2a96c1a814f6b409f1e74b110911522cfa6994f51bb87516b7d914c22c98a71ef0d64a3c9cf8f3e428eab0dc609fcbc969f55d11dd1d2e22cf99e09a8c946ba59828682e4d8fe26cc3ab577f85b1a7fe409f0538e6e9fea7897d9df") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ee7a85229578e58aeff028545485eaf3a7df34d55012d421b7eaa4448f07e428be104b49d8d60d99fdb6e954fd780a3107b85a6092c38b3f8c931ac8fad7af1503391b4d727de7fe70d407db24b3ef9ca83c19506c9d2ab14fb8d10728a4b588116c0b0aaf3b5b1dbb0f38830eea35a2f0894a83114ce5bfa2f7f7be38d06d6c600b9a0290a988") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"94b6faa299b773fb67f87ad0d52a121ba9333d5f94be36d9f4b50909101f1e2a8e23dd60c3dbf4d631a7fa674ef114bbaaaf594de912b905ae5f609bb5c78d0acfed9f1c8b396cf2d5ef6f91aa5b05989af3026849d78c18177c38d1b0e4cef968c337633ae7483828df05dd1e9f81f77b81ce6971bd084f95de1143626376090177e6c4b7f768") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cd51b9e4198b555ef2f1b445208c8b0dc95262c603ab232cc6be030f824a15b3748cf67819646710b3806a7dfd0c073bf63fcafbdb9edb6a29edd12329625e31ed8253ac4c191ec34b0529a6ca3c4f8fd3e635f7f8a3b719be9ba3d1f55050d37c8959d7f8114acb313101efbcd414e382c36625f54211e1d8290ff266161791d95b90245c3869") ironclad_0.33.0/testing/test-vectors/chacha.testvec0000664000175000017500000024602412247651665017407 0ustar00(:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"89670952608364fd00b2f90936f031c8e756e15dba04b8493d00429259b20f46cc04f111246b6c2ce066be3bfb32d9aa0fddfbc12123d4b9e44f34dca05a103f6cd135c2878c832b5896b134f6142a9d4d8d0d8f1026d20a0a81512cbce6e9758a7143d021978022a384141a80cea3062f41f67a752e66ad3411984c787e30ad857145afb2adcd") (:stream-nonce-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fbb87fbb8395e05daa3b1d683c422046f913985c2ad9b23cfc06c1d8d04ff213d44a7a7cdb84929f915420a8a3dc58bf0f7ecb4b1f167bb1a5e6153fdaf4493ddd14d939ba4ee02f6cf189bb452fe50e92c94b0b83fc6964fa49848b38984c96ac471083178453bbe1eb83517ae6e2a2c69c273f921266fb6011545837d2861726df0a739dfe53") (:stream-nonce-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ae56060d04f5b597897ff2af1388dbceff5a2a4920335dc17a3cb1b1b10fbe70ece8f4864d8c7cdf0076453a8291c7dbeb3aa9c9d10e8ca36be4449376ed7c42fc3d471c34a36fbbf616bc0a0e7c523030d944f43ec3e78dd6a12466547cb4f7b3cebd0a5005e762e562d1375b7ac44593a991b85d1a60fba2035dfaa2a642d5224edaf8bec393") (:stream-nonce-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a276339f99316a913885a0a4be870f0691e72b00f1b3f2239f714fe81e88e00cbbe52b4ebbe1ea15894e29658c4cb145e6f89ee4abb045a78514482ce75afb7c65be7ecf3f3064a635b516f7397c9c3dedcb3020be10ff021bed1c9fed9f80b1ea26bb1a9dd75c76ae63895f97c1c7c4a94b425308e0f008478666c21ca1c739451c024ef8bcc3") (:stream-nonce-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"aad08aacc5722bb6bea6311d8eec24d7f3cc5e4df9e28d97bd62975617302b96ae592cc1bbbc817088f15342b38cf7eba97d4eb46809acce54ddcbe575fcfec72957ed0dc9666c4d5b099c3436f353cdca44582b686d02087511f7d997fdb3e060435d1310af6d38fb4529bddb14355984f89c16f47b24488e10dfac6c3fea6e7add4b7ebc2f53") (:stream-nonce-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e84db70c1c5a71f39fb548e95a089b54617009d20e61fd1defb67c84a6e0d722c5fd4242e754279e995689f84c7875c571b4a47cd2043a28a6355e4e50445c1ce00561f780ff22a5dafc62da76081de73a09fac6a2e0bf0aefbb394e54b5de625fc8b4c45201b6e1469b40254d84f5f2a3050ded49efec10c106757930e9c4c06f9f4fca95fc74") (:stream-nonce-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6f9f50c3780405470ee3205683a866b658f5a249cdd64ff9770f9706cdc5b8d9676927b5bbacf6ffdd32b2b58c9a488cdc8fdf84f0efaba8b0d9d232eb6d55ae330d31d82476a953a5a2d32c3d37846df04ca1c1e55eefd077df7d23e3f54f2e7c5954da8c8ab4a52d776858277dd50cf130c8ea69a888dc84e9173d78e8a7af0a3a32096b2cde") (:stream-nonce-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a842cc8b164a99ddd16afa3e9d230faa11662a56203ccd044f44096eec73c1eddb5e2111f828e61955a35aa7db5f4476e7f934717b847a0657e91e8cfe08b3b502fc703ad9048479b9cb1cfdf37062941e88e5749b19b37cbc8c8c653b3027d69322aa2cc499f2e32762f38296a85a159f54c5ca7a4b060d71b947ebbe4ebd210286184dcf5342") (:stream-nonce-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"60f175246df283b5d0f1aa829bf8e9cb6e9a5e183befb21ae92c1eb878eeacea51a35d02dbb93bd2a579cd9d2725bfd9d410b581a5c7da1024d7e4a1bc8ad3750dfba2f4520d4bab404573663e68a3a66b7b5b9c4d3e6fa2946814696f60caf294c2ac78690a40b9c8d5a429b99ec47bb48b760cc6d19aac8604d61ff7d8626f60a9207dcd0252") (:stream-nonce-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c5f81f42c4fb06eb1f1f6cc31d563ad14471618157cd66b4d73618fc8fe349c1910d51c812d7c99e1c23e57cdc44e37cac3f9df35c1e7a6664bc507730e2fc955a7d188e8bd7a5030cd870525c12f71a348d32d1c27b90c5d74b521a64edd5b32c90742d20378b371958035f087d536ccf1d2056daaa661c9ffd8c2b170fc5075aaaae2900e4a0") (:stream-nonce-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b6575ae3ca36e1e68cd8e430f7d88ae36a6d6f93860501e164412e0a47ed8811c806a559cda4cf54c7653de2c9b47c3206eea1d8b033ecb1b7f69328ee34e6a7445583c17982e151cd58c62583945af6839d48dbda87d003349fa0e31761f4994f7b17a28a10e32d0b8e13ebe833ef93cfbb4ed058da18fa8cdf84de0a1758405b8df202b47c4a") (:stream-nonce-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"da6ff465c3a5bf296fe727620757301ca9e9500af2e61d384cc4e446c0de08fa9a982c4d7470a5005ed1648fb1fc6950a76b536fc8ad5fd780d06512bba557adc5c6e93ec15e7221fbc316e94331fa73050c9df44e0b33733a0b42dbc8fd0984b8b54f79242893dc945e062fb6ea068ff98750f1cb3d3d3dc5d1e589b3774bd34f66725bd48ebb") (:stream-nonce-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"07a5346591b55fc213155ea381a51afe6b9d5abaa1901b15787919aa05b524e375a5db6db19e9b74924de1641b22553ce64e2df15f1fc6c6a2506543dbdbd19270e62c5f894e9e858ebdc7b4e15a1ab6ab33bb23bd071b0b60e3be17cdb2db506ca0118ca2f3e4662f084043fac9c6e1b3b950b630b3f7399d868ea4515a6aacc45c9274a3d8c9") (:stream-nonce-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"34016a467b63a33523777c6f66ed454080fb8749bcc060b4e6c9d017940518a32d3ae4faf539043e1ab68e51c56646490eb0a4f06c647ef2e7f7b82acca07e0c819dfde6aa68bfe567ae1bb60ebb99d8229bee3fe733edbee0103dca3fcfd0519acfd963cf1ea3a5f3b5675ed239548639451b57e34167a37d47185de91e60411d1b6aeb941249") (:stream-nonce-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1b4311aeae6185c2b435c93f11133a34d19a6bea2ef836e20667854e92f9f5d33dea2868b47100fe81731110d60ea268e7053fd5dd2f3954f2cc21b65e91229acea3777e9ce88aab262b0daf0f7f8edff5a94b6ea718190b876bf5d9d9ed689bdc3d98d9f380a7e59d552d1f47d12c7b97dc36db7a04a221677a84eeb243f40f46e71c45acc987") (:stream-nonce-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8dd12cb38a767ee22d64356b95ca714f9c320252ae1a7c9f6506c20726b7e8dc12d1a6f7af27464a524fcbbcd5479915322c9f0ec887845cede1e400e218d06453ab07abc1e7c76e5f7d7ee80e0aaab9baac11c6ce4263dca04cde3a9638f2f19a5896345e3468c2b880869097b179ea4b5251dd577b556beba51f702c8f9af2d257b92b960df6") (:stream-nonce-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"adc6e2ada41486b14b53789a7240a5e2815b3b8acc00e1c74d9cc6b2af81aee1ca0b1f62f85ff6796302e58ddabdf5df0e4d7f3f3d4074869b67037dd83a0b77743de247b62c54d464582b7e7e31b8245648822734d1a4f6dc2eb8972ada871581850f80c6e6cff3f9c28d777b658b30b8147c7248b23cbea5f0f26c9e0497b6eddff6781d03b5") (:stream-nonce-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a85e240e255720e3d87db955adde5e5bbe8617839ca064e03b1ad9db25a3c3a81d84788d8b4230fd0a8b9ba2dda3b11901407527345a71bd678dc3ebf99fa603a108184a57ed81c191bb3239d5a8c1a06c5d5e64b89336e4feab2fecd14b79d7d54820a9b641e3efd75f30d8d1f386b0d6283aeb4ae1ab2a43f28dfa96ed72d83296a168ff94e5") (:stream-nonce-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"063b941d43a822b7da8101e134b43559b5d4af59ca30f77c87153b1dd3c9c0a4a65b85e2a6eea35998a53fd1672839e64344faf41a7285741e95e3fdae02114db2d6c7ecfbb99071f3ee303610c12246cd79c3c61f3ebe01a82ee4215b85a9f0550ee02151438286e6a1f923bba61422754c23de352541a6da3c1ce72523ab7aae49595b994499") (:stream-nonce-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2bc2824838621de2723ca64163c0306e0ef8b3ff2d6c4cf71b964fee8d1fcb0f89a128e587261a01a5bf211de26c0884986e845cde8ae50bf865d222ca28584c6e8080f95b3eacd4d1bef9ba15940f98fb21e64a90f99e82c84ba4c06aae6023faa10b170eb520f4641fc5596c14d2b466db08daf221035c0849ed3592e014219aa9e2ba6f20a8") (:stream-nonce-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"610c56dd13d7fe4c520bf22d38223f448e9d65ef0f1bffddb9ba686088591d7a35cac86c90cda899d2f94dca2e524be8291b0135431659a8634b54142a0197402477364983de5c2c6026119238e92a4c23f25750ee55cfd07f77f4fa64ad76affa556643b970e9ef2a1b7631c212b5a4be5c11a91d260077a01e00766a97df86a47f0cb69c405e") (:stream-nonce-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9a5670c8e4da6ca3c6c9dee7ca91a5db70c0951dfd2701f93f529585bf4da085780479742003c17c2e6374139b686449e0b7d13e6ccf71f6bb6b98eb9ec18257411d882a0d41943a5d30cc123c59b8fe2b6b469dcfb8c460cc7490d0a5b056b101ac913638b80446bcbe171b4d81cd0bbc81a0c15c4aefdf1091951b34d5bb65d61ec1c1f11258") (:stream-nonce-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1ea7c15778101cad8feb3993e40243253d6306c60fb247415f2ed94224a0392ca3c671b5c0e427b245aad502c75673a5d754ccd85adc087040b8050e84e5b711ad3399b23bd2eda52792ea24520e2b8dddf9f5bbb1968790b41b81190a6d4b97a6c776b51f0e3a0766492db068ff116e5a156ba68c524c47a072d617661461b82bdbb4be5ee864") (:stream-nonce-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e8576f762bf904b4ac97614c740fbcf018efcc6e924cd57271ef07a407f21610902bec78b8022eefa8944187ead1b7d9b67c637411127e7177f7677d87d799181b8b4938099921c80e3516417f54952722df5fd43ff2c88b7feebac12c7630d04877fe53f6b7cd8cc3d469c0629e6c1ddb18de0581de94c51b920ebf9b7a9ddbc0c2a630fc85b3") (:stream-nonce-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eb31ad1efdae6dcc7536c875241ced686bc31f4d35c4936bbd6d9be356df56d56893316defc03e1be1f3467fd4a583a8bdccf5fda78800ef5ec0f9983e01c2e0b15db495617d4d63c91fe0ea7550848e3923a0bb11d74876568a36301bc3d5db292ee5d9228dd1718ef100f7f69873e89c47d624981e1b7d4ca1484c00c96e5a226445d1404666") (:stream-nonce-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dd4ae32664dfd9e9ebc05bb8e7cc1608ae76cc785ceb2a9442e8ca173d2d45abeb399a9ff451191d66d9076bf7ee4a15783b4f71824b22820e92ddd8d6b7e73b223650259deec56301e5e1d253f9bb93a3d7b714f7064bbe59141156a7b9603fdb141f6f13688199637b6356986c5854f374913bee9efa6d5da80b145c846ff70791b94a67cdbf") (:stream-nonce-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d670acc0cce0649c6419efd58db369f5f345c159429a9f4fcbaa9f61949e9893097d2bfb8782b90227d25bb04f30e2348690cb650cd2c2f0863999aca111b5b41c0b329638606e0d52bcd65ae16dbff16b6aa4b1509450cfa6ee5b21a936569788a5c3bc89a07c59146be680b7c914d7578dd9f0bd4e6c745de23e83d961dc6b8a9f0a2f806099") (:stream-nonce-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"078882b4993176bb2ec1307f82236446c6b7e34c51382ef1ae6f19d26d14a5e6422c61114ff200c345ab8e9c508791ae6761f9bde90a80560e412402b700a0d75a0e356a90b38640a4463209935005e438afdbb0844a204731f1cd66f40cb9e45f2abfbd5f72eb6c733d3fcfe7e6a6dbd5c594ed15308175389e8be250e1ebddecf31a3b6a56f0") (:stream-nonce-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e09790feeefeda51a901ce724cbbd991fec35749be2c8ef8c9da4abdba8b4617278e2c3473de24c8424f66569fafd11525c481aa208f52c6f13978c7a3178461e3202ee95f52d86cf1c0560d79a15dc11d45c63af424443c553fbb23adfd59ab16715674a571e4ff2cbfe2f10132b30b757979d8059758b12ebc8c2580c2091fa922f029ef5118") (:stream-nonce-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d9c0a0648212b95c7ae589d333f85eed3886beb1119e3a727afb5e30289bf4c64299cf84f524132fd54dd69cce35d0ff0aac9ab653cc6b1b502105a364addfeb0795e4187bfce5c75aea430c87c915abb7a924a58e50decd7da0c0ad9f251c4909a7c1bfc56c39609ddb9240fb7ad8303df2c2e57d066075a39965a05bff6e08f6b34acec77d75") (:stream-nonce-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8d416438e51a462163e0ffc293b0b8ebccd565d0f57c71d2f226c355cf5420ef8c50fcd169398e925f8bb5ce32c6fbba8cb2efb43dc1b2109ff6e2ef7bb38eea59e8743230f74647ff18cb6e7d090a5868a27ebec42f4b08bf20ec6b229e787cd3d688a63266d68b3aa75dc9c6d93e43de6ae7e0e42581a7f7d92f7f6f545b21a90e7d2a6890c2") (:stream-nonce-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"47ff1ec09983a1dffc58c0c4ba07410821d6fee9c12a5e445329ff768dec0eb41b258c433f1ab164f620a42793582bdc8068174ac4f2abf36847f60e320d507c1f600158b44db940fa74eb15ab0080eb6ade98138b62cb2258950221c6b5c8149f91ae47537e6f7d6ad2f72095ec08404a386186d9804009c81cd311b5f1b4fd118923b38c0ea8") (:stream-nonce-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c2b90c7f11b847a6a778faaa5fb88213d0b70c77916f9af1f535995ab15c33360d4ec1705eed07704a499ac0f3684b595965088b35a39040fcfe8e83e80339500d3b47c4f0254e209b3ed51ddd08f30fc0da26d36c831d19149c03db2b46ac97e07685b1116f926b527827ce97ec445d78e5d540bc584fdc14dc77c66899ac4b642264d66398af") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"76b8e0ada0f13d90405d6ae55386bd28bdd219b8a08ded1aa836efcc8b770dc7da41597c5157488d7724e03fb8d84a376a43b8f41518a11cc387b669b2ee65869f07e7be5551387a98ba977c732d080dcb0f29a048e3656912c6533e32ee7aed29b721769ce64e43d57133b074d839d531ed1f28510afb45ace10a1f4b794d6f2d09a0e663266c") (:stream-nonce-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e29edae0466dea17f2576ce95025dd2db2d34fc81b5153f1b70a87f315a35286fb56db91e8dbf0a93faaa25777aad63450dae65ce3eae7fc210f54cc8f77df8662f8955228b2358d61d8c5ccf63a6c40203be5fb4541c39c52861de70b8a1416ddd3fe9a818bae8f0e8ff2288cede0459fbb00032fd85fef972fcb586c228d969d08349670baed") (:stream-nonce-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c5d30a7ce1ec119378c84f487d775a8542f13ece238a9455e8229e888de85bbd29eb63d0a17a5b999b52da22be4023eb07620a54f6fa6ad8737b71eb0464dac010f656e6d1fd55053e50c4875c9930a33f6d0263bd14dfd6ab8c70521c19338b2308b95cf8d0bb7d202d2102780ea3528f1cb48560f76b20f382b942500fceac26c02c80147c34") (:stream-nonce-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a822d39703fb46e9ccd2dcf75601fe746f3a22202547060f650508a43f27e655e277e7c9525cc93c45ece389f0f127109699a14eeb900f602477cc91c0bfc894200045ec1c8deb474a2750c7bc939cb714e10f04d693534b41689816014c1940570d7841b3d30237094dfb43c523d08d7a0d12c3e5e1c88cfc330fcfe1edc2f7ac312cd10aa161") (:stream-nonce-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"79fdc08e0b46cdeed7d28ee9f04c1262c483ca3389a8ad4b2290e9941233e542fd304c08c11dc606cb3ec4621a90caf409c417f50fcc204aac034f60c1918960582984d83ca6e5872a9454af44d478431e4c3048fc177ff47e869e225929e5bd050a0fd97ea7314931352ba86a975e66294c8ddc111436c6d7715f39acb639a6e1a4399f0a7a21") (:stream-nonce-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7dc536872864157d28d22e06de9167d1e89e669536b7ace64bb03602d388937eea3046c6cd84500576c688922b5edaaa38a24f3068d7fb6e526f23b017f4d224b700ca7f17b972279c0d3a0e1037cf2517892cab9523da097ace0f80b6c47a390cfbb9e6d846bf3e0bb988c135f7f1b786e483cc239efe1ebfaeb3a90df4f50e645fa252a1ae5c") (:stream-nonce-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d45ae542081e2310d6c24b8a0d9b509e5bbf86c3542778cb561946b083e2cd2e89bcb1e3415e68c7e52718ba421e4dd70eb74ee3fe8d83454f25fdb6d2d4bbdc8f4cc2323173a02046426969ad0f1dfbd9ce2c67cf9da3073acfc9112fe4f1478051bb0a76c7d6dd06d91366b37092c4a9be3c5297826b7231627c76ec8bba23ab04f2dbd9a4d7") (:stream-nonce-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fbb1445f6e39a80c6f61ecfc732e3bc044866ebbe83dcb8f40655eaab387e968ca6abe94d51826d4d84d1742ea67c7674f486754b94fa3d65bc7e3475f0e2640b9c98824baf8e8380ee0ac89f3d58dc82cc44702c490b825f4def455840245015f28466900d1157f5c083f13d1335d5fd6f1418c8cf9e930d5f59f485e346a623e14a99fc21594") (:stream-nonce-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"40a2bafb9dcba87a7b03cc50456a3ee340357c6ac912f60cd7ad70e77c461c9d599ef7756e23f07d950cbfed9e3c25e0d5601849551177e6bd912aa475b59ce2245cf8f28cfe4b0bbdcd8a466b19fafc7a7df793df6158c9e355791ab94c465e61d038676d53b396ba24123125cc9602b4613f37e92e8a0819f04bbe05b5dbf6d0043e8d8e6d2d") (:stream-nonce-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b2d1044cca8250a5738fb4149c8a21abafbb5b46d781a25fe71a0b833b1907dbfc1c4430c651b2f0e1fa4d10aeb54b40ee3adc0d30684411898532485631c788e8369155b6a26cf05c63ab0a702d1f72f2cc1c89b36c9d3a678dca559e405f6d846b9405983ed34d40015fbc05c9605e36a064d28156ffadf2fbd23d0ba611fd2163ec6027393d") (:stream-nonce-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cef3b8b5ea1c9f5a1afca76b5637cb3fa4f78488d9f401a1c1b23b95a862fa8a14fc1b9bac3f37f48721d3a60b274d3d829f30c9714ca469bdd564c8e378dd000978d14d1721d7c21b461d985054da05c0c03166b918bf2c4681c1bfbe8f0ac94b60de896e98170078cdf22e4b1df577e477c69bcfb32cb6fc7a23415e1cd7d4154404ee511634") (:stream-nonce-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"59a9ace0159274f9b503fce9f07010b03eaeb738aad90b8cfce331c78864b84815c0e5ea49d9b9d2f8442343c749d67e5088e58f07bd27bf0a0bc05e37702a99c40c38d6390e1b8c8d1b73da0ffc63d0acb1e69fdb771f7006f14738770e1dc378f72d63d40b6d02e7514cbfa0abb80bafdf5973b28a0ee1c1bbec573a470392d95bb6dea580c8") (:stream-nonce-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4f663a66a6d9603f9304066d6c1f01109e75b37b2623ec21afdf702555b11cf7272a594f03e3ce38c9941f415330d1532a394bede3066acb58e730fe6f76b5a81d77834c861e1e4c208f9cd9445534324392eff6636850df6c8090675219b19b488f60e53b6dde73e54ab7258f9a7c71f580ce237cc5dc6987e08416e5710c4a1227bbfab3203e") (:stream-nonce-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d156e8b14a494dcf115fb0aab9664a54094c6aabafad2f3378f9c115c03ee9f5c064e682446d64dbfed5fe61ee6bcb788fef617989fef857c67b3438943a28cf160b02fc962197dbde65bab0d0b2eb1eebbec5a3047e799ad999bdc862aeb37c3a9bb7eeb31d3287246a8d8c7dd042b37ed2b4d069d1962152920954aaa334bb071a5bd869bdf4") (:stream-nonce-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bc5d174e262d08b7ec0cb7a00aa31f55b2e7577f9ebb489659f6f0eb09b11afa5ada8c682824071bfb262ac7689efe9e8ae5be92d9aa948f8b51c46674f810eca032210c39bfe47f5687bc0dedd8f243b168921c0d1a9586b8d31c5f11230559d145f3f2e087340359716b551dcf1f96ad977f2ed50627e282cd2df93baab444704df2f6dfcc50") (:stream-nonce-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"038418e8ce529449ce5a22970de294c1be6836b518cc938bf6691b05c16622b3ba9aaec0bb5deedecb8a77ab55895809aa6c9c626613146acb664f280ea58be21730631a042071979de62cf593fcd47fb975301eacbc2c478f1f9a6eac1e354116282095faf75bf1bc101ceab6600f6bad9b348f15d256931317429308b1efde18f06f841719dc") (:stream-nonce-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e3430d3c7e50e8ac3fcfd841b273aa735afc1194132bd7d016d3ccdacbcd0c8afcfdd2bd86958769d242ad03ba672ba9d88a0ef37bfdb8de7d13bf3fdc1749463b0e01ca9e8cb2b617db6cf30c292c0a9ffec2f48c7352eb82d488ffddae7918237d14d9d1ba93fe62156828849cbf0c11c2802104499dd52dd241377fdbc080ff76d4d5c8fe68") (:stream-nonce-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"606d6dc91eaeea71d5e9512b8902c4e7de571ac944755dfd94f8f5dd6f790e02a6c78a941bcd322863f790e08654288811aa05ae5a5eebdf0455445ee2141fec79e3698177e835c99571ef17458ee362d8a4a084ae051057296fa51b9b85d5c0e52ae6df55c7ed9368fc6afca9249c98b75d0892905840bde54a3220d4d7d483ae6c03e9c3e2dc") (:stream-nonce-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a0cdc8dbe1a7ee45deca837d03868552f14a22644e12c1478c3e30e36fe196ec3f0d852b73b84049105f0ae09fdcf652cb26758cd1795150c0136b511510891adf342ca7313d5a04d57bb9612c7ec851ca6e4501f41aefa319aeb52f0a44fedcff30dc4554e36e965502a2ee27392eaf33f45b0e275b30da83a1b80db6c5c73271e0d5f431929b") (:stream-nonce-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"510b502b8f438f7bfcbbb92c4bda299aec1becf9140d4728f36ef115c62a95e12e06ef6d9299020e8083ceb1e1103eddb0f63a312bb38eb78c673e481367eb30179d6a933e00101512f1734788389ee92bea09b40407ed2991ce42d960e55a1d6ce3f48d24a38329e8a287bc32115ed510b10cc3650de7281e4f23044d6e7246c155816e7176e4") (:stream-nonce-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"757903fe67f3c18eb9bb88e15b1ba456da2cb2d7f2d228d609451dd367d2e8b3b6ab169e13068e2a4f8fe42d87885b7994f75da4ebc5d3780780fd0b15a1837f392903f018cf17ef5277d6b5a89ce8291801dc25611152712cb081e48e4f3a0f52a80fd922ff6465a9dbf5fb6399fcce23b32a1b80402be4fd3964162506ea9c6280ea3845c057") (:stream-nonce-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a90a254027b10989607faa2c70484ae25d90c4337ef94193e9003f2ba932fcc2c3b4f1d059b614711190d9e4d3bc0c7d8de371f81580b8a2dc45d0ea3d726c9b82c55a95ddd5035025c854fecd721ce6da456ef0f0b1d87f6cc01a97027c3cb501020ddaef53b620dfe62ee78bb5a91a364b06f5ca341eb734b0ec31dc6b1983b8f5a4064b336a") (:stream-nonce-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a4f4bcd4f72a6f26c3d14ef8b113c538116bc24fc375273a2c64a58d3d37b423380c696e567afb271eda2bd45a8b14e5d4a59d07327193a30042a607ae9256b7afc7d28d5ff9cdaa92a49678cd44b3b1e04a4a54e14b5297081ccede8323692a6fd47c31b4994ce66c4e6789b7f82915725e4a3606ee3f92b5a2828b794e094b63f1b154b8b86b") (:stream-nonce-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"aa4e50a1f023b75d47f88e8806c67cbacf604fb587b988200d76536ceb5b44909dd34e7a1648f36f76c75896f430ebb2872f98c3307c04f6b6cedd81b53d540e1776175df6315c487f4ded1328f4ba48da550b1481b09aff50be5052b8df9e057321fe623430313fa1f04ef4b13a020f1460f605787c787077ccbadaba4cb15dd63980f4ea7060") (:stream-nonce-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4dd8e391cd9c4e4220649acafb6ac3df4d83811a1e6243f24a8086eda6cded58e946be4d501780566bbc0dca23a350adc9d6d0967f23ef91b59e908bd7314cd6bfd38d5df5d191814eea8cdc328c32c9eaf48a61d1fb2c29715d732b62c5e87f90a520e414a254e6b8043d9ac827f9ef166a0dfb735858035319617a7bb02edf0aacd56ab21e81") (:stream-nonce-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6997b2ee4ad0ae33ae653d1df8140ebb6d41c8681a91f104d696c25a851145654e33deb4cb30609ea11abba8c084e69bd8a239bd85268ec1d2c68e49cf3f44a368bd3c29460f8344d251c5214a526b1d68e56f2ae5eb062a9c69b12770d4ebae4e7f5f9893c38ff3ae9205d16a4bd782ae22144b28b8da7f62b66d127b6f5980a8468a024da8c6") (:stream-nonce-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8a6fd6884ef5b7b5aa92ad34c1208f193785f1f3ef804afe330117fca19f6e5746203c93d7375cda2657cfc770b82611ab1fa41d8ec11d81af70a6a315fad04245fee283bbae7277a0181e2f8970faf894caebb1f43a548c2cf0c69d0518f99925f475f7d8e17cf9f9238cb007dba97d1a971006bb2cb95226802ffd54ed6a6c23ec0d60cdd825") (:stream-nonce-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"94ba30855bc0bdc3a03c3098306396d43df75dbe49cebfd659387095d13b1a47aefc45894426bc5784bb3e84246811ba19f4bc86177b2558510b2dc2530f891b7db13a2412ca2dadb9432d1df8a506b3c1739cbc7ea76d99743e3cceaa2eaf61f1a6e77ff8cfca7962633836da6e6da46914a53591988ca5e67c3361ac3c36018ab7aad5ba0138") (:stream-nonce-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1bc3fa4848edc742c3837abaccfc705dc33c93f70eb6b30b52dc2f05accde10c91beb3bf333466719b5ee5a9c4d2da48619e1e9201e84bcdb49028c3b9706fc5dce51d0d7d84c2b49af042cca77038aff2abc22b1336211ec17d56fc3eb184e4a44fb6344fad2f828599075fa07d0dd1f2e19e7d7b22bdd10a913e43cfdba624cd324e5bf536ac") (:stream-nonce-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e5c6d2e89c9d114af100a7e51b05e76bca6cf921d7364c591e5c7ff4d26db3abf2bbafb826e556dfa9dfea52a02503228dc364a01cbc18fe76e063a2e003488abba35e29daeb75b8488d361d19a78e5ca1cca968f63b587ff3aa86ed3cf6403f9cbabefdf50124d13ae4b5cafa61c4114903f874472d0a76410e668f598f0462493fcbcbe8ee2f") (:stream-nonce-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ac1e3bdc8cb03b990a3ff5cf45825a820f2fb2c8f9d7450ef2090ace8e9edf245a721bd6bba2390f457327f0ded6eb80ef1599496e957b6d9286c84b1f3de282781f48202ec8abd88adb496570c08b6d911d7bf2538821565e8dc0e56a06c877c101bfa47e8307be970a7170b802856a95337a8f866d75d59ac0e0cc204d6d5df92d71475217d0") (:stream-nonce-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fadfcdd1bf1f0d7c3807b62036e0803574038724d872b80bf3778aa92dd2723fe0205d9108d448f43ab7427ba073cda09efc08c9e8a19955c9bf701692da42d0ed7bf7f6de2249fb9ec2fe8b63aaf3597be47cd1065ee32a940a6e13fc29367ecdedce0ac949d78eb6213ff9acdbead6f073fe8703cee5def87413b6eb4d23d74d39e24902e4c5") (:stream-nonce-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a4c041c6d5a531eef2adfb68732469ce8fda737a85813d134a659522c7fe99b38da4d67e8628e57e6775e024066d212c73c64a6dff01a5f5c25914c1209fd510470f92547ded861afe58ecb0ace4f234e4b818cf9e4272e67e08000863431fece5862219d5cbac34ed4cbfee8b56f4f59c19f1480856df07cac51c36c3e54d7e34dedf022ac452") (:stream-nonce-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"38802b66f04f9ad5ee111e849e0507996d8d6d079af05ea6447b4448dcdc5053563009be8808f321cefd4b191ae8637b896ff7bc0e12f17eead902029bb737c0d210e00f577f049759a7790511804de40151a60a3cde0fd19d231ef50614a68fcf3929098bc03bd6e9f5aace1f871cd4981a9bbd938035ac403b1f9db0a6d0f85d4fe2566a7207") (:stream-nonce-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6a35a3d43ff0f7db81d504c5943bcdb466438f26fedf7f6b829b2982466dcd056e4c68ff940dac415a47cbade5544c469d785e719b96ed4e0a66115d828682c0796a23eb10748c17177b7782246d2c556d169198bcbe636d03675ab0e2158ba875539e89bd1fbd3688bd78d1404ba11c3064d3db2cef448deebcf13f80dabffdc81c0c317a895f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7f1635f304162e58e4e8dd7da84e7d5952e6e13a38d2bd188e8e9bc0237e9a78595062eedf39ef6d00f5f7dba94517663996ff1186cb1321645053752c6df73bd36a014aaadf9d6ab56d96d2e93277d74d647c25a5209e0c68297837a88238a8a8a9bc55093a3b9b518c90e9260afe77542abe09d1e76cfd4ab814e637aa71eba71acc7a3c8fc7") (:stream-nonce-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ae920049fb4d5618a9724ef89b82b0a8c591d5cd1fb16e15db99e2e5f7871609c891270851a86b17706cf56292bd9c08dfd0de18e178ce5eec03adf0a0c0f806ff64c7558af1c4a74321cdcdebf3a1398cbbbf6e7f11560e5ae16c98ec8f45fa887c9a25271a7bbc1339a9dbb51a0f931a7c048b8ffe439356cb182164f861332a8a131b50bd77") (:stream-nonce-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6d9704ac3b5684aecea69c856136d41a30e84284f674663cdb16cd0036ff1efd9676328a1ac756707c626770e1dd4331556f8190c653efd4b0e70230453a4665b8e803b876bd0d105284bc688c72b0c996953ee6007fb65ab53a4c0eea84e70fd21cc49953b6e52d91f86fc9ce9e49840d3d41c6d922fab6d03c620922c6b5028731b1db4e3a8e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"da9eb741de5837a85e5afd575b8bae281bf72fea5d68fd5cad86bb862629ec6207c26be422d33b16c123afcf1a0c037effa513930bfabc8f4bd24cdd4792e870d0ca647c69ba74694424e0b995454019a2810b7cddc16568f7286859c870be328d3db1c973d4278e61156a86b42a21e208243476cf5b6f5297a32350a0500fd5c86fe46f87e126") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2d70980afbea9710dd1d99b374376244c1d9272c46f7cf910871bdfdf8e4da336b6d3fb0e23e865c254f0bc8a2d367d331641b3fcb0b53fef5590a3d13af77a6531c96b3c7cf17601cc3a61d416c2557806e3aa7b6d567122ee1850802834b66142ae9018675078c1d7de9349362bb2c7a11e4a35c59ee08fcad57623322a2a61af333c59720b9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"85ba6f931b5e4247b2366e24f79a11b500996af856118d261e3414694283ee6da1bec31ae8fa4a698a0f7cc92d11ccb3fe68448254b3788363be4882b59e3d1af03de506cb114b3a103e70e273766160db6d2d43de3d8f2071f675eec6e83f724504d17f3ca7b250f70aa93ec7d73330e45d9ac28b9ec689a1f933865cf72974d8fc02e3a2b0a0") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dd79d29d8b7a962103d02b2f307008d2037a7776bbb65961ae38bacd248c247de8e32fd63d93888e7809e46d9e28345f74376a24d330d2c0542bb8d9930c708de08ddd24b7d888abdcb2dde98dd0a81ad758e23fcdb1ceca6b6bc4c610048cb57cd3706412e8389ca7ab74b4189105322d3b93ef90d7e612dfe409ed5d65cf9261f00cb191ec04") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"810ff1090fff0500a21d2bbda49e94ae40cd7603536fb5ef23f476644cd8da8c1da621c70c9ff3ac75a64438378f201f2c21959ee0042203ecd713a4bbf41a60b90dd660051c2daaadaedb65c13ec6da75e1be3aff23afe3c9dd87f8f9f64c6561f8fd2c00fca06175d53d27fa898ebae4b73cc58e7b268b43654da6aa0f59d407df5ed186a39c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d44b225098fbe06ba4277cf30461dbfee392a956fcac7c2d217e5a83fc54fc40061c2980234d3626c8d6435bf731585bdfae96698cdcbbc5d42802d442814bbb8eb2269ebea00b68c8093609c25d4363f3caad9b3a7d0535b168a90533dc9784e8250e796af25f27e3dddd7c6e62a68675a6255fffb90e6730cc1def168e6e0d440570682e190a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fcc3d5a7e149f6e9a247f45c8250340fbb30f92ea532c6158b809cf2805fc8e52c91cbce170f7134d5dacdb77bfdcba8d5edbc74b07dcad87ee55aea5a4a9b44b04a60a43ee94527e85619f7156ad725198115f71e9b86fc2557cc41f834e44262b61ae58c3cd77808f09a9c87f7d441574ae147eb11016fe21a751df62cb8bd6a88f61e930405") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dfc40d2526afb96f5da7bfecbead19437ffc955c638fc3e9b9ba43e34768b8ef56690cef22ba7c5aa3d4dd45f5e221124ff806ed4fa7542e2c47896b94b2ec02e3bb0a4404433e49bf2ef017f7f5daed03a2f8521ccdbaad3930efebd6e81ed49db61c82e7d38d69cd27736c394bcb39939478ba741ed168032e89f5d486a2d0fc1ac585d5177b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a39386b6cb0c17ae2684874ba5cf660d73e1c566a0246b4a257defe9a9c632c253fa9fa8aa53b3aa0525e518b01acccb0208ad510083dd412a88ec6aabf360364c0923bd59102aca29b12e4cbdbc7d30a0e9eeae13250e3585b6cbfb93c1cc428f10e87cbad16f16cccee1a57a96b044259b223e074cc436e35e7a93ce761407ecb794d3fb2101") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9931a2b9eea3ad5658df1ca3983f45cc642b91a439c409edc0d76130e9073597470a5993d73718ba86eb2e875b2be11ff4db08d02944b2c74dedf8738b09afe311b6a0b523e83ec7ac043132e9d49b79a22eff245f716682f2f99b010d0301c37ca09be2b66d849c55d0783ec3757155732359d4aed93a0f55e5a13e748d19eeee5f65404ca724") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4db374aca73298866adf085498e9f407ab5406c81f9e7ca2b742286339757c001025e83061eda4ffad3e873d535cd88075ad663f09a8661c77fabda0929068ee88449f751e93b3be7246989ce9b189935bae3d516097118ac606ecbe6565da1d80782eeeb3202b1e88aae65e69b125ccabe6a0366edb5f84c3b617576af2ebe7c19cfd0b0ba43c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cf6dce0f2cdf8e97305f864f71c9b59f371a9d113f8464b029f990f59429a74deebec3f4ed7cb9e84cf30e5e79b93cae7dd2f54fe88f5b997d40e53a70e8c0fd976226b63a01ce8ef8e590776f522a4fcd21e5becd3bd0b16075fb0c574084b01cd786a99e3b8175c0681336952fd44b893216d99939ed88ee33c65bef0b0615c5f32f345c6690") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"38b8134dfede23b4319835a4db7ce4942549982e0198afdf6596e53eaa1b32ee048b2adb63120540e26d326228d5ea2dfc1d603de692aefe97b2eab439421d0310e3fd6cac57990009d9d5f1b9205d1b3f26e128ea7fa712fadaae3211d0f3f0426f5524ae2d587a21c2483dbb1b8d33d185b4c0108a968789214daeeea34182005d1e93d4b2fd") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b9c7044a0b415f0981d5873e938f3edd7213bfd52908f8f98858f50b1c26a3522d26f32dd8454f080bd38bbe8d1add7953e2d19ac33f651e2033be1fbc0c0c260e18e8d405e580d69b17f6ec859d216bb98d958a86bd12a0ebbe32ddf692f8cf5d7f7f8dbc8256ce538a81f383658b4d9c6485e06d1d6beabcce0cc8a389ce651e7fc5b414b46a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"625b5b23d2206376400f7e7feb5cf138d73bcd2da8a42ae17b6dde13360d5402b14d88e9303330b453cbf3bde2e7e2fe934894dd97900fd4be6baec8f8ba4ddbace2c1329f874b1a66bddbc2fbcfb199628177ab5d64858bd4028d24aa5725f403ae15b5d35478b971155a20d968c9bd0300e70097e35959e0d3bbbe748f9a30d96bb33b09e9cf") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c21a9ed85f951daad80571ab76e29f427075af0899712aaa2f6f4610ea2b7e7b7b4710b3306c9fa6c5f36cfb70bc391099c51fefdb771e2a79052b5aa44eff8bc096c57dbf6364cb460c0f4b159a686528b9f1882c11a0c8fa743bfd2d6b4fe206f46c15dbec009b893c0b38ca87d3bd3bdbdf6af2a237fe44a818d6259813b39166d005060b69") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1069153152233e24ba6d641b7dcd36b36669bcee09890cea2ee144103f6c96ce25d859cf4d4b4157bba04c4bade0d71f1888d10d55774dee145886fa9bb716d72b70ded2d68aceedd7b23a705fddbacec934a5fa43d8ad5f3839dc667c4c8362cab801a2de7afe89ca687fb1f987745a05ee068572d39492182d5a159577fb768dbd5e6179a748") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"06f2625e7947684bd649250138275d94b51de2d98353c3c8a75a411a5c331699f993695707211b751750f7b2bbf65e9b170205c931164716a1107a98baa33c6651889922722b3a76d6f81a4bf04c54b9e96de1ac0a92afebf3f6603ce94c530ac9d62a51cb4720dc155e213d0ccddcd0b21e1b42bd4f780503ddf85d8c2508770583149217def9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"39b798a7ca5f6d52d8f2e0c2558e27f021c051291610d143800d1fd43a1a4441edc985702e56ff39746407c4130294442b0f4a166dfdc1c5eda21295bfa84743a5363fa527e9b0d9f4c34378622c0500471750546644684cbf6e6c627a90accf278a1244934a5edd888004b8b65e977da1ee7116e195122cc0f1b7c87e6364720dbe64b653d129") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eb37c515f9164e8e740c7db17bba5ab899989784ac45de624d9e972cbda76d89f67adfd5bfd3b247fd0096074dc1d13af2c79570b29e1666e8d5d0b16c345cb01b4a0124beeb0690b57dce22a82012ca2777e7b551ddd8f33338d3a14535ce5a4f40c02874302108e61fbf848ff2d01572245494d0596e4ab55c9c4c6beb642e4d0e303f2a2215") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e254b27424e2701f1bc021051023d979a5714b3ed9666e769e9a5f5b04442e073deb2a631ed80264a5e1b3f8ffd37feca7b91bea2c5e71e4e891208328bb84573c77ff32efeb7f127bce4a3a1c12a4cfbd2088aa8f75f4e33086c97a1ee2c2ff1421503522855f4da190d224aa966e271045ac843252bc823c7f5ee2227ffaf3dfd381e9fbce36") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d096b9ab2ee257fbd4d7961f5b5b51cd18ac5e3bfd2ca8f8b7efa364ec8c68008fec4491983e0bc4e13ca2c30c3a034149526201174e25fe69bc5d6551e4b192a9f1098ba2bfe61ffd704dfce692aaee50ad1c41f6d87493b8815481737e0cc8e91c4047616d3192cfaf12369425ac6cafc4135faad0952eecb4742d94572846a67a72d78512b4") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8e3280355452decbad1787a1e93160bb2db48947c8772e4ef0f6563723c1fc84f397b67df709c7a21d4974a35437e33ec99e433e3adb0ab68aa4db18d6915a70ba563e4692c06cf95da0cffaad1e6f6322aa694a86386e35573a3ae4d0a9103c98a7944cd0e35574e406c23b3210f02204adcfe7f8b54b2efc2468681bf51aaf5ac0d6fc392e5a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"89bd8d1d6f740201285a589a16a6ba15bf25388c436f9e045920f6023cf0118f30576d57db1f0f0256b95be0f698a056a7a387930f567f27f5683ec78ada64c89d718e9c11e0e8ef4eb844405605616b45ecc0bf01363bc7078050d38f879ce4447f482fd66345c8f3867838bcabd6509623e9fcf9b061a452bdd304f6d8bed013efe5da43060f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"30d34a4235a797347a409c9f15c89351f85c3b4b03c2dd8b35f7395699c9d9107e0bbf5b138da9094cc74272ad6a785c84cdc272c9329692f683b511ca1524a9db3cd4bf89dd5ada4c1aa53589d38bef47bfd75cb2eea64db0a1002e5dd2bf0294e77814f2ffeb8035e1ca879368f7e24ef5a45580cb69d872c6554c5276d148cd7b44f71d0d7f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c74c41db293b54d15149e96bc5a571bef9771411803ee2f77d8bc4d5805dea00748433c5dc5b41ae7cb9cedbbbda488bb668923d5b712d2a5837a1a984a3b3300286fed6fcbef23eda6d3a4700932aa5fe59ad0d971b0f33be08334f87148799f83238e7bb7036acae5ec3f48c071940e6333103f2d3c2d8fea51caf14a030ec5afd1c14f20ec1") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a9f72227c5ae8db6507865c952035e5c6c77e6c3442a3130424c758647826ed7f8980a991360fb2d80effd975569c2c417da09bdb461760e621a8546bccda266961082f998c7627d7b760ae968d522d9f5b33ea79f1459412f8bee486b7c98e2e7a9d4feada472662a579604a56a3467bcf3ed6f082a1599a2e459ab78aa8a004fd1d243c4f71d") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1c3ae2d1aa4b801602b89d4ea0643da0e91626b6decf9b786cf75d1e9b000acd87d6da533bb768ec718c33be7831fab941f79b0cd50b8639873afb89ce0a19c052da76e960ef21aeb2e1efd5fc76851da530bad73d2aab616e26f6bac1a235ff3551b326f58abf7af868d2d41349407a66869b257801d703b960b58826ff3cfb59578962a33f20") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1663879eb3f2c9949e2388caa343d361bb132771245ae6d027ca9cb010dc1fa7178dc41f8278bc1f64b3f12769a24097f40d63a86366bdb36ac08abe60c07fe8b057375c89144408cc744624f69f7f4ccbd93366c92fc4dfcada65f1b959d8c64dfc50de711fb46416c2553cc60f21bbfd006491cb17888b4fb3521c4fdd87454232ab0d638ae3") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b42b0f314248e7d16fc227b7e3628fd978989a8f726d8dbc38e53ecf603c1b46275e63a87881e8bf9a87fcd85d9c833a7c491e62bd91f0dd3e2bea285ae220ead4fbd768b19d117d4293e9672c51d5566b6493ee02f516fdf7a7df3c30368b21cbafc3c3f755cd8abf442cb26cf844b9873f20d4e5927ba4ce57a94f081db3405c84ae67d99c17") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"09e292434b9e35e61dbb2fa9f7a4f7734199eaedd74e5f9582716fcb59758470f5f069e828bcd0911cad8b644bef2ae376a93da359d340d5407232e5566c534fc6e33f4bca2c78eeea34c385d68082d35aa31a37d962eb3c5405ea27215de19c6019220d9f656ecbeac2b97c6ebe1d12cf75b15583935f279ea6dc3cd114025790f0373304c43c") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9d34591dfb9a66eca1274c12df3b167d187bd22ea9338d6fa36f18551aa99bb47dc2916caecf431f02f68f7a4440fe2a5da403ca8e340b30a56fef8f94136e573a0db42f7120fc736b35a6502404dc89746f4aa8a4e2b79ddf192b049428b5fa79d0ae28774cbf940e50144989eec12b7ea9f77c5ce5e7db4121b519016ab86db03fcd8e73a719") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7c6611817ee26b6eaf80f64201a91ead729b342c4caf4d891a1d2bb81382d298f17657fea71800537cfec18b8908480011283f85819c7d4594bcbccbd6fd9651649af64a75da4396884b553b2fbf31ba6479f5aee02d6d8469c357833b68fe63c9336be469602fb5024e76234f22305ce6b189aacdfc0b4c1fcd2bcb56dc7e519d02e7bc6c05eb") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4464ac848f8981dc0781d3403816600804633e928f1cb212e72973c02f5b86081eae2a2ec2ad1f936a739a87d7043ddcd2e67a472bfb8282e11f093e5e53416b1956ccc9531d3b85698557040ccea41b90ee2fadaece86fde51c80b517ad8355b8ea6db686e35a862c742a4e4f279a25c737e8c62d6d4f781c30b8e937f5abfbc045e76ecf56c4") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ec5f9be954646a0da3a24eb94a241bc21af4c4e6ea7b4b282a6ea6b435eb6a6428c14d441b4736f929846c541c56dd27982148648eca4769b2d0f65f98b006e4a59180ae5626474ead3e0e6c9db54fc37db9e4a87325029b9269347f6ce2f5ea19091a63184e223163cecbe1d9ad6ef64c31dea600a74bc93b9ea969f5899b2be10bc3ddb51bfd") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"36446a2be088ebc99c9296f385a94ee4ac6d2c3250995958d996e79cf8e20f9ecf53c2a7bde5c8e2b8e08196399dddce3ea623fed93abfd7883216e9e68e301573b764b014de8930aa8f69bbe6ad94b9ccc0c20ce8c2e7687f8929e5f99b2d9443b35676c97fb11345ae552986b0f3c381b467322b10ee8e264723592f4dc7bfe3beb29b872460") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9947f6d2470e58defe770cf2911980b8a0bf36771a78885923ad844ffa54ae0b7c3ec3833cd30fd929e5bf091cfe940eeca8a7f55de9cb76532017e27ab5397c68f0555d653ce170ebbd2260f345210771815633afce496a8d8a20ce21ce5e1a5cc407d9efa7e3c2ce93c91568e005bc6ed765e927956de442dee358982cf3cb5b2bb95804b3a6") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d28edc733ae15c450e1493e088c0746c2b99a741a6e03a13490418d62a06f5d4a9d9afa45d687d2977ae9b1cc5e82a88ba3a6e02fddea051f1b8b0eac9de5763f525ac999093e9e361cc6e5e05b1dd90d057bbbfb61b65e2980679dfee974c379e27cf2ef083212613edf25a672bbeec0a5599927143a606de8a1293bccc4a03a9843e2f1e1867") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3cfaa7ba5137f11f659ef1b4062720b2cba2a68c894d88b507463318d6c3431691cd6506334298ebaf6154da5799e96388dd38396ae67cec6140c602efe1e7fff2dda0cf65d8b3e5789b542dbae1b7efae4dd74fac6998d9c6363556716c9f0dbc2f4e3bb415001e237e7b37672985c311afb684016164e717b51113146278b4b0bf4fc0c5aa14") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0cbc7996c4c1463074b0bf57294f13f86e4cefa669e8b51c9d3cba18c416003f50677a41e25a92274d5a5a243fb7af4ce0287a2dbe3030f43ccc79d3a7be88783d2ca9f973c6540e590f35f23f84c8e624a5c71600a2614a6e78ea875ba14ce02fecd95346376a2d6f58f0feaa006fa1420613ed4588d5322c7efe2b1feb15b4d3000f3ac84b42") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d32dcc303e12dd6721786a964ad5c9d95e969f32f6d612353884898e6a127688c6823364ca78c7cca1171c39d322cea0cd9750f0749a6e8e5b68bd2624b0085945e17838262b68d3881a400c54ec4e3344f4fe30315f218595ea98cfc073b6181a937432303923d7d72ee451865e2bd14b1b7abaf7c23f845b46709ad4f80e320637e278cd3804") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6550db6ce15a096be3b9c8fa0a5672a60fb24c3dc295f11c632ae65ec2bda9922a563bee1e9f062bdc76c4a9ed49948f38b470708513791125ce119f813a1dab1300a97c2a9cb3506bccb97d15d75f61c6f9adf7dda66f5eabbd7dd3dced755cb0aeffbb106488376dd8f127e49c33f320451b33cf7e1df671065b0251408adcdcaff44fc33ffc") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8388d00302d3972460fbc334aeefaa5b5f5291a8c4f93fb5c055f06f3dff6addcbde4e5c1824a4fdf6375cb39f4e3071994be43f27a8dc6c130565f94360226232b94297753e57fe242677ec7e674a7dab2fec5679b13517e53b9ac753f9a3718b4c0893599756de3e37e8f05b18d87325e312cbe981d3221bd2c20c323c41b8f6ea2ab545d92e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f60181cd5e93aa365a262f96c2bbf6876ea6df52cdd4ff81c8fb41efe3d97589c346cf23409c27a83ed41889458e396d209a03b001a0b6e20747b3e27bf838fcb8bf815279f339414bab827c22607dec4a35fbee4d07daee7f412ebf0fcd9a18b25f6fbcf0fd1cf1d51001c613a0419f729bbe5f143f699a963ae9b510903209f2077acd81db83") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ef3fdfd6c61578fbf5cf35bd3dd33b8009631634d21e42ac33960bd138e50d32111e4caf237ee53ca8ad6426194a88545ddc497a0b466e7d6bbdb0041b2f586b5305e5e44aff19b235936144675efbe4409eb7e8e5f1430f5f5836aeb49bb5328b017c4b9dc11f8a03863fa803dc71d5726b2b6b31aa32708afe5af1d6b690584d58792b271e5f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"60f38b546287c9a7cb62c8fe537db38b222d4d0c8d441a9a3f0884c2226f02be3982bac6c55f0182a9e146713827323bdb977610844490dbf1c15e505d04e3931ade2f644929eb15e0be1d83dec77f9050ec92f9b68c994a49ab27c1504b5abc3a50e156316776a4c148cd24945d702cb5625b68ee5c6433fa620246e392b1ece8e0969e28b3cd") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0e7c34e7ff67fe18f5a5ff0a9272e6084e497581732d91f4f3c8a68770bbad91fb12fbedbd3cda27c4c9525efff4bfcc8c7ee82cfb05c0f705ae64ce5ce6cedfada33d9aad10b7f5121f298dcf3067e8e88b47592f5969a95a88daf0a11b0cc44029030f070ad876ab155d0505eee5b30e82343113cb4d710d7be714d8e49241ed78a78d84bc0b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5ddf24f6dd44b9cb3ffc1358ed14da547b6c3480f45d5093dd8cbbedb6f4f3565a99c7f78540dcaf1e77f6789cb6a42c2efd15252669b4d3a0b5b802b3e7f8720b2fa6f7561ea162c4c9264870877119cc70a446a3214b867d202ffb8dac2a7d0ec3933e218a8c918a6428651ac1bd032c7d2327bea318c9d84bf0ee23894295d959166f6bf620") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1393acb05e951085bd64ef2d6d8b11b174c07c4421dd186ee92b2948cda75d05308ea7f3ce4b10f64063864981b0e4b87da421baad3c4953c33ed70b1f8325e74c24037aad200227a85dbffa37b9df227da4e3d45c2e6c961573b6c2283ecf9320b4002c5fb4eb163d7446b98ecdacb4b7a1b1f25877e73ecb9f8066fbae995fe980d4d4183c45") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0df696c1c19b9aa832e138573f1d0037d24e0779e3408766e19b41cec06144c388d26f3a9b31669281c529d5bc1f6b182605869f33edf67a29e0704a08a13a257e85de3e8b0efb04bbe8817bd4b76ddc90a121d71cfbfe5b1b8deb6c63c0aed1f800b0312909ecf8c0c39082b84fba0a7bad927da664d5617c4f79d6d295a145b8016ffd768be6") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b53341d850e2e593995484b4bc41220987f146803c37d33fc6cf6dffe931ab5d0b153e1dd44390216a4a5efae383ff2a583dac9b53c8c6631e074d6b1b62f5e03c208e2cfd9b94a266c45d40528484ef2360a4aaf05ec4fc9f0030019a8893f2ac37a383d9e4e8fa6c11736ee514370cfd48f9c4890c9654d354de430af3efca3926d3d0a15b10") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"47b21d849219f3e3780f4339e3221360d54caca3ad13e9ee12f50317168cb1533da46395b8c9f271f830afae4d18230831da0023d7a8016bea03d6c0861ea2fdfe23b2f366cb17af78d20a6737d55a2a2cab3701fd0481afd095360568d82307c1ee50cb10fc48846b7b5cd1840158b566b3f81dfccb55734a3665f545d7193c259ec3b6053101") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"065d067df4ebbedc9c879663d45d3a312ca6e36bbaad3f198000fe2272d39b3bbcd93cc473b27d60655ed20bc909143fb756de54ce839223b3cce631680cabbd42e6a0213c010955a82aa1751024c96432d7e84a0adee99e019abbec08ea16f69b3dde2a8370b84129f29a0d6f143cf8f58284a50017f1a374175625a3e952cf20886fa59237df") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7d638273dc42db6065acfd19065c6cbf7c50bc3de10ecedbde007fd2cd42eb309925a1f500601f517d27f4ea674534d8ae53ff5836b14ff3782dfead5655cc9e63417a7c214bac28574e417b26cc6b59a59bc6fb2454751cbab42594000dcd2547aa76a7f1c3be699d6062f2d1776eb00fc2577741de56d7c553e459f6168c49f83c9a89298f15") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"aa3458a3b8478a22569b1999c97ec897a82364b4c56c9d2ddc87fea51e6f7b3fd6b5216700a10e2134cc1e6c2efd053ee6725506172106191ca6db3a742f6c7f44f710e547431d47c9927cf47536ecf1b967cafd30fe4b635cb01eedd9c56c3c99455de9784d08794ff38d4ef319526759631c83d1d38473bd1491f9898d4dfdb39013b5e26e99") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d7caad5fa6ffb2df3f32558f427d52f7733391e1d35e0fc46e1c49b0d571e5563875c543e68b5e8add784452d733d701f710444482fefe0e77a38ad9623f05870e520bdf5f6fc0b4f6e53fd218b97a2f2c45714d580937cdb1e2461206d5c410a38272455d1a7e5aaa1445e89810ac3d2bacb59c5d2e36f40a003bb6d34d2fc5ce6f81a99ec4da") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fb3859a37c75544822415bfdb48181114b850137661b9f4725193e52ed31177f3c45fdc3b54f3264ffe4adbcb1795e51423de84221dfef77edfa65be480b438f65b3a2296b5353c88115558921dbf0b91b203a7adc2a8cf2c0bda5e24a2458bf0464d605b4752f1caab45a6a97c308835c198b4caa8f699b07289435e2d67a34df339bdd4b9f8d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2095628e5115600ddd7060704a4713882c399b9319ed36af762478e244b1b15047e4efee7868d38af44ed0e0d570eefd69ad2d2b82c4118f26be1b6b949a1068289e87d4ac0ac6c6b965070ace3d20086ac24bec1ea1970a1cc24ca2f053a48cb72c27af57308e6d2358ba8f70ea73388666083bb94eb20a63e19b4a5d1a9f7c52539f7d0d335b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dded9cd3adaf76ecd5844fac1891989d6d51cc6991a7ce35fcb01fa6c3cb5594679fef58787a24208cdaa6947b8db5370f607ca16ccb1168f16d87505ba1bc94187f29e9f87ab7b383229d2454056096bb4673b0980504048599118c69effc7b64d121aae0fdfca5fb6314cad204a67410205a1d0ccaaf93b0678bb9ded84a2d856f32822ab2f1") ironclad_0.33.0/testing/test-vectors/chacha-12.testvec0000664000175000017500000024602412247651672017625 0ustar00(:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e1047ba9476bf8ff312c01b4345a7d8ca5792b0ad467313f1dc412b5fdce32410dea8b68bd774c36a920f092a04d3f95274fbeff97bc8491fcef37f85970b4501d43b61a8f7e19fceddef368ae6bfb11101bd9fd3e4d127de30db2db1b472e76426803a45e15b962751986ef1d9d50f598a5dcdc9fa529a28357991e784ea20f564d00f1eee24d") (:stream-nonce-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"36cf0d56e9f7fbf287bc5460d95fba94aa6cbf17d74e7c784ddcf7e0e882ddae3b5a58243ef32b79a04575a8e2c2b73dc64a52aa15b9f88305a8f0ca0b5a1a255046dd674a1d3ddb44d89e7233f90c33fcb1859f4c37ae2029575e0f23542c72f9a96b301d92e42262fc3c81179dffce1c21a4a5c6ad0c04ff183ecfcce840bc4ec93fbc9d6b54") (:stream-nonce-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2a865a3b8999fa83ae8aacf33fc6be4f32c8aa9762738d26963270052f4eef8b86af758f7867560af6d0eeb973b5542bb24c8abceac8b1f36d026963d6c8a9b2d82ce0cad37d51b1052c33144a30a8239c9fca6284ac5ea750bebb2d224dbb39aa4e7acd511f8cef15a5c490590e38e96397c06cd21c389cb8b1159c240c9c0ec5dab35084549f") (:stream-nonce-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d609433831bc85e388b99865a618bc85589efc9d0d945d68aec4d59753efb4982f7b1a8997b93df81ff2867a6ddfffb1a0d0d88c2a1b697a4fd16e3aa956b5009d8b1e81060e9a4a267e148d53f689de978fda428e96deb7eebb273acbf2ba320468840bc9e433b8299e126327e19c01e9f259bb4eeb814ad611931bf132404de5b1bae8c5c0d3") (:stream-nonce-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"24644ad782fe2c49437cfd18ee261fd577e6b8b54c38052d5e81c9f3c7473eddf8394e0d6c9cf5c3c62b9ee5164c7a55de04f3cb2f890a71e7368e3e65268b18bd91dfda313dfdbc0bd64ad0bbacd25c1d76f1ad5b07ae0a325fbdb7af8668be7e7c0c5712c78906789e1d33d6a6f4a3c71cffcb46fafdf2488e1cf590bb65d862c9d01f89f3b9") (:stream-nonce-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c4ee4de61e630cf5f61f8cf49c79bc12583f55527174146f0392053bc62efaa209b70a5f5cce6e1ed4f003c55ef60a212cb3a4e28f6a08fb44b774f3ed0595da331145603c6d64448d59d91a60f6c6ce0720bd1df043768caf35aaff5b8ae583f1623770f1a4c742c9da3cd98bbc32b7f6020af37ddc0bbd7fdda468e41abb207a40b1aa5321c2") (:stream-nonce-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"51e7cb670da7d9623294f78e221f9d24202ba3dd61b7e6d20956d1b53e6c2bbc29129078d84bd70375e167e5673c94fe1b55e687dd1d2a0346cc320dc5dc58f85cc85f3242935baa901028dc088a306d164a0ef23e608eeb5dc193a6f395767c94d1d66ad413b75c12274d8c8ae4a837688cb06b1b7421dc6926ec5b94861a35f592a763aa1529") (:stream-nonce-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e2bea07c9ee226a12960b230b36181740fe1ad585b26e0b6f414a6f7bfa627bd3539ecb07157ad901f510fd338238dbcd8a15ec5fc5b3a2c6abc310761adf2ca91d86e992662f71ef7ba2911c115edc85ddcd64aa48dbd7967f156e321f5673373baee387b98679a21a250cfe568acd593659fd7e2b206df18c45b7398043857624fda8a06d486") (:stream-nonce-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2596db92b82e0ef68b4787b21d782eaf63d94fe57fc361ea6b303761ba6dae608ed0b5266ea4b91248e5c7239be1b8d2812ec5ca34fb9682baf8314a7d9652596e2bd46ec73964a85eaf8efaaa924967ec1596855afa95701671a160a527ca1827dd1d42528ef62ed01efbad1ada7926b0e644a593fed713dbef24d9c74f770a621f1b0453e9fc") (:stream-nonce-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"307eb0502d075c0d587f30793a42ac78accde7aaa6333a13d35acdc568c82d4a0116919c08af4d8d7ffbb9371b42980abd0c66f1a95be79d74888e568bc5af5193b6b2a2329bc2581d63fab3b2849b81c73a1a103aec52974dd55a18d2153c7c1c37a16f06a88ec21c6d28253b12b8eb274d4b7ae5f7bf0980551c218659d14d056e8139487b54") (:stream-nonce-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fae79f258d079309e446e10e5a35d46d15a48fa633503b3deb20d92b3e7c20d1da33fd5971f71584e286de8b487725df4a98ac013c73ea3af6a15447fe5fd19563b3f67afe19dd0690dbe2a868064a0f455dca241348fb0b4de1029fcbe74f67e7a3b276574d3b7d10d5464917ded14339b92a6af1e7659ab7f17a289dea267f0935158f9a2cbf") (:stream-nonce-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4edf7eb8f26db0b00a418f2e980e1edc8238cd892e9e6afd950454292fd138bcf9511ff1a60a4a5a9d0ace239c53b10d7a2205e0c5cfecb09efef00e009e822076c1de6ea90fdd7addc1173227ceecfff35d99c6c77fe4b2fc33249969d1e577db28462acb5e9294b8098261df0ff4ee66fc13fa5a6e87132f6157b9594ea4f3b125e5973f323c") (:stream-nonce-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7e2d1caec1c9ed4e037531e1c77030f8bdb342e75b340096120ce0b5145505cc22455a8776dc257dfc7a6be705c2ae32438698b375b15b45179ca3b141f4e88ffff2ecb4d41d33bf1f3e4ee66b0fddcb655a82e601ccc875093b43ff98c04537d2fcdd6df0e9eb72d1958454070cc13ced0afc07b74c93fabfc3da74a60951f9d800432c696c30") (:stream-nonce-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"80bde60171d919b70d7266521f226d362b88c2955fe2f000140b60b409f300f717f5490d234e5b057a3264dd821c481d158585ee46acfff1c8ce86231785d1cec9bb62579d455b690c736d18f21584199abbd6f369460d0c577ad272d55d6c44d6d5a0b65e5646424eeddae57d36c74bc6c5cfc1d9e74d4e668d55f64e811ce86cd144653437cb") (:stream-nonce-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bf90dd1596ad58820d0fdfbbf9825a771e944f351c671f90849a8f94bff8a01729070973c7f748ed327d6b159fca954996e2cc6984ff04c4901e9a3b721f108316f35aa54339a9bf1066fb5fdb5fd224d494bdb07cce1c5ca1a65a2b077ac9d2ea5e2b57076ebf7d1fd3e259ca5f3ec78c9237b4b7523332d3800a283c80dcb855b8a28520f9d5") (:stream-nonce-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"76b06cca84fa223f434ffd61e3a6bda78b64d15b5735c7758b1f8c5800a78718f4befb1f2ebee94e51a7a3056381ae71679a9b791362e261bb84e2ae91420373b0b4db3c824b2a200d8a66eb2be2a8a76ca1eb118276e02b70cbdbd12f50065e5ff904546188c7e7c524ac364d44f5695ba4e6c671d71f6f6032de89c92022f20abbd49f82228d") (:stream-nonce-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"99a97ddd4ca6acb4540dd1bde5d19838e8e21a1b33b83f871b652baabeb4b2fb886feaea0e585dbb675d5559732e43e30769a0e3b06d1e891f38d6b3297d5c66357c858d42bc5c808e0172eb733f16961b20c6c7f036924d2c0fe19e1dbdff1ca553ffc8a45e7ccc7553051a1b59e6812093a0473ab49fb503ae8e2d4318779aaf64d9412ea158") (:stream-nonce-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"654dfbd8f609c47741fc9fbaee6244bb98b3473fb707823a0e920f76dcff3c3e151b17e6b96cabcb30c81598815383d9c0b55f6b0f16851c89c93a2c5479d14cb2775e03cae9be8de11190077829984e1396b767b9ccb9e809cd052ceec699f0ceed09621166ae50b9dd7fba235fa870b398f8b56495000ce6e728120922458f20f574e4e0866b") (:stream-nonce-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3f42b59b0be3318f3109b145535442db880dc94386b0b578190a9f015cf9fd9197d05236d5bf6d930b92d611af92a32a96a2caf7b6bc2532154c208fba1f47686738842f19b9449bfa06e124e01258ebe3a9d12672afe251395d8084911df0bd80a92245ffce8ecc095e49c439ff1cb29fd714286959286999f245fa751e2852271c99ba595be8") (:stream-nonce-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"43a777c9da84081407b16dd0e17547a901d70695999b0127bad029f9f05704bf6cd87f0dd8a0415d7dc3eb68f131e3cd50d682668c47aa6bcece9b5dbb4e8b674eded1dc583a5ee4b192acf46cb58884e90b67ccc1a51b00d1a5ec217d79f5efba8db720806dc1707e52b151bd7eb1c4adf1e3d0798a3784a284423d0331fdce5941fe87345d91") (:stream-nonce-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"435d288596df0dc27a0f766265f9c36ec1619a04e473d016f159e61701ba395bdfb43a746fd0db46ba015539e2a82ab766dbab7b341406e4e0e243981065aab7d5d1818ea6c2ac2bdcef07572770840032bcc4a37593822e5ddd2087dbb6f97c5f5539fac2a8f78e2b115f7cd6fe413d3cc9250e226363b50e1f1666a34dd5063ba39b87c11cff") (:stream-nonce-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3c1a1203a2596f8542368ff4aa51dc27274c8dc70968298fb0b29b9d8df1442992ca20d57932d1261bb00845b00619127b5c48293b002d68abd97e117a1af8c90525e7ada0b730da59ef53e75bf9952ba20c2f760026f1a37359aa1beb4bf0c052fe70343b74172236566d75607317024ff4b79c010ba0d6710c672f6fff575cc226da75e3f814") (:stream-nonce-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"64a225b0f7e405a80fc261ed3c8a4cff3e0529bbfa383817df31dc81df7b8d0df889c5bf9e448c236970e902b3975c56cebac94c89e235b849c8285c33f98c514145f472e73225f2082ae517b08e1bd9ecb6844ee72b2b8d1e76ff91073f130eb75c49a6d0af090777e2906d59dcb4dfff81fae00ef3a0b9ca57c5b8641052a4b529ec790dc0ba") (:stream-nonce-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"362e4cac42b139bf943e2fb90a8606e12bd0f6a8e60831a61dde31ead4501bcfdabb358e70b5b97c7accdbd0dc0323b116f65d3850949ccf6dd75ace73e46354dbd5e8e848f6566a95b247a6c7658fe5f0d7b8dbf7707df0b45fc82da70c7d123062a31470861abfbe6bbf5148890eae596d43257ecd2278264465e91beda6104853fe0dfffaef") (:stream-nonce-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8fedbd9d8d8f1f597037e6ed40a30b28fdd703a947c972447d68057d8aa544d29d84df26ae810126ff95fd5a3d1a878d465c16613ac7c5f775025833081d5b7a854d046a0e0ae8452c364deede175ce488a33794f9ef7e6baaa4117bd31844792ebdf8f1bae34ac104db56617e3dddd8406975fd0dd50f922ad568a49cd7cb98f02350716eac02") (:stream-nonce-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e2307af05a602e720af6e803487c43301da10eb6200bed62216613423dc2f57345ee54c8ced5d0b0cfcb43f7995b1acd6fba309ed2794f5d121aec01a1361ea27d7346df85058000a55719199f2bd41dda016f7296ccf3977b0d92b5c7ee3597a053be2c2a93bb08c810d388dbed67ec4d373d5afb22315f6dc33797eb6094b6c55acffe729993") (:stream-nonce-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e28574a6d819b189360d24a7f42b56955edf10df94762e822ac188c5b6480579fbc6fbb0141695a169c7e83fe7c533d1ef4c4c32d177ab747173bec6df000821a0301654ca6cbf6f7dd786282c5b81860ff23438c4f8c4eb31b57deb9a6e6372a20a307778e7359b58a2a1dcd386cd4f48106602a5d7bca93859c4bae2004d84d1474d32c36ae0") (:stream-nonce-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0875167353bb7ec9689001880530a370d4410e8458f8cab2c488698c6f62d22484cc301dbe4d270619262b3caee42b2a91bc29697961bc18c6fb89fec156aa27db2229c52584c4c68b00dbf079c9ac450e3a1d7f9ee399a6938604b042d60ecba87d33c33fd3aba22352c102303e098b746d4be94a86c5692a1440b8cbc489045f1d27333d1db2") (:stream-nonce-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a5f50453365908588675a640dfcae6df6ed0972206895f030f8d6e78fa56e467f3fd13be337d6701940c176acf7cb3deed451c11dc38cab04c9ff7d087f60304146d12118fff07ee27d398fe765354916798b7c6849802791bb7b2c46229bd2e5e6bab2f5a91b6eb4d6bd7a83025c095ec288d4f5efc08f992341389b315dcf22d3d6e71266a9e") (:stream-nonce-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"88fc35ec2c325a59c8f75d66bb6a2b85b4645bddbbefa3d51e36041971b4ad8f172595b0180e08649dcff42e3a695a7743f97df8fec79837c618a3d7dc3516aa2e48924d398939124a2080fc3de0687bb150677351f60f8af5be0cff6bdd6fd81525c9a257202390227056c156edaf3486034cd86ed4c36251c9a8f70d5d822fb4d469320b251d") (:stream-nonce-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"874172a5337bb79b9c5edbe86a9db6eb6babfa7285ab503b0e6a9d53abe99eb62fcdd4e7e2421b11f62e2ebb140f3db3487fedf1efb66b6701a63072a3ee61f05ab0251a70c4b0f7a515b01e82c3fa9c13306ec0f6b3ae7d48591df91e92479e322a769a8d7ca8a18d8aa95f081074c93c33ed69619ba5ed1d6f980b49e5448e5d75d624ee5cda") (:stream-nonce-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bd92117207502540d328c256469ae4008c0d77775d9db99e1e12932af7fc63fb16ce4ffcf4373cd7a9e1a2fad7f0c3b190a0ea7b8f4d735a9f8ba07ccce410e4b5bf957f02a69997c73f7a13b6d0e1670253b5c45bbccfebd964c2ad15c0b7208f75e42b5fc8015d6c22edd68e93c03f25277d733f26856c3631246372bf022d487c77b6ff443f") (:stream-nonce-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d9b1a642ce6bed68ce7ca92675a555da951b449d4325e3c2dfaffe54aae1b9eaf9a2bbbcdff9a2cfd1595acfe19f61170a0df959bd4ce45a356bd4ea869951648a823fffd92ade269e6c59c2baf9be6b6a42924b3ad410494760f9733e623dade139e903ab9f82fea53438d3501c103f1be2b1478ce14013343a573c6045921a87b31a2e098034") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9bf49a6a0755f953811fce125f2683d50429c3bb49e074147e0089a52eae155f0564f879d27ae3c02ce82834acfa8c793a629f2ca0de6919610be82f411326be0bd58841203e74fe86fc71338ce0173dc628ebb719bdcbcc151585214cc089b442258dcda14cf111c602b8971b8cc843e91e46ca905151c02744a6b017e69316b20cd67c4bdecc") (:stream-nonce-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"789cc357f0b6cda5395f08c8538f1226d08eb3e16ebd6b6db6cc9ca77d81d900bb9d21f6ef0b720550d161f1a80fab0468e48c086daad356edce3a3f988d8e823f67b0c9b7342dd1dcae2f857c8b2475476df68a6fd81c60cee7feebcefede2ea983a7605b1e23a0dee24ecd584f6c687c4647137d51045ae6f9a867c75c4dee92edf6a2ff8084") (:stream-nonce-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"12056e595d56b0f6eef090f0cd25a20949248c2790525d0f930218ff0b4ddd10a6002239d9a454e29e107a7d06fefdfef0210feba044f9f29b1772c960dc29c00c7366c5cbc604240e665eb02a69372a7af979b26fbb78092ac7c4b88029a7c854513bc217bbfc7d90432e308eba15afc65aeb48ef100d5601e6afba257117a95953a439895d2c") (:stream-nonce-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5bb03b2b21c277de6e9e5a7514e98313eabe85845726fa5d4283e0a0275ce2f454b2e7be9ba52776347e39e4e9b0cae4fab32efba9e35d336f7fe4c1b872b4d1ec5fa0c663d73355cab852547e65328d08cae1560ac0d92d007a29bd593ae0fcac11d872a3b760181beba3d4bc3f9ce06affb13aec7b5fd937b758feef8ac26e732e4b2c730330") (:stream-nonce-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fc4e777cd9c2b1efeff7d49753b843fa4f7dd479780f0af20a9996b9fe4f5dd8776950ae3e0bc5a2576d9c7081c6429b152e90de4bab7a483771bf1e24f02071b2b69afed175047bea0bbcb95df340f1a67052c9c97399cecd6bcd081802e37a4f6828ef91ffee181683661057a0d142773b6114a9d146ff35ae3c626c7b0c7fba714d0f7722f2") (:stream-nonce-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3186005bfba3dfb84737147e6236dc8658a4e5de565b67c63fd8d57582ee260910086f88caa66ccfd8dfce68da7559c6ea6d75b28e72ebb5a68be29f35e528e7a84c02a39bd5e5e3643c528e1587f1576e0642f5fb38eca5c2c864c564f1d76eeb009b3360f80b4864f803cd3ce33b26dbdc567cd2cf8959486567604fa4b484bc8ef8cb1cd600") (:stream-nonce-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4da512037bbecb1eac9a9abbbe69e88e8996b244c168479996236b1efaff3537bb79b1de01a96b1baa835cd928e1190dc22774c33c52a415ce692fa316dd08639124a86ffc75752d536a3af7d0e42b918df0d8358283a10dcf7b9f49d92f9d6c619b6361d886ab4d40bab5b525b1a7652cd3fa2d334e3017292fa6ec5801786f2c99ad004cbc35") (:stream-nonce-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"10f32eb7fecce3d42ffde05e750010230bf1434e0ba64aebca3d3c8f77424eb2e901dc19639c95c6a7bfc250accb844d881d0bfeb83d94423c4609c9d5daa008f7f0beb76ee092ffb0f8374df5d36f9632594394f0e6ce1dfd9ba6ff38b0abfd04111cbdd9caed976327142f59945d916ac6eee48fbd44c03079ce2af6fca771b686f4d08c436c") (:stream-nonce-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"027f2e173d3cedcbefa0e08c48d8c99156e1245bfb94997235fd1b84428167856fd7401f6e2d7c163435af84a8412299a7406266de1e2d0ff021801c896c5df3d2f193dc72d25b195a7a7bfbccd09657ef60a4c387f8fd143dbd032f5e6350d0b120c22411fb45d01807e08cd2d921139fc192d2fd4cefab961e65a9ba23ad9df68426dc48eee1") (:stream-nonce-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"028f4547ff6964758695bd8d3fab9ff93c897f736dd404f9a3dcb195bc75a2aff96bc04b7378a87b67e8f2e53766f3743bc481869bff5d1a7476f0a66d074772c9286312d6e06932a516bf0717ecf565df1d71d152e614fed71fe2ea3f87cf21e060d01f897a86c76a4716b1736efa08cf49f5582a2901fda07786707534f8c8fed5848c9a4052") (:stream-nonce-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9e13720d755ad3a18f24358cf85e522868b4abf7be74bcd5e8b7a9ad3f733e148f51499d6c0c8b5b18219d1825b2a05b99fc35e1f7e23e9ca7deb3b3eaac1ccdfd5a325b38b0a92f2e717d5f26bfe40f7ce89e9ce402267fa559f263d73a611b9a58acb8ebec22a263dfb437a3ff79a6f63db7cfcb8e6eb89ecb66cfea9714e23d6d1f7a78ff9b") (:stream-nonce-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2174072157871466504062b0403f707d269e1c30f619a29088a046a87bd969cc73e247390889f9c46f8954bce09d7acd9e31efd2a8180b71b61720f35789cc9d6b260d476aa90cef919f369a14b6b9646381b351eb27dea03515d010ca329559a438baadc0ed61a5c8e2d2651d0028d27b0b6d49faa9c44e84e04709b2eebacf6e563cad088db2") (:stream-nonce-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1af6ae9b48250e41f192220633a83fd0b00da313ed16d9efc47345ec419c4983ba5dde7e8db2f1a01b34a0ecf481daef8daed0622fdbfcb96901640b30ba61b77035e51b63ca925a95b91c9cc5188201e52c56c701f333ef816bc0476a6a4294b53d93aa3ec6844e30ace6bdf3a934e8cb7497d2247085afa9ff5c7995f06ca59132334f9e4cc3") (:stream-nonce-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b0fd53d65cc0c2c840273b57d241da21813d9b013ca0204af0315683ef3dd71e47331b4bbd7e79a45c025170e464071598a3c1cf42b155bf7ca185d871e520a2d35c2cf5a01d1d34878c8ad98c4bad4b50599516ca8afa0c2fb0b553df4c1f8076f964076a1451f34fb2467aeed01ff797fa6762c89be7c530e75c34f0fb0c214216857316a5d9") (:stream-nonce-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eb938954e565c5d07f4abf7d2a0c31b111039dc17d627a206493644d279baa9a94a29304f731954212daca7a5b60e0d4475fbab600e2f8144b656b9313594e259029621e91e2d3a29dde7d105060e71686f5d09c543c22646038ece50fbc64dd262fb1f25cfe2e48319e6674834421ed762ce49d07b7f5d2f15e5fa97638a00d357b3302513d23") (:stream-nonce-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"11a0e76c7f4f82fa6b7904b8ecd02f5aa975609b2fcc7eb43a1750a60890b575c0627c3517f87d30ce795a62374fe4359a2995eb6733c5fc5ab4cab3dbb86edad3f24872b3311eaadfb4b2ff2e298abce43a1bd227d6de33af5003e5d5777374d8bce6f0dbda81c8e5e3b548a34c4bcea75bf4f0add8c4cb5f64e9cced31389d9330fb026fcfbc") (:stream-nonce-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1a746a48a7fcf2169146f7987c01d978d6897387759cea36cbdac874ed2ca5e4b366ba42d4d6090152f0abc4cc421f8e7b57d8eab1a54c66ccae5bc394664d8889da52bd5903c04e97e82b557d1f831bff8d1331f8b556da33e2cfd8b9bce14fe6e534fc05e143a48d6131732eb25ed0d52002daca470dc3640355b4362c7be16430b492aa1167") (:stream-nonce-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"254c84a1ba0c64567020de8ec11ff6bfe60952fed50c5a529ac83af9ca8550a453b5e681dfaa403c1d50c429110f63384d734614739d10d6b66acb6a36960a7a7c8ced3a0d47503215e2cf7e45ef8269461d8eb3d8b581160ee818c7bc9b08f09243d6e49e92b2762f309cc9f9fcedb2048a5e130643f1496c17dd90f4a0198c8abd66728fe22e") (:stream-nonce-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f78430b4089e3d967c909aa1eff1215876aad4cbd9aa321e42763cb1536361a1f40705071f865a676240068bf1811ab9f086ea2fd2291bb0cf3bddc959d61f4f0d39685f3912507030f6adf9adc30be1d3a8b71ca0fcab763cdb371995037d124d687abc627cc0541565ba8255ad9348dbd8131f83ebc32890df6adeadfeb26ecf4976cdc24c09") (:stream-nonce-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"119da50049c89613f420284a1201255d5ba55816833c9e5b74ecfb3d4e6de0f7d6d9de49022458b231f1f734a1c12a3d6fa66854332bed61ebf256a03368c0b03cad6281b3c10d14b3966ddc4d982f8cc597b5e74fb6809fa53ce48ad500f6f13b39db42b91955b5e953915b45099fb50ae98aeb73aeef63df1da4595bfc16318eb41e39335cf5") (:stream-nonce-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"42881d8c6c2a55600142f897f02eff60894d2d1b928518cf691fe39027653cda925f9b998cd453010eda8648bc16dff4d3c15d8d5b7176c5df7ea99620854d73d8926ef90ef7fb12f5854a46745f7497ff4a7dfbd0675c4bf3fa94d66c7a39aaffcd6ab32ba95b8c2e3d096c9baee2fed39fc01893dcac0707e5979d8ff66f36de12802738b3fd") (:stream-nonce-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1ba173ee8b72ae13e4304cc47a58bd877bd9cde9e694957b039065f321d2e834b63505e3b1a6d644b09df8590bfe48492d03cdaf6df23a616beaf7c0d72f0f215ceafa13b7b1eb0b2e122c5fbdcea2be0c8d65a11e95185025206d428fda08fdddbcdb17c00be35f7b862fc32c57a7fbdf837e61d06bd4ae4536846e4ea3eef006a569b9d7d6b5") (:stream-nonce-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4ee888434a5ad9691d4140390467e40b69f4f1917e255d598ef951e4cc5c5a75548c69784c74f3cdc35a90055b498402dae6dc4751b53fb81496cc36882e61126be621e1093a6823b0afc16d9d7c885309498fccba4428fc8248e0c7ee91c75d0170859de4239be7199ab691e136566a166cb253fdc51280ba3bb1bca8648b8edc7ec8067a6b1f") (:stream-nonce-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b2210eb90744e89ffc54fa13c0dd01f8d06fc10d81b1cabce25201d8f9b683ff6a8d449b69724a249cfeb88a7c2e834184ea04a3c87ba91016ef0e848a9dc22d4a5bb65b3ca2192ce98237bd0256eb566a11c2e23dad0704be6f8aa48f47c47779f8c2f04770c2d7687b991838137871535b4237024448d098e0dac6739243045f90fdbb0560af") (:stream-nonce-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"17e8eee4144f2b115139ad12f8cf9c891ddbbc3f326e6fe44fc38cf54dfe3ca556c3fc6908a9b34d45f063e3c3d8486da7dfc0608fb927310c6ff4af19fb36cc5e1575d028f882b36809e425d646c1095ddea3c5af9cee6d9607300c027dc5a421b4e4e4ccd822b28282cab965290915656fa8383f536cc7ec8225031610e0f3bea165e8f1eb31") (:stream-nonce-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6e58d3d69f06389b3e56d000e7f6146df37278a6cff62c06d9d0e458ac4d5ad274fc2833aaa26af2e7f81567481a1be480cdc1f6c75f63047c72ce69253b1aecaf8731237eb9cc9e6cc99f4ad307a27f185da8407f8795aa4e7f871e09fa772fb1badbe5db278509ece3dc648bd9d87e77b7b1e5607bba90cc0b78c10f90ef140f6a4250229f7c") (:stream-nonce-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4acc6ce5ecf060eedadc6ab34d7d7529d38ed152caa2bfe2eebc13cf143d9e391a7021a6ceabdcb2341beefa7b60d20581ae9d10499d9814b6351188bcc83df9113b5dfc8e7a1c7ef9757bcbdfb7953576176cca46e3c0a3e5e2d30fbef93e354125627b53eb268a445b152ac09158aa5b13f7375229ba04c19efe5e5cb3b944b0c75daeac92eb") (:stream-nonce-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"236dc2b99ace1f658545b17a69709877b2ae70373ea248c51b9d7efa9e1935b1d94bf77d7eb83a06dca382f473f4f26c13cd6c99da6b7570c3dcb0fde46187696dd7582d1fcd701a0f50affdc6662398f96b6996aaa5860990de8a9782b10cc080694654e5106132b34ecd8a57681e46282f2f7ead45e6abc8911f32c915e0d93e6f2d063b7e74") (:stream-nonce-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e2ba466331d2a628f9d6e6ea290d15ae5b1465a9567d37aa21d07e0d2a0a66e990d6eeb94942b1ca3c96ae6a74cbe8c2a08791dc311903bc0027623aacafb22cd9e545326f38aee0ec048e49ea6b659b1fe12af22083761292193a4221147e48b70195b9499dfc7de788dfbea165c2708ebbbcffd7803280df0c4941e6e5e5ff1431a076ef1c61") (:stream-nonce-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0d1739e7ac0713dc746a0d2da442233d162839c3879c49a3580174236d04addabe5d87130c1a10d20438e70a7f26dc694deb28f5f8cf16367b0d43c39833b2b68598eaedc481a37c335401a751d24df57a3f976a046c11b85cf02576117bcbe61b3034acb303b6b2ff8e3f57fe903a2bc64611f205ba655ba39322ba26aa27a80d96e8a4f5ea49") (:stream-nonce-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"348bac03c3d96da6f56bd75f786b7926603d1d3c43912d09acd967644c8b12a891956c2ce0a530078250cb0faa696ef696b517b8ead537304d08d628b71f42a82ad4116b16e7b66661b63c2aff465a3124a62ebf5e958a8d2058e1dec0d65dcf2cb90c303597ce2a7b5f841024ee327c3552ecff29b16b6ba9b9dd4cabd7f53c80f65de9baf48a") (:stream-nonce-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bb4bd23ad1c4119b27a9ef02bfcd8f96daa3c5c49771d79c289157f8151b8cf133c4fbc2dd5a435212dbedc7dada872f2088b8c785f862eab2372a444d7e4e77f13aa1aed2f13365565202c3a59c3e641a04c37cda28fdf093d21a66b53cc31268e46c3010515120d072b5fb490f2c9b4a47e35bd40086427c58bfb72f7997c42ea376799fdd63") (:stream-nonce-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"64ae1ce3a0b2381f6e1c5597ddc88e9cb7472637d4871d274be9924ea734fe9c529f0cb40a5771759bebea0255ebd63a0db895095590206c7b101f7339517d53f90ad2ebb7435e5d4bd6ddbd1451d308fd0315f59c34998a0a30e2ec584d56c1dbcf9377f4df5c67862c5dbb06978039847bb23b8aa1d4075398998d3f3652815e45775e222011") (:stream-nonce-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7c5319a722506071f9f24256938dfc112074c3f8d35ac6d287ec19e8149d44807c662826efa87613f5fd40384e828bf0a3fc9f464acade9b2479401fb319063c09a9ac1a889f5ebf8e527bbec21890fa26b27fe8c8eaae6c92fd058e8d7244405eabf5e621893a246869af4c69bb8f772c5907a6a9a1064fb648cb8dc3e6e98e7761ce519447db") (:stream-nonce-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8c2e63f851f9869cf729efc2efc1756bf4819f3cf42c1006333fccd6401e07167357347bdb8899f95881d6393cea820add2c351b7be10a31fc149940ac8f929f871912d983a47423431e8a5c177e68e3323814ee68317234b038a256fc6a9fe40ab041f48eb79c868fdc8964055074c898344976e54e39e16de16eacb12e87018741d9593ab165") (:stream-nonce-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c331616a6f81b5d7bae847f9148464d20868e5b8df30577c227766ff171075ece3816bd934edbbbaaa160fb6061f59bf53673712ba8d32899d58c3c1be988392e7e771a4803626ae80af8b9e421bd21c559017f568a6b4389ce7583c3444bb15e3fe62b2dbb5c8a169545db28647b6a9fce46505807c7d9f6e663883bbfd5fe59c6be991c82b36") (:stream-nonce-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a14d76678fbff40c3acd0c90ecf8f2e72cd9b295d2d02e8728bffaf0b1fef38781310a30e8fc32376f4dc9f0c011dc3b7561eeb0d265eb224eb4924ba37032213990340cc01c18e247853a8abcc3f10204e8a80bc1a59e6d666d041c9d0e7ca64a9f95020dbe3db022212c125fa154f5ce1ea4aeac728d61a1c38d08fdc9f6a71f9756265f0ac4") (:stream-nonce-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fa6dbbb34ba83c6364c4917350fde884fb06584f33b6f79c6ef1da5d450627d4c17b28efabd4c29633a8fb95a205ba7a7cf6645b211a5a52eb66f34e68dc762c068df67a1d5cbf33b48f81796055f67924781474e6066274201cb2be59d7797881cf6c83df8d7d095de7231807dc63f6107acf8d3ad28230241b1a58b88b5162db5d677a9bec92") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"660bc69c62c6e12f0897c019c1e0ccb3aea79a220f96be569b8d9ee17cd24b4ecb09c8ec9bff114809b979f17efc73bc101f2a90ea40faf8bc126b384705bc3e2ab49c62d481dfce986731d1baef69311b0e360bc5d49f00c30c5ca3a52ade3563cd631b925632ff8c56fa6a3a072997ed414f4e5215f57a9f38d39bacc66a02ae10e443e0bda5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2b1be6a10ac0b45b7c69b8034dad1872f0841b346ccc3a5ecd50d44ee18d81df687d8d8dbfeb2486eda34a3c36b48d175d72a0726afc693206a05d7eb2f8807a2c56670c4272add9d5cc8c92e51dc63e458bbb2816e4c85d530277b9606451b0f68e299fb85eb5a54417814cba22614176faff9a8ed78376fa7660aa0ffd83a2f90fc56bcb03da") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8efe52737affb260079d72bd9b3ad90be078d4ee3147fee5fe820d0f547a090af2967059330b3a8ada234bc1f7bebab9039b2f72ec636c2a225995becbeea1c1df767daefdeaa6525ade8eab10f48bb3060c11986e989154192f438906ee64e239d17fee6cf39692e9369ec48b48f997bc377aa4501ad10e1f5d9b2be1bef86257320aca68f7a1") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1ef109d7289f905204b8e003a0faf978c6f42222c8216d820a866bac60769c849a9147b5cc0fcb8ab6d4059558dfa94083c3c58e8a756ad78620a6dfeab61bb1dc7a71302a39859d278df76da41de4c28c34905da911245bac79f6c71822a18d3dd9d304f0dcfc5a6ca29402bc2aaa9eb36a4d1a0fefffc885f21f5fc9b2d0dae9896cb290c20c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f9b6e47156fd5a51bc2924f01f0f7c88b655ce89367d795268d671970268334d3b9bf2428333295175cc164d2b4d0331dfdd5e8071fbd7edb73b225200809e057a22de08959e58c0568771659ed9c6a890da7f386b9ca13b027637c62399ae72b0a2c8be98b90cd7660cffdeb3a249307dc4a9fb51e28e5ca8b4786d2a0ba988b55657889f9462") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"55b5cb1ed5a5fadef5618d92b84980704f144046e64317b664b8e17678cd04bdbc697981f82e4fe31605f02453407e252f25227e0079418c8e3a55179c591d5da601799cf890447116d985e56dad7b0a95f77bbb0fd01f7db3179267a95700f9bc82e161dbbe491e8f318da8bf1c996e2f85f9331f441fe432750257025d724f9da0fca89d893a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"978ae0491f84c893f3da87975c18be400d944e69cd0e56cf82c959a542094ecf6134fd649d7816e538903a2b1a55c0501f7212863e85567d9289a1cdeb212cf5c3b9bf745b384b424a6c16757db9c5624a5d809fea4cad5160355277c91aaed892e32874410129ad0778e7013eb7b7faae42e533d0448a6c1d6236bc4a21c285655810909b3048") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"526ff1cb4787b90542fe84f488cd74d87cee9199531ec1119d1bb7d84096efdc50ba0b277073556aa068a1e022933135c2ffa8671dba05cba62f993f6153f77133ca07fa9a0abdd9d48eabbc9b5bcbe793d2ab8778eb9f38ca5e724c28ebc3f629e0c509fb861747045a2e11bba137159ef471790ea197672529e6d7e3cb889dbd20fdcb43410a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bd83b455d0876cc20fbc618e2c0c88697274f2ce45b1d64781a129246a0b771944e55f351ed7a5bcd6ee1bcf48dc43987c1fc56078c3202ea39473415e8b1bfa35cde55fd3086c0c1316a48ca41833b4ac8267fa34a6be9b9f9fbe5c294cd1b3cc73aa702bd50fc1f19a8633fcbca7d2726d13429c129ee5966ee914e467d4cf1654ff4acd0986") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5dd14ac6d840f85de6a925f2ebff95810745d6899dfa5b5cc88faa7b17776a8bc7c02ae2c0d9c889eba1d0ba1f8a12c030a1476667ca1f168b9ab3cf6c120fbbdf778f2adb50faa0c77b849dc8c5265bfd89ca33abd118d6cfeac94c0c5f89a7cda08bc0a810e0ce903d1db62d8ee0227fa192c501cd9ee5020cf5a9e9c119c3b05535dd9b2728") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"69ff4fd30f4823c5157261a2c7b5dccba258ff7ff9ea2e1261f9c48a1502c8c688798f782c90031c2dc1b7de8f48615d82c447af6541de1819c9f4d99096eabc72c3a92cf13113b28caaf965fe93647521d57fbc7c9f4a32ab637bc545e10ad9e0ea3727299a517b356e186b5276254085f185ddc0db196baa59c4727e222e7fadc2875bda534c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"740291b2fc343f1dda76ed34c8a7b3d24e35b2e478856912fc761ec3af38f59f4cde67563b94324af7dc110870ad9460f8f3427eec16884786501c815f5ee0a55323d8351034517147482cf30f7cec20281247e9ad531486599975fdad4a18d940384481ebfa801fe463c9663db10d9c8dbbecba8886a7fed43724ced06d3014a92faa0d2c2c57") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2cfc7593914e1ad9a6f86f4b3c0a3d54d1c72575645e399773a6993b5508957ba435b9f36d383dfac4d562ad2a33e163371fcfe8826414e287484d0edffbbefc3415e7cdd31fc8ebf59cbd0b3795c38296f89ea2eda54fb6b7da299b7e0e25aa6abd2bae8f34073e8fd400a2a99467fdc8bbf3f873f47ff3cbbefeb0f8dec37405026cec84c92a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f0dac323894ee9b6cdbe2d8d0939c682cccdf381ceeec8e3e09ea8510357742f9669701dc1540d309dfdfe08a06dcb8039d381a3cc61ac05bfe79b03b811582031f1c114ae74743a2e9c505ed3bbad925db485203163d1a57423d4d77d1cf7d7fa47b765b07effa77862964bcc6979bbd482e0ad3314d635d517038917413cbef7ce1e1cbc6443") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"43f23dad4a35c5df4eba3eb0131e35d369ef21fd6a79322eaa0073418c1179e40cb33198eee77661328594976b11b1fc35b4b6a7226405840d720edb5531fa608cda618e8ea6113d0adbd2b6d6144ec2c5442fb936b9dec8c55b8f7e04d5b11ad5f6c583eede6c340d2249457210e72280a315f5a9c17bc78222407dad569a6a40c669c6de04e7") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4043c3080afeba3992efba42e952a5f5db64b9e4fa52db123cd8461bff3fae0f03e3dbe13b4eae182e5d77215540945fabb70f11b8fe15d73ffd5415e0b5e4682ff0a6c0924488f6082fe23144dafab1aacf88c8300f65510274ede2f2221e0e707d4b892f81d547072a09b488d75400adf05ed03088d49731fe75eedbeb501580bada8b903562") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3bce5ae98e5e7e6da72cdecbfd8d78f1da2116df58f2f5e8dd4e9ebe208ab842ad7f1a3597ebf30f25c6e0e1243f00bc6f6db5e7a13565edc07379f6ea519043e85f199992406fbda3b1614a2984807b108672dab7c2104db82e1e508e83332f041d054243e3f0a560793f5b0cc343671974729fd987cc4feab8ce491fcb154ed35b10259454fb") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7e413eaa0d04c131dfbcb0c8f38d5a797ea306fb4886427da930f6e493edd5f4d6eacd433258c13f00697d1dc3594f7da539d46f8e6207f51ba61895b06ac1b535197e13e44f1429c264b5f1fc921359d535294aea349cb4e298a5050cacf897b39987bb60ec39a794704b4d529c3852cb7f3fb1f3636248f19c986ed4a550f02c58342581909e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4296d5c91894ed8dc1284bc902f4697442743ab6f20f3655e5246aee8f5f5a7b210e81101b2148e8efd2495f719807fc41cb0d49a808e56d7a4205fad001b0a8f5365980e28dd0bc59554e4fa43d0496c6b2705ecd4f9c28d8502396aa9da8852e0f5e52639c54ae8df1d6e2cebfb68b820d76ac3adef6c47d0bc3cc0f0853654511801d194994") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e38134aa000c8f4dd53f9532e39d382df5ed03d880a4fa93885003906e51c9fe26fdf43cfd6b97687b928efab34816534135b94cfe350071c8d333aef48fe829806aab2a1d456e1d2efe3a35ad30d74e3ec8223279fc14c0b113f3d3d0a22f67fe1fff5cdcba5bcf93a53645effb17c46df6d40157731c5765e3fa71179899f8b7eab87b3bee1a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1546d81dcb7f5e33722f998d11cd69b43b33c6c3f5a9d75cbd8abaeedb7a8b2bb48d9033d34a1b13469d0f63325f6f9f6fd86ba5190dde5b543d3245e3abf008746afcc64fbad36df7dc8ffdca788ca07c25d7840761f1fc611bbf14c71b0aa71f23ef7d099a5764c1e91c9ac831529b7214971d50303cd0bfbd0c0e9dbb4648d9bcc4f1c31c98") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a9b91222a6fa4c9a5ea11e314455823e99d5a1da37d2c1f41ec9b07944b4069f1be5487998c1b89c76268d4a094a5d4874399788981d83143dc8829d06d78b8f8008c0f649ff6f33aa548d383d43a64745d3c0ab5a74eabb96107e0b4b25463d495e6d89ac726ade27bf29a76e32504a7c22c708246bb4d09ba91c1ac70c24419d7fa19027c905") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e7ca17f3090e5958fde8300e325799a9d9d559eae41a21418e56e57429dc4705df5eadb302133d451dc97a48f2065469f15fa92d8e96f28b54dd2cf00928ceece9fd5e3327c89253f664c8eaad5adb50e23caab0b05c5a86c1d22b275a496299a241fa4d3a9ecead95f701e7461d941927565332be439636fe7b4b63924fa4cbfc3182c1f76bf5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"28f328768f9576b584ab7c6f6654012e54912dd1deab2329bea9a1bf1765f57d36b628fa485d41921a9759a08807b9b6569c1fa3c69ce4785635547141ff96303cb0c20a5d678786213eae79e3a459ef30e477d5c4b128f697734c62ffd2643a27383ac14e719ec57f4333adb7d1d9eadb797e95657e8b3edc5fec84aaaec0338ef8970f96e14b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"545b53b03db43ff22fde10b704373be9c1c27bde27058d1d704d8a8ca97189d7755b9823760ac7623f2bcea980c83b6e0c35f50ed26aa5011e1493f1a9b87dbbfd0a45a951e28ac617c2d150d8b341420c46471325d83043f8a541387e08a2fb3c08465ceaccdc089e1480c06581e0481de3fa6a748ee6cdf448906626d0065c4a6504a063997d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2f2e9ba41a1ec40d868849b6c577ad01ae2732055e4c243fcd730fd9c125fedcf235f6297b8c73a41466be7dc40d3f4fc63bbdaa9a3b94078c3cb76824b3347c5a30eba9d855c429d7dd4f57e57ccaa28ac66ca92c4bcf9c44f4b7a8c8e695add9a73e3382b7e6f4616e49993472d2806cc542041d030ae56613c1d13803a3f76ac9151e66badd") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6edc63d3c82c12321b347349b607cecf8e2e42f519026c82354fa65c1a75445eec761d2b5e0f215a61c9cdc0da28508e16cf77fc9c76cb4b53cd9877ce406e61b35fcf31823355c8deb2d4c420e82d5dfd7c2430792d118e1fe146e3712bcc5620e29d6e06089d85f72a72af813d2a93c544b2868b14e9d1ee311d54929a30087f0f6a6189c699") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ae04e24ae4da4e9d2e2136f17505ce111891896905528a38631fd32888280de56b13033db123185f994be19ce8ad1107ab945b52e406570da57c23cd47e4d33318c746277c4af7cfa52db22d833fe72efbb714fd6f4cae333324af3763c8879961a14a10584f36bab86e33e5f1e482d8052a73003b4da0c178bd7de4a365fdb991ffd159600bab") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"91cdb2f180bc89cfe86b8b6871cd6b3af61abf6eba01635db619c40a0b2e19edfa8ce5a9bd7f53cc2c9bcfea181e9754a9e245731f658cc282c2ae1cab1ae02c4366d288f0f88e001680bc02f1b19a9637a261a13bd83e312f3758ea89ba72223d65b1cd40cea478b20f4e2bbb9a98ea05fabc05f86df9a289326d379afb99b993a34cf783a1e3") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ef5ca1cf13f53e65ba9ba1048dbe9f0bf798567f77f9f36e3be148a3940d5a656c34180da04064cdd1c079ee53d5b4e4af8d321b8dbea92ef32211fc3bdc2f477e936e3be3513e477cd3694eb916985f7c172add3aecf1cd69c996cab60e92fe6018538e22337051d1acc265ddf8750703e1ebcffa2d128c525ddb220e033f12a9c9f8055ee08a") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c353b0048d9ba537c9d8aeeaa811844a01705f6ebb3e20a6f82accbeea810cddcd0e2deecd78be8e9c0b2feb3291a98ee1d4e0d1a3970cbae1160322112fb304b811d7d4088de7d94542bfa0a1e5d0f6e34e521f43b74bc1968f9527b7d2f920c11057cc6aedc65cb49442c9dab5297511b87a7c246ae7f792d0c36454e44c2b07e43c9310e8bf") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c765de3aeec8c550bd7cc8cc1f5b02c569a79e7de5709782b98f53b050b6d51d849b30a27166250438c2d42425863073d5aea9138edbce97bcf850ddcfa1a29928948765907871427dc770d2471f64aea2412ad7199915e7d001af791d13837dbd4a247129a30ae7b688808720d69bdab29f82fa3336d3e64256be4480d75245ecfa2fc489392c") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"336660d0944d2b3ef07367a28f2985a327fc04e3a92633938e2d7bcae80af2bccb7d61f5a4bd2941cbaed1105a5146de8f52e4f3b496ef85e7ca23e5ab3ab77aad06b7937d703153db1c73c7402ba6e1fccb31f29039eeaf0d50f0e082b2a60f11641e516b9742f79cf7b316ebe9ca43f79dd273204296abf2fb888ca88d373cea68e19fca8824") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"78ae232dcb2958f219edf1d60d0a18e4523a96e4e349d3487b70283764102833afefa6600030ef2d56b6296c950e02c3c69e179983b3b96d84c98392d543f5347d330cb341142b10c1ebd9e2e24b88822a86595542b03a06c6876755d4b03dd4342889a1aa255a256c378c93e8f99d1fc15bb2f1936055570d46b80c04c3057ed9105d21374614") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b5659d043e7e2ee540d34dbbe85b091290ef1fe330bca009fb38149e7a925fa0808746b8b7994cf60878fa54d66b07775095191bb39c3f686d8dff196ebc5a765aa83e697b115d2edb824ad14f10d43dd92a407b131e94d36479f7cccd4f32880218cb890638a37e611fa6bd5218c0aa4e475fb8cece119a6a48b9ec00ad35326928ecb25d3b17") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"727340e137311efb2ff52e8a25b73c80138dbc27fd092b93050277a849053c85410182ef32a7ee05cae9f824b19b174e920e1f905a47c3f35db85f0fc9912cfdaa4d66dbb02b2816ed37a4c169bc5f52e6ba3b258bd7fed60a7afa76994090b4f6ecfc8577e2a0aee1c748340d3ca9263d3df0c278b60f8c9da388f9d9db593d7711e5750e38ff") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f560a7a78a2e377609f9e15775405a91de018950232fe11726209639a87eb1a9258a0ef1c055a9870c48475e3965b128ba34ed24f5a532499f9346a7d04e0b1afc60f03c90983f0ced15aa630093faf3333348b5685ed9e789f4522065a1979e8481662c2134f271407b41cdf402844529635610850e9a10eda5e4bdbe7764b69d4ee89c7a3077") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6906af4a0334c4c252302c16606b13b94a060dd64f45f76de66aeab7ab14a37a2b09995ae765a92839680812b29a3565faa9ea2b70d6bc552c0e700a0026252a9e8409ae1ef30974d44bf81f42bb3fe09ce129ba1a4eb9c36229447d36f5aef243c97a5ff9984fce2daf0e7226e40b3b3fbf6febd7aad8ea6d26b438886b39821a7259a099242f") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"df6b6ffabcea6f00969c5b9cd1e413be6e0cb441e9062bd20127538f66d270a22ca73cc2add6258f81fe64abb4047dd68acfac4e62aca32d2227cd0708e745a614aa1bb0f62ac0b46d939ddb36c41c9fdb35356c6820e07a8dc87724fbe0d14f9896a1c5d1ebef1e5ce4e345e1a5326b7219051660836d2ab9e45cddf05cc189ed7ed71067834b") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0198e25d363794808501cca538defcfe26fe50248a7024a803679a6f49c73157e79e0e8b24a8d02238e2687f9acdff3497e6263372635b8db9d493db766246ec289f9a4fe30aaf6061839f8e8bfd2f38e93b1d5bf728674a393f5d08c4bd76557965af9f12f16c19faa4f1d917ef612f631865e53540d47351d95a9df7c1e814d015a6fffe74a7") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8c8a739b37d4303384e5c95f8067444acbe30529fe7bfde4a9170e1a717e459d76161d92a07743908f5865fabc826d0b83ead3dddc7dc7b5ebe2ddf1affaa673305e963feedd16a26a8387dd1018982f488df0513d6d7bf3f6e1cadad02bc629866ddd4bb10f2fd6c35fda48fd75d7e36635909c37726a3308cdbe74d124e1ab7310b483c19ddc") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7a02311d94e058708ccd5d7bf897d463015109cefa61e4465007301ce382d6b19f8a648c5a71e3de42c284c4a830a89a6389ff0e894ea77ca6f1c423da2ae35620164139828593fc81c55d2a5fe68816b9213db6ea8db5460fba0d25fdeb4f35f36dd87963d68e01563a2ef1ea09a72994b77d1c125f4d76e7a187dd94ebca14c16b94226925c4") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8750724134093ef8110d8747317444ff8352d554490ffeb65a912cb3653d759997b04a0ac70408c97c7e99639bf96588ba2d2153fea94722c39390d4c07e9e2089d84a08f9cbbf4e19d49bfaa00db3d947aa85ab6641572045e4cd44f4468a87c5a78d96be07e1f2fa21a3fec6fbf9925d5db7c605a0cefce353aa398b073d9c62a467505befad") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"be09068ff272195e5ef1eed497a3af4716a8ba2eb3d5e244e83a70fe61aed7fba47d79222c96d1c52b55bbd04a1e5b0a11c8d7e95d3b9d1cf3a733b2e7bda216c8ce9dd5017371d7944c7eeb0e463351ecf095c3d5bb56427027f86a5a821374330b185e846b172d607eff7490a1627dfaed17edc6b99e3a807472aad1c21323fe9d5199db9184") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"64b8bdf87b828c4b6dbaf7ef698de03df8b33f635714418f9836ade59be1296946c953a0f38ecffc9ecb98e81d5d99a5edfc8f9a0a45b9e41ef3b31f028f1d0f559db4a7f222c442fe23b9a2596a88285122ee4f1363896ea77ca150912ac723bff04b026a2f807e03b29c02077d7b06fc1ab9827c13c8013a6d83bd3b52a26fe7219e0d9252fe") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0cf25d9f71e5e62c87efb146d2dba869a99118df2c4c3264ebdd5c693da91b141967902a138adb5691130c19f3c83816f7ad6ac4fc8b20525dfa3254dd25fcade35555a0fe0e7a287e22f243d47dea823c26c4101df6c00f192c7d9a148937d1534c1fae8526d98669e11a395d7783bb371196804f9f1886bcd2437f0395484e2db65155858861") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"74d9ef204a1c34115b1086fd194dd6bfc99741dfaf47ba93273e8785f074a3c296a407fca745e9783bef403fb1d42209b8a34b09a73aaa9791170c256e70fe379151b57c30d0c20cb08530fd3cfc803d78ed04343c9e2505493607a27b5618ae87beefb383d0ac79d74db5d204f456d054e6acb537491f48c1dc643db23e555ab0e6f8fb1623e1") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"877edbe5594b0f737d748b87cddbfa80c8403f631c32831b9de7587ef9a2dfd04f85715fbcbb9faee86f3819303cda5ec04b09ac53519511823e1787a149c4a54214cb99375eb3d23dc61de03eacaa6598c1631794179ad87775b481cc2df435581a14e65e3b84c1aac3e0bdfbc92c4c6320f762ca6104b5ea4c7259a42f6e85d97c8fa0f858ad") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"220df2e2ed1b88f0a857863117edc7bf8aeb13c97c91d70d948564de9c94894ecfd901f1e8c284e7aed1606dcec8b77b5020cd7a6c66d516afac6b2bef7a3ede646dc0ad19a36ac8d35a62f090418fcec9c42c698fba547eef7ec44179cc721edadcb5b9fbae979c12bd0c01247d938539890f816a8ad7e5600b35fc5e812fa5f293876264d2d4") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1e6e344f2ee0f1e2d7d05d6fb18a4134b801c91273524aebefdbf874fbea699e658664526b99fc8e26f3bdd2f174d49a871278d7419264a04a524c4417e96c211646505ea425c76dd1eb6718d68bd3b137d559ef718cdb979136496f1b8cc451b04aeb030e5c036e4c3f9a8b1ed5d3450a558c6d59d8da1d34cd152e7fbd9e7e39d725208423bd") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7624faf477015716ca06426df7ea917296ec72bec0b32908c7bb6eae0572ae19b04f5cbd909a02360841022965dbb06906d6eea87b358c7856b7d978cdaf0e2a4e6869869faaa07315cb83bd852e72c48b25dacf14ef8ce4954a3dc12b971cfe589dfaac4834fe0c48e552895bc007882fa8793a302bb92395e9c30c7684e88e2f5fb2d63f36c9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2079ace491f41958f2f29862278d2df998f7e7b2ab0d21dcc0550634fe0a9a38c338929b683b15dbfb2cd0ddb0cc4ae29fa8e5138971ff446489889fd19c0f4f5e89036ccd2899566ee1aebf583e8ae8488554bc90ca5fb58cf1f0dec6719bd9d61e8362c048a162c8dd191239f0ed7ceb92ef0ee12595973bfe3e8af63c281fb4f2970555eded") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"59b84791f540ae497920aeb1568134e1e5185cb21ac777d8a440b47f40bea90ceba6b17559eda8e6e3b646bc629c4c3c52303edee3cdd5bacf3540faf09b20c9b80970a76d9e996fc166a7e11bcb83c94411705a3e81d5c2511073101b3a24163788b56bb745d0fd70ba1f11dc70cebfa2c0d289af214a29dba191eee0d814f3bbf3b32de9c3eb") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"38669c7b3670787b4507e218ed84657ff946470bd56dbb95be01ecd294300019691b8c6276a06fa9603a6f7f57e26607cad73210e2ffc04382a52af30dc964c7c60a027709cc8d5f908e94cdcd2e6817e0b29fe6f936c4968aefcba4eb3f995c9f228f086cec475946360d2d904b8435cc43fd5e1d90ab47ac027ea8290b8cf488ad0602fa06ce") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"acb372d3cc27bf51889558fb8edd5e7c426539000f269020a81bb449bf25049b3248b471571fa9def846f3891c13daed21c740d7f8f1f09e342c78a98cb68106b4e01511c8f6fe5a02fa4e827be61d7d51dac77ba38da3b27d5ea00506b15e42a190ed0a47a3d9ef83db79bd131b62ab834d94193d10a2082365971d1591f44bd2526c2634089e") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"78c5b9bdc1d5ac65a4a9f61e55cf56f824593b942040b991c5e78adc8147b8201dd65501432f4e7b5eb00e8afdf88ccbbf370a5ee3ec4c3ad25872bc05bad15f7d6fedeb478790a823b0421ca76773b553a2293ac4814ad45dbdabfdd1b51b65ede8632b4915da881d1cb86bc5b029c3e2edb46ad000bc620b8db32626a283a26da81ccec62496") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"61aa285eecfa5baa539e1786e0599e5f3e6dd6a68779ec18cf2d56725a6d392cc55f9dd9615f54f40ec710f2026ec301789c65bbb81e7c76f80e517e1af6d922060db2255287cb6dd791b83b4b29158fff51460992adbe15edad83fc7eaad485e2b3dabf76066fedacbf773fc22d9e564b3602d7e27d7555db18036e25f42f4682c92b6a61f3e5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1d95dcbf714bf7ad526a2f292b5475b21b45bf0c0452274047347cee96c0c70059b43aecf0cc828216db38aa570a897ef2e047de8ab804d964b56b680d2291001735c7162767f0191f15198a8f4f2f50bff53531dbc4137e17940e68f8a0ba024b55ff4fac4ebc037304aeb69005f75cb00cbaec41a25e75b9482f4f9d3c029a90f8926085003f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9f90013daa7935ae9eacdae3d6e0318aad3b7f4d972d64a2052c23711e3c10bf292717ead0ade9895f6d9039113267322e883acd73acabc38a50cfd8fe4a575419cb7ba785a05b19705bdb0b5fabd9e79af6ada15c48a31d2af1f9dbed5a87b997886ce2d45a91f15c3e9cffd0e07ce2fb4d763ec8193a1be75019734de4f7bcb06769c54d634f") ironclad_0.33.0/testing/test-vectors/chacha-8.testvec0000664000175000017500000024602412247651676017556 0ustar00(:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e28a5fa4a67f8c5defed3e6fb7303486aa8427d31419a729572d777953491120b64ab8e72b8deb85cd6aea7cb6089a101824beeb08814a428aab1fa2c816081b8a26af448a1ba906368fd8c83831c18cec8ced811a028e675b8d2be8fce081165ceae9f1d1b7a975497749480569ceb83de6a0a587d4984f19925f5d338e430d6f4495876b511e") (:stream-nonce-mode-test #h"80000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"beb1e81e0f747e43ee51922b3e87fb38d0163907b4ed49336032ab78b67c24579fe28f751bd3703e51d876c017faa43589e63593e03355a7d57b2366f30047c50205727da41c9d3fb42947f0dbdada45f5a50d77078da4fb5e25417eefe2ab60df7b1d9ae2ffee8db188dd999e165055c81b1f1765cb446c0fb1806d04406049075f6dce4bb646") (:stream-nonce-mode-test #h"01000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"03a7669888605a0765e8357475e58673f94fc8161da76c2a3aa2f3caf9fe5449e0fcf38eb882656af83d430d410927d55c972ac4c92ab9da3713e19f761eaa147138c25c8a7ce3d5e7546746ffd2e3515ce6a4b1b2d3f380138668ed39fa92f8a1aee36258e05fae6f566673511765fdb59e05163d55a708c5f9bc45045124cbccf91eeea587b0") (:stream-nonce-mode-test #h"00400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"eef648b11abf51c8557fb930d7cacf451b1523769ae8dcc708f08d5dea99240f469f8f8f5c716420c007695335fa9f34339346ad8688b7963f661a1b13ee536c44321484ed174b09207843b0b85bcb43521c0e8f76c164b384dd63470703d722b8a4391478f22fa5092510d7348600e9ce0c7228fa88914b4e9454581c53687de9e5575d8624e0") (:stream-nonce-mode-test #h"00020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"95995f22f5c0006e88e90df1cdd257b55944ef9891a763d4d2d91965384c29f3b2479aa41bad2a8f547fd81d6562b5fb23e2d6118f92fb2b567da31906343838227f805b67955e6be91b193d706b001ae06f645c82ea2feef4d250159804c525d0aca893952c4c3aa4f3980f0c8ed337b9ca15e522cf6c5f6b60ae723324d81faae532ae518b5e") (:stream-nonce-mode-test #h"00002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7a7c8b2a98419e9aa6c56289589bb2f52ed51edd6c9962a2bdb449759bdbd190e360fdc1d3c1061913aa6dbc17dd1b8118105e726773fffd4b2c4e8112c27869d17e5fbc7917e4028b3da50fe3b525f9376e79f9d82ca33745f4efef63310374ffcf257e91b7c2466ec88f5846f257b015dc6fab5be61e25cb0cda74c0849cac681f2056cbe693") (:stream-nonce-mode-test #h"00000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a334d54b70cd79c87996a22192017928c49f7698107b99a90506681f7516ad76ee0d7eacda2a23a9ba5163b486cf782a24d6ef8f6801a6d2365bbef819aab1cee88baecf191fe7f486dbd3122a45c9b1c7da35b2d5b1bde55f32c7abd51a6274427c781fd1d26fb3360d09f62130af18ac0183f8d30678fe51817789b5101a199ab033f909c38d") (:stream-nonce-mode-test #h"00000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"184f44da2e36a0ce035534038effca559c169c34e1eccdf845c28132e6a91396dc61ae3f335203c0cb1896e04e42a48ca77c6a96c0722d1a75cdabb91ea15209f39dc16d18d5bd2475c9f8897eb6691f3051b2091ca580f8d8dedbade0374a1d7888e9f1a961c3a7e6bf43773ad5c03afa50c28af17a299a2ca8ee559adec31f4c8c67bfaa447a") (:stream-nonce-mode-test #h"00000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b701c323fb12b05954f0d34bf01eaad2bf9796658cc6ac5642435cc321f62f4b6fec7c93c2bddc4f999abe3c330e608f66a4395b5d9016dabc7cd3a28d04f4d2267eaa2008b45a8e5004de6638001f1f08e4deabff74cc98aad6b7a37f55efc9427dc45da85ce9d2ce94119ab09580ee80759d5654e954fef08bdd6ee3beea947976f0a57cf362") (:stream-nonce-mode-test #h"00000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1190727dc8cea2e5caeb08d9db8852ad66a6eb5ab990fbe1a32530f47b581569078428a663a740534c0880895790792f8195fd872b4e88425bb25abf33905363054d18b1f0c904c1a891e44075c3a09d91b41e444608d5058af4fc18b56019b5fb0c43d2670bbeb5568e645e06234650ec2f3a0bd6980418cb44a0127a8a4f23bdd18c911ee76e") (:stream-nonce-mode-test #h"00000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"13c8beb1a3a94b80ab8dd029c18e144bb33ff17d6c957567528afc9dc64bd893aee7ec821d5a9480c8f3da965957658694b3000be081554f5ef3369e736b8290efd4c6340185a2fb43db950e6aafc77f922d9a6e13b51c4a8228ac6e1bfb743280a9cca90b395e8f285ed479902b3bf247ac77fabf665befaaaca0e5c03863ea58df669106bebc") (:stream-nonce-mode-test #h"00000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"02d8760224c38920449ce8d6c4b1f57d290879128c496cd724743b3cad579620d9a389855fe857f9f195aef279ae53f703b3908a93ac9948b0ad465181b594277508e510be6cb36dd0a3e6ce2283bbc7f7c189fcbd100e570016e0f674d0efc5d29fd66e0867be99b4d0c0f41d9b35e4b64ff7710bda747b7c54d91c1fe976b67cbaeed420e841") (:stream-nonce-mode-test #h"00000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3388dd37601c856e8439a0931e629bf954ed8958845dc3aecf6c0a4f43811135dc6427795d40e94bad2f5e84cdb264bc5aca46ba715fc63568d019f8627d2c2e370cbef7b79dc7c2d1b7c6f320fa00e4834732f3d2e83e666dbd6f8756db2460810e76c2908133e85f022d2859a3146d7a5aee14d63e9dae4df376f7e418fc7147bb38511487b9") (:stream-nonce-mode-test #h"00000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4b96c959ca1b49618a8bb09512ebfc34c247d9f00ff0e16cd948e3c23ed3b53d4072baeb36a499101c006b1be236d7791dac3370a7efc46198a63e4acc6c98aeb0952c1a114b4f92195d828310f7aafc2c7ea4099549ca7022aaf203641fabc51b617a15826761c05b72358373105f1c7034b516feb8415f4694c9e6c9656387fa07b1a8357fda") (:stream-nonce-mode-test #h"00000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5fe135ef8f2e6f8255b24c861323bd5697af696e09e85b4f6c82a2047e0dafb189d1d9dc847b4e9b7069d5f493dd3b6fa03ca1ab5a2919e9f7de7d8207177b8f380349cbe524eae91647af5f63a9d0af0d1a891401a24445784b2f61d91775b28ea0eb9242f8b517de97860dd94f38af3fcc2c9f6df1ef74403793b14afc38532fe881c8bb5515") (:stream-nonce-mode-test #h"00000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a2c493fa3de8783bda09ea2cd088d16049444ae17ecc4fd1918c0b17f2938687de1170af4794cb9496a80f272dd48c205631ae087489a20b7f69f6a5ead0b86a6b3130c8b530c797add4356be632b9e17317f0d0443c57f4b7662e72dbfd77930cb43c8444149d0ac6839381716a0bd50175d51958a2cf7da7b66dcce780923125bd1c7722ddad") (:stream-nonce-mode-test #h"00000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3607f84ef4729d20e4e367378280406d66c7be088489a71429ffecc3d0e05d3b0fd4791df6e8ccb4f07bc33fbfc1599e1ab419dba09004e29d1aded658cedec866e05b3a189362e00d89798683271e08d922660258cb9fe1fee043db6956aa2f18028aa676570e106665f99c192318d2dc54d3dca5ce14079bdc4aaf0f3a1b8c1609c488ea5ba0") (:stream-nonce-mode-test #h"00000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1ab27f32cf9ebb3c90d56e5a5e5760a9a1e2f92a4f04033b7d90c22be7ff34bb5caadaa865c24b18d2f6dda593d778754ca8bfc0e832e48fe4df07e198130f5b5423d43ae094fa250982300d62278b9733345584ee67ee6231f7283acacb2069c0cdad7551bd8cca8bb9c7c16ce945ef23ebf6d64d449db4b1a15cf3bc8843449404b8b65c4149") (:stream-nonce-mode-test #h"00000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"46c8c6b5113220fbd32430db04194fc2416dea5937e44ea00f0dfc1b411ab0617c79b6f1b0147b4098d5ebc9b3d751e27ef4bb9907d1e11eea036503633684c4fa9ede06edda4351816b1e9073b9aff3dd89febd4ecad182853933fddf30c1e572caa919324f17447fced7aa594801f035c13e211e40ea0b5c3e9ea35d72667fb9d64e3efcd742") (:stream-nonce-mode-test #h"00000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"786bf95380a85ba6296517e604e1d0a0673f0504b901eb0eaeebcb00491684cb26e850852a01f3f09da7f9da8801292df08bc1f98a738409568754df9e4410993c6e63fccd475743787093e3fb2c43603324850631078a9a0488887f66fb127b62598530073ab391715cf0433fdfb2b03a199930ab4f54f6d23a94b783a26547c195d5fd4ddd75") (:stream-nonce-mode-test #h"00000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"32067330f18837297e75fd2c7efab480ec344bcccfa9c18209a443780147b86179eaeac2f45186a7a397de05e32bff740cea63e368a1bcb6425b6139335f4db8ab8623f77183ce919706891c676054d34ea0e9deb44119394fb28855a39cc6f7de7835ebf2d535ea22e88f90913a65b2d32a075cf2510e6c884dc46218fa5f34282d99170b6c35") (:stream-nonce-mode-test #h"00000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"81ec9fdebbb969f61687273a65592a64b5a805080eedb0f4ebf18addab017a5fa66c8e4ea92dc39af11d472f0cde8b0ef29e19861565ef1eb3e3624fb6d30a3e361cd516b14b86aa39b11383f1881b9cda24247094260623c3288379d7e5ab9630ca82e8d64962d3a3801c00839c83db4e95b5cf62749bc86d11151c43d931eca2c46b8d776a5a") (:stream-nonce-mode-test #h"00000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f5921a8a4408764a1204fd47f0b78361dc2280b137b3f4f7cb4b1ee262043500a7c3329cc65132510acda1f7f02b54d70e890ab374c51746da834d07788d2d4bcaf0c387bbaf30499b36114ddd191e25afde3454e556407e0934e7591094079d76e60342bc342bac946576d385d2ef731e1bd9ccb9b011e2404020a48f1e46e7fc72ef72f3ad75") (:stream-nonce-mode-test #h"00000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b69398edcbfbcf82f3d917c0586a136a4014fd50e59007c63ce907508308d4066fdc9e155b4b3f9473470cf2cb6d3d09da0ba66315edfff52e3b996b435b62bf95d4a4830e55c36ab6ecc0dcdac8fbbdd8e69243e9bcd36edcc30442ab63c67e2b890da84d9d2f9166a54abd9c0461030539b091b850ce1282f32a8b8df4ec58a79db342b9bbb0") (:stream-nonce-mode-test #h"00000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"26215392bf6257d72a49fcb3da1e0a0e50e891072196a080572878a83a9bb808a3e9d8293df28b1070450b2248917d72a7ac90131a07ad29446eecb5d17849920290177d44b1137cd93666680e1d5678f0efe9d165358c249ad6a4499cd1390c789d8de8768d057d40dfa35fa8def98b4b16ae4217a0acae413b52140e2d6594bdd79b3e011d34") (:stream-nonce-mode-test #h"00000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"892141e5d9df6e0c297d2250ba7ab7d727a8edea3f126d72ab26075ae36a40af0ee02c2eecc02b9f75217a065772455d529a4e513b827af9a922d154bb791da2429d6a8540aab59c15acfe1514a9571698b07f76a58e73fd98c7e8668c86731ffcb58400193d0b5d4a7be521ce9898795fdfa302050318763b927866d163b4aad34d144240b6df") (:stream-nonce-mode-test #h"00000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b2b9c504cf04dc10dc004126005d02dfdc05c900eec704022d2c163a5c8920793cea91c1831080072a4f50b89158395322af859d28f0ef016b87a79eada624a8e9e348b1365e704b66c2ff20e3f10fe2bb794b4d0a91400556fdd9485b993e8a89119b728fb18e7c3ac5d1183bd1547105d5ad493c5e56409e8ee2cd28fd900d166851300f002e") (:stream-nonce-mode-test #h"00000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fc25d80448b2ca752a71b2349a030a5504f12ba09f3dd540e346946df23e87c4a002e861f393a2e155217c1ec535dd020d60f1c4a86cc2f3ab452bd6b0c82b69a25718659e13ebee6e12a2f2d3c7ab93904390a275a1e0f28dbaeeab258e3bf978ba4cd8d479da6b2d04084445d9139caccd51038cf3d7984b81bd6800253b0315eb83d1f4130c") (:stream-nonce-mode-test #h"00000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"80daa04951a024e5317d28cb0ee11b5f41005f6f4a8ee01435163e4d87c76ec8bc6a1c2406a0f461c7176f087be6baeb98590b0a70dfbdf7d64df4cb92980216ae722e1338dba26efd929e15e91b002a9e7aa443881ebfb6709abff5acb513d321310c6fde56d5ae2a036094df0f0fa6ea2260c5f0d4f8e546f299320b9d1c0b5e503ac958aa6f") (:stream-nonce-mode-test #h"00000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1da60b640c984a8d662328b23321b151b09b7b57c97442d768bc134756cea2eb0af895f4163fc6d6662c0258970a941b714aca622890fff7dfa5089b94e113ced4398c9cfee311206cf0472049022cba2f318d760b5ff6f985cc036be6978106b83475002f82ce883f99ab5859011e6212de0fb6c0b8c912b1b093f3c4052260eff8dcfae11513") (:stream-nonce-mode-test #h"00000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"acdd114f53f57f902e78032de95ab68c00ac514520ca494ba521b6d21c5f2082d621905efe668d10fad3b03d44ff12b10c37f335fb13058ab1769562d6fae902972d83b6dc49f85be19f2f1c11ca2fa700950358444b6f2f88ad6db66c1c1a5cf0459d7701460344add0c8b3e2fffd2c9675d9261b643d05a1bf49dd3c72190d161e5bdc780a43") (:stream-nonce-mode-test #h"00000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"83684974c5583e4e56571ddee8606b01f01f83c3736bd3d95ccea3f7f69df5813e6328d9fa3081b793fcc703c9c80fdb8807ef335a5e33c15548022f33134398df911a697ba3cc7a875559b40a316fe1e1b0835a3809dbdac5bf9f95a7964565d75c8f6f3ee488e2534f9ffff5881f1b7553d885145448e83de23271f79fac5dfbf05c6047b4f6") (:stream-nonce-mode-test #h"00000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2704be97f07be0dadd76fadc6f618b41df971a70b6a4bc66d01f0cf3f1b65a5d8a7ac4965b68baba3f50386c4420119a23e8bb5d7147d33e61f1624e60ae9fd85a047977b42f81ab7afd3a8547624b9c1e74e8d6de2ff261db13f5acbb4bb3284ca9c90d28ec21820192a1be5857aae1df7acf4f89dd4c191a701ec0490840348478513181dd32") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3e00ef2f895f40d67f5bb8e81f09a5a12c840ec3ce9a7f3b181be188ef711a1e984ce172b9216f419f445367456d5619314a42a3da86b001387bfdb80e0cfe42d2aefa0deaa5c151bf0adb6c01f2a5adc0fd581259f9a2aadcf20f8fd566a26b5032ec38bbc5da98ee0c6f568b872a65a08abf251deb21bb4b56e5d8821e68aa7fe7b1ff12cffd") (:stream-nonce-mode-test #h"8000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c6b5c460b03262045de1c4a3f8b1ed0144e58e37623f6119e9f14b2cd2d68a87a557688402e50060df447773c2fcb94adac6f7dac891c9ee93448492a7e9c9ff14d5f90fa33c1924854fb32ed108c06d8465380eae41d3a223afa0d52fbf41ee2883590090e0983cfa3d56f280a11f0810d535b19aec91deefd1fcf6dc78444dab65f7cb60395b") (:stream-nonce-mode-test #h"0100000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cf5ee9a0494aa9613e05d5ed725b804b12f4a465ee635acc3a311de8740489ea289d04f43c7518db56eb4433e498a1238cd8464d3763ddbb9222ee3bd8fae3c8b4355a7d93dd8867089ee643558b95754efa2bd1a8a1e2d75bcdb32015542638291941feb49965587c4fdfe219cf0ec132a6cd4dc067392e67982fe53278c0b4d330fcd4a025e0") (:stream-nonce-mode-test #h"0040000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"080586a4bc030514cfb3c2a44fe85bf35b67464c21bdcd688002759a9f3f45ba6f2304b9626a260d24da75a2afe7544da2068af6ff5788812700950865a24696290dbb095c5f288b5fa0e70104712ac046194dc6fffe42419d865c5f48ed85eaf74ac1981daed3870696e293361a656dcae7fdd075105c7a59eebb6fcecf4e89a4c6801599a1fc") (:stream-nonce-mode-test #h"0002000000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"766e385e4c39f5c9fae3feec7328b5b7ca610f0cf97635be85d64d39db473cc43b8323f9376ff6c93b7efdbe3f5c0c81b9853711cf9f80689df81dc9a9efd75e5d2b839005a62c0401f360ae7c7232e41d3bd086f04343d818007f2ec028b43111e5029b1b747dbad93f6bf376bc0f23f1afb2603f1b21d61d85c9024817ad9727c7cf86fb8776") (:stream-nonce-mode-test #h"0000200000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"653f4a18e3d27daf51f841a00b6c1a2bd2489852d4ae0711e1a4a32ad166fa6f881a2843238c7e17786ba5162bc019d573849c167668510ada2f62b4ff31ad04b8c69257b2286845ae99211a89fc20da0f57f4eb4b4fc7d4b4bcc693f2ce8fb7f7defeee088f31b1aa21ae980d0ce49c34ac1a88742312c2346ef02e1d7786e70253e2e3b12337") (:stream-nonce-mode-test #h"0000040000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7b0d66a51972348a441b2b7a16e06d489d24c4fa5bdd954dc873002d25497ef7d419da073b6e3778f996ac35e4cf14d3e29819379bdfe96ae9fd964f84db2a548f988b923dc5952bc4be510e0d3270734965903d192f4b33d3b6e4441e45f0ecca75e3b998ea172b33c3fbd1b2a5bfa8725fb1ff047b3d4ee798084ae7a5bd5e5e8f77a9101581") (:stream-nonce-mode-test #h"0000001000000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6ab408102464f3512f6b9abf508d5e3972016bb14d4182bdcf8a811ec84d4c6d324d933a442ba4e9ea22e250be1e10925a3843409b38466f4d4fbc13ea87f4788e482c20c96c7c1f1b746301ed87d97df1066383658d88c3a1cda0529a7540048543bc04112f5d1a9be7022a8e0e13d271e82176d829350b8260fa86a45d9cc6fc908b6139386b") (:stream-nonce-mode-test #h"0000000800000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8e969123a640cffac7461fd637419c53831ea1146be3056b0db7841c078584529a2b822d072c3cb3c7e9cf72a6309d22d2b967d5cf68e69e59743427ae3f62b4d20716bf8ae7cabf89033be8212d90a1c4582f163e26f89da1b3ba23671dace065ab72f7007349eef2e94f5e253eb38936888f88fa2c7e554b4e457d4d790669ce4eacb82f1212") (:stream-nonce-mode-test #h"0000000080000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"dd77e0307c1e96ad3198c16f473c6cd9dc1e239c96068b8444d6f031a9e6a1a027077d0b97ccdfed3e554966ae7172699434ffa153432b255e6c31335e6fea3a84dc3d78a557918bc40c4c91f72dc7d5f607a2e26062e7078696d77885146c2b7adb71fbd4bc8e98c48d13417cc42f2b8db4e0152c49ac0e543a00c222cfad81a34bb8d8acefdc") (:stream-nonce-mode-test #h"0000000001000000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cfffd822512d24b30fa57b44d1c3e913078cf79448e553da1b5726e00cdfd71dbaf856f1ad1311026bb2fdacfb31f99f5c0e4570c14ad638997cb19b86aa09944c42efa654fd8125ccd6158fda9aeee126fca74d0b50c49daf47cce30ace65cffd03dd5335c80a1026545481b948be607a3402ee80ecc726759b5e353eb453841775f2c4292e49") (:stream-nonce-mode-test #h"0000000000400000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"67ca138c98dd6276454ca5b1fab1a6d0e76d2691ce8e8654d61efbd09cba6d07c79b5732cc452b062569c87513bd7999d4145774d94723f3e4129b6bf11dadff065263636d35dc4e7cd02ea32654fa7e2033c8e53c2cc655c1e239ed59ce25693408180163a8b9bd8636caf21017704faccf8edbd22ce7ac6270730a803b804671c8a05da5be93") (:stream-nonce-mode-test #h"0000000000020000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8df8d9b58f0df821e161c5a31c07a69fc6e7950e804b34276ac9936e6dd11479dd9e4e7edffa237a2dce53d191ecb2bde2f1308c613bd8ca9221c7ab9dde81bc6a4bae0293b9aecbf33f9bac6cf9a1e2f4e88a96a4be8b9e61a2773246b4a7c4f4167de78c819d7c80ca9d7ae84421ec316c06bf7dd77973d00efba066c87711e8091e0f5e88b7") (:stream-nonce-mode-test #h"0000000000002000000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5dc4050e27f809d995242d5a7e602ab9ab8c5debc036c8279aa95814c62b7c7c0fc3f690ce7e0462e6ab8f9724f948040dfae6a4423536d5dd521cb162b4640f84d89c96c28be80065c2a92543a9d5aa0f9c4f192a737e87b2d2da51812500f3dd2d1f7a7bdc987f9a3a405c8d9b856998637563b668fb0fc084e1ddbd6d10754c954507f199ae") (:stream-nonce-mode-test #h"0000000000000400000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"283fb43fe244249fad413887fcc0b11aaa0d77943aebb42fe5028dadd4989737e27334966f635896370d7f6df9e881073f7c2dc1a4aaf4c533dfc5273a52a42a1110dd0967fe1ffec4d8c7d6fc3c6d1e75d9f9ff2460415cabd6e57cf4de6296eb8e95128bb3551201682297cdcc53d39e2e2409361cee16a853413c0e47253567c32193188e11") (:stream-nonce-mode-test #h"0000000000000010000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"05cc7effb11c1b60ab77e8db738b003fbbab38a72cab18276a442999c8faf1d4a1c8e18903b3ec7e4d932ebe3aa0546b322ff00251c9f7bf28fde7d3847fadc5c2a87db59ae8f95e78edd87e4ae30a2e5898d0e30242c20e45384f548471d325d2d64fa80e0e38d286f30970c8cf174886d3aeac4f0d74e632e8c00c0a120ab5e8eb47d3e588bb") (:stream-nonce-mode-test #h"0000000000000008000000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a752eeff48da9994d4be5107c5f748de54871ed3d0be47aab4d27e144f2d05800dc018916efa8b8b46ba8882eddbff5596771519c2e71d8fa4dd2d1d7c935c8a12784aea2623a27fa52d47bc725fc8a54c1ee6c1e04da81c549f1746a997483898506db7ccc40349b77cf66b187347eb2e4e4355a436c41f48ddb6d83d37f1b750110553899758") (:stream-nonce-mode-test #h"0000000000000000800000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"921f5020fe87ff391b8ed2759c84abc253c8825523d900ff7e427f9ad68d78a5fbb901f2146b7ba3d708ab7d74047d721f1b04b24ec5bb5f709bf7071fbacffab2164eb349ba22c04537f3d979682a51bd061339d08fe02fa89fe8bfc42f38219697536260abdb6a7fc497565b0a01bd7e421a18e94cd1e42a269e9f12ed884c05493ad82c0f43") (:stream-nonce-mode-test #h"0000000000000000010000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6565d752d0e7eb3f05a839b9fd899d51c696218233aaec5e93f7284ef974d09ab5179e1c8c8dfa43fa662709d019714e524501184947ec43c7790a5a04ef6cc2152fe0cf5ce6a2f21d08489cbcabaa2fb92b7e51b8d2272ef0240689f81fcd1ae2e051368a29863d5a50068304087d26a165b6745fd471ad34f83d1f0a6ec8d1ebb271498d53a0") (:stream-nonce-mode-test #h"0000000000000000004000000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5cb7ce7aa088aadece47889c640e3b0ff8edf3bf2fb22aa5d2599f7e164ef7f8d70febf96d0fd864740b18556d642b788f167133e0d426b50126382ed296a1d5dc999fc1ffb95721182b5586a28bac50e54dbaff24a8d12882eeff35e27e9e9a14fd4a13f4706fe60518e3d9a337a0e635dbef1d03bbd936e6a5f139c6350bf193d8a4e79a4134") (:stream-nonce-mode-test #h"0000000000000000000200000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fe4ade4e071a40da8ad9c392eb4ac08b627c7a149d63b1f57affa07fd88336df38de6e378c1ffb1665c68452dcf4eaee0c7a6fc63df1426773eacddf9689e950dc0704b41f0b6ac0c66e327cf050a92aaddc308f68fdf5901292605ae80fb4e3563a6807494e5bd8e327432e3921872169133a5e0b78b21f2efb4cdc8e13e48746542aef770a0b") (:stream-nonce-mode-test #h"0000000000000000000020000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b9cb457211f03041c73ca1402c9f2287677b09d441fd105548b965268cc09c9ca65f7da3badbaff985b7006fb51221d86e7ea131dc4da78ce5178f00e3aa8c1fe5bb64cfb5395af567d70d1f53d0d8d4b4871827e98ee08e8f871ceb20aa455fb64ebb747af441a0e9e046d71919db6b9b46a2da074f2d3e1881f732cf834f6386e1149b083f4b") (:stream-nonce-mode-test #h"0000000000000000000004000000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d755acea62b2a9ab0b5f191e0330fa7cdacaf7558a53cb7a19cc4671588b5a436026660222783804fe894e49ee7e0b21fe9b5dd030e9039c8d0a17bd0b9e9a9414be4351e931a676b912f73c1c38f120a39b2691294c60a46f3806e8b8df216f0bc96e5e09a0d87ae8cd0760c53279cf160600f7a79de6dcf788f81bb92f77a2c7e603236a238c") (:stream-nonce-mode-test #h"0000000000000000000000100000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"880da49ddf99332711ea92d8cf3d5f401fc37c1b8a2e0443f0892a42dfb48fb46dda37b36723d40e715f709f3f4819c2b2fa8a27c664dbf3393aa4239ca65a01794edf06c8d9c1c631c2e92f6b76d8140fac6c52e75ca531537feebfb548c9b1d3cd65b99eb1bff2566126db37df6d510c66be28fcea48c1fb3da62694996922d3636a804594f3") (:stream-nonce-mode-test #h"0000000000000000000000080000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e587e7744cda84f0be0eef60b9558e18505d12fd23f9b384fed598fdea4ac135ffcdc3cdce6ecb361b22f788772a4b9b39ef33934d92c916e2084bd2f6c62996993f3a0fec48aa6dfe080929748f9d1f49e9a404f3ebf71b4b4dd2ceb32a88f9d57d1117bac4855e145701a52e177479f357558693cb761594d2567e924633969f934bc9b9ed63") (:stream-nonce-mode-test #h"0000000000000000000000008000000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b95d520ef21e359c6725ce13b6da00835b5bb7e2c916c349ae3769e69163400912313b017ce3036bf2c910d29d20b73da0da1f4ee9e3fb7e990a327a646541878fb2ddf8e4948ac4eedd70a0b6b5cd35d9a20276d08991699fe66637237c7a878dab0bd4179238704a4ab83d75e7679f43c52cd36aafa758c16c54abac0a4ac6817944380fb47e") (:stream-nonce-mode-test #h"0000000000000000000000000100000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"97c3034dc606154e1294f6ac2ebba5fac9a9f2b5fb3c3f1906efeb3012e5b6a1eb3c002acc704fe6e41fc8f79b64f7acb6d3a0f499ecbbbbc540b132b118b3282f7f2738f813fff931d30ed117740afd5bb14fdf39294ca3ca157cadc0b7a6209b376bccd297811283ff6cb84d06d80015411467880b8c5391f364da57f7e42423112598fc6cd9") (:stream-nonce-mode-test #h"0000000000000000000000000040000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0f2c4c6714f63fcdfd276ffeabe7b66dbdbfff071ce479f889ee65d614c10a7de5b51778cd6d2bd39ed89d9664fc59d722bf2ff6ce829ca2dfc6fc821612852818c0059c4647a30feccd08b52ab3316596f375bf9c445a571d8dc0edd9bda88f498d1eaaef903096620df1277268851fa3edd11abcadf8e2b494ff071ee47147f9c977590f3e55") (:stream-nonce-mode-test #h"0000000000000000000000000002000000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"de2b7be26d06403bae56bd11cdae8b698681fc070066fb6f9e02ab5d1a4c94c95e7369b8e9b1abb771881a4054f555a0101187c4c214aca5e5a40ff97956daca1d8c3acafbf04613d535eebe5870f9742bd790761b0182e0b0a4cc3bcca80acac7b08a7557b6b5f31bfe28a7c653e71c209965fc75229dd807d03a320d8c9ae8cc53e7e0aa7a2a") (:stream-nonce-mode-test #h"0000000000000000000000000000200000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7db31c09f2ea4f19ef8b1ca883a275b747909a393da8e99208904d2d681d8798c576d5a0074e6f78d2a52bf35b7396476375f5842eed9d5b882a7fa9f0d6e423d94dc76ca471db0eda1029929d62e7be229aa04e144dc4332d68f331e64180e3465e7c645a0ee96f368ec3edb03b04aad23edaf660b1ed34ba5121978f04ca2e580cf7145a40c0") (:stream-nonce-mode-test #h"0000000000000000000000000000040000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"df484d61495467ee71110418e266cfc984899086cc7a11fdd72af8794b2b0ed00de3d78856306827e29bf2571c233b0b336e5e924088cd866b70f077b2e6c8a34f7638f3f8009678b843c4ab128baaa847581d438488803e19d590860f9fb259fc6cb517767ba06069a0a264d9e47a50e8d2587e09d0b87fe85dcbd8d0196b0de4de0bc833124d") (:stream-nonce-mode-test #h"0000000000000000000000000000001000000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"62e2753472fad59e96ebeaa742ab7c31f33773718455314364c47d50c623b2ba82ab13c5da7a90cfb10fbff71a437e9a21488ce5b8b9164aedb83f7aae32978acfc1a54d74874eb74a5c57dfa5640e7a971d2d55e9086dd192e23bcb3f583938d7daa7a6bb670c40538db32eab9d31dda00d4cc3f54157f23af47fdf34c98bee897973e30b921c") (:stream-nonce-mode-test #h"0000000000000000000000000000000800000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6c06db486ea412462cdd9a43a455810996b356721a8cd1e8f292a1d8dd4f84a69e41569a6a8701faf32646016fb51dc16f3bbaa3a8ce19b631235980eaee8e1d5732d1b89cf14300211f840bcbdd35a9294daf15832d6c25e92a40629f87067fe6b048476dc48fe3c03dc62d5e1068817891a4b8c0e3d44e5d73051e078bc9940587390658474a") (:stream-nonce-mode-test #h"0000000000000000000000000000000080000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9ee98071b844ea8b2918784244a8dfe7fef3d400ff94eb786806f97e4ac107d0e898c9338764df8c73c26bd6ba2cf468c197e047b7883882335a62782d17b20a3b148d3f7b45d09f65b4d05c9dffebf418957ab18b18ba43af14465bc2eccf1545d14dc6f865211b28b07721d6e5c907d7c7eb1c51f80a70b7ffdf54e2d9d5c0cbf73a496d5c7e") (:stream-nonce-mode-test #h"0000000000000000000000000000000001000000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1c5c257f7b53a4b0efe712c7a02c6becd6f606263890e1c2c94a9fb6dcf352b5770447dcd611e835890e55b53068a95448e3a3c39e894712ea512b19c58424245421a7770610619ba5ab1b51b2ed9884f09e82536d842837a4a1ec896004e2a34fd2e610dec7750912634ed8d9b563c729848f0366466a3a1fc13e8132ba3412df162d16038f28") (:stream-nonce-mode-test #h"0000000000000000000000000000000000400000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6a6be08b92aac3ea07fd20ff673fed5c5a2a36d82cced24ad2bdb9abf1969e7ea74a3ea16a7ce73596378623c79d7c8b531c28312831ffbd7623a214965b4bb166b040187381c9bc7c4ea83c67a5a3933090df83a47db0fc25d2b5ad1e30b6398a23fa38f8fcc5067dac73f763c7a6a8b5ae99d1e458264c5c38465e6546960a6c3587139af60f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000020000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1b5722d7ea2b251415c969cf224adda7cea813d2ae9f026a165af823ae59ca45dea54838e0227dcc32644440aeffdc014962b7f0e505321902bae34c46d6990976fef412c2dc343a6a539f1409c8b975e2841dc2f98f3eada54594a1351c5ca9cf7d376c4d0ef1b37951b2a98806428b73db12339c2a2c5ad929339f1637eeca7ad8367083a2c3") (:stream-nonce-mode-test #h"0000000000000000000000000000000000002000000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"fbd315106742ef2826ad1209d31c06b2c2d4a887bc5d77b62fc596a5074022534440aeba90d6627084dd6e5ba0b805097f6e34cb7436f03bfb0a1912987130bda28b32120288bca59505dc07c0000ba95711cbacb8b381ac691a8408545f1db315557547bbc2dd29f4cec2748615c4c5337f9907fd7d3d33ab4078eef61db1e881b1d05d88424f") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000400000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"9ef7652b83708e63119fb49b5611ef13879f2c7f6bcd77ee5b83e4b100612884f35138d80e58ac64edfcffdc272c9b636bb68d1035d059f1130d0976fe39dae51257d705d76a24deb7d7b0784a05cd24d9fb6b49e24c97b864a5221596d53553bb4b74f3d08d6e240fa345c1b1e42e972c339e4b05b4b29b4a67756be3395424a576ffcc6c82b4") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000010000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8f3ab481f3099f84efb5b5b0393b286f3dc24bd2e89955f50d8b77bbafe6faae55100fe4ac167c4523cde8fab4605818dcd9c5f0516d977b4523e00d561e01665b190567bff872bffefda8b43f8d7b03225b65065888dd30524675cf3c4ec72c1b415a42c34d415b1ea82574f30f8a74f128a97b692e726454840fe4b82e6519baa815390986d8") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000008000000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"e0d7d5319e8745d87829aa1e70af3ceae3de4793d2dda9795f594215a93aa030f8bbf7f11c23bfc0ac119743dc09915d50bd68e7107bf535934ea99f716e924dff727d7d951522459cba51763edaa72933aceed9bdd2e5cf7c0ae766894c262184e00bf92781ae27a40039aab3e06fe82e0bb338794c07d55bae26dca04538eeee6676e1ec2d33") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000800000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"04bc16480e36eb3bfd4055ec1ecc321ac0c9480f544edcde03b87aa9444044d6e08bbd8c67553b7e4f411e6c77bc5ab50319e5c95548c3ca0086d3f14f61ad3ba66726e97de8f33bc1e4a85523c9d9f3bfb3982f771612342d11ce9c7ba68f79bfb9eca3318948d2ca6e0095de7af09627c5fb41b683fa5cfa23b73e170cb076301a0f4de82883") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000010000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8d7679470458dcb25f79b24aad4dfd4b5bf6200885a9e0894b12f96d87dee463a0d5d24c983f51860b8919b1d611303941588e45619cf09ef06ea8a49f1d2250bcc40bedf4447137ce77c6a5129f037bdeacbd92fe294a729aa6f7256c44721035545dcc21883eae925d2bced723540747404153ae67d438ce467c1a7cd720884c5397ec70ffe9") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000004000000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3ce5c4591cc67da73d160ca5c78cabbbf3d32845f539169d5b74d1e3503ad3a2638e7287890dfe559dde1a7742fd0cfdaaf21325b70476bc0e1a474550057eb0b8ac4c5d3f5567fade1b51617b467b4ec57ff8e61b0a39a40d5ff65ac875cdab5607afd62d95c50c6de12e5c03953dad93696badff577db183f7e6a516958653293e3e83656d63") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000200000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cdce4427d497e4f1dbc72de90c79b59f7a3c7b6c5416572274f3f0a5bac3d0be7654e1404329d2c47d964ae95bb1e3eefae7defd29ecad2f1889c9b2ac3e87b7f083f502b0ac4047915b4bc05b161c4c2eb2ada03c33136cb8c9f11cc803fc4293a7b983d999f65a542ff863ef775eda33f4795aa997d13ed3ad630931cf9be44f36150fd15457") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000020000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"811e8123af99992c3d7ba8d341a07305dda7be77885ba38be74288374df59b8dfc8ea3ec93d9c53271383abb99bad0fba82d2015086d56e92e0de3ca45e40a3b7df967c2a8c8eaeced2205f15cd09e4eaede59279c056b0a3e89e97c1a4afc425acc434e31433553dc6c3150959f8db89f666d1022d054b276aeffd225949f83e0b593e5118e65") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000004000000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bc8f191b87d93a954ed499baa3c7a578e219b46136dd0f7fb58f1282cabec2d6d80bd95cbc2e3d964433f0743b55d8b7deb29310d7052b2af6e7f19935b9153dcbd43228c92ec58793d3ed97bf2fe592efe85093faef78f0fd92bad07feb9d68e23123c0bc7e603040546f814d0a133c42d9b0288aa27fea5584bd18336f70015a37d50a810ff5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000100000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"204c358ee52784349d80a903f097de58fcc91c1bde2d4e421cd34d7add41fb26d75725b32476ac48f43f0d13b995f12f452b61c673e14aa39bed0ac7e678344496e9b43eedb0235c0ccfb98914be11f32d51555bae5c08b4f3e2d0612435563a658c24749115715c41a3ec7c5075c713fcddb51d127e342d8f29365b3d278c108df0e315c5ac99") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000080000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ae39f290913f463a619d10984e94b0b281154c9040a88f37d686ad0ccb056dfaef22f05d51535ee7b156d349f48899d2f5c3797573ae845acbb1c01663353bcf3453f36bbdf37e4729a2cdd615d639d5d9e62e0da5f9b3de537d947b416c1ecac16e8ff8739a329642a5b549a28dc907f6b4a195e30024791e1dba0b698f2d75d4059cc1ec7248") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000008000000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6796a4a66d612ad55be55793089c5b73641144b209456f5952a9fbf139ffedf7b8c5cc0ac080cc9e24c74092523d8ccc5eba898a8c8cd074a52332511474d131b864d5720d56b7adf590b193e2b5d24ae94cd3344959b5061c9f650065e5f9e92a05bd77c84f7bf6f3e25f8ff6d2834986399f1b6203cfe0dfe9d1455940bccb81def8b5679b48") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000100000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6a3ebff744a8508abf0ece72596fedeb3151bd935c69f34d91bda122361b81e940f6d4d9e8d846705dca188875e4b01c35e644778c2c6e240e11c7376f2fd8acff7039f15a09f96cd5c91dc08c0cceb303b3b39b095bbf13ed55523ebf0abb56b66537805aae36a74f37f40b3b78401c42f0f1055d2c05eeb1923cbc86fa807acdd27a6a1f1367") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000040000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"3afd575065f6e21d31d71d860b6db38642a15790af7faaf10187ba4428a27666cccb2b3cec6a40257c802547e9a4cfb7864d8153b89f9268646bb04642ae63da54ca154094ab8439380d66da1b95fc36d6e6526533b04fb1d2596904f3df79cfe64c1348e0bbab8a715cfebac9e7c0027609d3730510467098b4bec97a7a4938c942a724383f55") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000002000000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"20f30d423d027faccbcb0b1fa1d307b6876fda2d3cd22d19c7b02d588ac42a8e7605efac75bdf14b7d5939e7e43acb1b9d9c3c04282ed3b62254b5dc1ca2b374234aa13a49854dd885685a926982508759b6f2aa005583f0e9a25921234b5d1b9eeaa5a101fb8c40c0fe986dc17a61e1bd6f6249f54030f6e57f6131caca606b921970cba4f660") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000200000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"28ea79439de077c2f79289960d1074e5b1fae09a25c7d003241aa7e053967764ab55518f8da3d5230617a8d709b79a6427d193776d63b1f5090bfc1199ad2ac774ab7c92aff4722d12002a44358abbbe8fee0a38f945642d810112b9094bf551fb29fb77d15a7b8587356dd47a83b09b90281391edcd003fba4064ab079e37dcdde7460195b074") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000040000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"cf7e70d36edd1852c5393c8332542c8af0c85dcb7ebd9256107daf91cee0809d2688ea37fd87adb392ed0152c3ea852acd0076777e21438989f7a004b26448991596e9ab5e0a93c686c8552fe149b0133ac3af03f3a27cf3deaabca84e818d34b24febe82e5ffaa16079c31223f9a07fa7d0591db721c044ab8d32c63e767bbf77b284fb0a39c5") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000001000000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"674fd63cd29300a418ca39e56837c408e32a0902694be2df0e0828afb7e4116dc5869616ba783f3b5ec2941509dcfa1e326afbe742f486ef0caa1c01c5e3ceb6201a7ba74153ad264cc7c2ac6bab589123cd0ad770bc9f8b0013a957676c0f663e0981e0a26ef056f55f954c82a389ca2150653fc8cefbf13b8e1148b9670e50139af28f6a9ec3") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000800000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"18f4bbcf7bf0748c56c6a6ea46baad8bffbdf67ea83216577527770c8db879d2a57c5517c3baf849040528e66c3e6c0b51dbc2fb0b92dc259d7b10449642420afed5fac571dc9372b9c9d66501746d5adbc180a9c7cbb0750489c07e5d142646212958613bb5eb542a0ee1ee4fdca2ede224d38ee7a28ff7a4e2046d0dc7db671600d6a81670cf") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000080000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"d6d89217f8be88f36adb6087272acf80341b095998e70c11486fed4ae1b08915731684de45e175d81a183f041e8a74bc130504cfff7f7d5d99c3c8cb89fa760fab8fa7b380952c0713f517e09429d40051cc11ab107bea7b649e890067e794d7815780eca19a4775fc28c2e0ed454946a5e25a419e4da894a55770bb959c8f666c9567d7f8a196") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000001000000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0adfd2cce6b6bf0aaf13e258fdb0b647ad68d09a642d35f11d9b124c02a037080819a9ae324c2d6b68f40745546996b1703d1007a00eb3f6d751a317f87773bac81ac613b8ae6661cbc811c09e31a34289d6f5007677644478ca07d52a0d6d95c5dc0a84c3f4beb121f0e47def72b8e727f0b52852d7741d3102ab91ec4affd8379de0c3ee6947") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000400000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a161cb92a7a51a71209620fe85851ef1b60aa15816be54cb369a9799247cb07dce52939602d4bd607c3ae95b80c6d01b20a7445c85af411163301357c4169791751c777904ca2eb1bf0eff40830929cf762425e870074b6aba19fee70c603301ebd033d6b61b7a8cf167f0d9902ec683d4584bf0c644fada91d8b492bc43ab9dd6efc4892d6e4c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000020000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"aef9a3dd42000e90bf6e38b7b22b3aa047fe6dd458fda597e67042544e8f96d0fce8d852c9b6cdf4064d4f3df7b84a2a0aa77285546c46ae5fa42ad1f5e00e4783a4c2d27763cede3f2a9c368bac6cabdbbbdf5e0f715561cbf9c0a5e2cf16fd029aeb44afa155f870b168182bb63fc2d08ee843e39341441ea77e9391c14466b1ffef64577715") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000002000" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2d540b3f637a8797606ce6ce2e344a3653252987a7f75f247a0b7f24fbdc39bd04efd7487e575a5504343e562134ec05f2de962d6b892ce6d3e55d7eab49534572161f9feaa6587381c9effcbdff31cc669a3956788828a7a7fbe42db109088ea807d64576bcefabc2853f1df0f3d882ac2ae8c83e82248b8660aeba3304863428c9cf434125b7") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000400" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bb377a862e836414c8a1915008586f53df3e992de96e7556cb77d636b2409d0c90a83c087e1d8894232eea3cd9e451ffd7de5c4b66db3da325cbf37ae297f85661a85b974a030daa436a4dc72a86c2b885994cf0725eaad507d1bfe650a991de05618fa7a4571222ee020eb5038d2472f8c60d376c581dba65a44bf01328f8b79689b1cc5662c7") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000010" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"7ccb3237d8ec5ac5cda6b5a4f50df712553d855b34e082dac6f6436e786eab2cd458c31e4cadd923c582dfd5ca86b527d2b9d5d0aba7d5dec084b82ba5120781fa3cabfd4c5d2f41aa32755eab1b14781c166125a4d2bc2d8e66a12878ffdcb954ba76fa81c234924d25ca24f5b9488a8f473472da904342a7d304543fed0d3ee7568bc6e11655") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000008" #h"0000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"79ab6820b4687607375d499cf436ec9d727bedc076e2c01262737011dc73c8ad65f134f6859ca922f8c5613ac23018bc9bdee174dd6eace2d566497c7ce9e077aad3d0ff19b930d6af13ed7a091bf5f27af1f3f796fbc76e04df9da744bae4d6ce3f62caa9023f8334c4d2345fdb9759f0a2b69586dedd1354793c2556b038e7af4242a2d5fcc6") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"82c9b5f9096e270c927ddbaa6131f4f052ce83c0d86fbf763d9ec06d713b72e2a5cee8c8a944c13e8e03302938a3f5a06db3e07b285134ddcc20101e56d4f5751bba0fbaa673086f384942835481f9c8eb2b4c972138d90ad164d34a8d120e5b2d9d1dc931713fcdcb95d53107cba9a50f7fae67e9d693e8bcf682efc3502d51997fa3e9f5b7d3") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"25f5bec6683916ff44bccd12d102e692176663f4cac53e719509ca74b6b2eec85da4236fb29902012adc8f0d86c8187d25cd1c486966930d0204c4ee88a6ab355a6c9976c7bc6e78baf3108c5364ef42b93b35d2694d2ddf72a4fc7ecdb968fcfe16bedb8d48102fb54f1ce3636e914c0e2dadc7caa2ab1929733a9263325e7275ff12e64ff48c") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"09b1acadc3fcd3b4c9af5858bfc0fb7d543939a6bbc992fea3d6e2dce785d66cdd5129255834d7efbe7384b2052af58a65beffaf0abcf74ebb92f7da9b54eda47d11995fcc436de0ca1f33534610eed0fa4ebe03ea375f6db3c429ea17d7290b331c216f34757e50da78bc77c275a171d0598d5c74718be1e9ed7f0b592bb29489eb798df09f6d") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"20128bd5affa2a4c38b854d58c0f2c8d54f49f45a2c7200ccd8e7782f81c293bf62d1d10b3c83846a0a8cde8f0c7f67ec899f88beb4432295b644053ee09fe116e5e1110a1c8907629c82e42fb82eb2e533b2d56bcac30142ed5c0f978275dc3674d52c1074eea6335f84c8d3e9159e901ea062493d414e97b9e698b106369aa403cc86bd6b063") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"bf37e78d336e9ff9b8d0f56a634272af160118aaf1421b685957bb4da40f291db6db9ab88ff1f817948c7e8085c88dfa25805bf8f39fa754363ef3a06c2c7304552e5d050b2dba639c7966c5afd1fd70ce0665b1bbbc39088e7abd3e65d7f8bc0f83b366fa6f1f4db8c309e41f43e8e31d8e1b5f3f682500203ee175a15e10cb2f0c202fa8e1a8") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4ba5125425ebda07f8b11ced71e4d4b7f587a1609d59e0acd79bc97d8d491e4b16ddafd24b6ebeacfee43e2deeff50cbdc4ca9613c024bb903f49c6d61f1137e23a8de16d7f3f2fcd05fbef23c7894a253b5ad0abf1561e3065d137ea28cd1882d3a87f0c3a77c0c561a089032f62be4c9678c50c59375f85c1ddf90df395934cc592d5c6b403a") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"287c95fc356af2334fe44142f0e313e9b57fc1156283df3335cc832159cd9afce642a6ee68d421caee60d1d643f0a2343b9e36d8401f4c2a212f8c3d7a2c314919c42eaba2d141ad2b41d2e7b4449df2b59eda049434246af3e8fd94940dd0e7942c9c96b05185fc83db62c3ac81a66cfd6d664269f96dfee36a57ba15fbc5793508b4bb2ce763") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"6d53bd0a8a20108cb4b38f1009f374d33323f4d4f63d474291911398cb2d4497a0ebac11e7c522d44aeeed4340f3c8a20112c984e9ddd01504333acee255135d22b7b5b37616962f1c488d17ab6c3cb49dd3409ff082eba7bb08e91c29a83ba9dafdad1bb8f63bf3813de2f27c0c30180498c55170830b0d1102ed682ec317cb884e9fc6e22ffc") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"12b2f538fe50ba265d2f4fbad9ea692c6d658f27d6285222048100655f085b7f4647db63b9a1931531a926c8e588990e9140cbc2c31464d080f6e2ab655627e0e294407cbb1bfaec9863b1842c5b0e4daa79dda84e1d24d226d932be912149c7d2cf28ffaa6e4b62f29042a47d9ea00599487b1fe8542e4341282a681476bac4dffe3d7c8d7f58") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"5885bb197f501dfbc3e22ffbfb8209f5de0b84e06ff809e98ddd2db25bc4148ae6847509a0276b1a2bdf7e0aa3a884e519887a32726c42fad2ea6b69168b534d2a4bb8bae63dd90bade3fb3632c08c71a11a6195648079216181f1a017ced3b4c89e905c492076e9ef5373413a1dc2c2b5c5acf253c7b74a0427cc5758ee910f978e6a574305dd") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2548e30b861faf23dc94fcd2efa5186d3f0fc93f2722680999fb09bc3f94de500a0b88e39342427c2ef4bb233926de2c9059b32b7b7ab5aa28a43c7e25d5a67d3f90589b187f454c69128d925c1910469a8e22d61e7c4d794d0bedafb71e79f4f4f85bc3fcbc47dcae4b69ee540309d2c154d92a36a56d401beb9269f32e853450626fe90b8c39") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"aa09af0fee50c881200b16ebbe54624a535b82451288aeacab8562046a47c3e7ec29cc999e64b027f8ed5bb8f232746501e86d255bc9cb1189b8ba4e56a527f39c05c79bff55aa727172ceea5627d16c3bc005f9b16b31249a45b5e02c992a0995deae8bff9807327efa53920e3922eb50e7f73a33220a125dd9f62eecd5b4abea3509fe459685") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"8fe302b5ef4d79ac6ae3c5f71fd83c1b16c98e3d4692f6ca521a4d27cbd3c2c7ff33fb59a40f9828c43e30340a50f9e0210b3f112e93215d2acbb094118013bb5727a5c279902204de36403f79295e94769d0e8ddf459709db3ea557967fbd2475ff4075ef1c02ac85451af0448a1403fa19d53ad71f7cfc8d7c66aca0aa8b514ef469df83cebe") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0dee458c17aa59644b9570909db4bee8efd81466465a63a49b6a6738a4d725bdbef27598e57d4ee14c9bde11fa303e71d15515c872b87984074280e93f9c8f41166d66f09a5a69b3328afb1d53f321a34c0fafefaedf37f9f9063c7b05b4a5b1b9edfe791547307c2155c17eec72cdd9084058ba014369307fa749c1f8d80e70b5d878371668a4") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"91c9650f082ddf96dd8a5b2ae1ffd35d1eb7800c9deb84ff4bbf00187cae2a784c1f400638277f1f984683a4ea6871c703b5c6149fbe77bdc12d175c717b1c2f872d8c9faa2b86a8ad228866735b548f3112f6bcd2738a64fdf13e6794734b61d6f642b4f41ed3f2a29bc96539979d89c890c4a7e2ef85239fd665ce5a4ab98f501e4f4e90b301") (:stream-nonce-mode-test #h"00000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0257678c0ae9fd18d26a9374ebbf967326f11f9826e91b488ef2d0b17e162778b92b886cf9af1b0ac3dedc99a05ca144112e9392762315543ada20adfd212faf50718005927e9e01d2cd48a14427bd35df00a4542035f2d5b8bdfed007271a95678538c4ffa7655a1c67adf6b9e3121317e66a6105743ba280665c71ca3cc5712bc39bf08d90a4") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"8000000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"856cda30c43a96288a986fc1fb40f2d56ed2ac8fa0abcdf09f9ff6bbbd048dec3aaa75de9d8b3e042ceb1c1a5d422f4001cafcb3d9513a53f3a6dc4580ad25274b46170d67d1731021524ced6f0d9771b00b0e50f3ae25a6b6b99673b248fe0bd2eff5f5a9f0de7570166fed25f587d31c987953cc9fa6e0579e4053be14b5bd43d57187b87b49") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0100000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"2b8f4bb3798306ca5130d47c4f8d4ed13aa0edccc1be6942090faeeca0d7599b7ff0fe616bb25aa0153ad6fdc88b954903c22426d478b97b22b8f9b1db00cf06470bdffbc488a8b7c701ebf4061d75c5969186497c95367809afa80bd843b040a79abc6e73a91757f1db73c8eacfa543b38f289d065ab2f3032d377b8c37fe46a333d24fc42f8b") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0040000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f67fa2f10151a0c80754358bfb39ede1639d771411e55b5dec7eb8e0198b48c75b98e4ccf42f61cf202c4cd241826c1b73ae8b26da176d1f38b5d7584e8c1f71e4145ff95e5510137f73531c8f0c69c4a89f05851778b9c5847ee824aa49d0bc86502ee514b58c9e7f7101f2500698db7d4830de5f7810276437d62c5232e810f89ddeb6f0158a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0002000000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"454db8beee7f887b519ab6f2276a3c3218828c06bd902eaaddabee800fd3df6868216537125ce3271886d92186ebdc6e156298ff3a22c0cca026553724fac7e494d267bdf5041bad385aec71db3c1024a865e3d8965a4ccc3ad966f3de35f8d08e2acd5095509e07ea8079814797ebfd3969ab56a2c4f0ebd36a05943145ece05fe879427ceedc") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000200000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"a36afdb0dc64c8b0b027c05f5a135c70953558d1f1ecc3194d45974bc1d6bb9aff26513bebd63abe9d8a8a45cdca19f2c25adb812aaf75fdac60ddcef52941bc6bc82af3afe1d297c1b74bc226812bdffa71c6f5812ea2c2cd39196caa4a998248df1b0cb657253e696ab94532f425d1f323e7ac9ed0d52a1d0d53ed1c4fd192a1f7b347378052") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000040000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"724b9f90c279f5ba6eec2a1371a21cf6d2b55c0e5535d00c381ccfc6d61c08686b84a14bbcef24389f89db72d733f63e9396c54e75ef71da426398ec8f991bd3abd1a34e36160180e395e430c60d49d765292b4316dad549263a40a71d3abd5e48d48aeeace984852cddd6a2b386d9d06a668efc953772c06305c94891fe0006d51cf862d66b80") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000001000000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"ba24372fa2e571f04e253f57baf29d61f55b201d5e53215714ab9cb338b7f4e6455bc0c62c55fe870887b52184e9168c45dfc9959ebb6ed710c0b467328fda1659ec71328aebae78aa55bda5b97842791134a11a55d9ce29dd27501466595c8129c6100aebe35c2745c9a114f37ba0568a073e7e7d6c67ade592c0301a7661987262b7c1ca0f1d") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000800000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"94c73d2dd75091c143d4e6240f9bf075d7ad4665c5c1a76ccfd3335328de6c23f8095a2618265aec2679d6a627a63bcc7474e474036e39d24a7a968c7e8f808aa78b9323501fc4c6d0f0496718b9e5d188783e4a57b4b6b41cdecbc2edfbf00f00f1b8692b3a92c894ca99ee70c0918b4026688932dbafd89d6d472c36f3f62271c2171bc352cc") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000080000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1c79c265228135e34ad59f4826d1d1b3413f8e2b8b4eb711159f6505e525ece3763d63416367bd641447d6cebaf06e9e06208aa2f901528b965d2c9ecdceba897cd04337e2524c727c1f830ecc5782a388065cb44cd1e90d7d7209088b72688d041cac0644f48d849d4b9d0e980e61dda489a469665c16fa8f23ce798ececa782db037c20cb307") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000001000000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"b62fbd67e9deaffc0667f8a4eb48d928df8eaa531721bd9cf867b9aa0552bd89a247fadbad0f709b564ca3cdcaca259cc46eaaa246861821327575d944e7037fc6c5f54043bcc40b3dcf03cf31b08a3191c8b3f59c83d2519c728635a99e94e22872adad66a0250004bff75f0355de8b538a7b62f6d02328d6963e61811a10699218a74063c02c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000400000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"c2f4d4172fc354e66805c44cb1af21f236e548629900e64b32add467d6dbba301164189b54472fdade7f655bccfe151e9a8f0998b6a7df43682b352aabafd59eb0ac57a3411fb34a20fee0928d39415b6baf6c620ba17a4a72e38860614587d6c015aa952e0860024c310e53f0f6256f6325e88a657ba6bd9a9dd471edfd2975ed1727ffd3f912") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000020000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"787612c0ea965132231eb55ec4491a8bbcc2d131fecb2ec76511a62ec0185f1e86610d6435a2ab682aaabe860b968e35e6c81d5aa3156124e6ae79202e123cd995098b25146624f39e2446e1ce337bc7867a196c55eedcf6518514c0afb8b3b4ab6364387e90e6914dac8bc5ad27e0865e838f9e48f42b3eab64b503a663da1f748f8fe1680e6c") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000002000" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"1991505690d1efb602769f3a2b49213ef031e0e6277e0d1cf24a293be0d1842be086057db2dcf7feee46307bc574b1ddaa20cd713b31ebf5972dc87d2c15054942cae0bf272f88d6276d0878ac7aa739a4d6374590285a7e4ef277d4234dfae8eb5a600f1c064ebde406b1962dff8e6c5fa889a57acb940a53c15e69f70cdc43e068e1c36fcf74") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000400" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"4d22fbeb39590baf1baa43c35f51df74abcf2516b7759c0fdc42946a9e362964b4b10b0f2d47540ef8a086ca8c88bdc20be939a7e20dd3c921409a7d46287d3d4241d14c92fd3324dc0520d7e765de30e9000067b7aabbb37b94ea78168758eb957a9379e924967ffe3c57b072adab4113124a8b30c070b64f382be8524967e7025edc5e1de9be") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000010" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"0bddf77c8e42bc9a2f29db56ea59cbac158a94a4f70a35c518c64ecb6b9379a34f69025c943cacc49d3246194000e4fdd0abb2600d43afec600b92f34d2dfbfa1f3c088b182bb9f51c8a3354f5491c5479d9b6a86825fb741c284e47b4c923a04eda1486607264abb81e027f18450b4c557100c2505d54577a896fd923799075c8fc31bf3e702a") (:stream-nonce-mode-test #h"0000000000000000000000000000000000000000000000000000000000000000" #h"0000000000000008" #h"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" #h"f53add4924523ddcfd1aa7fed676b06bbd8b29f233c8e36fe5e4c3434f750254a2207c2dad0f2ca7f20defc945f679281650d5dfb87227bbab33572a3678aa3e44b23cf4f5230ee3662b531136e264949b668ca36a3dfa10425c790804788adc0fed6d7d1492b99a663319f0c5c3b02eaf95df0ada4dc1d3f74820f47f99d42d67f65d6a83a7e4") ironclad_0.33.0/testing/test-vectors/prng.testvec0000664000175000017500000000276312067652346017143 0ustar00;; each test should be written by reasoning from the definition in Cryptography ;; Engineering, _not_ by checking what the implementation currently does ;; FIXME: this test was written from current output, not reasoning (:generator-test :aes (#(0 1 2 3)) (#(44 116 1 176 208 92 127 135 160 115 184 21 0 211 133 80) #(247 244 30 42 191 37 124 105 221 173 67 94 54 109 139 209) #(252 200 2 53 195 193 73 89 24 147 7 11 68 110 45 48) #(75 89 212 151 2 169 142 105 253 209 190 32 211 209 77 107))) ;; FIXME: this test was written from current output, not reasoning (:fortuna-test #(0 1 2 3) ((0 0 #(0 0 0 0))) #(137 205 83 241 66 231 102 41 140 77 103 232 6 233 4 112 137 168 106 238 93 35 73 66 123 59 154 60 252 2 145 225 163 142 31 183)) (:fortuna-test #(3 2 1 0) ((0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16)) (0 0 #(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16))) #(78 18 194 245 226 50 36 158 105 67 248 137 154 238 85 157))