mirror of
https://github.com/yuzu-mirror/yuzu.git
synced 2024-11-08 12:39:59 +00:00
key_manager: Add BIS key getter
This commit is contained in:
parent
d6a0d5d432
commit
d7398283e3
2 changed files with 19 additions and 2 deletions
|
@ -282,8 +282,23 @@ Key256 KeyManager::GetKey(S256KeyType id, u64 field1, u64 field2) const {
|
||||||
return s256_keys.at({id, field1, field2});
|
return s256_keys.at({id, field1, field2});
|
||||||
}
|
}
|
||||||
|
|
||||||
template <std::size_t Size>
|
Key256 KeyManager::GetBISKey(u8 partition_id) const {
|
||||||
void KeyManager::WriteKeyToFile(bool title_key, std::string_view keyname,
|
Key256 out{};
|
||||||
|
|
||||||
|
for (const auto& bis_type : {BISKeyType::Crypto, BISKeyType::Tweak}) {
|
||||||
|
if (HasKey(S128KeyType::BIS, partition_id, static_cast<u64>(bis_type))) {
|
||||||
|
std::memcpy(
|
||||||
|
out.data() + sizeof(Key128) * static_cast<u64>(bis_type),
|
||||||
|
s128_keys.at({S128KeyType::BIS, partition_id, static_cast<u64>(bis_type)}).data(),
|
||||||
|
sizeof(Key128));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <size_t Size>
|
||||||
|
void KeyManager::WriteKeyToFile(KeyCategory category, std::string_view keyname,
|
||||||
const std::array<u8, Size>& key) {
|
const std::array<u8, Size>& key) {
|
||||||
const std::string yuzu_keys_dir = FileUtil::GetUserPath(FileUtil::UserPath::KeysDir);
|
const std::string yuzu_keys_dir = FileUtil::GetUserPath(FileUtil::UserPath::KeysDir);
|
||||||
std::string filename = "title.keys_autogenerated";
|
std::string filename = "title.keys_autogenerated";
|
||||||
|
|
|
@ -127,6 +127,8 @@ public:
|
||||||
Key128 GetKey(S128KeyType id, u64 field1 = 0, u64 field2 = 0) const;
|
Key128 GetKey(S128KeyType id, u64 field1 = 0, u64 field2 = 0) const;
|
||||||
Key256 GetKey(S256KeyType id, u64 field1 = 0, u64 field2 = 0) const;
|
Key256 GetKey(S256KeyType id, u64 field1 = 0, u64 field2 = 0) const;
|
||||||
|
|
||||||
|
Key256 GetBISKey(u8 partition_id) const;
|
||||||
|
|
||||||
void SetKey(S128KeyType id, Key128 key, u64 field1 = 0, u64 field2 = 0);
|
void SetKey(S128KeyType id, Key128 key, u64 field1 = 0, u64 field2 = 0);
|
||||||
void SetKey(S256KeyType id, Key256 key, u64 field1 = 0, u64 field2 = 0);
|
void SetKey(S256KeyType id, Key256 key, u64 field1 = 0, u64 field2 = 0);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue