recover_local_secret.c 917 Bytes
Newer Older
Caleb C. Sander's avatar
Caleb C. Sander committed
1
2
3
#include "recover_local_secret.h"

#include <assert.h>
Adam Blank's avatar
Adam Blank committed
4
#include <stdio.h>
Caleb C. Sander's avatar
Caleb C. Sander committed
5
#include <stdlib.h>
Adam Blank's avatar
Adam Blank committed
6
7
8

#include "util.h"

Caleb C. Sander's avatar
Caleb C. Sander committed
9
10
11
const size_t MIN_CHOICE = 'A' - 1;
const size_t MAX_CHOICE = 'Z' + 1;
const size_t SECRET_LENGTH = 5;
Adam Blank's avatar
Adam Blank committed
12

Caleb C. Sander's avatar
Caleb C. Sander committed
13
static inline page_t *init_pages(void) {
Caleb C. Sander's avatar
Caleb C. Sander committed
14
15
16
    page_t *pages = calloc(UINT8_MAX + 1, PAGE_SIZE);
    assert(pages != NULL);
    return pages;
Adam Blank's avatar
Adam Blank committed
17
18
19
20
21
22
23
24
25
26
27
}

static inline void flush_all_pages(page_t *pages) {
    // TODO: Copy me from the previous stage
}

static inline size_t guess_accessed_page(page_t *pages) {
    // TODO: Copy me from the previous stage
    return 0;
}

Caleb C. Sander's avatar
Caleb C. Sander committed
28
29
static inline void do_access(page_t *pages, size_t secret_index) {
    // TODO: Implement me using force_read().  I am a very short function.
Adam Blank's avatar
Adam Blank committed
30
31
32
}

int main() {
33
    page_t *pages = init_pages();
Adam Blank's avatar
Adam Blank committed
34

Caleb C. Sander's avatar
Caleb C. Sander committed
35
36
    /* TODO: Copy me from the previous stage and edit me
     * to loop over SECRET_LENGTH characters. */
Adam Blank's avatar
Adam Blank committed
37
38

    printf("\n");
39
    free(pages);
Adam Blank's avatar
Adam Blank committed
40
}