mirror of
https://github.com/acidanthera/OpenCorePkg.git
synced 2025-12-08 19:25:01 +00:00
82 lines
2.2 KiB
C
82 lines
2.2 KiB
C
/** @file
|
|
Copyright (C) 2019, Download-Fritz. All rights reserved.
|
|
|
|
This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
**/
|
|
|
|
#ifndef LIB_DER_IMG4_H
|
|
#define LIB_DER_IMG4_H
|
|
|
|
#include "libDER/libDER.h"
|
|
#include "libDERImg4_config.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef enum {
|
|
DR_SecurityError = -1
|
|
} DERImg4Return;
|
|
|
|
typedef struct {
|
|
uint64_t ecid;
|
|
uint32_t boardId;
|
|
uint32_t chipId;
|
|
uint32_t certificateEpoch;
|
|
uint32_t securityDomain;
|
|
bool productionStatus;
|
|
bool securityMode;
|
|
bool effectiveProductionStatus;
|
|
bool effectiveSecurityMode;
|
|
bool internalUseOnlyUnit;
|
|
bool enableKeys;
|
|
uint32_t xugs;
|
|
uint32_t allowMixNMatch;
|
|
} DERImg4Environment;
|
|
|
|
typedef struct {
|
|
DERImg4Environment environment;
|
|
bool hasEcid;
|
|
bool hasEffectiveProductionStatus;
|
|
bool hasEffectiveSecurityMode;
|
|
bool hasXugs;
|
|
size_t imageDigestSize;
|
|
uint8_t imageDigest[DER_IMG4_MAX_DIGEST_SIZE];
|
|
} DERImg4ManifestInfo;
|
|
|
|
/**
|
|
Verify and parse the IMG4 Manifest in ManBuffer and output its information.
|
|
On success, the Manifest is guaranteed to be digitally signed with the
|
|
platform-provided DERImg4RootCertificate.
|
|
|
|
@param[out] ManInfo Output Manifest information structure.
|
|
@param[in] ManifestBuffer Buffer containing the Manifest data.
|
|
@param[in] ManifestSize Size, in bytes, of ManBuffer.
|
|
@param[in] ObjType The object type to inspect.
|
|
|
|
@retval DR_Success ManBuffer contains a valid, signed IMG4 Manifest and its
|
|
information has been returned into ManInfo.
|
|
@retval other An error has occured.
|
|
|
|
**/
|
|
DERReturn
|
|
DERImg4ParseManifest (
|
|
DERImg4ManifestInfo *ManInfo,
|
|
const void *ManifestBuffer,
|
|
size_t ManifestSize,
|
|
uint32_t ObjType
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // LIB_DER_IMG4_H
|