mirror of
https://github.com/reactos/reactos.git
synced 2026-09-09 19:03:52 +08:00
Sync bcrypt/bcrypt winetest with latest wine. Implement all functionality with mbedtls. DSA is my implementation based on libtomcrypt implementation as mbedtls does not support DSA. All failing tests are wine_todo * [BCRYPT] Split implementations in different files. Add internal header. Add precompiled header. These changes are needed to make bcrypt more wine compatible * [BCRYPT] Update to latest bcrypt from wine. Add their gnutls implementation with small changes. Add missing function in the other implementations returning STATUS_NOT_IMPLEMENTED. WARNING! gnutls is modified just visually and is n ot compiled locally as we don't have gnutls in ReactOS for a long time and we depend on mbedtls implementation. * [BCRYPT] Remove forgotten code. Remove hmac BOOL and use hash->flags for hmac * [BCRYPT] Remove some dead code. Move flag defines in header. Use constant for flag * [BCRYPT][WINETEST] Update bcrypt wine test to current version. On windows it executes 23114 tests successfully * [MBEDTLS] Activate MD2 and MD4 hashing algorithms * [MBEDTLS] Export additional MD functions * [BCRYPT][WINETEST] Disable not implemented method tests * [BCRYPT] Remove unneeded headers * [BCRYPT] Fix some struct variables and add a hash method * [BCRYPT] Update common crypto implementation * [MBEDTLS] Expose AES CFB8 * [MBEDTLS] Export simetric encryption/decryption functions * [BCRYPT] Implement symetric encryption/decryption * [BCRYPT][WINETEST] Activate symetric encryption/decryption tests. From 22541 Only 3 fail on wine_todo * [BCRYPT][WINETEST] Disable pbkdf tests. They crash calling function with ULONGLONG parameter * [MBEDTLS] Export additional functions * [BCRYPT] Expand private data size * [BCRYPT] Implement asymetric encryption/decryption. NOTE: DSA is NOT supported by mbedtls, so it is not implemented here * [MBEDTLS] Disable range check for mbedtls_dhm_calc_secret for ReactOS. It fails tests for key derivation * [BCRYPT][WINETEST] Enable all tests * [BCRYPT] Update exports * [MBEDTLS] Add DSA implementation. It is my implementation based on libtomcrypt and adapted to mbedtls. It is NOT part of mbedtls! * [BCRYPT] Implement DSA encryption/decryption. Use union for cipher/pk/dh/dsa keys to lower memory used for a key. Lower PRIVATE_DATA_SIZE accordingly. * [BCRYPT] Fix missed cleanup on error paths. Fixed missed DSA key reinitialization. Change some error codes to STATUS_NO_MEMORY. Minor formatting * [WINESYNC] Update bcrypt sync status * [MBEDTLS] Fix double export and move an export for readability * [BCRYPT] Enable ARC4 (RC4) algorithm * [BCRYPT] Extend private data size to fit x64 * [WINESYNC] Update WINESYNC.txt to exclude commit hash --------- Co-authored-by: Justin Miller <justin.miller@reactos.org>