Luke
72abf3491b
LibCrypto: Require intent parameter in CTR constructor
...
This was preventing clang from building.
2020-11-29 20:22:56 +01:00
AnotherTest
d3c52cef86
LibCrypto: Implement GCM mode
2020-11-14 10:18:54 +01:00
AnotherTest
b9822d606d
LibCrypto: Templatise CTR<T> on the increment function
2020-11-14 10:18:54 +01:00
AnotherTest
bc7a149039
LibCrypto+LibTLS+Kernel: Switch the Cipher::Mode interface to use Span
...
This shaves 2.5 more runtime seconds off 'disasm /bin/id', and makes the
Mode<T> interface a lot more allocation-friendly.
2020-08-11 21:37:10 +02:00
Brian Gianforcaro
9572c95152
LibTLS + LibCrypto: Suppress unobserved Optoinal<T> return values.
2020-08-05 12:27:15 +02:00
Ben Wiederhake
a296020e03
LibCrypto: Implement and test CTR decryption
2020-07-28 19:10:10 +02:00
Ben Wiederhake
a51cbc2978
LibCrypto: Fix broken CTR mode, implement RFC 3686 Test Vectors
2020-07-28 19:10:10 +02:00
Ben Wiederhake
ef4ce54b02
LibCrypto: Document CTR weirdness in depth
2020-07-28 19:10:10 +02:00
Peter Elliott
2e8cfe5435
LibCrypto: Add CTR cipher mode
...
Kernel: Changed fortuna implementation to use CTR mode instead of
manually implementing a counter.
2020-06-25 21:05:40 +02:00
Peter Elliott
3de32f0a55
LibCrypto: Add missing <AK/StringView.h> include
2020-06-25 21:05:40 +02:00
AnotherTest
2a241a11bb
LibCrypto: Fix some issues preventing compilation w/ clang 10
2020-05-29 20:17:12 +02:00
AnotherTest
d497521d2b
LibCrypto: Format all files with clang-format 10
2020-05-29 20:17:12 +02:00
AnotherTest
3b432eed98
LibCrypto: Correct RFC5246 un-padding behaviour
...
The decrypted data is legally allowed to have any amount of padding, so
long as it is block-aligned, we should not assume that padding bytes
fall inside the same block, or that an entire block cannot be padding.
Fixes #2072
2020-05-03 11:46:40 +02:00
AnotherTest
4d932ce701
LibCrypto: Tweak ::prune_padding() to be more intuitive with loop bounds
2020-05-02 12:24:10 +02:00
AnotherTest
a1e1570552
LibCrypto+LibTLS: Generalise the use of IV length
...
This is in preparation for the upcoming Galois/Counter mode, which
conventionally has 12 bytes of IV as opposed to CBC's 16 bytes.
...Also fixes a lot of style issues, since the author finally found the
project's clang config file in the repository root :^)
2020-05-02 12:24:10 +02:00
AnotherTest
2247036acf
LibTLS: Implement a preliminary version of the TLS protocol
...
TLS::TLSv12 is a Core::Socket, however, I think splitting that into a
TLS::Socket would probably be beneficial
2020-05-02 12:24:10 +02:00
AnotherTest
f1578d7e9e
LibCrypto: Fix issues in the Crypto stack
...
This commit fixes up the following:
- HMAC should not reuse a single hasher when successively updating
- AES Key should not assume its user key is valid signed char*
- Mode should have a virtual destructor
And adds a RFC5246 padding mode, which is required for TLS
2020-05-02 12:24:10 +02:00
AnotherTest
f2cd004d11
LibCrypto: Implement HMAC
2020-05-02 12:24:10 +02:00
AnotherTest
4f89a377a4
LibCrypto: Move each subsection into its own namespace
2020-05-02 12:24:10 +02:00
AnotherTest
899ca245ae
LibCrypto: Implement Cipher and AES_CBC
...
Also adds a test program to userland
2020-05-02 12:24:10 +02:00