mirror of
https://github.com/Thealexbarney/LibHac.git
synced 2024-11-14 10:49:41 +01:00
remove ArraysEqual use SequenceEqual it makes the same
This commit is contained in:
parent
980aca21aa
commit
e357c753f5
7 changed files with 13 additions and 26 deletions
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Security.Cryptography;
|
||||
using LibHac.Streams;
|
||||
|
@ -16,7 +17,7 @@ namespace LibHac
|
|||
bool comp = false;
|
||||
using (var _SHA = SHA256.Create())
|
||||
{
|
||||
comp = Util.ArraysEqual(hash, _SHA.ComputeHash(data));
|
||||
comp = hash.SequenceEqual(_SHA.ComputeHash(data));
|
||||
}
|
||||
return comp;
|
||||
}
|
||||
|
@ -133,7 +134,7 @@ namespace LibHac
|
|||
byte[] testEnc = rsa.Encrypt(test, false);
|
||||
byte[] testDec = rsa.Decrypt(testEnc, false);
|
||||
|
||||
if (!Util.ArraysEqual(test, testDec))
|
||||
if (!test.SequenceEqual(testDec))
|
||||
{
|
||||
throw new InvalidDataException("Could not verify RSA key pair");
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using LibHac.Streams;
|
||||
|
||||
|
@ -95,7 +96,7 @@ namespace LibHac
|
|||
hash[0x1F] |= 0x80;
|
||||
}
|
||||
|
||||
if (!Util.ArraysEqual(_hashBuffer, hash))
|
||||
if (!_hashBuffer.SequenceEqual(hash))
|
||||
{
|
||||
throw new InvalidDataException("Hash error!");
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@ namespace LibHac
|
|||
Array.Copy(EncryptedKeyblobs[i], expectedCmac, 0x10);
|
||||
Crypto.CalculateAesCmac(KeyblobMacKeys[i], EncryptedKeyblobs[i], 0x10, cmac, 0, 0xa0);
|
||||
|
||||
if (!Util.ArraysEqual(cmac, expectedCmac))
|
||||
if (!cmac.SequenceEqual(expectedCmac))
|
||||
{
|
||||
logger?.LogMessage($"Warning: Keyblob MAC {i:x2} is invalid. Are SBK/TSEC key correct?");
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using LibHac.Streams;
|
||||
|
@ -75,7 +76,7 @@ namespace LibHac
|
|||
var validationHash = new HMACSHA256(validationHashKey);
|
||||
byte[] validationMac = validationHash.ComputeHash(keyset.SdCardKeys[k], 0x10, 0x10);
|
||||
|
||||
if (Util.ArraysEqual(Hmac, validationMac))
|
||||
if (Hmac.SequenceEqual(validationMac))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -315,7 +315,7 @@ namespace LibHac
|
|||
actual = hash.ComputeHash(hashTable);
|
||||
}
|
||||
|
||||
var validity = Util.ArraysEqual(expected, actual) ? Validity.Valid : Validity.Invalid;
|
||||
var validity = expected.SequenceEqual(actual) ? Validity.Valid : Validity.Invalid;
|
||||
|
||||
sect.SuperblockHashValidity = validity;
|
||||
if (sect.Type == SectionType.Romfs) sect.Romfs.IvfcLevels[0].HashValidity = validity;
|
||||
|
@ -391,7 +391,7 @@ namespace LibHac
|
|||
section.Read(currentBlock, 0, curBlockSize);
|
||||
var actualHash = sha256.ComputeHash(currentBlock, 0, curBlockSize);
|
||||
|
||||
if (!Util.ArraysEqual(expectedHash, actualHash))
|
||||
if (!expectedHash.SequenceEqual(actualHash))
|
||||
{
|
||||
return Validity.Invalid;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using System.IO;
|
||||
using System.Security.Cryptography;
|
||||
using System.Linq;
|
||||
|
||||
namespace LibHac.Savefile
|
||||
{
|
||||
|
@ -91,7 +92,7 @@ namespace LibHac.Savefile
|
|||
using (SHA256 sha256 = SHA256.Create())
|
||||
{
|
||||
var hash = sha256.ComputeHash(Data, 0x300, 0x3d00);
|
||||
return Util.ArraysEqual(hash, Layout.Hash) ? Validity.Valid : Validity.Invalid;
|
||||
return hash.SequenceEqual(Layout.Hash) ? Validity.Valid : Validity.Invalid;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -101,7 +102,7 @@ namespace LibHac.Savefile
|
|||
|
||||
Crypto.CalculateAesCmac(keyset.SaveMacKey, Data, 0x100, calculatedCmac, 0, 0x200);
|
||||
|
||||
return Util.ArraysEqual(calculatedCmac, Cmac) ? Validity.Valid : Validity.Invalid;
|
||||
return calculatedCmac.SequenceEqual(Cmac) ? Validity.Valid : Validity.Invalid;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,23 +30,6 @@ namespace LibHac
|
|||
return array;
|
||||
}
|
||||
|
||||
public static bool ArraysEqual<T>(T[] a1, T[] a2)
|
||||
{
|
||||
if (a1 == null || a2 == null) return false;
|
||||
if (a1 == a2) return true;
|
||||
if (a1.Length != a2.Length) return false;
|
||||
|
||||
for (int i = 0; i < a1.Length; i++)
|
||||
{
|
||||
if (!a1[i].Equals(a2[i]))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsEmpty(this byte[] array)
|
||||
{
|
||||
if (array == null) throw new ArgumentNullException(nameof(array));
|
||||
|
|
Loading…
Reference in a new issue