summaryrefslogtreecommitdiff
path: root/blake2.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Update commentsJeffrey Walton2020-04-111-1/+1
|
* Update commentsJeffrey Walton2020-04-061-6/+6
|
* Use Altivec as minimum ISA for Blake2sJeffrey Walton2020-04-051-0/+4
|
* Use Altivec as minimum ISA for Blake2sJeffrey Walton2020-04-051-24/+5
|
* Fix BLAKE2 using default Salt and Personalization (GH #921)Jeffrey Walton2020-01-081-12/+8
| | | | We are going to keep the bug report open until we get some official test vectors. We will probably have to modify one of the Blake team's test programs since they did not publish test vectors using salt or personalization
* Add XLC 12 loads and stores for AIX (PR #907)Jeffrey Walton2019-10-261-12/+12
| | | Add XLC 12 loads and stores for AIX
* Remove C++11 constexpr code for CRYPTOPP_ALIGN_DATA (PR #830)Jeffrey Walton2019-04-301-4/+1
| | | I don't have faith in it even though it has tested good so far.
* Clear alignment warnings on ARM 32-bit platforms (#828)Jeffrey Walton2019-04-301-7/+8
|
* Clear alignment warnings on ARM 32-bit platformsJeffrey Walton2019-04-291-4/+16
|
* Use PowerPC unaligned loads and stores with Power8 (GH #825, PR #826)Jeffrey Walton2019-04-271-11/+11
| | | Use PowerPC unaligned loads and stores with Power8. Formerly we were using Power7 as the floor because the IBM POWER Architecture manuals said unaligned loads and stores were available. However, some compilers generate bad code for unaligned loads and stores using `-march=power7`, so bump to a known good.
* Add missing BLAKE2 constructorsJeffrey Walton2019-02-241-0/+20
| | | | BLAKE2b and BLAKE2s are both missing a constructor that takes only the digest size. Also see https://groups.google.com/d/msg/cryptopp-users/QCFGYw8q3Yo/vpBCqz-vBgAJ
* Cleanup BLAKE2 m_keyLength and m_digestSizeJeffrey Walton2018-11-251-5/+7
|
* Add CRYPTOPP_POWER7_ALTIVEC for XLC 12 on AIX workaroundJeffrey Walton2018-11-241-0/+1
|
* Use previous digest size as a default value in BLAKE2Jeffrey Walton2018-11-211-2/+2
|
* Disable Altivec for BLAKE2s on AIX 7.1 and XLC 12.01 (GH #743)Jeffrey Walton2018-11-211-0/+8
|
* Rewrite BLAKE2 classesJeffrey Walton2018-11-201-310/+306
| | | | | | The ParameterBlocks for BLAKE2 had undefined behavior. We relied on the compiler packing the bytes in the structure, then we used the first byte as the start of an array. This rewrite does things correctly. We don't memset the structure, and we don't treat the structure as a contiguous array.
* Add BLAKE2s and ChaCha CORE SIMD function (GH #656)Jeffrey Walton2018-11-181-6/+4
| | | | | The CORE function provides the implementation for ChaCha_OperateKeystream_ALTIVEC, ChaCha_OperateKeystream_POWER7, BLAKE2_Compress32_ALTIVEC and BLAKE2_Compress32_POWER7. Depending on the options used to compile the source files, either POWER7 or ALTIVEC will be used. This is needed to support the "new toolchain, ancient hardware" use case.
* Whitespace check-inJeffrey Walton2018-11-181-2/+2
|
* Switch between POWER7 and POWER4 (GH #656)Jeffrey Walton2018-11-181-3/+11
| | | | | This is kind of tricky. We automatically drop from POWER7 to POWER4 if 7 is not available. However, if POWER7 is available the runtime test checks for HasAltivec(), and not HasPower7(), if the drop does not occur. All of this goodness is happening on an old Apple G4 laptop with Gentoo. It is a "new toolchain on old hardware".
* Update commentsJeffrey Walton2018-11-151-11/+22
|
* Fix disjoint t[] and f[] when using SIMD implementationsJeffrey Walton2018-11-031-22/+22
|
* Rewrite BLAKE2 classes to remove intermediate base classJeffrey Walton2018-11-031-83/+203
|
* Guard BLAKE2 on CRYPTOPP_ALTIVEC_AVAILABLEJeffrey Walton2018-11-031-3/+3
|
* Remove unneeded BLAKE2B_IV from Blake2s source fileJeffrey Walton2018-11-021-1/+1
|
* Add BLAKE2b Power8 implementation (GH #731)Jeffrey Walton2018-11-021-0/+19
|
* Add BLAKE2b Power8 implementation (GH #729)Jeffrey Walton2018-10-301-7/+17
|
* Avoid std::call_once (GH #707)Jeffrey Walton2018-08-211-2/+2
| | | | | This commit also favors init priorities over C++ dynamic initialization. After the std::call_once problems on Sparc and PowerPC I'm worried about problems with Dynamic Initialization and Destruction with Concurrency. We also do away with supressing warnings and use CRYPTOPP_UNUSED instead.
* Use bitwise not 0 for last block flagJeffrey Walton2018-08-211-2/+2
|
* Switch to SaturatingSubtract to guard against wrap on user parametersJeffrey Walton2018-08-211-20/+18
|
* Clear initialization warning due to non-trivial destructorJeffrey Walton2018-08-211-24/+82
|
* Add algorithm provider member function to Algorithm classJeffrey Walton2018-07-061-0/+19
|
* Back-off on Hash asserts (GH #652)Jeffrey Walton2018-05-051-1/+1
| | | | The asserts were a little aggressive and caused very noisy Debug runs. The library itself was one of the biggest offenders.
* Back-off on Hash asserts (GH #652)Jeffrey Walton2018-05-051-0/+4
| | | | The asserts were a little aggressive and caused very noisy Debug runs. The library itself was one of the biggest offenders.
* Clear clang-tidy warningsJeffrey Walton2018-01-231-6/+0
|
* Add const-ness to internal BLAKE2 functions (GH #527)Jeffrey Walton2017-12-061-28/+28
|
* Fix MSVC 2017 hang on BLAKE2 (GH #527)Jeffrey Walton2017-12-061-116/+112
| | | | It looks like the macros for BLAKE2B and BLAKE2S round functions were too much for the compiler to handle
* Add CRYPTOPP_SLOW_ARMV8_SHIFT for Aarch32 and Aarch64Jeffrey Walton2017-11-231-4/+9
| | | | Both BLAKE2 and SPECK slow down when using NEON/ASIMD. When just BLAKE2 experienced the issue, it was a one-off problem. Its now wider than a one-off, so add the formal define
* Cleanup comments and old code artifactsJeffrey Walton2017-11-151-14/+8
|
* Use SSE4.1 instead of SSE4.2 for BLAKE2Jeffrey Walton2017-11-151-12/+6
| | | | BLAKE2 requires SSE4.1, no SSE4.2. This change should have been made when we split SSE4 into .1 and .2, but we needed more OS X and LLVM testing
* Fix SunCC 12.5 compile with -std=c++11Jeffrey Walton2017-11-131-4/+2
|
* Update documentationJeffrey Walton2017-11-121-1/+2
|
* Fix compile under Embarcadero (GH #498)Jeffrey Walton2017-09-151-0/+2
| | | | [bcc32c Error] blake2.cpp(49): 'alignas' must be specified on definition if it is specified on any declaration
* Cleared unused variable warning under MSCJeffrey Walton2017-09-011-41/+30
|
* Clear strict aliasing rule violation in BLAKE2Jeffrey Walton2017-09-011-28/+48
| | | | There was no aliasing violation in practice. We used a to assign the right pointer. If the compiler would have removed the unneeded assignment based on T_64bit, then we would not have been flagged.
* Split source files to support Base Implementation + SIMD implementation (GH ↵Jeffrey Walton2017-08-171-3564/+53
| | | | | #461) Split source files to support Base Implementation + SIMD implementation
* Cleanup casts due to ClangJeffrey Walton2017-08-131-47/+51
|
* NULLPTR fix for blake2Dmitry S. Baikov2017-05-111-1/+1
|
* blake2: Fixed initialization when using non-keyed constructor with ↵Dmitry S. Baikov2017-05-111-1/+1
| | | | | | | | non-standard digest size. Added test vectors. https://github.com/weidai11/cryptopp/issues/415 Test vectors generated with pyblake2 which uses 'BLAKE2 reference source code package' by Samuel Neves
* Removed 'aligned' makefile target. It was made default in 5.6.5Jeffrey Walton2017-03-281-2/+1
|
* Add C++ nullptr support (Issue 383)Jeffrey Walton2017-03-011-3/+3
|