summaryrefslogtreecommitdiff
path: root/CryptoPkg/Library/BaseCryptLibMbedTls/Pk
AgeCommit message (Collapse)AuthorFilesLines
2026-08-28CryptoPkg: Add Pkcs7Decrypt APIDoug Cook4-7/+914
Add support for a Pkcs7Decrypt API, mirroring the Pkcs7Encrypt API. I expect that the primary use of Pkcs7Decrypt would be for testing the Pkcs7Encrypt API, but maybe somebody will need it for real work someday. Signed-off-by: Doug Cook <dcook@microsoft.com> Committed-by: Doug Flick <dougflick@microsoft.com>
2026-08-28CryptoPkg: Add Pkcs7Encrypt for BaseCryptLibMbedTlsDoug Cook1-0/+1166
Add CryptPkcs7Encrypt.c with an MbedTLS-based Pkcs7Encrypt() implementation. Update BaseCryptLibMbedTls INF files (BaseCryptLib.inf, SmmCryptLib.inf, UnitTestHostBaseCryptLib.inf) to include the new source file, and update CryptoPkg/Readme.md accordingly. Signed-off-by: Doug Flick <dougflick@microsoft.com>
2026-08-28CryptoPkg: Add Pkcs7Encrypt OpenSSL and null implementationsDoug Flick1-0/+44
Add CryptPkcs7Encrypt.c with OpenSSL-based Pkcs7Encrypt() implementation using PKCS7_encrypt API. Add null stub implementations for library instances that do not support this function (PEI, Runtime, SEC, MbedTLS, Null). Update all BaseCryptLib INF files to include the new source files. Signed-off-by: Doug Flick <dougflick@microsoft.com>
2026-08-28CryptoPkg: Merge CryptoPkgMbedTls into CryptoPkg DSC fileLonghaox Lee3-0/+347
Merge CryptoPkgMbedTls into CryptoPkg DSC. Null instances for SlhDsa, MlDsa, EdDsa since mbebtls not support. Fixing build error for mbedtls BaseCryptLib. Signed-off-by: Longhaox Lee <longhaox.lee@intel.com>
2026-07-14CryptoPkg/BaseCryptLib: Add ML-DSA SupportMichael G.A. Holland3-0/+347
Created ML-DSA API functions to configure public and private keys for ML-DSA algorithm. This will allow users to sign and verify with ML-DSA. Unit tests were add to confirm operation of the API. Signed-off-by: Michael G.A. Holland <michael.holland@intel.com>
2026-07-01CryptoPkg/BaseCryptLib: Add ED448 verification and signature fcnsMichael G.A. Holland3-0/+359
Implemented signature and verification functions for ED448; Updated documentation and unit tests to cover new verification functions Signed-off-by: Michael G.A. Holland <michael.holland@intel.com>
2026-04-07CryptoPkg: Add digest-based RSA-PSS sign and verify APIsBaraneedharan Anbazhagan3-0/+231
Add RsaPssSignDigest() and RsaPssVerifyDigest() to BaseCryptLib for signing/verifying precomputed digests. Provide OpenSSL/MbedTLS/Null implementations, expose via EDKII_CRYPTO_PROTOCOL (v24), and add PCD controls for independent service enabling. Include unit tests. Signed-off-by: Anbazhagan Baraneedharan <anbazhagan@hp.com>
2026-02-24CryptoPkg: add/modify EC interfaces for TPM TCG libraryLevi Yun1-0/+114
This is prepartion patch to build TCG TPM v2.0 Reference Library[0]. TCG TPM v2.0 implementation[0] uses below additional interfaces: - EC_GROUP_new_curve_GFp() - EC_GROUP_set_generator() - EC_POINTs_mul() and require EC_POINT_mul()'s n arguments (Scalar multiplier for the generator G) but EDKII's EcPointMul() interface always fix this value as NULL. For TCG TPM v2.0 implementation, add new interfaces. Link: https://github.com/TrustedComputingGroup/TPM [0] Signed-off-by: Yeoreum Yun <yeoreum.yun@arm.com>
2026-02-24CryptoPkg: Replace include guards with #pragma onceMichael Kubacki1-4/+1
Replace traditional `#ifndef`/`#define`/`#endif` include guards with `#pragma` once. `#pragma once` is a widely supported preprocessor directive that prevents header files from being included multiple times. It is supported by all toolchains used to build edk2: GCC, Clang/LLVM, and MSVC. Does not include updates to OpenSSL generated header files checked into the repo. Those in `CryptoPkg\Library\OpensslLib\OpensslGen\`. Compared to macro-based include guards, `#pragma once`: - Eliminates the risk of macro name collisions or copy/paste errors where two headers inadvertently use the same guard macro. - Eliminate inconsistency in the way include guard macros are named (e.g., some files use `__FILE_H__`, others use `FILE_H_`, etc.). - Reduces boilerplate (three lines replaced by one). - Avoids polluting the macro namespace with guard symbols. - Can improve build times as the preprocessor can skip re-opening the file entirely, rather than re-reading it to find the matching `#endif` ("multiple-include optimization"). - Note that some compilers may already optimize traditional include guards, by recognzining the idiomatic pattern. This change is made acknowledging that overall portability of the code will technically be reduced, as `#pragma once` is not part of the C/C++ standards. However, this is considered acceptable given: 1. edk2 already defines a subset of supported compilers in BaseTools/Conf/tools_def.template, all of which have supported `#pragma once` for over two decades. 2. There have been concerns raised to the project about inconsistent include guard naming and potential macro collisions. Approximate compiler support dates: - MSVC: Supported since Visual C++ 4.2 (1996) - GCC: Supported since 3.4 (2004) (http://gnu.ist.utl.pt/software/gcc/gcc-3.4/changes.html) - Clang (LLVM based): Since initial release in 2007 Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
2025-11-24CryptoPkg: MbedTls not support content data signature.Longhaox Lee1-72/+1
Pkcs7GetAttachedContent function should always return false. REF: https://github.com/tianocore/edk2/issues/11605 Signed-off-by: Longhaox Lee <longhaox.lee@intel.com>
2025-11-24CryptoPkg: EDK2 code update for Mbedtls 3.6.5.Longhaox Lee1-0/+1
1. mbedtls_config.h header sync with 3.6.5 . 2. Implement mbedtls_ms_time() Get time in milliseconds. 3. Covert some CRT library to EDK Implement and CRT defined. 4. Added and remove file to sync. REF: https://github.com/tianocore/edk2/issues/11605 Signed-off-by: Longhaox Lee <longhaox.lee@intel.com>
2025-11-22CryptoPkg: Fix non-idiomatic endless loopMike Beaton1-2/+1
This was found building ArmVirtQemu using CLANGDWARF with unused-but-set-variable warning enabled. Fixes: https://github.com/tianocore/edk2/commit/40fa5cf2995e9de6c9853945428f407f208be1e1 Signed-off-by: Mike Beaton <mjsbeaton@gmail.com>
2025-09-22CryptoPkg/BaseCryptLibMbedTls: Fix wrong return in X509GetIssuerNameÁgatha Freitas1-4/+4
Signed-off-by: Ágatha Freitas <htafreit@gmail.com>
2025-09-22CryptoPkg/BaseCryptLibMbedTls: Fix DateTime conversion from char to intÁgatha Freitas1-7/+7
Signed-off-by: Ágatha Freitas <htafreit@gmail.com>
2025-05-27SPDM related fix based on real hardware testing - CryptoPkgLiqi Qi2-2/+11
Implemented SPDM functionality on real hardware, and here is the bug fix in CryptoPkg. The changes are ported from DMTF/libspdm@425345b. Signed-off-by: liqiqi@microsoft.com <liqiqi@microsoft.com>
2024-08-31CryptoPkg/BaseCryptLibMbedTls: Fix uninitialized variable errorsArd Biesheuvel2-8/+8
Clang complains about a couple of variables potentially being uninitialized, and those complaints seem to be valid. Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2024-06-26CryptoPkg: Fix wrong comment for CryptoPkgWenxing Hou3-19/+18
Fix the wrong comment. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com>
2024-05-27CryptoPkg: Add ImageTimestampVerify based on MbedtlsWenxing Hou1-0/+381
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 Timestamp Countersignature Verification implementaion based on Mbedtls. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2024-05-27CryptoPkg: Add AuthenticodeVerify based on MbedtlsWenxing Hou1-0/+214
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 Implement AuthenticodeVerify based on Mbedtls. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2024-05-27CryptoPkg: Add more RSA related functions based on MbedtlsWenxing Hou3-0/+770
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 Implement more RSA functions such as RsaPkcs1Sign based Mbedlts. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2024-05-27CryptoPkg: Add Pkcs5 functions based on MbedtlsWenxing Hou1-0/+100
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 PBKDF2 Key Derivation Function Wrapper Implementation over MbedTLS. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2024-05-27CryptoPkg: Add Pkcs7 related functions based on MbedtlsWenxing Hou5-12/+2808
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 Because the current Mbedlts pkcs7 library doesn't support authenticatedAttributes and only support 0 or 1 certificates in Signed data, the patch implement Pkcs7 by low Mbedtls Api. And the implementation has pass unit_tes and integration test. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2024-05-27CryptoPkg: Add X509 functions based on MbedtlsWenxing Hou1-0/+1940
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 X.509 Certificate Handler Wrapper Implementation over MbedTLS. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
2024-04-07CryptoPkg/BaseCryptLib: add additional RSAES-OAEP crypto functionsChris Ruffin1-0/+129
Expand the availability of the RSAES-OAEP crypto capability in BaseCryptLib. Applications using RSA crypto functions directly from OpensslLib can transition to BaseCryptLib to take advantage of the shared crypto feature in CryptoDxe. Pkcs1v2Decrypt(): decryption using DER-encoded private key RsaOaepEncrypt(): encryption using RSA contexts RsaOaepDecrypt(): decryption using RSA contexts Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=4732 Gihub PR: https://github.com/tianocore/edk2/pull/5473 Signed-off-by: Chris Ruffin <v-chruffin@microsoft.com> Cc: Chris Ruffin <cruffin@millcore.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Cc: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com>
2024-04-01CryptoPkg: Remove interdependence for RsaPssVerifyHou, Wenxing1-63/+11
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4742 Remove interdependence for RsaPssVerify, only use original mbedtls API. Because APIs such as Sha512Init may be closed by the platform PCD. And this patch optimize the hash flow. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com>
2024-04-01CryptoPkg: Update OPTIONAL location for BaseCryptLibMbedTlsHou, Wenxing2-8/+4
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=4740 There is a wrong usage for OPTIONAL. Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com>
2023-10-12CryptoPkg: Add Null functions for building passWenxing Hou13-0/+2212
Add Null functions to build. These feature are not supported now. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Cc: Xiaoyu Lu <xiaoyu1.lu@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com>
2023-10-12CryptoPkg: Add RSA functions based on MbedtlsWenxing Hou6-0/+796
Add RSA APIs. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4177 Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Yi Li <yi1.li@intel.com> Cc: Xiaoyu Lu <xiaoyu1.lu@intel.com> Cc: Guomin Jiang <guomin.jiang@intel.com> Signed-off-by: Wenxing Hou <wenxing.hou@intel.com> Reviewed-by: Yi Li <yi1.li@intel.com>