Revoke List

From PS3 Developer wiki
Revision as of 16:57, 6 December 2011 by Naehrwert (talk | contribs)
Jump to: navigation, search

Location: CoreOS package 3.56+ . (for decryption you also need keys ofc, its same as spp/pkg/any metadata decryption)

Contains includes/excludes to be checked by lv1/hypervisor.
So this is basically a list of additional checks for the hv.
example: if (sce type == 4 & authid = x) then do what flags tell, related with version etc.

See also:
keys
SELF_File_Format_and_Decryption
Authentication_IDs


Examples

3.56 prog.srvk

00000000  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000200  00 00 00 04 00 00 00 01 00 03 00 56 00 00 00 00  ...�...�.�.V....
00000210  00 00 00 06 00 00 00 00 00 00 00 00 00 00 00 00  ...�............ 6 contents
00000220  00 00 00 03 00 00 00 01 00 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. lv2
00000230  00 00 00 00 00 00 00 02 FF FF FF FF FF FF FF FF  .......�ÿÿÿÿÿÿÿÿ
00000240  00 00 00 04 00 00 00 01 00 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. vsh
00000250  10 70 00 05 FF 00 00 01 FF FF FF FF FF FF FF FF  �p.�ÿ..�ÿÿÿÿÿÿÿÿ
00000260  00 00 00 04 00 00 00 01 00 03 00 56 00 00 00 00  ...�...�.�.V.... 
00000270  10 70 00 05 FE 00 00 01 FF FF FF FF FF FF FF FF  �p.�þ..�ÿÿÿÿÿÿÿÿ
00000280  00 00 00 04 00 00 00 01 00 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. sys_init_osd
00000290  10 70 00 05 FD 00 00 01 FF FF FF FF FF FF FF FF  �p.�ý..�ÿÿÿÿÿÿÿÿ
000002A0  00 00 00 04 00 00 00 01 00 03 00 56 00 00 00 00  ...�...�.�.V.... e.g. sys_audio
000002B0  10 70 00 05 FC 00 00 01 FF FF FF FF FF FF FF FF  �p.�ü..�ÿÿÿÿÿÿÿÿ
000002C0  00 00 00 04 00 00 00 03 00 01 00 00 00 00 00 00  ...�...�.�......
000002D0  10 70 00 04 00 00 00 01 FF FF FF FF FF FF FF FF  �p.�...�ÿÿÿÿÿÿÿÿ


Struct

typedef header {
 uint32_t type;       /* header type
                       * 3 prg rvk
                       * 4 pkg rvk */
 uint32_t unk_1;      /* Unknown. */
 union {
  struct prg {
   uint64_t version;  /* Version. */
  };
  struct pkg {
   uint64_t unk_0;    /* Unknown. */
  };
 };
 uint32_t entcnt;     /* Number of entries. */
 uint8_t padding[12]; /* Padding. */
} __attribute__((packed)) rvk_HEADER;
typedef info {
 uint32_t self_type;             /* app type
                                  * 1 level0,
                                  * 2 level1,
                                  * 3 level2,
                                  * 4 application,
                                  * 5 isolated SPU module,
                                  * 6 secure loader,
                                  * 7 unknown, handled by appldr,
                                  * 8 NPDRM app */
 uint64_t flags;                 /* enforce/block/ignore/whatever? */
 uint64_t version;               /* app version */
 uint64_t authid;                /* auth id */
 uint64_t unknown1;              /* enforce/block/ignore/whatever? */
} __attribute__((packed)) rvk_INFO;

3.56 pkg.srvk

00000000  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000200  00 00 00 03 00 00 00 02 00 01 00 00 00 00 00 00  ...�...�.�......
00000210  00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00  ...�............ 1 content
00000220  00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 02  ...�.......�...�
00000230  00 00 00 08 00 05 00 00 00 00 00 00 00 00 00 00  ...�.�..........