summaryrefslogtreecommitdiffstats
path: root/src/boot/efi/random-seed.h
blob: 6aa1cc52885b7dceea4d79c06f445574a14c599e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

#include <efi.h>
#include <errno.h>
#include <uchar.h>

typedef enum RandomSeedMode {
        RANDOM_SEED_OFF,
        RANDOM_SEED_WITH_SYSTEM_TOKEN,
        RANDOM_SEED_ALWAYS,
        _RANDOM_SEED_MODE_MAX,
        _RANDOM_SEED_MODE_INVALID = -EINVAL,
} RandomSeedMode;

static const char16_t * const random_seed_modes_table[_RANDOM_SEED_MODE_MAX] = {
        [RANDOM_SEED_OFF]               = L"off",
        [RANDOM_SEED_WITH_SYSTEM_TOKEN] = L"with-system-token",
        [RANDOM_SEED_ALWAYS]            = L"always",
};

EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode);