| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #include "core/hle/service/spl/spl.h"
- namespace Service::SPL {
- SPL::SPL(Core::System& system_, std::shared_ptr<Module> module_)
- : Interface(system_, std::move(module_), "spl:") {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, &SPL::GetConfig, "GetConfig"},
- {1, &SPL::ModularExponentiate, "ModularExponentiate"},
- {5, &SPL::SetConfig, "SetConfig"},
- {7, &SPL::GenerateRandomBytes, "GenerateRandomBytes"},
- {11, &SPL::IsDevelopment, "IsDevelopment"},
- {24, &SPL::SetBootReason, "SetBootReason"},
- {25, &SPL::GetBootReason, "GetBootReason"},
- };
- // clang-format on
- RegisterHandlers(functions);
- }
- SPL_MIG::SPL_MIG(Core::System& system_, std::shared_ptr<Module> module_)
- : Interface(system_, std::move(module_), "spl:mig") {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, &SPL::GetConfig, "GetConfig"},
- {1, &SPL::ModularExponentiate, "ModularExponentiate"},
- {2, nullptr, "GenerateAesKek"},
- {3, nullptr, "LoadAesKey"},
- {4, nullptr, "GenerateAesKey"},
- {5, &SPL::SetConfig, "SetConfig"},
- {7, &SPL::GenerateRandomBytes, "GenerateRandomBytes"},
- {11, &SPL::IsDevelopment, "IsDevelopment"},
- {14, nullptr, "DecryptAesKey"},
- {15, nullptr, "CryptAesCtr"},
- {16, nullptr, "ComputeCmac"},
- {21, nullptr, "AllocateAesKeyslot"},
- {22, nullptr, "DeallocateAesKeySlot"},
- {23, nullptr, "GetAesKeyslotAvailableEvent"},
- {24, &SPL::SetBootReason, "SetBootReason"},
- {25, &SPL::GetBootReason, "GetBootReason"},
- };
- // clang-format on
- RegisterHandlers(functions);
- }
- SPL_FS::SPL_FS(Core::System& system_, std::shared_ptr<Module> module_)
- : Interface(system_, std::move(module_), "spl:fs") {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, &SPL::GetConfig, "GetConfig"},
- {1, &SPL::ModularExponentiate, "ModularExponentiate"},
- {2, nullptr, "GenerateAesKek"},
- {3, nullptr, "LoadAesKey"},
- {4, nullptr, "GenerateAesKey"},
- {5, &SPL::SetConfig, "SetConfig"},
- {7, &SPL::GenerateRandomBytes, "GenerateRandomBytes"},
- {9, nullptr, "ImportLotusKey"},
- {10, nullptr, "DecryptLotusMessage"},
- {11, &SPL::IsDevelopment, "IsDevelopment"},
- {12, nullptr, "GenerateSpecificAesKey"},
- {14, nullptr, "DecryptAesKey"},
- {15, nullptr, "CryptAesCtr"},
- {16, nullptr, "ComputeCmac"},
- {19, nullptr, "LoadTitleKey"},
- {21, nullptr, "AllocateAesKeyslot"},
- {22, nullptr, "DeallocateAesKeySlot"},
- {23, nullptr, "GetAesKeyslotAvailableEvent"},
- {24, &SPL::SetBootReason, "SetBootReason"},
- {25, &SPL::GetBootReason, "GetBootReason"},
- {31, nullptr, "GetPackage2Hash"},
- };
- // clang-format on
- RegisterHandlers(functions);
- }
- SPL_SSL::SPL_SSL(Core::System& system_, std::shared_ptr<Module> module_)
- : Interface(system_, std::move(module_), "spl:ssl") {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, &SPL::GetConfig, "GetConfig"},
- {1, &SPL::ModularExponentiate, "ModularExponentiate"},
- {2, nullptr, "GenerateAesKek"},
- {3, nullptr, "LoadAesKey"},
- {4, nullptr, "GenerateAesKey"},
- {5, &SPL::SetConfig, "SetConfig"},
- {7, &SPL::GenerateRandomBytes, "GenerateRandomBytes"},
- {11, &SPL::IsDevelopment, "IsDevelopment"},
- {13, nullptr, "DecryptDeviceUniqueData"},
- {14, nullptr, "DecryptAesKey"},
- {15, nullptr, "CryptAesCtr"},
- {16, nullptr, "ComputeCmac"},
- {21, nullptr, "AllocateAesKeyslot"},
- {22, nullptr, "DeallocateAesKeySlot"},
- {23, nullptr, "GetAesKeyslotAvailableEvent"},
- {24, &SPL::SetBootReason, "SetBootReason"},
- {25, &SPL::GetBootReason, "GetBootReason"},
- {26, nullptr, "DecryptAndStoreSslClientCertKey"},
- {27, nullptr, "ModularExponentiateWithSslClientCertKey"},
- };
- // clang-format on
- RegisterHandlers(functions);
- }
- SPL_ES::SPL_ES(Core::System& system_, std::shared_ptr<Module> module_)
- : Interface(system_, std::move(module_), "spl:es") {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, &SPL::GetConfig, "GetConfig"},
- {1, &SPL::ModularExponentiate, "ModularExponentiate"},
- {2, nullptr, "GenerateAesKek"},
- {3, nullptr, "LoadAesKey"},
- {4, nullptr, "GenerateAesKey"},
- {5, &SPL::SetConfig, "SetConfig"},
- {7, &SPL::GenerateRandomBytes, "GenerateRandomBytes"},
- {11, &SPL::IsDevelopment, "IsDevelopment"},
- {13, nullptr, "DecryptDeviceUniqueData"},
- {14, nullptr, "DecryptAesKey"},
- {15, nullptr, "CryptAesCtr"},
- {16, nullptr, "ComputeCmac"},
- {17, nullptr, "ImportEsKey"},
- {18, nullptr, "UnwrapTitleKey"},
- {20, nullptr, "PrepareEsCommonKey"},
- {21, nullptr, "AllocateAesKeyslot"},
- {22, nullptr, "DeallocateAesKeySlot"},
- {23, nullptr, "GetAesKeyslotAvailableEvent"},
- {24, &SPL::SetBootReason, "SetBootReason"},
- {25, &SPL::GetBootReason, "GetBootReason"},
- {28, nullptr, "DecryptAndStoreDrmDeviceCertKey"},
- {29, nullptr, "ModularExponentiateWithDrmDeviceCertKey"},
- {31, nullptr, "PrepareEsArchiveKey"},
- {32, nullptr, "LoadPreparedAesKey"},
- };
- // clang-format on
- RegisterHandlers(functions);
- }
- SPL_MANU::SPL_MANU(Core::System& system_, std::shared_ptr<Module> module_)
- : Interface(system_, std::move(module_), "spl:manu") {
- // clang-format off
- static const FunctionInfo functions[] = {
- {0, &SPL::GetConfig, "GetConfig"},
- {1, &SPL::ModularExponentiate, "ModularExponentiate"},
- {2, nullptr, "GenerateAesKek"},
- {3, nullptr, "LoadAesKey"},
- {4, nullptr, "GenerateAesKey"},
- {5, &SPL::SetConfig, "SetConfig"},
- {7, &SPL::GenerateRandomBytes, "GenerateRandomBytes"},
- {11, &SPL::IsDevelopment, "IsDevelopment"},
- {13, nullptr, "DecryptDeviceUniqueData"},
- {14, nullptr, "DecryptAesKey"},
- {15, nullptr, "CryptAesCtr"},
- {16, nullptr, "ComputeCmac"},
- {21, nullptr, "AllocateAesKeyslot"},
- {22, nullptr, "DeallocateAesKeySlot"},
- {23, nullptr, "GetAesKeyslotAvailableEvent"},
- {24, &SPL::SetBootReason, "SetBootReason"},
- {25, &SPL::GetBootReason, "GetBootReason"},
- {30, nullptr, "ReencryptDeviceUniqueData"},
- };
- // clang-format on
- RegisterHandlers(functions);
- }
- SPL::~SPL() = default;
- SPL_MIG::~SPL_MIG() = default;
- SPL_FS::~SPL_FS() = default;
- SPL_SSL::~SPL_SSL() = default;
- SPL_ES::~SPL_ES() = default;
- SPL_MANU::~SPL_MANU() = default;
- } // namespace Service::SPL
|