mirror of
https://github.com/Dark98/threeSD.git
synced 2026-07-05 00:38:49 +00:00
Added encryption scheme display.
This commit is contained in:
@@ -309,6 +309,53 @@ bool NCCHContainer::HasExHeader() {
|
||||
return has_exheader;
|
||||
}
|
||||
|
||||
ResultStatus NCCHContainer::ReadEncryptionType(EncryptionType& encryption) {
|
||||
ResultStatus result = Load();
|
||||
if (result != ResultStatus::Success)
|
||||
return result;
|
||||
|
||||
if (!has_header)
|
||||
return ResultStatus::ErrorNotUsed;
|
||||
|
||||
if (!is_encrypted) {
|
||||
encryption = EncryptionType::None;
|
||||
} else if (ncch_header.fixed_key) {
|
||||
encryption = EncryptionType::FixedKey;
|
||||
} else {
|
||||
switch (ncch_header.secondary_key_slot) {
|
||||
case 0:
|
||||
encryption = EncryptionType::NCCHSecure1;
|
||||
break;
|
||||
case 1:
|
||||
encryption = EncryptionType::NCCHSecure2;
|
||||
break;
|
||||
case 10:
|
||||
encryption = EncryptionType::NCCHSecure3;
|
||||
break;
|
||||
case 11:
|
||||
encryption = EncryptionType::NCCHSecure4;
|
||||
break;
|
||||
default:
|
||||
LOG_ERROR(Service_FS, "Unknown encryption type {:X}!", ncch_header.secondary_key_slot);
|
||||
return ResultStatus::ErrorNotUsed;
|
||||
}
|
||||
}
|
||||
|
||||
return ResultStatus::Success;
|
||||
}
|
||||
|
||||
ResultStatus NCCHContainer::ReadSeedCrypto(bool& used) {
|
||||
ResultStatus result = Load();
|
||||
if (result != ResultStatus::Success)
|
||||
return result;
|
||||
|
||||
if (!has_header)
|
||||
return ResultStatus::ErrorNotUsed;
|
||||
|
||||
used = ncch_header.seed_crypto;
|
||||
return ResultStatus::Success;
|
||||
}
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct RomFSIVFCHeader {
|
||||
u32_le magic;
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "common/file_util.h"
|
||||
#include "common/swap.h"
|
||||
#include "core/decryptor.h"
|
||||
#include "core/importer.h"
|
||||
#include "core/result_status.h"
|
||||
|
||||
namespace Core {
|
||||
@@ -252,6 +253,18 @@ public:
|
||||
*/
|
||||
bool HasExHeader();
|
||||
|
||||
/**
|
||||
* Gets encryption type (which key is used).
|
||||
* @return ResultStatus result of function.
|
||||
*/
|
||||
ResultStatus ReadEncryptionType(EncryptionType& encryption);
|
||||
|
||||
/**
|
||||
* Gets whether seed crypto is used.
|
||||
* @return ResultStatus result of function.
|
||||
*/
|
||||
ResultStatus ReadSeedCrypto(bool& used);
|
||||
|
||||
NCCH_Header ncch_header;
|
||||
ExHeader_Header exheader_header;
|
||||
ExeFs_Header exefs_header;
|
||||
|
||||
Reference in New Issue
Block a user