Commit Graph
89 Commits
Author SHA1 Message Date
hashlag 3dacd57fef Replace Decryptor CRTP base with a concept.
Chaos Ci / test (push) Successful in 3m4s
Chaos Ci / benchmark (push) Successful in 1m31s
2026-09-06 02:45:45 +03:00
hashlag 2c6a24197a Replace Encryptor CRTP base with a concept.
Chaos Ci / test (push) Successful in 5m6s
Chaos Ci / benchmark (push) Successful in 1m29s
2026-09-06 02:27:35 +03:00
hashlag 1c341c6888 Replace Padder CRTP base with a concept.
Chaos Ci / test (push) Successful in 3m1s
Chaos Ci / benchmark (push) Successful in 1m51s
2026-09-01 00:43:27 +03:00
hashlag bd94ff963f PadderIso7816Tests: Delete #include duplicate. 2026-08-14 00:58:29 +03:00
hashlag c472b55a9d Implement unpad for ISO 7816 padding.
Chaos Ci / test (push) Successful in 3m10s
Chaos Ci / benchmark (push) Successful in 1m27s
2026-08-14 00:54:18 +03:00
hashlag 409b6aa48c PadderPkcs7Tests: Remove reversed range testcase.
There is not much we can do.
2026-08-14 00:54:18 +03:00
hashlag a282feeb0b PadderPkcs7Tests: Fix empty range pad testcase. 2026-08-14 00:54:18 +03:00
hashlag 481a8baa58 PadderIso7816Tests: Fix #include grouping.
Chaos Ci / test (push) Successful in 3m3s
Chaos Ci / benchmark (push) Successful in 1m51s
2026-08-13 01:24:55 +03:00
hashlag 8adc867a2e PadderIso7816: Do not allow to pad empty ranges.
Chaos Ci / test (push) Successful in 2m39s
Chaos Ci / benchmark (push) Successful in 1m50s
2026-08-13 01:22:14 +03:00
hashlag ac122f0f9f Implement unpad for ISO 7816 padding.
Chaos Ci / test (push) Successful in 3m11s
Chaos Ci / benchmark (push) Successful in 1m52s
2026-08-13 00:31:40 +03:00
hashlag 4e5627b503 Sync source and test dirs structure.
Chaos Ci / test (push) Successful in 2m58s
Chaos Ci / benchmark (push) Successful in 1m48s
2026-08-04 00:51:02 +03:00
hashlag 0572d9e887 Fix missing includes in tests. 2026-08-04 00:17:28 +03:00
hashlag 8ff1e4b369 PadderPkcs7: Do not allow to pad empty ranges.
Chaos Ci / test (push) Successful in 3m2s
Chaos Ci / benchmark (push) Successful in 1m50s
2026-08-03 02:39:44 +03:00
hashlag 2323020714 Define sanitizer callbacks that fail tests when triggered.
Chaos Ci / test (push) Successful in 3m1s
Chaos Ci / benchmark (push) Successful in 1m49s
2026-08-03 01:46:21 +03:00
hashlag 88bcbb5514 Improve #include formatting in tests.
Chaos Ci / test (push) Successful in 2m57s
Chaos Ci / benchmark (push) Successful in 1m47s
2026-08-02 03:25:00 +03:00
hashlag c03b392bcc Improve negative assertions by checking the actual exceptions' content. 2026-08-02 03:06:27 +03:00
hashlag 6ae4df4bfc Add ECB-mode decryptor draft implementation.
Chaos Ci / test (push) Successful in 2m59s
Chaos Ci / benchmark (push) Successful in 1m31s
2026-07-29 02:25:51 +03:00
hashlag 78ab3a8c27 Add copy assignment operator for SeArray.
Chaos Ci / test (push) Successful in 3m2s
Chaos Ci / benchmark (push) Successful in 1m53s
2026-07-26 19:03:54 +03:00
hashlag 242a35bd96 Implement unpad for PKCS#7 padding.
Chaos Ci / test (push) Successful in 3m4s
Chaos Ci / benchmark (push) Successful in 1m54s
2026-07-20 03:08:21 +03:00
hashlag 1dc703922b Remove unused #include. 2026-07-20 03:08:21 +03:00
hashlag a9c1e52c45 Remove trailing whitespaces. 2026-07-20 03:08:21 +03:00
hashlag 34b19434a1 Fix missing includes. 2026-07-20 03:08:21 +03:00
hashlag b220221c8b Add enable no-sanitize-recover for all UBSan checks. 2026-07-06 04:18:50 +03:00
hashlag 8351bf2b74 Add sanitized test run to CI. 2026-07-06 04:18:50 +03:00
hashlag ac8424b2b4 Make coverage optional for debug builds by introducing CHAOS_COVERAGE
flag.
2026-07-06 04:18:50 +03:00
hashlag bea8a84a4f Add ECB-mode encryptor draft implementation.
Chaos Ci / test-and-benchmark (push) Successful in 4m16s
2026-07-05 21:34:36 +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 eb3da5ff75 Add ISO/IEC 7816-4 padding implementation.
Chaos Ci / test-and-benchmark (push) Successful in 2m8s
2026-06-18 01:28:38 +03:00
hashlag 797a5428cc Add Padder<>. A CRTP base for padding algorithms.
Chaos Ci / test-and-benchmark (push) Successful in 1m59s
2026-02-08 23:44:51 +03:00
hashlag 5baede0a1d Rename PadPkcs7 --> PadderPkcs7. 2026-02-08 23:31:24 +03:00
hashlag 2a3185406b Add PKCS#7 padding implementation.
Chaos Ci / test-and-benchmark (push) Successful in 1m58s
2026-02-08 23:05:57 +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 6a09d81ae2 Add ChaosExceptionTests.
Chaos Ci / test-and-benchmark (push) Successful in 2m2s
2026-02-06 18:05:57 +03:00
hashlag b4f015f501 Compile tests with -Wunused -Werror=unused.
Chaos Ci / test-and-benchmark (push) Successful in 1m54s
Promotes cleaner and less error-prone code.
2026-02-05 16:16:38 +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 1bf91a90d0 Add Arc4CryptTests, DecryptOutIteratorUsageTest.
Harden against past-the-end write.
2026-02-04 01:01:54 +03:00
hashlag 2d64389d66 Add Arc4CryptTests, EncryptOutIteratorUsageTest.
Harden against past-the-end write.
2026-02-04 00:43:40 +03:00
hashlag ccdf14d31a Add Arc4GenTests, GenerateOutIteratorUsageTest.
Harden against past-the-end write.
2026-02-04 00:25:15 +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