key_manager: Add BIS key getter
This commit is contained in:
		
							parent
							
								
									d6a0d5d432
								
							
						
					
					
						commit
						d7398283e3
					
				@ -282,8 +282,23 @@ Key256 KeyManager::GetKey(S256KeyType id, u64 field1, u64 field2) const {
 | 
			
		||||
    return s256_keys.at({id, field1, field2});
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
template <std::size_t Size>
 | 
			
		||||
void KeyManager::WriteKeyToFile(bool title_key, std::string_view keyname,
 | 
			
		||||
Key256 KeyManager::GetBISKey(u8 partition_id) const {
 | 
			
		||||
    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::string yuzu_keys_dir = FileUtil::GetUserPath(FileUtil::UserPath::KeysDir);
 | 
			
		||||
    std::string filename = "title.keys_autogenerated";
 | 
			
		||||
 | 
			
		||||
@ -127,6 +127,8 @@ public:
 | 
			
		||||
    Key128 GetKey(S128KeyType 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(S256KeyType id, Key256 key, u64 field1 = 0, u64 field2 = 0);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user