Commit Graph

45 Commits

Author SHA1 Message Date
Peter Jones
4edb31fcfc Use gcc -Os instead of -O0.
Signed-off-by: Peter Jones <pjones@redhat.com>
2021-02-16 09:12:48 +01:00
Peter Jones
138deeff23 Work around clang bugs for scan-build.
I don't think the x86 binaries clang builds will actually work unless
they just infer -maccumulate-outgoing-args from __attribute__((__ms_abi__),
but it's nice to have the analyzer working.

Signed-off-by: Peter Jones <pjones@redhat.com>
2018-03-15 11:23:26 -04:00
Tamas K Lengyel
3d93263198 Add -m64 compiler flag to allow cross-compiling to 64-bit version on 32-bit system
Signed-off-by: Tamas K Lengyel <lengyelt@ainfosec.com>
2018-03-06 14:33:19 -05:00
Peter Jones
9802023c13 Some things went weird with the openssl revert...
I think this works around most of them.

Signed-off-by: Peter Jones <pjones@redhat.com>
2017-09-08 14:48:57 -04:00
Gary Lin
e992a913cf Cryptlib: remove DES
Disable DES completely since it's already old and insecure.
This makes MokManager not support the DES based password hash but
probably no one is using it.

Signed-off-by: Gary Lin <glin@suse.com>
2017-09-08 14:47:09 -04:00
Gary Lin
70d49e332d Cryptlib: Remove MD4
MD4 is known to be insecure and shim never uses it.

Signed-off-by: Gary Lin <glin@suse.com>
2017-09-08 14:47:09 -04:00
Peter Jones
1d39ada8cb Revert lots of Cryptlib updates.
OpenSSL changes quite a bit of the key validation, and most of the keys
I can find in the wild aren't marked as trusted by the new checker.

Intel noticed this too: https://github.com/vathpela/edk2/commit/f536d7c3ed
but instead of fixing the compatibility error, they switched their test
data to match the bug.

So that's pretty broken.

For now, I'm reverting OpenSSL 1.1.0e, because we need those certs in
the wild to work.

This reverts commit 513cbe2aea.
This reverts commit e9cc33d6f2.
This reverts commit 80d49f758e.
This reverts commit 9bc647e2b2.
This reverts commit ae75df6232.
This reverts commit e883479f35.
This reverts commit 97469449fd.
This reverts commit e39692647f.
This reverts commit 0f3dfc01e2.
This reverts commit 4da6ac8195.
This reverts commit d064bd7eef.
This reverts commit 9bc86cfd6f.
This reverts commit ab9a05a10f.

Signed-off-by: Peter Jones <pjones@redhat.com>
2017-08-31 15:13:58 -04:00
Peter Jones
aaf8049c39 Fix a missing OpenSSL error message point
Signed-off-by: Peter Jones <pjones@redhat.com>
2017-08-31 15:13:45 -04:00
Peter Jones
b9354fc4aa Fix openssl compile flags for x86_64
Signed-off-by: Peter Jones <pjones@redhat.com>
2017-08-11 14:10:43 -04:00
Peter Jones
8a6d270d70 Make it possible to build in a subdirectory.
This lets you do:

mkdir build-x64 build-ia32
cd build-x64
make TOPDIR=.. -f ../Makefile
cd ../build-ia32
setarch i686 -B make ARCH=ia32 TOPDIR=.. -f ../Makefile

And not worry about generated sources and headers mixing and matching.

Signed-off-by: Peter Jones <pjones@redhat.com>
2017-07-24 20:11:28 -04:00
Gary Lin
e9cc33d6f2 Cryptlib: remove DES
Disable DES completely since it's already old and insecure.
This makes MokManager not support the DES based password hash but
probably no one is using it.

Signed-off-by: Gary Lin <glin@suse.com>
2017-04-11 10:42:19 -04:00
Gary Lin
80d49f758e Cryptlib: Remove MD4
MD4 is known to be insecure and shim never uses it.

Signed-off-by: Gary Lin <glin@suse.com>
2017-04-11 10:42:19 -04:00
Gary Lin
0f3dfc01e2 Cryptlib/OpenSSL: update to openssl 1.1.0e
- Delete the old openssl files and use the script to copy the new files

- Add "-DNO_SYSLOG" to CFLAGS and add crypto/include to the include path

Signed-off-by: Gary Lin <glin@suse.com>
2017-04-11 10:42:18 -04:00
Gary Lin
4da6ac8195 Cryptlib/OpenSSL: Update the script to copy the new openssl files
- Update update.sh to copy the openssl 1.1.0 source files

- Refresh the supplemental patch to reflect the change

Signed-off-by: Gary Lin <glin@suse.com>
2017-04-11 10:42:18 -04:00
Gary Lin
f48505bfb2 Update to openssl 1.0.2k
Signed-off-by: Gary Lin <glin@suse.com>
2017-03-24 18:28:30 -04:00
Gary Lin
b371a682fb Update to openssl 1.0.2j
Signed-off-by: Gary Lin <glin@suse.com>
2016-11-30 12:57:34 -05:00
Gary Lin
43ad947f6e Update the openssl update script to 1.0.2j
Signed-off-by: Gary Lin <glin@suse.com>
2016-11-30 12:57:34 -05:00
Gary Lin
8dcfecc6c7 Update to openssl 1.0.2h
Signed-off-by: Gary Lin <glin@suse.com>
2016-09-06 15:05:36 -04:00
Gary Lin
d8b0e8e0ce Update the openssl update script to 1.0.2h
Signed-off-by: Gary Lin <glin@suse.com>
2016-09-06 15:05:36 -04:00
Gary Lin
0297aa3cf3 Update openssl to 1.0.2g
Signed-off-by: Gary Lin <glin@suse.com>
2016-09-06 15:05:36 -04:00
Gary Lin
e769628e0d Update the openssl b_print patch
Signed-off-by: Gary Lin <glin@suse.com>
2016-09-06 15:05:36 -04:00
Gary Lin
afaf0a4205 Amend the CryptLib update scripts for openssl 1.0.2g
Also update the path to the openssl headers.

Signed-off-by: Gary Lin <glin@suse.com>
2016-09-06 15:05:36 -04:00
Gary Lin
e571428e21 Update to openssl to 1.0.2e
Also update Cryptlib to edk2 r19218
- Undefine NO_BUILTIN_VA_FUNCS in Cryptlib/OpenSSL/ for x86_64 to use
  the gcc builtins and remove all EFIAPI from the functions
- Move the most of defines into the headers instead of Makefile
- Remove the global variable 'timeval'
- Remove the unused code: crypto/pqueue/* and crypto/ts/*
- Include bn.h in MokManager.c due to the changes in openssl

Signed-off-by: Gary Lin <glin@suse.com>
2016-09-06 15:05:34 -04:00
Gary Ching-Pang Lin
5a49bad020 Cryptlib: Define the va functions for EFIAPI
It turned out that my previous crash fix(*) was wrong.
We actually always used the gcc built-in va functions instead of
the "real" va functions for EFIAPI, and we are just lucky that
ERR_add_error_data didn't crash before.

This commit copies the va functions from MdePkg/Include/Base.h
in edk2 and introdues NO_BUILTIN_VA_FUNCS for x86_64, so that all
the x86_64 build will adopt the new va functions. For safety,
I also added EFIAPI to all the functions which use va_* to avoid
the potential trouble.

(*) a7f4b26cc3

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-11-09 09:50:50 -05:00
Gary Ching-Pang Lin
16f8f0087a Specify the gnu89 standard
According to the gcc5 porting guideline (*), gcc5 defaults to
-std=gnu11 instead of -std=gnu89. Append -std=gnu89 to CFLAGS
to avoid the potential problems.

(*) https://gcc.gnu.org/gcc-5/porting_to.html

Based on the patch from Cristian Rodriguez <crrodriguez@opensuse.org>

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-07-28 11:46:38 -04:00
Gary Ching-Pang Lin
a7f4b26cc3 Openssl: Add EFIAPI for ERR_add_error_vdata
Without declaring EFIAPI for ERR_add_error_vdata, shim would crash
while verifying the loaded image.

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-07-28 11:46:38 -04:00
Gary Ching-Pang Lin
4ac84f8673 Update openssl to 1.0.2d
Also update Cryptlib to edk2 r17731

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-07-28 11:46:38 -04:00
Gary Ching-Pang Lin
3285f53941 Update Cryptlib and openssl
Update Cryptlib to r16559 and openssl to 0.9.8zf

Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
2015-05-12 13:51:02 -04:00
Peter Jones
d51739a416 gcc 5.0 changes some include bits, so copy what arm does on x86.
Basically they messed around with stdarg some and now we need to do it
the other way.

Signed-off-by: Peter Jones <pjones@redhat.com>
2015-04-13 19:55:25 -04:00
Gary Ching-Pang Lin
21f96e5863 Update openssl to 0.9.8zb
Also update to Tiano Cryptlib r15802 and remove the execute mode
bits from the C and header files of openssl
2014-08-19 14:20:23 -04:00
Ard Biesheuvel
fa525bc463 Add support for 32-bit ARM
This adds support for building the shim for a 32-bit ARM UEFI environment.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-08-12 10:54:05 -04:00
Ard Biesheuvel
04cba93d64 Add support for 64-bit ARM (AArch64)
This adds support for building the shim for a 64-bit ARM UEFI environment.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-08-12 10:54:05 -04:00
Ard Biesheuvel
99d7b5e858 Factor out x86-isms and add cross compile support
This patch cleans up and refactors the Makefiles to better allow new
architectures to be added:
- remove unused Makefile definitions
- import Makefile definitions from top level rather than redefining
- move x86 specific CFLAGS to inside ifeq() blocks
- remove x86 inline asm
- allow $(FORMAT) to be overridden: this is necessary as there exists no
  EFI or PE/COFF aware objcopy for ARM

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
2014-08-12 10:54:05 -04:00
Gary Ching-Pang Lin
76f8050ff6 Update openssl to 0.9.8za
Also update to Tiano Cryptlib r15638
2014-07-14 09:03:36 -04:00
Andrew Boie
9712a7e77d allow 32-bit compilation with 64-bit compiler
Also removed unused LIB_PATH from some Makefiles.

Change-Id: I7d28d18f7531b51b6121a2ffb88bcaedec57c467
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2013-11-12 10:31:59 -05:00
Andrey Petrov
c5ed2dfa5d properly compile OpenSSL in 32-bit mode
Change-Id: Iff3ee5ae0f0b95b282b99a23e465723b4e9f6104
Signed-off-by: Andrey Petrov <andrey.petrov@intel.com>
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2013-11-12 10:25:51 -05:00
Matthew Garrett
16c55f99e8 Add Tiano patch e98e59c237e17f064a4ecffb39d45499f89720a1
This is:
    Fix a bug in OpensslLib that PKCS7_verify will use over 8k stack space.

    Signed-off-by: Fu Siyuan <siyuan.fu@intel.com>
    Reviewed-by: Ye Ting  <ting.ye@intel.com>
    Reviewed-by: Dong Guo <guo.dong@intel.com>

from upstream.
2013-10-04 11:51:09 -04:00
Gary Ching-Pang Lin
9222860d32 Disable floating points in b_print
The long double declaration will enable SSE and cause a compilation
error. Disabling everything related to floating points avoids the
error.
2013-09-26 11:58:02 -04:00
Gary Ching-Pang Lin
ad23233e2d Enable openssl bio_printf()
bio_printf() was replaced with a dummy function and this made
several openssl functions useless. This commit adds the print
functions back, so that we don't have to implement our own
ASN1 time print function.
2013-09-26 11:58:02 -04:00
Gary Ching-Pang Lin
9b41d26597 MokManager: support SHA512-based crypt() hash 2013-09-26 11:58:01 -04:00
Peter Jones
b78a8d656e Make sure all the Makefiles use the same arguments for mmx/sse/ms_abi.
Signed-off-by: Peter Jones <pjones@redhat.com>
2013-06-10 16:38:05 -04:00
Peter Jones
547d57156f Don't use MMX and SSE registers, they aren't initialized.
GCC 4.8.0 will try to use these by default, and you'll wind up looping
across the (uninitialized!) trap handler for uninitialized instructions.

Signed-off-by: Peter Jones <pjones@redhat.com>
2013-05-31 15:34:11 -04:00
Matthew Garrett
d259b14060 Update OpenSSL 2012-07-02 12:33:42 -04:00
Matthew Garrett
20094cb55d Build a debug image 2012-07-02 12:29:03 -04:00
Matthew Garrett
9579a36336 Add crypto libraries 2012-06-18 17:49:57 -04:00