diff options
author | stelar7 <dudedbz@gmail.com> | 2023-04-12 15:05:08 +0200 |
---|---|---|
committer | Ali Mohammad Pur <Ali.mpfard@gmail.com> | 2023-05-05 09:36:43 +0330 |
commit | 0b7031437905d5e7dac228d2af05cd8a507c7a04 (patch) | |
tree | 42acd012792761a27d7575fd1c663a1fbbab7e9b /Userland/Libraries/LibCrypto | |
parent | 24c7995743116a79672ce7c930fe0781522c893b (diff) | |
download | serenity-0b7031437905d5e7dac228d2af05cd8a507c7a04.zip |
LibCrypto: Store the TBS ASN.1 data on the certificate
This way we dont need to guess the offsets in LibTLS when using it.
Diffstat (limited to 'Userland/Libraries/LibCrypto')
-rw-r--r-- | Userland/Libraries/LibCrypto/ASN1/DER.cpp | 10 | ||||
-rw-r--r-- | Userland/Libraries/LibCrypto/ASN1/DER.h | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/Userland/Libraries/LibCrypto/ASN1/DER.cpp b/Userland/Libraries/LibCrypto/ASN1/DER.cpp index cbd7167921..262a12454b 100644 --- a/Userland/Libraries/LibCrypto/ASN1/DER.cpp +++ b/Userland/Libraries/LibCrypto/ASN1/DER.cpp @@ -67,6 +67,16 @@ ErrorOr<u8> Decoder::read_byte() return byte; } +ErrorOr<ReadonlyBytes> Decoder::peek_entry_bytes() +{ + if (m_stack.is_empty()) + return Error::from_string_literal("ASN1::Decoder: Reading bytes from an empty stack"); + + auto entry = m_stack.last(); + + return entry; +} + ErrorOr<ReadonlyBytes> Decoder::read_bytes(size_t length) { if (m_stack.is_empty()) diff --git a/Userland/Libraries/LibCrypto/ASN1/DER.h b/Userland/Libraries/LibCrypto/ASN1/DER.h index 63829c95b2..8138461e38 100644 --- a/Userland/Libraries/LibCrypto/ASN1/DER.h +++ b/Userland/Libraries/LibCrypto/ASN1/DER.h @@ -151,6 +151,8 @@ public: ErrorOr<void> enter(); ErrorOr<void> leave(); + ErrorOr<ReadonlyBytes> peek_entry_bytes(); + private: template<typename ValueType, typename DecodedType> ErrorOr<ValueType> with_type_check(DecodedType&& value) |