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.
This commit is contained in:
parent
b25468b498
commit
64c8212ae1
|
@ -9,6 +9,16 @@
|
||||||
#include "core/crypto/key_manager.h"
|
#include "core/crypto/key_manager.h"
|
||||||
|
|
||||||
namespace Core::Crypto {
|
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),
|
static_assert(static_cast<size_t>(Mode::CTR) == static_cast<size_t>(MBEDTLS_CIPHER_AES_128_CTR),
|
||||||
"CTR has incorrect value.");
|
"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<Key128>;
|
||||||
template class AESCipher<Key256>;
|
template class AESCipher<Key256>;
|
||||||
} // namespace Core::Crypto
|
} // namespace Core::Crypto
|
|
@ -56,7 +56,5 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<CipherContext> ctx;
|
std::unique_ptr<CipherContext> ctx;
|
||||||
|
|
||||||
static std::vector<u8> CalculateNintendoTweak(size_t sector_id);
|
|
||||||
};
|
};
|
||||||
} // namespace Core::Crypto
|
} // namespace Core::Crypto
|
||||||
|
|
Reference in New Issue