diff --git a/Userland/Libraries/LibCrypto/ASN1/DER.cpp b/Userland/Libraries/LibCrypto/ASN1/DER.cpp index 73e827bd68b..c7ad2d4e525 100644 --- a/Userland/Libraries/LibCrypto/ASN1/DER.cpp +++ b/Userland/Libraries/LibCrypto/ASN1/DER.cpp @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -262,7 +263,8 @@ ErrorOr Encoder::write_length(size_t value) if (value < 0x80) return write_byte(value); - size_t size_in_bits = AK::ceil_log2(value); + double minimum_bits = AK::log2(value); + size_t size_in_bits = AK::floor(minimum_bits) + 1; size_t size = ceil_div(size_in_bits, 8ul); TRY(write_byte(0x80 | size));