]> git.proxmox.com Git - efi-boot-shim.git/blame - include/variables.h
Merge signature.h into efiauthenticated.h and guid.h
[efi-boot-shim.git] / include / variables.h
CommitLineData
d359712e
MG
1#include <efiauthenticated.h>
2
3#include <sha256.h> /* for SHA256_DIGEST_SIZE */
4
5#define certlist_for_each_certentry(cl, cl_init, s, s_init) \
6 for (cl = (EFI_SIGNATURE_LIST *)(cl_init), s = (s_init); \
7 s > 0 && s >= cl->SignatureListSize; \
8 s -= cl->SignatureListSize, \
9 cl = (EFI_SIGNATURE_LIST *) ((UINT8 *)cl + cl->SignatureListSize))
10
11/*
12 * Warning: this assumes (cl)->SignatureHeaderSize is zero. It is for all
13 * the signatures we process (X509, RSA2048, SHA256)
14 */
15#define certentry_for_each_cert(c, cl) \
16 for (c = (EFI_SIGNATURE_DATA *)((UINT8 *) (cl) + sizeof(EFI_SIGNATURE_LIST) + (cl)->SignatureHeaderSize); \
17 (UINT8 *)c < ((UINT8 *)(cl)) + (cl)->SignatureListSize; \
18 c = (EFI_SIGNATURE_DATA *)((UINT8 *)c + (cl)->SignatureSize))
19
20EFI_STATUS
21CreatePkX509SignatureList (
22 IN UINT8 *X509Data,
23 IN UINTN X509DataSize,
24 IN EFI_GUID owner,
25 OUT EFI_SIGNATURE_LIST **PkCert
26 );
27EFI_STATUS
28CreateTimeBasedPayload (
29 IN OUT UINTN *DataSize,
30 IN OUT UINT8 **Data
31 );
32EFI_STATUS
33SetSecureVariable(CHAR16 *var, UINT8 *Data, UINTN len, EFI_GUID owner, UINT32 options, int createtimebased);
34EFI_STATUS
35get_variable(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner);
36EFI_STATUS
37get_variable_attr(CHAR16 *var, UINT8 **data, UINTN *len, EFI_GUID owner,
38 UINT32 *attributes);
39EFI_STATUS
40find_in_esl(UINT8 *Data, UINTN DataSize, UINT8 *key, UINTN keylen);
41EFI_STATUS
42find_in_variable_esl(CHAR16* var, EFI_GUID owner, UINT8 *key, UINTN keylen);
43
44#define EFI_OS_INDICATIONS_BOOT_TO_FW_UI 0x0000000000000001
45
46UINT64
47GetOSIndications(void);
48EFI_STATUS
49SETOSIndicationsAndReboot(UINT64 indications);
50int
51variable_is_secureboot(void);
52int
53variable_is_setupmode(void);
54EFI_STATUS
55variable_enroll_hash(CHAR16 *var, EFI_GUID owner,
56 UINT8 hash[SHA256_DIGEST_SIZE]);
57EFI_STATUS
58variable_create_esl(void *cert, int cert_len, EFI_GUID *type, EFI_GUID *owner,
59 void **out, int *outlen);