CryptoPkg/BaseCryptLib: Add X509ConstructCertificateStackV().

https://bugzilla.tianocore.org/show_bug.cgi?id=2420

Add X509ConstructCertificateStackV() to BaseCryptLib that is
identical in behavior to X509ConstructCertificateStack(), but
it takes a VA_LIST parameter for the variable argument list.

The VA_LIST form of this function is required for BaseCryptLib
functions to be wrapped in a Protocol/PPI.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
Michael D Kinney
2019-11-20 17:14:16 -08:00
committed by mergify[bot]
parent 322ac05f8b
commit 668621362f
4 changed files with 128 additions and 12 deletions

View File

@@ -2,7 +2,7 @@
X.509 Certificate Handler Wrapper Implementation which does not provide
real capabilities.
Copyright (c) 2012 - 2018, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2012 - 2020, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -33,6 +33,36 @@ X509ConstructCertificate (
return FALSE;
}
/**
Construct a X509 stack object from a list of DER-encoded certificate data.
If X509Stack is NULL, then return FALSE.
If this interface is not supported, then return FALSE.
@param[in, out] X509Stack On input, pointer to an existing or NULL X509 stack object.
On output, pointer to the X509 stack object with new
inserted X509 certificate.
@param[in] Args VA_LIST marker for the variable argument list.
A list of DER-encoded single certificate data followed
by certificate size. A NULL terminates the list. The
pairs are the arguments to X509ConstructCertificate().
@retval TRUE The X509 stack construction succeeded.
@retval FALSE The construction operation failed.
@retval FALSE This interface is not supported.
**/
BOOLEAN
EFIAPI
X509ConstructCertificateStackV (
IN OUT UINT8 **X509Stack,
IN VA_LIST Args
)
{
ASSERT (FALSE);
return FALSE;
}
/**
Construct a X509 stack object from a list of DER-encoded certificate data.