mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Merge pull request #9220 from jordan-woyak/ext-crypto
WiimoteEmu: Implement extension encryption edge case.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -12,6 +12,8 @@
|
||||
|
||||
namespace WiimoteEmu
|
||||
{
|
||||
using SBox = std::array<u8, 256>;
|
||||
|
||||
class EncryptionKey
|
||||
{
|
||||
public:
|
||||
@@ -21,7 +23,8 @@ public:
|
||||
using RandData = std::array<u8, 10>;
|
||||
using KeyData = std::array<u8, 6>;
|
||||
|
||||
void GenerateTables(const RandData& rand, const KeyData& key, const u32 idx, const u8 offset);
|
||||
void GenerateTables(const RandData& rand, const KeyData& key, const SBox& sbox_a,
|
||||
const SBox& sbox_b);
|
||||
|
||||
std::array<u8, 8> ft = {};
|
||||
std::array<u8, 8> sb = {};
|
||||
@@ -41,6 +44,8 @@ protected:
|
||||
u32 idx) const = 0;
|
||||
virtual EncryptionKey GenerateTables(const EncryptionKey::RandData& rand,
|
||||
const EncryptionKey::KeyData& key, u32 idx) const = 0;
|
||||
virtual EncryptionKey GenerateFallbackTables(const EncryptionKey::RandData& rand,
|
||||
const EncryptionKey::KeyData& key) const = 0;
|
||||
};
|
||||
|
||||
class KeyGen1stParty final : public KeyGen
|
||||
@@ -50,6 +55,8 @@ private:
|
||||
u32 idx) const final override;
|
||||
EncryptionKey GenerateTables(const EncryptionKey::RandData& rand,
|
||||
const EncryptionKey::KeyData& key, u32 idx) const final override;
|
||||
EncryptionKey GenerateFallbackTables(const EncryptionKey::RandData& rand,
|
||||
const EncryptionKey::KeyData& key) const final override;
|
||||
};
|
||||
|
||||
class KeyGen3rdParty final : public KeyGen
|
||||
@@ -59,6 +66,8 @@ private:
|
||||
u32 idx) const final override;
|
||||
EncryptionKey GenerateTables(const EncryptionKey::RandData& rand,
|
||||
const EncryptionKey::KeyData& key, u32 idx) const final override;
|
||||
EncryptionKey GenerateFallbackTables(const EncryptionKey::RandData& rand,
|
||||
const EncryptionKey::KeyData& key) const final override;
|
||||
};
|
||||
|
||||
} // namespace WiimoteEmu
|
||||
|
||||
Reference in New Issue
Block a user