Advertisement
Guest User

PS.c

a guest
Aug 17th, 2014
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <ctr/types.h>
  5. #include <ctr/PS.h>
  6. #include <ctr/svc.h>
  7. #include <ctr/srv.h>
  8. Handle psHandle = 0;
  9. Result PS_Init() {
  10.     return srv_getServiceHandle(NULL, &psHandle, "ps:ps");
  11. }
  12. void PS_Exit() {
  13.     if(psHandle)
  14.         svc_closeHandle(psHandle);
  15. }
  16. Result PS_EncryptDecryptAes(PS_ALGORITHM_TYPE algorithm, u8 key_type, u32 *IV, u32 *src, u32 size, u32 *dest) {
  17.     u32 *cmdbuf = getThreadCommandBuffer();
  18.     cmdbuf[0] = 0x00040204;     //Request Header Code
  19.     cmdbuf[1] = size;           //Size
  20.     cmdbuf[2] = 0;              //Unused
  21.     cmdbuf[3] = IV[0];
  22.     cmdbuf[4] = IV[1];     
  23.     cmdbuf[5] = IV[2];
  24.     cmdbuf[6] = IV[3];          //IV / CTR
  25.     cmdbuf[7] = (u8)algorithm;  //Algorythm type
  26.     cmdbuf[8] = (u8)key_type;   //Key type
  27.     cmdbuf[9] = (size << 4) | 10;
  28.     cmdbuf[10] = (u32)src;      //Source Pointer
  29.     cmdbuf[11] = (size << 4) | 12;
  30.     cmdbuf[12] = (u32)dest;     //Destination Pointer
  31.     Result ret = 0;
  32.     if((ret = svc_sendSyncRequest(psHandle))) return ret;
  33.     return cmdbuf[1];
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement