Merge pull request #5515 from leoetlino/import-ticket
IOS/ES: Move ImportTicket write function
This commit is contained in:
commit
6d38f153d6
|
@ -30,6 +30,21 @@ namespace HLE
|
||||||
{
|
{
|
||||||
namespace Device
|
namespace Device
|
||||||
{
|
{
|
||||||
|
static ReturnCode WriteTicket(const IOS::ES::TicketReader& ticket)
|
||||||
|
{
|
||||||
|
const u64 title_id = ticket.GetTitleId();
|
||||||
|
|
||||||
|
const std::string ticket_path = Common::GetTicketFileName(title_id, Common::FROM_SESSION_ROOT);
|
||||||
|
File::CreateFullPath(ticket_path);
|
||||||
|
|
||||||
|
File::IOFile ticket_file(ticket_path, "wb");
|
||||||
|
if (!ticket_file)
|
||||||
|
return ES_EIO;
|
||||||
|
|
||||||
|
const std::vector<u8>& raw_ticket = ticket.GetRawTicket();
|
||||||
|
return ticket_file.WriteBytes(raw_ticket.data(), raw_ticket.size()) ? IPC_SUCCESS : ES_EIO;
|
||||||
|
}
|
||||||
|
|
||||||
ReturnCode ES::ImportTicket(const std::vector<u8>& ticket_bytes)
|
ReturnCode ES::ImportTicket(const std::vector<u8>& ticket_bytes)
|
||||||
{
|
{
|
||||||
IOS::ES::TicketReader ticket{ticket_bytes};
|
IOS::ES::TicketReader ticket{ticket_bytes};
|
||||||
|
@ -54,8 +69,9 @@ ReturnCode ES::ImportTicket(const std::vector<u8>& ticket_bytes)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DiscIO::AddTicket(ticket))
|
const ReturnCode write_ret = WriteTicket(ticket);
|
||||||
return ES_EIO;
|
if (write_ret != IPC_SUCCESS)
|
||||||
|
return write_ret;
|
||||||
|
|
||||||
INFO_LOG(IOS_ES, "ImportTicket: Imported ticket for title %016" PRIx64, ticket.GetTitleId());
|
INFO_LOG(IOS_ES, "ImportTicket: Imported ticket for title %016" PRIx64, ticket.GetTitleId());
|
||||||
return IPC_SUCCESS;
|
return IPC_SUCCESS;
|
||||||
|
|
|
@ -248,26 +248,6 @@ void CNANDContentManager::ClearCache()
|
||||||
m_map.clear();
|
m_map.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AddTicket(const IOS::ES::TicketReader& signed_ticket)
|
|
||||||
{
|
|
||||||
if (!signed_ticket.IsValid())
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
u64 title_id = signed_ticket.GetTitleId();
|
|
||||||
|
|
||||||
std::string ticket_filename = Common::GetTicketFileName(title_id, Common::FROM_CONFIGURED_ROOT);
|
|
||||||
File::CreateFullPath(ticket_filename);
|
|
||||||
|
|
||||||
File::IOFile ticket_file(ticket_filename, "wb");
|
|
||||||
if (!ticket_file)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
const std::vector<u8>& raw_ticket = signed_ticket.GetRawTicket();
|
|
||||||
return ticket_file.WriteBytes(raw_ticket.data(), raw_ticket.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
IOS::ES::TicketReader FindSignedTicket(u64 title_id)
|
IOS::ES::TicketReader FindSignedTicket(u64 title_id)
|
||||||
{
|
{
|
||||||
std::string ticket_filename = Common::GetTicketFileName(title_id, Common::FROM_CONFIGURED_ROOT);
|
std::string ticket_filename = Common::GetTicketFileName(title_id, Common::FROM_CONFIGURED_ROOT);
|
||||||
|
|
|
@ -24,7 +24,6 @@ namespace DiscIO
|
||||||
enum class Region;
|
enum class Region;
|
||||||
|
|
||||||
// TODO: move some of these to Core/IOS/ES.
|
// TODO: move some of these to Core/IOS/ES.
|
||||||
bool AddTicket(const IOS::ES::TicketReader& signed_ticket);
|
|
||||||
IOS::ES::TicketReader FindSignedTicket(u64 title_id);
|
IOS::ES::TicketReader FindSignedTicket(u64 title_id);
|
||||||
|
|
||||||
class CNANDContentData
|
class CNANDContentData
|
||||||
|
|
Loading…
Reference in New Issue