Просмотр исходного кода

aes_util: Make CalculateNintendoTweak() an internally linked function

This function doesn't directly depend on class state, so it can be
hidden entirely from the interface in the cpp file.
Lioncash 8 лет назад
Родитель
Сommit
64c8212ae1
2 измененных файлов с 10 добавлено и 12 удалено
  1. 10 10
      src/core/crypto/aes_util.cpp
  2. 0 2
      src/core/crypto/aes_util.h

+ 10 - 10
src/core/crypto/aes_util.cpp

@@ -9,6 +9,16 @@
 #include "core/crypto/key_manager.h"
 
 namespace Core::Crypto {
+namespace {
+std::vector<u8> CalculateNintendoTweak(size_t sector_id) {
+    std::vector<u8> out(0x10);
+    for (size_t i = 0xF; i <= 0xF; --i) {
+        out[i] = sector_id & 0xFF;
+        sector_id >>= 8;
+    }
+    return out;
+}
+} // Anonymous namespace
 
 static_assert(static_cast<size_t>(Mode::CTR) == static_cast<size_t>(MBEDTLS_CIPHER_AES_128_CTR),
               "CTR has incorrect value.");
@@ -100,16 +110,6 @@ void AESCipher<Key, KeySize>::XTSTranscode(const u8* src, size_t size, u8* dest,
     }
 }
 
-template <typename Key, size_t KeySize>
-std::vector<u8> AESCipher<Key, KeySize>::CalculateNintendoTweak(size_t sector_id) {
-    std::vector<u8> out(0x10);
-    for (size_t i = 0xF; i <= 0xF; --i) {
-        out[i] = sector_id & 0xFF;
-        sector_id >>= 8;
-    }
-    return out;
-}
-
 template class AESCipher<Key128>;
 template class AESCipher<Key256>;
 } // namespace Core::Crypto

+ 0 - 2
src/core/crypto/aes_util.h

@@ -56,7 +56,5 @@ public:
 
 private:
     std::unique_ptr<CipherContext> ctx;
-
-    static std::vector<u8> CalculateNintendoTweak(size_t sector_id);
 };
 } // namespace Core::Crypto