OpenCore
1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OpenCoreVault.c
Go to the documentation of this file.
1
15
#include <
Library/OcMainLib.h
>
16
17
typedef
struct
{
18
OC_RSA_PUBLIC_KEY_HDR
Hdr
;
19
UINT64 Data[(2 * (2048 /
OC_CHAR_BIT
)) /
sizeof
(UINT64)];
20
}
OC_RSA_PUBLIC_KEY_2048
;
21
22
typedef
struct
{
23
CHAR8 StartMagic[16];
24
OC_RSA_PUBLIC_KEY_2048
VaultKey
;
25
CHAR8 EndMagic[16];
26
}
OC_BUILTIN_VAULT_KEY
;
27
28
BASE_ALIGNAS (16)
29
STATIC
30
OC_BUILTIN_VAULT_KEY
31
mOpenCoreVaultKey
= {
32
.
StartMagic
= {
'='
,
'B'
,
'E'
,
'G'
,
'I'
,
'N'
,
' '
,
'O'
,
'C'
,
' '
,
'V'
,
'A'
,
'U'
,
'L'
,
'T'
,
'='
},
33
.EndMagic = {
'='
,
'='
,
'E'
,
'N'
,
'D'
,
' '
,
'O'
,
'C'
,
' '
,
'V'
,
'A'
,
'U'
,
'L'
,
'T'
,
'='
,
'='
}
34
};
35
36
OC_RSA_PUBLIC_KEY
*
37
OcGetVaultKey
(
38
VOID
39
)
40
{
41
UINT32 Index;
42
BOOLEAN AllZero;
43
44
STATIC_ASSERT
(
45
sizeof
(
OC_RSA_PUBLIC_KEY_2048
) == 528,
46
"sizeof(OC_RSA_PUBLIC_KEY_2048)"
47
);
48
STATIC_ASSERT
(
49
sizeof
(
OC_BUILTIN_VAULT_KEY
) ==
sizeof
(
OC_RSA_PUBLIC_KEY_2048
) + 32,
50
"sizeof(OC_BUILTIN_VAULT_KEY)"
51
);
52
53
//
54
// TODO: Perhaps try to get the key from firmware too?
55
//
56
57
AllZero = TRUE;
58
for
(Index = 0; Index <
sizeof
(
OC_RSA_PUBLIC_KEY
); ++Index) {
59
if
(((UINT8 *)&
mOpenCoreVaultKey
.
VaultKey
)[Index] != 0) {
60
AllZero = FALSE;
61
break
;
62
}
63
}
64
65
if
(!AllZero) {
66
return
(
OC_RSA_PUBLIC_KEY
*)&
mOpenCoreVaultKey
.
VaultKey
;
67
}
68
69
return
NULL;
70
}
Hdr
SMBIOS_STRUCTURE Hdr
Definition
AppleSmBios.h:51
STATIC_ASSERT
STATIC_ASSERT(BYTES_PER_PIXEL==sizeof(UINT32), "Non 4-byte pixels are unsupported!")
OcMainLib.h
OC_CHAR_BIT
#define OC_CHAR_BIT
Definition
OcMiscLib.h:25
mOpenCoreVaultKey
STATIC OC_BUILTIN_VAULT_KEY mOpenCoreVaultKey
Definition
OpenCoreVault.c:31
OcGetVaultKey
OC_RSA_PUBLIC_KEY * OcGetVaultKey(VOID)
Definition
OpenCoreVault.c:37
OC_BUILTIN_VAULT_KEY
Definition
OpenCoreVault.c:22
OC_BUILTIN_VAULT_KEY::StartMagic
CHAR8 StartMagic[16]
Definition
OpenCoreVault.c:23
OC_BUILTIN_VAULT_KEY::VaultKey
OC_RSA_PUBLIC_KEY_2048 VaultKey
Definition
OpenCoreVault.c:24
OC_RSA_PUBLIC_KEY_2048
Definition
OcAppleKeysLib.c:25
OC_RSA_PUBLIC_KEY_HDR
Definition
OcCryptoLib.h:152
OC_RSA_PUBLIC_KEY
Definition
OcCryptoLib.h:172
Library
OcMainLib
OpenCoreVault.c
Generated by
1.12.0