소스 검색

LibCrypto: Use BitmapView instead of Bitmap::wrap()

Andreas Kling 4 년 전
부모
커밋
ed9ab38b3b
3개의 변경된 파일5개의 추가작업 그리고 6개의 파일을 삭제
  1. 2 3
      Userland/Libraries/LibCrypto/ASN1/DER.cpp
  2. 2 2
      Userland/Libraries/LibCrypto/ASN1/DER.h
  3. 1 1
      Userland/Libraries/LibCrypto/PK/RSA.cpp

+ 2 - 3
Userland/Libraries/LibCrypto/ASN1/DER.cpp

@@ -190,14 +190,13 @@ Result<StringView, DecodeError> Decoder::decode_printable_string(ReadonlyBytes d
     return StringView { data };
 }
 
-Result<Bitmap, DecodeError> Decoder::decode_bit_string(ReadonlyBytes data)
+Result<const BitmapView, DecodeError> Decoder::decode_bit_string(ReadonlyBytes data)
 {
     if (data.size() < 1)
         return DecodeError::InvalidInputFormat;
 
     auto unused_bits = data[0];
-    // FIXME: It's rather annoying that `Bitmap` is always mutable.
-    return Bitmap::wrap(const_cast<u8*>(data.offset_pointer(1)), data.size() * 8 - unused_bits);
+    return BitmapView { const_cast<u8*>(data.offset_pointer(1)), data.size() * 8 - unused_bits };
 }
 
 Result<Tag, DecodeError> Decoder::peek()

+ 2 - 2
Userland/Libraries/LibCrypto/ASN1/DER.h

@@ -26,7 +26,7 @@
 
 #pragma once
 
-#include <AK/Bitmap.h>
+#include <AK/BitmapView.h>
 #include <AK/Result.h>
 #include <AK/Types.h>
 #include <LibCrypto/ASN1/ASN1.h>
@@ -176,7 +176,7 @@ private:
     static Result<std::nullptr_t, DecodeError> decode_null(ReadonlyBytes);
     static Result<Vector<int>, DecodeError> decode_object_identifier(ReadonlyBytes);
     static Result<StringView, DecodeError> decode_printable_string(ReadonlyBytes);
-    static Result<Bitmap, DecodeError> decode_bit_string(ReadonlyBytes);
+    static Result<const BitmapView, DecodeError> decode_bit_string(ReadonlyBytes);
 
     Vector<ReadonlyBytes> m_stack;
     Optional<Tag> m_current_tag;

+ 1 - 1
Userland/Libraries/LibCrypto/PK/RSA.cpp

@@ -209,7 +209,7 @@ RSA::KeyPairType RSA::parse_rsa_key(ReadonlyBytes der)
             return keypair;
 
         // Now we have a bit string, which contains the PKCS#1 encoded public key.
-        auto data_result = decoder.read<Bitmap>();
+        auto data_result = decoder.read<BitmapView>();
         if (data_result.is_error()) {
             dbgln_if(RSA_PARSE_DEBUG, "RSA PKCS#8 public key parse failed: {}", data_result.error());
             return keypair;