mirror of
https://github.com/Atmosphere-NX/Atmosphere
synced 2024-12-22 20:31:14 +00:00
exo2: fix bugs in Cmac and DeviceId calculation
This commit is contained in:
parent
bb3a8a888f
commit
a0b08d0540
2 changed files with 4 additions and 4 deletions
|
@ -200,7 +200,7 @@ namespace ams::fuse {
|
|||
|
||||
void GetEcid(br::BootEcid *out) {
|
||||
/* Get the registers. */
|
||||
const volatile auto &chip = GetChipRegisters();
|
||||
volatile auto &chip = GetChipRegisters();
|
||||
|
||||
/* Read the ecid components. */
|
||||
const u32 vendor = reg::Read(chip.FUSE_OPT_VENDOR_CODE) & ((1u << 4) - 1);
|
||||
|
@ -224,7 +224,7 @@ namespace ams::fuse {
|
|||
|
||||
u64 GetDeviceId() {
|
||||
/* Get the registers. */
|
||||
const volatile auto &chip = GetChipRegisters();
|
||||
volatile auto &chip = GetChipRegisters();
|
||||
|
||||
/* Read the device id components. */
|
||||
/* NOTE: Device ID is "basically" just an alternate encoding of Ecid. */
|
||||
|
|
|
@ -181,7 +181,7 @@ namespace ams::se {
|
|||
u8 prev = 0;
|
||||
for (int i = AesBlockSize - 1; i >= 0; --i) {
|
||||
const u8 top = (subkey[i] >> 7);
|
||||
subkey[i] = ((subkey[i] << 1) | top);
|
||||
subkey[i] = ((subkey[i] << 1) | prev);
|
||||
prev = top;
|
||||
}
|
||||
|
||||
|
@ -220,7 +220,7 @@ namespace ams::se {
|
|||
ExpandSubkey(subkey);
|
||||
|
||||
/* Account for last block. */
|
||||
if (last_block_size) {
|
||||
if (last_block_size != AesBlockSize) {
|
||||
ExpandSubkey(subkey);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue