… it to sb-win32 and it works!
We need to update the amount of data in the buffer even after we've consumed all the data. Otherwise, we can run into a situation where we had N bytes buffered and update with (blocksize - N) + blocksize bytes; we consume all the buffered data and the provided data and there's nothing left in the buffer. Fixes problems introduced in 15a5721.
There's no need for the extra layer of indirection to FINALIZE-DIGEST.
This variable apparently caused problems for some Lispworks users.
Stop using #+/-(and lispworks (not lispworks4)) conditionals. Declare a feature in the .asd file and use that consistently.
This change makes it easier to compile Ironclad when big changes happen, as the symbols declared in the DEFPACKAGE form don't conflict with what is actually exported. Minor loss in having to remember to declare things in two places, but tests should be able to catch that.
Good for ~5% speedup in SBCL due to un-genericifying LENGTH.
Instead of doing a generic function dispatch on ENCRYPT and then another one on ENCRYPT-WITH-MODE, pre-compute a mode-specific encryption function when constructing the cipher. This change eliminates several generic function dispatches from the encryption/decryption runtime path and also enables easy sharing of the encrypt/decrypt code for particular modes without runtime cost.
… fixes #15 Doing this is necessary for implementations that treat DECLARE as promises to the compiler, rather than assertions to be checked at runtime. There are a number of other instances of this in external interfaces; fixes for those can come at a later point. The digest functions are probably the most used bits of ironclad anyway.