Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
Laszlo Ersek 2167c7f7a5 CryptoPkg/TlsLib: rewrite TlsSetCipherList()
Rewrite the TlsSetCipherList() function in order to fix the following
issues:

- Any cipher identifier in CipherId that is not recognized by
  TlsGetCipherMapping() will cause the function to return EFI_UNSUPPORTED.

  This is a problem because CipherId is an ordered preference list, and a
  caller should not get EFI_UNSUPPORTED just because it has an elaborate
  CipherId preference list. Instead, we can filter out cipher identifiers
  that we don't recognize, as long as we keep the relative order intact.

- CipherString is allocated on the stack, with 500 bytes.

  While processing a large CipherId preference list, this room may not be
  enough. Although no buffer overflow is possible, CipherString exhaustion
  can lead to a failed TLS connection, because any cipher names that don't
  fit on CipherString cannot be negotiated.

  Compute CipherStringSize first, and allocate CipherString dynamically.

- Finally, the "@STRENGTH" pseudo cipher name is appended to CipherString.
  (Assuming there is enough room left in CipherString.) This causes
  OpenSSL to sort the cipher list "in order of encryption algorithm key
  length".

  This is a bad idea. The caller specifically passes an ordered preference
  list in CipherId. Therefore TlsSetCipherList() must not ask OpenSSL to
  reorder the list, for any reason. Drop "@STRENGTH".

While at it, fix and unify the documentation of the CipherId parameter.

Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Qin Long <qin.long@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Cc: Ting Ye <ting.ye@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=915
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Long Qin <qin.long@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
2018-04-13 14:06:24 +02:00
AppPkg AppPkg/WebServer: Fix build failure. 2017-09-14 08:55:09 +08:00
ArmPkg ArmPkg/CpuDxe: order CpuDxe after ArmGicDxe via protocol depex 2018-04-12 21:24:29 +02:00
ArmPlatformPkg ArmPlatformPkg/PL031RealTimeClockLib: depend on gEfiCpuArchProtocolGuid 2018-04-12 21:24:39 +02:00
ArmVirtPkg ArmVirtPkg/ArmVirtQemu: hook NvVarStoreFormattedLib into VariableRuntimeDxe 2018-04-12 21:24:42 +02:00
BaseTools BaseTools: fix --genfds-multi-thread generate makefile issue 2018-04-11 14:47:55 +08:00
BeagleBoardPkg BeagleBoardPkg: drop unused PcdCacheEnabled dependency 2018-02-09 09:40:11 +00:00
Conf EDK II: Add .gitignore 2014-10-14 16:08:15 +00:00
CorebootModulePkg CorebootModulePkg/CbSupportDxe: Remove duplicated IO Space addition 2017-11-16 10:52:00 +08:00
CorebootPayloadPkg CorebootPayloadPkg: Conditionally add DebugAgentLib for DXE drivers 2018-03-30 07:28:18 +08:00
CryptoPkg CryptoPkg/TlsLib: rewrite TlsSetCipherList() 2018-04-13 14:06:24 +02:00
DuetPkg DuetPkg: Add SafeIntLib and BmpSupportLib to DSC files 2018-02-11 16:06:31 -08:00
EdkCompatibilityPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
EdkShellBinPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
EdkShellPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
EmbeddedPkg EmbeddedPkg: introduce NvVarStoreFormattedLib 2018-04-12 21:24:30 +02:00
EmulatorPkg EmulatorPkg: Undefine CR3 macro in Host.h 2018-02-27 18:33:51 +08:00
FatBinPkg FatBinPkg: New EnhancedFatDxe binaries for IA32, X64, EBC and IPF 2017-12-22 09:40:18 +08:00
FatPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelFrameworkModulePkg IntelFrameworkModulePkg/GenericBdsLib: Remove the useless Perf codes 2018-02-12 11:36:15 +08:00
IntelFrameworkPkg IntelFrameworkPkg/FrameworkUefiLib: Sync with MdePkg/UefiLib 2018-02-11 15:10:17 -08:00
IntelFsp2Pkg IntelFsp2Pkg-Tools: GenCfgOpt.py shouldn't include specific UPD name 2017-11-08 20:44:29 +08:00
IntelFsp2WrapperPkg IntelFsp2WrapperPkg: Update BaseFspWrapperApiLib to pass XCODE5 build 2018-01-18 15:39:54 +08:00
IntelFspPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelFspWrapperPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
IntelSiliconPkg IntelSiliconPkg/Vtd: Add more debug info. 2018-03-20 08:51:54 +08:00
MdeModulePkg MdeModulePkg/PiSmmIpl: fix non-executable SMM RAM 2018-04-13 13:05:00 +08:00
MdePkg MdePkg/Include/Protocol/Tls.h: pack structures from the TLS RFC 2018-04-13 14:06:06 +02:00
NetworkPkg NetworkPkg/TlsDxe: clean up byte order conversion for EfiTlsCipherList 2018-04-13 14:06:12 +02:00
Nt32Pkg Nt32Pkg/Nt32Pkg.fdf: Increase the size of FLASH Device. 2018-02-08 08:23:26 +08:00
Omap35xxPkg Omap35xxPkg/InterruptDxe: replace CPU Arch Protocol depex with notify 2018-04-12 21:24:12 +02:00
OptionRomPkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
OvmfPkg OvmfPkg/TlsAuthConfigLib: configure trusted cipher suites for HTTPS boot 2018-04-13 14:05:10 +02:00
PcAtChipsetPkg PcAtChipsetPkg PeiAcpiTimerLib: Add the missing DebugLib header file 2018-02-07 09:16:15 +08:00
QuarkPlatformPkg QuarkPlatformPkg: remove TrEE reference. 2018-03-16 14:19:43 +08:00
QuarkSocPkg QuarkSocPkg/QNCSmmDispatcher: Fix use after free issue #2 2017-08-16 19:42:17 -07:00
SecurityPkg SecurityPkg Tpm12CommandLib: Fix TPM12 GetCapability response error 2018-03-21 16:43:35 +08:00
ShellBinPkg ShellBinPkg: Update ReadMe.txt 2018-03-19 14:39:02 +08:00
ShellPkg ShellPkg/UefiHandleParsingLib: remove TrEE reference. 2018-03-16 14:19:42 +08:00
SignedCapsulePkg SignedCapsulePkg SystemCapsuleLib: Change some dbg level to DEBUG_INFO 2018-04-13 12:57:10 +08:00
SourceLevelDebugPkg SourceLevelDebugPkg DebugCommUsb3: Return error when debug cap is reset 2018-03-20 20:23:53 +08:00
StdLib StdLib/BsdSocketLib: Remove unused variables 2017-11-13 07:39:06 -08:00
StdLibPrivateInternalFiles edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
UefiCpuPkg UefiCpuPkg/PiSmmCpuDxeSmm: use mnemonics for FXSAVE(64)/FXRSTOR(64) 2018-04-04 16:44:27 +02:00
UnixPkg UnixPkg: Remove UnixPkg files (It is replaced by EmulatorPkg) 2013-07-29 21:09:55 +00:00
Vlv2DeviceRefCodePkg edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
Vlv2TbltDevicePkg Vlv2TbltDevicePkg: Sync FLASH libraries from UDK2017 branch 2018-03-28 09:00:49 -07:00
.gitignore edk2: Add .DS_Store to .gitignore for macOS 2017-05-19 15:14:34 -07:00
.gitmodules CryptoPkg: Adding OpenSSL as one submodule of EDKII repo 2018-01-18 14:06:15 +08:00
BuildNotes2.txt BaseTools: Updated BuildNotes URLs 2016-03-25 09:46:44 +08:00
Contributions.txt edk2: Fix typo in Contributions.txt 2017-08-16 17:50:44 +08:00
License.txt edk2: Move License.txt file to root 2017-08-03 11:02:17 -07:00
Maintainers.txt Maintainers.txt: Add StandaloneMmPkg and maintainers 2018-03-21 01:13:40 +00:00
Readme.md edk2: Add Readme.md to root of edk2 repository 2017-08-03 11:02:25 -07:00
StandaloneMmPkg Maintainers.txt: Add StandaloneMmPkg and maintainers 2018-03-21 01:13:40 +00:00
edksetup.bat BaseTools: suppress usage instructions with rebuild options 2017-07-04 10:16:13 +08:00
edksetup.sh BaseTools/edksetup.sh: fix invalid test for current working directory 2017-08-10 12:54:58 +08:00

Readme.md

EDK II Project

A modern, feature-rich, cross-platform firmware development environment for the UEFI and PI specifications from www.uefi.org.

Contributions to the EDK II open source project are covered by the TianoCore Contribution Agreement 1.1

The majority of the content in the EDK II open source project uses a BSD 2-Clause License. The EDK II open source project contains the following components that are covered by additional licenses:

The EDK II Project is composed of packages. The maintainers for each package are listed in Maintainers.txt.

Resources