Merge commit 076f4f34716 into patches/lyslyskom23710530 * patches/lyslyskom23710530: Nettle.Cipher.State: Avoid assertion failures. Nettle.MAC.State: Guard against improper initialization.
Merge branch 'patches/lyslyskom23710530' into 8.0 * patches/lyslyskom23710530: Nettle.MAC.State: Guard against improper initialization.
Merge branch 'patches/lyslyskom23710530' * patches/lyslyskom23710530: Nettle.MAC.State: Guard against improper initialization.
Nettle.MAC.State: Guard against improper initialization. Fixes [LysLysKOM 23710530]. Reported by Stephen R. van den Berg <srb@cuci.nl>, thanks.
Merge remote-tracking branch 'origin/master' into new_utf8
Crypto: Mark lots of lfuns as protected. Also made some types stricter.
Merge commit '722771973bd' into patches/lyslyskom22891031 * commit '722771973bd': (6177 commits) Verify that callablep responses are aligned with reality. ...
Merge commit '2470270f500c728d10b8895314d8d8b07016e37b' into grubba/typechecker-automap * commit '2470270f500c728d10b8895314d8d8b07016e37b': (18681 commits) Removed the old typechecker. ...
Merge remote-tracking branch 'origin/8.1' into gobject-introspection
Merge branch '8.1' into peter/travis
Use module.h
Merge remote-tracking branch 'origin/8.1' into peter/travis
Clena up stack in create
Nettle: Don't fail if optional base classes are missing. Attempt to survive without __builtin.Nettle.
Use lexical_inherit.
Less code duplication. This should probably move somewhere more central.
A first draft of reduction of object C initializers.
Compiler: Moved yyreport() et al to pike_compiler.cmod. More code cleanup.
Don't clean up stack before returning from void functions.
stdarg.h is included from global.h
stdio.h is included from global.h
Removed trailing spaces.
nettle-meta.h is included through nettle.h
Revert "windows: need stdint.h for uint*" This commit had various side-effects... This reverts commit 2d30d343e05f1145f441bdea25c3114558b94a34.
windows: need stdint.h for uint*
Nettle: Improved compatibility with older Nettles. In older versions of Nettle, the nettle_*_func typedefs were function pointers, while in more recent versions they are functions. Also unifies the naming conventions for Pike-specific typedefs by renaming the crypt_func typedef to pike_nettle_crypt_func.
Nettle: Use PROGRAM_CLEAR_STORAGE.
Moved debug code to nettle.h
Nettle: Release the interpreter for encrypt and decrypt. Allow other threads to execute when encrypting or decrypting data larger than 1 KB.
Nettle: Renamed UMAC* to UMAC*_AES. As UMAC is a generic algorithm that currently happens to use AES as base, I've renamed it accordingly (analogous with POLY1305_AES), and mapped them to submodules of Crypto.AES. Added some UMAC testvectors from RFC 4418.
Runtime: Improved robustness of parent_storage(). Under some circumstances parent_storage() could return a storage pointer to a class that had inherited the parent program. Fix this by making sure that we get the storage for the program that we expect to find as parent.
Nettle.UMAC: Some of these constants now are available. It helps to complain... :-)
Nettle.MAC: Typing changes. Make it possible to skip the pike_* wrapper functions for *_set_key() and *_set_nonce() where possible. Also allows skipping the set_nonce() function altogether where not used.
Nettle: Added the UMAC suite of MACs.
Using the nettle_dsa_params_init as 3.0 indicator appears safer to me than a compat header file.
Nettle.POLY1305_AES: Fixed some typos. set_iv() should now work as intended...
Nettle: Added Crypto.MAC and Crypto.AES.POLY1305. Crypto.MAC is an API for MAC algorithms analogous to the ones for hashes and ciphers. Crypto.AES.POLY1305 is the POLY1305/AES MAC algorithm.
Address some warnings.
Nettle.MAC: Added some function pointer casts to reduce warnings. Gcc complains about function pointer variables with arguments wanting void * being assigned with functions wanting specific struct pointers. Typical example: A pike_nettle_hash_update_func variable being assigned to umac64_update, which will be complained about because the former has a void * as the first argument, and the latter a struct umac64_ctx *.
Nettle: Reference the programs being inherited. Make sure that there's a local symbol in the parent for the programs that we inherit. Otherwise the parent_identifier in the generated inherit may point back to some later override. This happens frequently when inheriting the State class. This fixes infinite recursion in eg Program.all_inherits() when called with several of the Crypto and Nettle classes.