devgianlu
1f7586ce14
LibCrypto: Use ASN1 macros for RSA key parsing
...
Improve error handling in `RSA::parse_rsa_key` by using ASN1 macros and
generalizing the parsing to both private and public keys.
2024-11-30 11:17:44 +01:00
devgianlu
ee50a8c0f7
LibCrypto: Do not parse PKCS#8 in RSA::parse_rsa_key
...
The decoding inside `RSA::parse_rsa_key` is quite complex because it
tries to understand if it's decoding PKCS#8 or PKCS#1. Simplify the code
by moving the burden to the PEM decoder.
2024-11-30 11:17:44 +01:00
devgianlu
57ecd72256
LibCrypto: Return PEM type when decoding and sanity check footer
...
Improve PEM decoding by parsing the header and returning it along the
data. Also verify if the header is equal to the footer.
2024-11-30 11:17:44 +01:00
devgianlu
51f69be51f
LibCrypto: Move ASN1 constants to Crypto::ASN1
...
Makes more sense to have them in `Crypto::ASN1` rather than in
`Crypto::Certificate`.
2024-11-30 11:17:44 +01:00
devgianlu
506e490793
LibWeb+LibCrypto: Remove OID constants scattered around
...
Now that `Certificate` has been moved, the OID constants are easily
reachable in `LibCrypto`.
2024-11-25 13:38:38 +01:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00
Andreas Kling
13d7c09125
Libraries: Move to Userland/Libraries/
2021-01-12 12:17:46 +01:00
asynts
843ebbd2c3
Everywhere: Replace a bundle of dbg with dbgln.
...
These changes are arbitrarily divided into multiple commits to make it
easier to find potentially introduced bugs with git bisect.
2021-01-11 21:49:29 +01:00
asynts
938e5c7719
Everywhere: Replace a bundle of dbg with dbgln.
...
These changes are arbitrarily divided into multiple commits to make it
easier to find potentially introduced bugs with git bisect.Everything:
The modifications in this commit were automatically made using the
following command:
find . -name '*.cpp' -exec sed -i -E 's/dbg\(\) << ("[^"{]*");/dbgln\(\1\);/' {} \;
2021-01-09 21:11:09 +01:00
Andreas Kling
d5600e966a
LibTLS+LibCrypto: Remove all remaining uses of ByteBuffer::wrap()
2020-12-19 18:29:13 +01:00
Andreas Kling
a8dbfc3398
LibCrypto: Yet more ByteBuffer::wrap() removal. Not much left now!
2020-12-19 18:29:13 +01:00
Andreas Kling
f82b0a78ef
LibTLS+LibCrypto: More ByteBuffer -> Span conversion
2020-12-19 18:29:13 +01:00
Andreas Kling
8e20208dd6
LibTLS+LibCrypto: Replace a whole bunch of ByteBuffers with Spans
2020-12-19 18:29:13 +01:00
asynts
fff581cd72
AK: Rename span() to bytes() when appropriate.
...
I originally defined the bytes() method for the String class, because it
made it obvious that it's a span of bytes instead of span of characters.
This commit makes this more consistent by defining a bytes() method when
the type of the span is known to be u8.
Additionaly, the cast operator to Bytes is overloaded for ByteBuffer and
such.
2020-08-15 21:21:18 +02:00
AnotherTest
b00ffc860b
LibCrypto: Do not trim leading zeros in export_data by default
...
This fixes the issue with the exported data having a leading zero,
causing RSA::encrypt to trim the block down, and ruining the encryption.
Fixes #2691 :^)
2020-07-31 18:25:20 +02:00
asynts
ed327e7feb
LibCrypto: Change the signatures of RSA::import_[XXX]_key to use Span.
2020-07-27 19:58:09 +02:00
asynts
3de4e08b46
LibCrypto: Change the signature of decode_pem to use Span.
2020-07-27 19:58:09 +02:00
asynts
0d782e1dfb
LibCrypto: Change the signature of RSA::parse_rsa_key to use Span.
2020-07-27 19:58:09 +02:00
asynts
4709b700bd
LibCrypto: Change [XXX]BigInteger::export_data() to use Span.
2020-07-27 19:58:09 +02:00
Andreas Kling
c1dd67e792
LibCrypto+LibTLS: Use AK/Random.h
...
This makes it possible to build both of these on Linux.
2020-05-27 12:28:17 +02:00
Andreas Kling
b0eca4023f
LibCrypto: Put some debug spam behind CRYPTO_DEBUG
2020-05-26 23:46:17 +02:00
AnotherTest
e015ffd5f0
LibCrypto: Ensure that EME padding does not contain zeros
...
With this fix, we can now reliably open TLS connections!
2020-05-02 12:24:10 +02:00
AnotherTest
05e2c7d9cf
LibCrypto+LibTLS: Reformat everything
...
I have no idea how I'll squash _this_ one...
2020-05-02 12:24:10 +02:00
AnotherTest
7adb93ede9
LibCrypto: Implement RSA in terms of UnsignedBigInteger
...
This commit also adds enough ASN.1/DER to parse RSA keys
2020-05-02 12:24:10 +02:00