Michael D Kinney
c8f46130f8
CryptoPkg: Change OPTIONAL keyword usage style
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3760
Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params.
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael Kubacki <michael.kubacki@microsoft.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2021-12-07 17:24:28 +00:00
Bob Morgan
f22feb0e3b
CryptoPkg/BaseCryptLib: Eliminate extra buffer copy in Pkcs7Verify()
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3617
Create a read-only openSSL BIO wrapper for the existing input
buffer passed to Pkcs7Verify() instead of copying the buffer
into an empty writable BIO which causes memory allocations
within openSSL.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Bob Morgan <bobm@nvidia.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
2021-10-13 01:45:18 +00:00
Stewart, Chris (SW Architect) via groups.io
7b4a99be8a
CryptoPkg: BaseCryptLib fix incorrect param order
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3550
Function ConvertAsn1TimeToEfiTime initializes timestamp to zeroes with
SetMem, but the actual parameters are out of order. The result is
the SetMem operation has no effect. The fix is to put the actual
parameters in the correct order.
Signed-off-by: Chris Stewart <chris.stewart@hp.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
2021-08-24 00:35:06 +00:00
Christopher Zurcher
147f34b56c
CryptoPkg/OpensslLib: Commit the auto-generated assembly files for X64
...
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2507
Adding the auto-generated assembly files for X64 architectures.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Mike Kinney <michael.d.kinney@intel.com >
Cc: Ard Biesheuvel <ardb@kernel.org >
Signed-off-by: Christopher Zurcher <christopher.zurcher@microsoft.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2021-07-26 07:30:11 +00:00
Christopher Zurcher
878a92a887
CryptoPkg/OpensslLib: Add native instruction support for X64
...
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2507
Adding OpensslLibX64.inf and modifying process_files.pl to process this
file and generate the necessary assembly files.
Adding OpensslLibX64Gcc.inf to allow building with GCC toolchain.
ApiHooks.c contains a stub function for a Windows API call.
uefi-asm.conf contains the limited assembly configurations for OpenSSL.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Mike Kinney <michael.d.kinney@intel.com >
Cc: Ard Biesheuvel <ardb@kernel.org >
Signed-off-by: Christopher Zurcher <christopher.zurcher@microsoft.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2021-07-26 07:30:11 +00:00
xueshengfeng
eba32695ee
CryptoPkg/BaseCryptLib: Enabled CryptSha512 for Smm/Runtime drivers
...
Intel Platform utility Syscfg/sysfwupdt will trigger SMI
to enter BIOS interface. then BIOS invoke EncodePassword
in SMM mode to check password.
it's need sha384(in CryptSha512.c) in SMM mode.
the origin SmmCryptLib.lib size is 1389KB,
after changed, the size is 1391KB.
the origin RuntimeCryptLib.lib size is 911KB,
after changed,the size is 913KB.
in SmmCryptLib.inf and RuntimeCryptLib.inf,
change CryptSha512NULL.c to CryptSha512.c.
https://bugzilla.tianocore.org/show_bug.cgi?id=3423
Signed-off-by: xueshengfeng <xueshengfeng@byosoft.com.cn >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2021-06-24 02:46:14 +00:00
Agrawal, Sachin
20ca528828
CryptoPkg: BaseCryptLib: Update Salt length requirement for RSA-PSS scheme.
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3455
Enforce salt length to be equal to digest length for RSA-PSS
encoding scheme.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2021-06-23 15:19:44 +00:00
Sergei Dmitrouk
15ee7b7689
CryptoPkg/BaseCryptLib: Fix possible uninitialized use
...
`Result` can be used uninitialized in both functions after following
either first or second `goto` statement.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Sergei Dmitrouk <sergei@posteo.net >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2021-05-19 01:39:49 +00:00
Sachin Agrawal
22ac5cc9d9
CryptoPkg: BaseCryptLib: Add RSA PSS verify support
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3314
This patch uses Openssl's EVP API's to perform RSASSA-PSS verification
of a binary blob.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Sachin Agrawal <sachin.agrawal@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
2021-05-14 03:35:33 +00:00
Michael D Kinney
d0bf83e1cc
CryptoPkg/Library/Include: Allow CPU specific defines to be predefined
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3308
The EDK II Build Specifications do not restrict the set of
CPU architectures that can be supported. Remove places in
the EDK II that assume a fixed set of CPU architectures.
Update SIXTY_FOUR_BIT and THIRTY_TWO_BIT defines in the
CryptoPkg to allow one of them to be predefined on the EDK II
build command line using /D flag or in DSC file [BuildOptions]
sections.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Andrew Fish <afish@apple.com >
Cc: Abner Chang <abner.chang@hpe.com >
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Abner Chang <abner.chang@hpe.com >
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2021-04-15 15:58:44 +00:00
Liu Wei
0ecdcb6142
CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1j
...
Update openssl from 1.1.1g to 1.1.1j. Current OpenSSL version
1.1.1g contains the vulnerabilities of CVE-2021-23841 and
CVE-2021-23840. The related vulnerable API EVP_DecryptUpdate
are used in drivers.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3266
Besides, the opensslconf.h automatically generated by process_files.pl.
Cc: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Liu Wei <weix.c.liu@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2021-03-23 05:37:56 +00:00
Kun Qin
21f984cede
CryptoPkg: BaseCryptLib: Fix buffer double free in CryptPkcs7VerifyEku
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2459
SignerCert is part of Pkcs7 instance when both have valid content. OpenSLL
PKCS7_free function will release the memory of SignerCert when applicable.
Freeing SignerCert with X509_free again might cause page fault if use-
after-free guard is enabled.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Kun Qin <kun.q@outlook.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2020-11-26 03:22:24 +00:00
Gao, Zhichao
e6a12a0fc8
CryptoPkg: Make the MD5 disable as default for security
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3021
Make the deprecated MD5 disable as default setting for
security.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
Message-Id: <20201112055558.2348-14-zhichao.gao@intel.com >
2020-11-17 19:26:50 +00:00
Jian J Wang
26442d11e6
CryptoPkg/BaseCryptLib: fix NULL dereference (CVE-2019-14584)
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1914
AuthenticodeVerify() calls OpenSSLs d2i_PKCS7() API to parse asn encoded
signed authenticode pkcs#7 data. when this successfully returns, a type
check is done by calling PKCS7_type_is_signed() and then
Pkcs7->d.sign->contents->type is used. It is possible to construct an asn1
blob that successfully decodes and have d2i_PKCS7() return a valid pointer
and have PKCS7_type_is_signed() also return success but have Pkcs7->d.sign
be a NULL pointer.
Looking at how PKCS7_verify() [inside of OpenSSL] implements checking for
pkcs7 structs it does the following:
- call PKCS7_type_is_signed()
- call PKCS7_get_detached()
Looking into how PKCS7_get_detatched() is implemented, it checks to see if
p7->d.sign is NULL or if p7->d.sign->contents->d.ptr is NULL.
As such, the fix is to do the same as OpenSSL after calling d2i_PKCS7().
- Add call to PKS7_get_detached() to existing error handling
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Signed-off-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
2020-10-21 06:32:46 +00:00
Matthew Carlson
694bfd6ff5
CryptoPkg: BaseCryptLib: Add unit tests (Host and Shell based)
...
This adds a new INF for BaseCryptLib suitable for
host based environments. It adds a host based unit test for
BaseCryptLib that can also be built as a shell based Unit Test.
In addition, this also adds a UnitTestHostCrtWrapper.c file, which provides
some of the functionality not provided by the default host based unit test
system that OpenSSL expects. This is used by UnitTestHostBaseCryptLib, a
version of the BaseCryptLib meant specifically for host based unit testing.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Signed-off-by: Matthew Carlson <matthewfcarlson@gmail.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
2020-10-18 00:49:58 +00:00
Wang, Jian J
52dbaaeace
CryptoPkg/BaseCryptLib: add crypto algorithms needed by variable protection
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2594
Crypto algorithms, hkdf-sha256/hmac-sha256/aes, are needed to verify
integrity of variable data, derive hmac and encryption keys, and
encrypt/decrypt varible. Replacing null version source code with real
implementations makes sure we can enable full functionalities of protected
variable later.
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Guomin Jiang <guomin.jiang@intel.com >
Cc: Nishant C Mistry <nishant.c.mistry@intel.com >
Signed-off-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com >
2020-09-29 05:58:58 +00:00
Matthew Carlson
b5701a4c7a
CryptoPkg: OpensslLib: Use RngLib to generate entropy in rand_pool
...
Ref: https://github.com/tianocore/edk2/pull/845
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1871
Changes OpenSSL to no longer depend on TimerLib and instead use RngLib.
This allows platforms to decide for themsevles what sort of entropy source
they provide to OpenSSL and TlsLib.
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com >
Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com >
Signed-off-by: Matthew Carlson <matthewfcarlson@gmail.com >
2020-09-18 02:19:21 +00:00
Abner Chang
be01087e07
CryptoPkg/Library: Remove the redundant build option
...
Remove the redundant build option for RISCV64 architecture.
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2848
Signed-off-by: Abner Chang <abner.chang@hpe.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Guomin Jiang <guomin.jiang@intel.com >
2020-08-12 04:25:48 +00:00
Guomin Jiang
8c30327deb
CryptoPkg/OpensslLib: Upgrade OpenSSL to 1.1.1g
...
Upgrade openssl to 1.1.1g. the directory have been reorganized,
openssl moved crypto/include/internal to include/crypto folder.
So we change directory to match the re-organization.
The dso_conf.h and opensslconf.h will generated in UNIX format,
change process_files.pl to covent the EOL automatically.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Tested-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-07-25 06:27:14 +00:00
Zhichao Gao
0f01cec52f
CryptoPkg/BaseCryptLib: Add MARCO to disable the deprecated SHA1
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1682
SHA1 is deprecated but it is required for compatible issue.
So add a MARCO for the platform to disable the usage of SHA1 for
security.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-06-29 05:25:55 +00:00
Zhichao Gao
acfd555795
CryptoPkg/BaseCryptLib: Add MARCO to disable the deprecated MD5
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1682
MD5 is deprecated but it is required for compatible issue.
So add a MARCO for the platform to disable the usage of MD5 for
security.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-06-29 05:25:55 +00:00
Zhichao Gao
b99917ce3e
CryptoPkg/opensslconf.h: Covert the file ending to dos format
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
Convert file ending of the crypto created openssl config file -
opensslconf.h from '\n' to '\r\n' to make align the line ending and
pass the patch check.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Liming Gao <liming.gao@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
c812d3209c
CryptoPkg/BaseCryptLib: Retire HMAC SHA1 algorithm
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
HMAC SHA1 is not secure any longer.
Remove the HMAC SHA1 support from edk2.
Change the HMAC SHA1 field name in EDKII_CRYPTO_PROTOCOL to indicate the
function is unsupported any longer.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
b6174e2d09
CryptoPkg/BaseCryptLib: Retire HMAC MD5 algorithm
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
HMAC MD5 is not secure any longer.
Remove the HMAC MD5 support from edk2.
Change the HMAC MD5 field name in EDKII_CRYPTO_PROTOCOL to indicate the
function is unsupported any longer.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
89db28b9c9
CryptoPkg/OpensslLib: Remove the Aes Ecb file in the OpensslLib
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
Add the unrequired aes_ecb files in process_files.pl and run it
thru perl.
It would remove the unrequired aes_ecb files from OpensslLib inf.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
80e28dcec8
CryptoPkg/BaseCryptLib: Retire Aes Ecb mode algorithm
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
Aes Ecb mode is not secure any longer.
Remove the Aes Ecb mode support from edk2.
Change the Aes Ecb mode field name in EDKII_CRYPTO_PROTOCOL to indicate the
function is unsupported any longer.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
394d589652
CryptoPkg/OpensslLib: Set TDES disable in OpensslLib
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
This patch is create by adding the setting "no_des" of
process_files.pl and running it thru perl.
It would remove the TDES from OpensslLib.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
b8af2c9eda
CryptoPkg/BaseCryptLib: Retire the TDES algorithm
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
TDES is not secure any longer.
Remove the Tdes support from edk2.
Change the Tdes field name in EDKII_CRYPTO_PROTOCOL to indicate the
function is unsupported any longer.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
f4c15d3807
CryptoPkg/OpensslLib: Set ARC4 disable in OpensslLib
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
This patch is create by adding the setting "no_rc4" of
process_files.pl and running it thru perl.
It would remove the ARC4 from OpensslLib.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
c22a32e1ab
CryptoPkg/BaseCryptLib: Retire ARC4 algorithm
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
ARC4 is not secure any longer.
Remove the ARC4 support from edk2.
Change the ARC4 field name in EDKII_CRYPTO_PROTOCOL to indicate the
function is unsupported any longer.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
9b2a082e5b
CryptoPkg/OpensslLib: Set MD4 disable in OpensslLib
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
This patch is create by adding the setting "no_md4" of
process_files.pl and running it thru perl.
It would remove the MD4 from OpensslLib.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Zhichao Gao
0a6fc3d067
CryptoPkg/BaseCrpytLib: Retire MD4 algorithm
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1898
MD4 is not secure any longer.
Remove the MD4 support from edk2.
Change the MD4 field name in EDKII_CRYPTO_PROTOCOL to indicate the
function is unsupported any longer.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Siyuan Fu <siyuan.fu@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com >
2020-05-15 07:22:36 +00:00
Guomin Jiang
469eb46169
CryptoPkg/Pkcs7: Extend support for other OID types
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2539
Microsoft signtool supports creation of attached P7's with any OID payload
via the "/p7co" parameter. It is necessary to check the data before get
the string.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-05-06 03:37:39 +00:00
GuoMinJ
3ab0dadd66
CryptoPkg/BaseHashApiLib: Rename BaseHashApiLib by HashApiLib
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2552
According to CryptoPkg.dsc, the library class only have HashApiLib, so i
think the BaseHashApiLib should be considered as base name rather than
library class.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Xiaoyu Lu <xiaoyux.lu@intel.com >
2020-04-08 01:12:36 +00:00
GuoMinJ
8acb61dfb3
CryptoPkg/BaseCryptLibOnProtocolPpi: Add missing comments
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2552
DxeCryptLibConstructor have no comments for it, add comments for it.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Guomin Jiang <guomin.jiang@intel.com >
Reviewed-by: Shenglei Zhang <shenglei.zhang@intel.com >
Reviewed-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Xiaoyu Lu <xiaoyux.lu@intel.com >
2020-04-08 01:12:36 +00:00
Abner Chang
9025a014f9
CryptoPkg: Add RISC-V architecture for EDK2 CI.
...
Add RISC-V architecture for EDK2 CI testing.
BZ:2562:
https://bugzilla.tianocore.org/show_bug.cgi?id=2562
Signed-off-by: Abner Chang <abner.chang@hpe.com >
Co-authored-by: Daniel Schaefer <daniel.schaefer@hpe.com >
Reviewed-by: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Gilbert Chen <gilbert.chen@hpe.com >
2020-04-03 17:09:12 +00:00
Zurcher, Christopher J
6b7855209a
CryptoPkg/OpensslLib: Remove "no-autoalginit" flag from OpenSSL build
...
This is enabling a future EVP implementation to utilize the
EVP_get_digestbyname() function.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Christopher J Zurcher <christopher.j.zurcher@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-03-10 09:08:34 +00:00
Zurcher, Christopher J
c72ca46668
CryptoPkg/OpensslLib: Add "sort" keyword to header file parsing loop
...
This prevents the .inf files from being randomized after every run
of process_files.pl.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Christopher J Zurcher <christopher.j.zurcher@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
2020-03-10 09:08:34 +00:00
Amol N Sukerkar
c70bdf9d4a
CryptoPkg/BaseHashApiLib: Align BaseHashApiLib with TPM 2.0 Implementation
...
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2511
This commit aligns the baseHashApiLib with TPM 2.0 Implementation
as follows:
- Remove reference to MD4 and MD5 algorithms as they are deprecated
- Align the enumerations for hashing algoerithms with the one used
in TPM 2.0 implementation defined in IndustryStandard/Tpm20.h.
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Amol N Sukerkar <amol.n.sukerkar@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-02-19 16:38:22 +00:00
Antoine Coeur
7aa8af4576
CryptoPkg/OpensslLib: Fix few typos
...
Fix few typos in comments.
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Signed-off-by: Antoine Coeur <coeur@gmx.fr >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Signed-off-by: Philippe Mathieu-Daude <philmd@redhat.com >
Message-Id: <20200207010831.9046-2-philmd@redhat.com >
2020-02-10 22:30:07 +00:00
Michael D Kinney
cd70de1cc0
CryptoPkg/Library: Add BaseCryptLibOnProtocolPpi instances
...
https://bugzilla.tianocore.org/show_bug.cgi?id=2420
Based on the following package with changes to merge into
CryptoPkg.
https://github.com/microsoft/mu_plus/tree/dev/201908/SharedCryptoPkg
Add the PeiCryptLib, DxeCryptLib, and SmmCryptLib instances
of the BaseCryptLib library classes that are implemented using
the services of EDK II Crypto Protocols/PPIs.
These library instances all set a dependency expression on the
EDK II Crypto Protocols/PPIs, so any modules that use these
library instances are not dispatched until the modules that
produce the EDK II Crypto Protocols/PPIs are dispatched.
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 >
2020-02-07 16:32:13 +00:00
Michael D Kinney
668621362f
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 >
2020-02-07 16:32:13 +00:00
Michael D Kinney
422da35375
CryptoPkg/BaseCryptLibNull: Add missing HkdfSha256ExtractAndExpand()
...
https://bugzilla.tianocore.org/show_bug.cgi?id=2493
The BaseCryptLib was expanded to add the HkdfSha256ExtractAndExpand()
service in the following commit:
4b1b7c1913
When BaseCryptLibNull was added in the commit below, this new
service was not included.
d95de082da
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 >
2020-02-04 21:35:48 +00:00
Amol N Sukerkar
3feea54eae
CryptoPkg/BaseHashApiLib: Implement Unified Hash Calculation API
...
https://bugzilla.tianocore.org/show_bug.cgi?id=2151
This commit introduces a Unified Hash API to calculate hash using a
hashing algorithm specified by the PCD, PcdHashApiLibPolicy. This library
interfaces with the various hashing API, such as, MD4, MD5, SHA1, SHA256,
SHA512 and SM3_256 implemented in BaseCryptLib. The user can calculate
the desired hash by setting PcdHashApiLibPolicy to appropriate value.
This feature is documented in the Bugzilla,
https://bugzilla.tianocore.org/show_bug.cgi?id=2151 .
Cc: Jiewen Yao <jiewen.yao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Amol N Sukerkar <amol.n.sukerkar@intel.com >
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com >
2020-02-03 23:49:28 +00:00
Jian J Wang
9a1f14ad72
CryptoPkg/BaseCryptLib: remove HmacXxxGetContextSize interface
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1792
Hmac(Md5|Sha1|Sha256)GetContextSize() use a deprecated macro
HMAC_MAX_MD_CBLOCK defined in openssl. They should be dropped to
avoid misuses in the future. For context allocation and release,
use HmacXxxNew() and HmacXxxFree() instead.
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Signed-off-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Xiaoyu Lu <xiaoyux.lu@intel.com >
2020-01-20 16:41:23 +00:00
Jian J Wang
a23fdff6fb
CryptoPkg/BaseCryptLib: replace HmacXxxInit API with HmacXxxSetKey
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1792
HmacXxxInit() is supposed to be initialize user supplied buffer as HMAC
context, as well as user supplied key. Currently it has no real use cases.
Due to BZ1792, the user has no way to get correct size of context buffer
after it's fixed, and then cannot make use of HmacXxxInit to initialize
it.
So it's decided to replace it with HmacXxxSetKey to keep the functionality
of supplying a key to HMAC, but drop all other initialization works. The
user can still get HMAC context via HmacXxxNew interface, which hides the
details about the context.
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Cc: Laszlo Ersek <lersek@redhat.com >
Signed-off-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Xiaoyu Lu <xiaoyux.lu@intel.com >
2020-01-20 16:41:23 +00:00
Pavana.K
c9d7262843
CryptoPkg: Support for SHA384 & SHA512 RSA signing schemes
...
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2389
Currently RSA signing scheme support is available for MD5, SHA-1 or
SHA-256 algorithms.The fix is to extend this support for SHA384 and
SHA512.
Cc: Liming Gao <liming.gao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Bob Feng <bob.c.feng@intel.com >
Signed-off-by: Pavana.K <pavana.k@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2020-01-08 06:57:44 +00:00
Laszlo Ersek
4d613feee5
CryptoPkg/OpensslLib.inf: list OpenSSL local header "ms/uplink.h"
...
Commit 8906f076de
("CryptoPkg/OpensslLib: Add missing header files in
INF file", 2019-08-16) incorrectly placed "ms/uplink.h" in the
auto-generated part of [Sources], in "OpensslLib.inf".
("ms/uplink.h" was added in the right spot in "OpensslLibCrypto.inf".)
Subsequently, when commit 9f4fbd56d4
("CryptoPkg/OpensslLib: Update
process_files.pl to generate .h files", 2019-10-30) re-generated that part
of "OpensslLib.inf", the "ms/uplink.h" file reference was lost. This
triggers a warning from the "build" utility now.
Name the header file in the right spot in [Sources].
This change makes "OpensslLib.inf" consistent with "OpensslLibCrypto.inf".
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Leif Lindholm <leif.lindholm@linaro.org >
Cc: Shenglei Zhang <shenglei.zhang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Fixes: 8906f076de
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org >
2019-12-02 19:35:18 +00:00
Laszlo Ersek
b49a6c8f80
CryptoPkg/OpensslLib: improve INF file consistency
...
When diffing "OpensslLib.inf" against "OpensslLibCrypto.inf", the *only*
differences should be:
- BASE_NAME, MODULE_UNI_FILE, and FILE_GUID are expected to differ, in
[Defines];
- "OpensslLib.inf" is expected to list "$(OPENSSL_PATH)/ssl/..." source
files in the auto-generated part of the [Sources] section.
Commit 8906f076de
("CryptoPkg/OpensslLib: Add missing header files in
INF file", 2019-08-16) broke that invariant, by adding "buildinf.h" and
"rand_pool_noise.h" in different order to both INF files.
Fix that order in "OpensslLib.inf" now. (Note that this does not
re-establish full consistency between both INF files -- it just highlights
another problem, which we'll fix in the next patch.)
Cc: Jian J Wang <jian.j.wang@intel.com >
Cc: Leif Lindholm <leif.lindholm@linaro.org >
Cc: Shenglei Zhang <shenglei.zhang@intel.com >
Cc: Xiaoyu Lu <xiaoyux.lu@intel.com >
Fixes: 8906f076de
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org >
2019-12-02 19:35:18 +00:00
Liming Gao
8ecd8c49e4
CryptoPkg CryptoLib: Update tool chain name to CLANGPDB
...
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2341
Signed-off-by: Liming Gao <liming.gao@intel.com >
Cc: Jian J Wang <jian.j.wang@intel.com >
Reviewed-by: Jian J Wang <jian.j.wang@intel.com >
2019-11-15 06:04:21 +00:00