summaryrefslogtreecommitdiff
path: root/patterns/tokenstore.pat
diff options
context:
space:
mode:
Diffstat (limited to 'patterns/tokenstore.pat')
-rw-r--r--patterns/tokenstore.pat41
1 files changed, 41 insertions, 0 deletions
diff --git a/patterns/tokenstore.pat b/patterns/tokenstore.pat
new file mode 100644
index 0000000..2d62fc2
--- /dev/null
+++ b/patterns/tokenstore.pat
@@ -0,0 +1,41 @@
+struct EntryContent {
+ u8 header[32];
+ u32 data_len;
+ u8 sha256[32];
+ u8 data[data_len];
+ u8 footer[32];
+};
+
+struct Metadata {
+ u32 entry_off;
+ u32 populated;
+ u32 content_off;
+ u32 content_len;
+ u32 alloc_len;
+ char16 name[65];
+ char16 ext[4];
+
+ if (populated == 1) {
+ EntryContent content @ content_off;
+ }
+};
+
+struct Block {
+ u32 self_off;
+ u32 next_off;
+ Metadata metadata[103];
+ padding[16384 - sizeof(self_off) - sizeof(next_off) - sizeof(metadata)];
+ u8 sha256[32];
+
+ if (next_off != 0) {
+ Block next @ next_off;
+ }
+};
+
+struct FileHeader {
+ u32 version;
+ u8 sha256[32];
+ Block block;
+};
+
+FileHeader fileheader @ 0x00; \ No newline at end of file