Fix misc FSUSER & PS fail
This commit is contained in:
parent
56a11197c7
commit
3a10698964
@ -1137,8 +1137,8 @@ Result FSUSER_ExportIntegrityVerificationSeed(FS_IntegrityVerificationSeed* seed
|
|||||||
u32 *cmdbuf = getThreadCommandBuffer();
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
cmdbuf[0] = IPC_MakeHeader(0x84A,0,2); // 0x84A0002
|
cmdbuf[0] = IPC_MakeHeader(0x84A,0,2); // 0x84A0002
|
||||||
cmdbuf[2] = IPC_Desc_Buffer(sizeof(FS_IntegrityVerificationSeed), IPC_BUFFER_W);
|
cmdbuf[1] = IPC_Desc_Buffer(sizeof(FS_IntegrityVerificationSeed), IPC_BUFFER_W);
|
||||||
cmdbuf[3] = (u32) seed;
|
cmdbuf[2] = (u32) seed;
|
||||||
|
|
||||||
Result ret = 0;
|
Result ret = 0;
|
||||||
if(R_FAILED(ret = svcSendSyncRequest(fsSession()))) return ret;
|
if(R_FAILED(ret = svcSendSyncRequest(fsSession()))) return ret;
|
||||||
@ -1151,8 +1151,8 @@ Result FSUSER_ImportIntegrityVerificationSeed(FS_IntegrityVerificationSeed* seed
|
|||||||
u32 *cmdbuf = getThreadCommandBuffer();
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
cmdbuf[0] = IPC_MakeHeader(0x84B,0,2); // 0x84B0002
|
cmdbuf[0] = IPC_MakeHeader(0x84B,0,2); // 0x84B0002
|
||||||
cmdbuf[2] = IPC_Desc_Buffer(sizeof(FS_IntegrityVerificationSeed), IPC_BUFFER_R);
|
cmdbuf[1] = IPC_Desc_Buffer(sizeof(FS_IntegrityVerificationSeed), IPC_BUFFER_R);
|
||||||
cmdbuf[3] = (u32) seed;
|
cmdbuf[2] = (u32) seed;
|
||||||
|
|
||||||
Result ret = 0;
|
Result ret = 0;
|
||||||
if(R_FAILED(ret = svcSendSyncRequest(fsSession()))) return ret;
|
if(R_FAILED(ret = svcSendSyncRequest(fsSession()))) return ret;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <3ds/types.h>
|
#include <3ds/types.h>
|
||||||
#include <3ds/result.h>
|
#include <3ds/result.h>
|
||||||
#include <3ds/svc.h>
|
#include <3ds/svc.h>
|
||||||
@ -34,10 +35,7 @@ Result PS_EncryptDecryptAes(u32 size, u8* in, u8* out, PS_AESAlgorithm aes_algo,
|
|||||||
|
|
||||||
cmdbuf[0] = IPC_MakeHeader(0x4,7,4); // 0x401C4
|
cmdbuf[0] = IPC_MakeHeader(0x4,7,4); // 0x401C4
|
||||||
cmdbuf[1] = size;
|
cmdbuf[1] = size;
|
||||||
cmdbuf[2] = _iv[0];
|
memcpy(&cmdbuf[2], _iv, 16);
|
||||||
cmdbuf[3] = _iv[1];
|
|
||||||
cmdbuf[4] = _iv[2];
|
|
||||||
cmdbuf[5] = _iv[3];
|
|
||||||
cmdbuf[6] = aes_algo;
|
cmdbuf[6] = aes_algo;
|
||||||
cmdbuf[7] = key_type;
|
cmdbuf[7] = key_type;
|
||||||
cmdbuf[8] = IPC_Desc_PXIBuffer(size,0,false);
|
cmdbuf[8] = IPC_Desc_PXIBuffer(size,0,false);
|
||||||
@ -47,10 +45,7 @@ Result PS_EncryptDecryptAes(u32 size, u8* in, u8* out, PS_AESAlgorithm aes_algo,
|
|||||||
|
|
||||||
if(R_FAILED(ret = svcSendSyncRequest(psHandle)))return ret;
|
if(R_FAILED(ret = svcSendSyncRequest(psHandle)))return ret;
|
||||||
|
|
||||||
_iv[0] = cmdbuf[2] & 0xFF;
|
memcpy(_iv, &cmdbuf[2], 16);
|
||||||
_iv[1] = cmdbuf[3] & 0xFF;
|
|
||||||
_iv[2] = cmdbuf[4] & 0xFF;
|
|
||||||
_iv[3] = cmdbuf[5] & 0xFF;
|
|
||||||
|
|
||||||
return (Result)cmdbuf[1];
|
return (Result)cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -68,9 +63,7 @@ Result PS_EncryptSignDecryptVerifyAesCcm(u8* in, u32 in_size, u8* out, u32 out_s
|
|||||||
cmdbuf[3] = mac_data_len;
|
cmdbuf[3] = mac_data_len;
|
||||||
cmdbuf[4] = data_len;
|
cmdbuf[4] = data_len;
|
||||||
cmdbuf[5] = mac_len;
|
cmdbuf[5] = mac_len;
|
||||||
cmdbuf[6] = _nonce[0];
|
memcpy(&cmdbuf[6], _nonce, 12);
|
||||||
cmdbuf[7] = _nonce[1];
|
|
||||||
cmdbuf[8] = _nonce[2];
|
|
||||||
cmdbuf[9] = aes_algo;
|
cmdbuf[9] = aes_algo;
|
||||||
cmdbuf[10] = key_type;
|
cmdbuf[10] = key_type;
|
||||||
cmdbuf[8] = IPC_Desc_PXIBuffer(in_size,0,false);
|
cmdbuf[8] = IPC_Desc_PXIBuffer(in_size,0,false);
|
||||||
|
Loading…
Reference in New Issue
Block a user