mirror of
https://github.com/Thealexbarney/LibHac.git
synced 2024-11-14 10:49:41 +01:00
hactoolnet: Copy hactool's option to suppress outputting decrypted keys
This commit is contained in:
parent
3f5cd08b68
commit
f28e7a7dbb
4 changed files with 23 additions and 9 deletions
|
@ -57,6 +57,7 @@ NCA options:
|
||||||
--basenca Set Base NCA to use with update partitions.
|
--basenca Set Base NCA to use with update partitions.
|
||||||
--basetitlekey Specify single (encrypted) titlekey for the base NCA.
|
--basetitlekey Specify single (encrypted) titlekey for the base NCA.
|
||||||
--titlekey Specify single (encrypted) titlekey.
|
--titlekey Specify single (encrypted) titlekey.
|
||||||
|
--suppresskeys Suppress output of decrypted keys.
|
||||||
KIP1 options:
|
KIP1 options:
|
||||||
--uncompressed <f> Specify file path for saving uncompressed KIP1.
|
--uncompressed <f> Specify file path for saving uncompressed KIP1.
|
||||||
RomFS options:
|
RomFS options:
|
||||||
|
|
|
@ -20,6 +20,7 @@ internal static class CliParser
|
||||||
new CliOption("enablehash", 'h', 0, (o, _) => o.EnableHash = true),
|
new CliOption("enablehash", 'h', 0, (o, _) => o.EnableHash = true),
|
||||||
new CliOption("disablekeywarns", 0, (o, _) => o.DisableKeyWarns = true),
|
new CliOption("disablekeywarns", 0, (o, _) => o.DisableKeyWarns = true),
|
||||||
new CliOption("enableallkeywarns", 0, (o, _) => o.EnableAllKeyWarns = true),
|
new CliOption("enableallkeywarns", 0, (o, _) => o.EnableAllKeyWarns = true),
|
||||||
|
new CliOption("suppresskeys", 0, (o, _) => o.SuppressKeydataOutput = true),
|
||||||
new CliOption("keyset", 'k', 1, (o, a) => o.Keyfile = a[0]),
|
new CliOption("keyset", 'k', 1, (o, a) => o.Keyfile = a[0]),
|
||||||
new CliOption("titlekeys", 1, (o, a) => o.TitleKeyFile = a[0]),
|
new CliOption("titlekeys", 1, (o, a) => o.TitleKeyFile = a[0]),
|
||||||
new CliOption("consolekeys", 1, (o, a) => o.ConsoleKeyFile = a[0]),
|
new CliOption("consolekeys", 1, (o, a) => o.ConsoleKeyFile = a[0]),
|
||||||
|
@ -294,6 +295,7 @@ internal static class CliParser
|
||||||
sb.AppendLine(" --basenca Set Base NCA to use with update partitions.");
|
sb.AppendLine(" --basenca Set Base NCA to use with update partitions.");
|
||||||
sb.AppendLine(" --basetitlekey Specify single (encrypted) titlekey for the base NCA.");
|
sb.AppendLine(" --basetitlekey Specify single (encrypted) titlekey for the base NCA.");
|
||||||
sb.AppendLine(" --titlekey Specify single (encrypted) titlekey for the NCA.");
|
sb.AppendLine(" --titlekey Specify single (encrypted) titlekey for the NCA.");
|
||||||
|
sb.AppendLine(" --suppresskeys Suppress output of decrypted keys.");
|
||||||
sb.AppendLine("KIP1 options:");
|
sb.AppendLine("KIP1 options:");
|
||||||
sb.AppendLine(" --uncompressed <f> Specify file path for saving uncompressed KIP1.");
|
sb.AppendLine(" --uncompressed <f> Specify file path for saving uncompressed KIP1.");
|
||||||
sb.AppendLine("RomFS options:");
|
sb.AppendLine("RomFS options:");
|
||||||
|
|
|
@ -18,6 +18,7 @@ internal class Options
|
||||||
public bool EnableHash;
|
public bool EnableHash;
|
||||||
public bool DisableKeyWarns;
|
public bool DisableKeyWarns;
|
||||||
public bool EnableAllKeyWarns;
|
public bool EnableAllKeyWarns;
|
||||||
|
public bool SuppressKeydataOutput;
|
||||||
public string Keyfile;
|
public string Keyfile;
|
||||||
public string TitleKeyFile;
|
public string TitleKeyFile;
|
||||||
public string ConsoleKeyFile;
|
public string ConsoleKeyFile;
|
||||||
|
|
|
@ -239,7 +239,7 @@ internal static class ProcessNca
|
||||||
nca.OpenEncryptedNca().WriteAllBytes(ctx.Options.CiphertextOut, ctx.Logger);
|
nca.OpenEncryptedNca().WriteAllBytes(ctx.Options.CiphertextOut, ctx.Logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ctx.Options.ReadBench) ctx.Logger.LogMessage(ncaHolder.Print());
|
if (!ctx.Options.ReadBench) ctx.Logger.LogMessage(ncaHolder.Print(ctx.Options));
|
||||||
|
|
||||||
IStorage OpenStorage(int index)
|
IStorage OpenStorage(int index)
|
||||||
{
|
{
|
||||||
|
@ -309,7 +309,7 @@ internal static class ProcessNca
|
||||||
return keyGeneration - 1;
|
return keyGeneration - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string Print(this NcaHolder ncaHolder)
|
private static string Print(this NcaHolder ncaHolder, Options options)
|
||||||
{
|
{
|
||||||
Nca nca = ncaHolder.Nca;
|
Nca nca = ncaHolder.Nca;
|
||||||
int masterKey = GetMasterKeyRevisionFromKeyGeneration(nca.Header.KeyGeneration);
|
int masterKey = GetMasterKeyRevisionFromKeyGeneration(nca.Header.KeyGeneration);
|
||||||
|
@ -347,7 +347,11 @@ internal static class ProcessNca
|
||||||
{
|
{
|
||||||
PrintItem(sb, colLen, "Rights ID:", nca.Header.RightsId.ToArray());
|
PrintItem(sb, colLen, "Rights ID:", nca.Header.RightsId.ToArray());
|
||||||
PrintItem(sb, colLen, "Titlekey (Encrypted):", nca.GetEncryptedTitleKey());
|
PrintItem(sb, colLen, "Titlekey (Encrypted):", nca.GetEncryptedTitleKey());
|
||||||
PrintItem(sb, colLen, "Titlekey (Decrypted):", nca.GetDecryptedTitleKey());
|
|
||||||
|
if (!options.SuppressKeydataOutput)
|
||||||
|
{
|
||||||
|
PrintItem(sb, colLen, "Titlekey (Decrypted):", nca.GetDecryptedTitleKey());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -367,10 +371,13 @@ internal static class ProcessNca
|
||||||
sb.AppendLine("Key Area (Encrypted):");
|
sb.AppendLine("Key Area (Encrypted):");
|
||||||
PrintItem(sb, colLen, "Key (RSA-OAEP Encrypted):", nca.Header.GetKeyArea().ToArray());
|
PrintItem(sb, colLen, "Key (RSA-OAEP Encrypted):", nca.Header.GetKeyArea().ToArray());
|
||||||
|
|
||||||
sb.AppendLine("Key Area (Decrypted):");
|
if (!options.SuppressKeydataOutput)
|
||||||
for (int i = 0; i < 2; i++)
|
|
||||||
{
|
{
|
||||||
PrintItem(sb, colLen, $" Key {i} (Decrypted):", nca.GetDecryptedKey(i));
|
sb.AppendLine("Key Area (Decrypted):");
|
||||||
|
for (int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
PrintItem(sb, colLen, $" Key {i} (Decrypted):", nca.GetDecryptedKey(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (version == NcaVersion.Nca0FixedKey)
|
else if (version == NcaVersion.Nca0FixedKey)
|
||||||
|
@ -392,10 +399,13 @@ internal static class ProcessNca
|
||||||
PrintItem(sb, colLen, $" Key {i} (Encrypted):", nca.Header.GetEncryptedKey(i).ToArray());
|
PrintItem(sb, colLen, $" Key {i} (Encrypted):", nca.Header.GetEncryptedKey(i).ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
sb.AppendLine("Key Area (Decrypted):");
|
if (!options.SuppressKeydataOutput)
|
||||||
for (int i = 0; i < keyCount; i++)
|
|
||||||
{
|
{
|
||||||
PrintItem(sb, colLen, $" Key {i} (Decrypted):", nca.GetDecryptedKey(i));
|
sb.AppendLine("Key Area (Decrypted):");
|
||||||
|
for (int i = 0; i < keyCount; i++)
|
||||||
|
{
|
||||||
|
PrintItem(sb, colLen, $" Key {i} (Decrypted):", nca.GetDecryptedKey(i));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue