You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.2 KiB
69 lines
2.2 KiB
4 years ago
|
/** @file
|
||
|
Internal include file for BaseCryptLib.
|
||
|
|
||
|
Copyright (c) 2010 - 2017, Intel Corporation. All rights reserved.<BR>
|
||
|
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 __INTERNAL_CRYPT_LIB_H__
|
||
|
#define __INTERNAL_CRYPT_LIB_H__
|
||
|
|
||
|
#undef _WIN32
|
||
|
#undef _WIN64
|
||
|
|
||
|
#include <Library/BaseLib.h>
|
||
|
#include <Library/BaseMemoryLib.h>
|
||
|
#include <Library/MemoryAllocationLib.h>
|
||
|
#include <Library/DebugLib.h>
|
||
|
#include <Library/BaseCryptLib.h>
|
||
|
|
||
|
#include "CrtLibSupport.h"
|
||
|
|
||
|
#include <openssl/opensslv.h>
|
||
|
|
||
|
#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||
|
#define OBJ_get0_data(o) ((o)->data)
|
||
|
#define OBJ_length(o) ((o)->length)
|
||
|
#endif
|
||
|
|
||
|
/**
|
||
|
Check input P7Data is a wrapped ContentInfo structure or not. If not construct
|
||
|
a new structure to wrap P7Data.
|
||
|
|
||
|
Caution: This function may receive untrusted input.
|
||
|
UEFI Authenticated Variable is external input, so this function will do basic
|
||
|
check for PKCS#7 data structure.
|
||
|
|
||
|
@param[in] P7Data Pointer to the PKCS#7 message to verify.
|
||
|
@param[in] P7Length Length of the PKCS#7 message in bytes.
|
||
|
@param[out] WrapFlag If TRUE P7Data is a ContentInfo structure, otherwise
|
||
|
return FALSE.
|
||
|
@param[out] WrapData If return status of this function is TRUE:
|
||
|
1) when WrapFlag is TRUE, pointer to P7Data.
|
||
|
2) when WrapFlag is FALSE, pointer to a new ContentInfo
|
||
|
structure. It's caller's responsibility to free this
|
||
|
buffer.
|
||
|
@param[out] WrapDataSize Length of ContentInfo structure in bytes.
|
||
|
|
||
|
@retval TRUE The operation is finished successfully.
|
||
|
@retval FALSE The operation is failed due to lack of resources.
|
||
|
|
||
|
**/
|
||
|
BOOLEAN
|
||
|
WrapPkcs7Data (
|
||
|
IN CONST UINT8 *P7Data,
|
||
|
IN UINTN P7Length,
|
||
|
OUT BOOLEAN *WrapFlag,
|
||
|
OUT UINT8 **WrapData,
|
||
|
OUT UINTN *WrapDataSize
|
||
|
);
|
||
|
|
||
|
#endif
|