23 Commits

Author SHA1 Message Date
hashlag 34b19434a1 Fix missing includes. 2026-07-20 03:08:21 +03:00
hashlag 6c5a12f339 Standartize block cipher's inner encryptor/decryptor class names.
Chaos Ci / test-and-benchmark (push) Successful in 2m43s
2026-06-22 02:02:44 +03:00
hashlag 9f6265395d DesCryptTests: Replace magic const 8 (where used as the key length) with DesCrypt::KeySize.
Chaos Ci / test-and-benchmark (push) Successful in 1m51s
2026-02-07 18:09:42 +03:00
hashlag 95e74db6ec Perform aggregate zero-init instead of .fill(0) where appropriate.
Chaos Ci / test-and-benchmark (push) Successful in 1m50s
Simpler and more consistent code.
2026-02-05 00:40:55 +03:00
hashlag b34fda75ef DesCryptTests: IteratorUsage tests: Add testcases with begin == end.
Chaos Ci / test-and-benchmark (push) Successful in 1m57s
2026-02-04 23:37:05 +03:00
hashlag 15d841893c IteratorUsage tests: Add some canary nulled space before begin.
Hardening against write-before-begin.
2026-02-04 23:31:14 +03:00
hashlag 3de69d3298 Fix assertion style.
It should be expectation-first...
2026-02-02 01:15:38 +03:00
hashlag a0f17ea127 Decryptor: Require end of the output span to be indicated explicitly.
Usage becomes much less error-prone.
2026-02-02 01:10:22 +03:00
hashlag 67709e5361 Encryptor: Require end of the output span to be indicated explicitly.
Usage becomes much less error-prone.
2026-02-02 00:52:08 +03:00
hashlag d194fef1af Mark all Block::Decryptor<> methods const.
Chaos Ci / test-and-benchmark (push) Successful in 1m42s
This allows for convenient usage of const Decryptor<Impl> &.
2026-02-01 00:24:50 +03:00
hashlag cdcab2f4f7 Mark all Block::Encryptor<> methods const.
This allows for convenient usage of const Encryptor<Impl> &.
2026-01-31 23:56:25 +03:00
hashlag a97826da88 Expose block sizes of block ciphers.
Chaos Ci / test-and-benchmark (push) Successful in 1m45s
Both via static data members and Encryptor/Decryptor interfaces.
Crucial for safe memory allocation routine.
2026-01-31 19:26:51 +03:00
hashlag 73c455901b Introduce Block::Decryptor<> CRTP base class.
Chaos Ci / test-and-benchmark (push) Successful in 1m43s
Inherit DesDecryptor from it.
2026-01-31 18:35:23 +03:00
hashlag 4cf79b61ad Introduce Block::Encryptor<> CRTP base class.
Inherit DesEncryptor from it.
2026-01-31 18:12:43 +03:00
hashlag ba70abd2af Rename DesCrypt::Encryptor --> DesEncryptor, DesCrypt::Decryptor --> DesDecryptor.
Chaos Ci / test-and-benchmark (push) Successful in 1m43s
Maintain naming consistency with Hash subproject.
2026-01-31 17:22:14 +03:00
hashlag 3c98b75986 Create dedicated Cipher/Block directory for block ciphers
Chaos Ci / test-and-benchmark (push) Successful in 1m41s
Move Des there.
2026-01-30 01:01:48 +03:00
hashlag e8d0b93c5e Overload DecryptBlock() for the whole block as UInt64
ChaosTest CI / build-and-test (push) Successful in 34s
2026-01-24 23:24:44 +03:00
hashlag 5a2d802a25 Overload EncryptBlock() for the whole block as UInt64 2026-01-24 23:14:03 +03:00
hashlag 15dd7398d2 Implement DES decryption
ChaosTest CI / build-and-test (push) Successful in 41s
2026-01-23 22:22:28 +03:00
hashlag da5eaff182 Introduce stateful DesCrypt::Encryptor class, remove static DesCrypt::EncryptBlock() 2026-01-23 21:31:04 +03:00
hashlag fa042e7abf Rename RawKeyArray --> RawKey since it's not an 'array of raw keys' 2026-01-21 23:36:15 +03:00
hashlag 9e67a7e4f4 Add DES main algorithm draft implementation
ChaosTest CI / build-and-test (push) Successful in 38s
2026-01-19 02:30:06 +03:00
hashlag 5e35462667 Add DES key schedule pre-draft implementation 2026-01-14 01:31:26 +03:00