summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2018-08-04 16:52:19 -0400
committerGravatar Lioncash2018-08-04 17:30:48 -0400
commit64c8212ae1168e86693d05875f4284330e52f26d (patch)
treeb7e949b631c624aa023c7075e19d47746a1d43a2 /src
parentaes_util: Make Transcode() a const member function (diff)
downloadyuzu-64c8212ae1168e86693d05875f4284330e52f26d.tar.gz
yuzu-64c8212ae1168e86693d05875f4284330e52f26d.tar.xz
yuzu-64c8212ae1168e86693d05875f4284330e52f26d.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/core/crypto/aes_util.cpp20
-rw-r--r--src/core/crypto/aes_util.h2
2 files changed, 10 insertions, 12 deletions
diff --git a/src/core/crypto/aes_util.cpp b/src/core/crypto/aes_util.cpp
index e2dc4acb3..a9876c83e 100644
--- a/src/core/crypto/aes_util.cpp
+++ b/src/core/crypto/aes_util.cpp
@@ -9,6 +9,16 @@
9#include "core/crypto/key_manager.h" 9#include "core/crypto/key_manager.h"
10 10
11namespace Core::Crypto { 11namespace Core::Crypto {
12namespace {
13std::vector<u8> CalculateNintendoTweak(size_t sector_id) {
14 std::vector<u8> out(0x10);
15 for (size_t i = 0xF; i <= 0xF; --i) {
16 out[i] = sector_id & 0xFF;
17 sector_id >>= 8;
18 }
19 return out;
20}
21} // Anonymous namespace
12 22
13static_assert(static_cast<size_t>(Mode::CTR) == static_cast<size_t>(MBEDTLS_CIPHER_AES_128_CTR), 23static_assert(static_cast<size_t>(Mode::CTR) == static_cast<size_t>(MBEDTLS_CIPHER_AES_128_CTR),
14 "CTR has incorrect value."); 24 "CTR has incorrect value.");
@@ -100,16 +110,6 @@ void AESCipher<Key, KeySize>::XTSTranscode(const u8* src, size_t size, u8* dest,
100 } 110 }
101} 111}
102 112
103template <typename Key, size_t KeySize>
104std::vector<u8> AESCipher<Key, KeySize>::CalculateNintendoTweak(size_t sector_id) {
105 std::vector<u8> out(0x10);
106 for (size_t i = 0xF; i <= 0xF; --i) {
107 out[i] = sector_id & 0xFF;
108 sector_id >>= 8;
109 }
110 return out;
111}
112
113template class AESCipher<Key128>; 113template class AESCipher<Key128>;
114template class AESCipher<Key256>; 114template class AESCipher<Key256>;
115} // namespace Core::Crypto \ No newline at end of file 115} // namespace Core::Crypto \ No newline at end of file
diff --git a/src/core/crypto/aes_util.h b/src/core/crypto/aes_util.h
index bda41b144..ce4947a04 100644
--- a/src/core/crypto/aes_util.h
+++ b/src/core/crypto/aes_util.h
@@ -56,7 +56,5 @@ public:
56 56
57private: 57private:
58 std::unique_ptr<CipherContext> ctx; 58 std::unique_ptr<CipherContext> ctx;
59
60 static std::vector<u8> CalculateNintendoTweak(size_t sector_id);
61}; 59};
62} // namespace Core::Crypto 60} // namespace Core::Crypto