mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-24 20:36:24 -05:00
content_archive: Add optional KeyManager parameter to constructor
Allows resuing a common KeyManager when a large amount of NCAs are handled by the same class. Should the parameter not be provided, a new KeyManager will be constructed, as was the default behavior prior to this.
This commit is contained in:
parent
da5fcbf501
commit
e20db909ee
2 changed files with 5 additions and 3 deletions
|
@ -101,8 +101,9 @@ static bool IsValidNCA(const NCAHeader& header) {
|
||||||
return header.magic == Common::MakeMagic('N', 'C', 'A', '3');
|
return header.magic == Common::MakeMagic('N', 'C', 'A', '3');
|
||||||
}
|
}
|
||||||
|
|
||||||
NCA::NCA(VirtualFile file_, VirtualFile bktr_base_romfs_, u64 bktr_base_ivfc_offset)
|
NCA::NCA(VirtualFile file_, VirtualFile bktr_base_romfs_, u64 bktr_base_ivfc_offset,
|
||||||
: file(std::move(file_)), bktr_base_romfs(std::move(bktr_base_romfs_)) {
|
Core::Crypto::KeyManager keys_)
|
||||||
|
: file(std::move(file_)), bktr_base_romfs(std::move(bktr_base_romfs_)), keys(std::move(keys_)) {
|
||||||
if (file == nullptr) {
|
if (file == nullptr) {
|
||||||
status = Loader::ResultStatus::ErrorNullFile;
|
status = Loader::ResultStatus::ErrorNullFile;
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -79,7 +79,8 @@ inline bool IsDirectoryExeFS(const std::shared_ptr<VfsDirectory>& pfs) {
|
||||||
class NCA : public ReadOnlyVfsDirectory {
|
class NCA : public ReadOnlyVfsDirectory {
|
||||||
public:
|
public:
|
||||||
explicit NCA(VirtualFile file, VirtualFile bktr_base_romfs = nullptr,
|
explicit NCA(VirtualFile file, VirtualFile bktr_base_romfs = nullptr,
|
||||||
u64 bktr_base_ivfc_offset = 0);
|
u64 bktr_base_ivfc_offset = 0,
|
||||||
|
Core::Crypto::KeyManager keys = Core::Crypto::KeyManager());
|
||||||
~NCA() override;
|
~NCA() override;
|
||||||
|
|
||||||
Loader::ResultStatus GetStatus() const;
|
Loader::ResultStatus GetStatus() const;
|
||||||
|
|
Loading…
Reference in a new issue