Merge branch '8.1' into peter/travis
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.
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*
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.
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.
Nettle.UMAC: Some of these constants now are available.
It helps to complain... :-)
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.
Using the nettle_dsa_params_init as 3.0 indicator appears safer to me than a compat header file.
Nettle: Added the UMAC suite of MACs.
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.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.