Browse Source

LibCrypto: Change the signature of decode_pem to use Span.

asynts 4 years ago
parent
commit
3de4e08b46
2 changed files with 5 additions and 4 deletions
  1. 3 2
      Libraries/LibCrypto/ASN1/PEM.h
  2. 2 2
      Libraries/LibCrypto/PK/RSA.cpp

+ 3 - 2
Libraries/LibCrypto/ASN1/PEM.h

@@ -26,12 +26,13 @@
 
 #pragma once
 
+#include <AK/Span.h>
 #include <LibCrypto/ASN1/ASN1.h>
 #include <LibCrypto/ASN1/DER.h>
 
 namespace Crypto {
 
-static ByteBuffer decode_pem(const ByteBuffer& data_in, size_t cert_index = 0)
+static ByteBuffer decode_pem(ReadonlyBytes data_in, size_t cert_index = 0)
 {
     size_t i { 0 };
     size_t start_at { 0 };
@@ -61,7 +62,7 @@ static ByteBuffer decode_pem(const ByteBuffer& data_in, size_t cert_index = 0)
                     cert_index--;
                     start_at = 0;
                 } else {
-                    idx = decode_b64(data_in.offset_pointer(start_at), end_idx - start_at, output);
+                    idx = decode_b64(data_in.offset(start_at), end_idx - start_at, output);
                     break;
                 }
             } else

+ 2 - 2
Libraries/LibCrypto/PK/RSA.cpp

@@ -166,7 +166,7 @@ void RSA::verify(const ByteBuffer& in, ByteBuffer& out)
 void RSA::import_private_key(const ByteBuffer& buffer, bool pem)
 {
     // so gods help me, I hate DER
-    auto decoded_buffer = pem ? decode_pem(buffer) : buffer;
+    auto decoded_buffer = pem ? decode_pem(buffer.span()) : buffer;
     auto key = parse_rsa_key(decoded_buffer.span());
     if (!key.private_key.length()) {
         dbg() << "We expected to see a private key, but we found none";
@@ -178,7 +178,7 @@ void RSA::import_private_key(const ByteBuffer& buffer, bool pem)
 void RSA::import_public_key(const ByteBuffer& buffer, bool pem)
 {
     // so gods help me, I hate DER
-    auto decoded_buffer = pem ? decode_pem(buffer) : buffer;
+    auto decoded_buffer = pem ? decode_pem(buffer.span()) : buffer;
     auto key = parse_rsa_key(decoded_buffer.span());
     if (!key.public_key.length()) {
         dbg() << "We expected to see a public key, but we found none";