From 801821208de41f7b4e925ed2d9e824d5a880e785 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Wed, 15 Feb 2017 10:19:27 +0000 Subject: [PATCH] Rebase OpenSSL 1.1 patches --- ...wbimage-fix-build-with-OpenSSL-1.1.x.patch | 96 +++++++++++++++++++ uboot-tools.spec | 12 ++- 2 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 tools-kwbimage-fix-build-with-OpenSSL-1.1.x.patch diff --git a/tools-kwbimage-fix-build-with-OpenSSL-1.1.x.patch b/tools-kwbimage-fix-build-with-OpenSSL-1.1.x.patch new file mode 100644 index 0000000..0ca9b69 --- /dev/null +++ b/tools-kwbimage-fix-build-with-OpenSSL-1.1.x.patch @@ -0,0 +1,96 @@ +From ecb15353f2a0fd9612c25442b9d73b7b60bc3eff Mon Sep 17 00:00:00 2001 +From: Jelle van der Waa +Date: Tue, 14 Feb 2017 22:51:57 +0100 +Subject: [PATCH] tools: kwbimage fix build with OpenSSL 1.1.x + +The rsa_st struct has been made opaque in 1.1.x, add forward compatible +code to access the n, e, d members of rsa_struct. + +EVP_MD_CTX_cleanup has been removed in 1.1.x and EVP_MD_CTX_reset should be +called to reinitialise an already created structure. + +Signed-off-by: Jelle van der Waa +--- + tools/kwbimage.c | 35 +++++++++++++++++++++++++++++------ + 1 file changed, 29 insertions(+), 6 deletions(-) + +diff --git a/tools/kwbimage.c b/tools/kwbimage.c +index 93797c99da..e66b035408 100644 +--- a/tools/kwbimage.c ++++ b/tools/kwbimage.c +@@ -22,6 +22,25 @@ + #include + #include + #include ++ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++void RSA_get0_key(const RSA *r, ++ const BIGNUM **n, const BIGNUM **e, const BIGNUM **d) ++{ ++ if (n != NULL) ++ *n = r->n; ++ if (e != NULL) ++ *e = r->e; ++ if (d != NULL) ++ *d = r->d; ++} ++ ++#else ++void EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx) ++{ ++ EVP_MD_CTX_reset(ctx); ++} ++#endif + #endif + + static struct image_cfg_element *image_cfg; +@@ -470,12 +489,16 @@ static int kwb_export_pubkey(RSA *key, struct pubkey_der_v1 *dst, FILE *hashf, + char *keyname) + { + int size_exp, size_mod, size_seq; ++ const BIGNUM *key_e, *key_n; + uint8_t *cur; + char *errmsg = "Failed to encode %s\n"; + +- if (!key || !key->e || !key->n || !dst) { ++ RSA_get0_key(key, NULL, &key_e, NULL); ++ RSA_get0_key(key, NULL, &key_n, NULL); ++ ++ if (!key || !key_e || !key_n || !dst) { + fprintf(stderr, "export pk failed: (%p, %p, %p, %p)", +- key, key->e, key->n, dst); ++ key, key_e, key_n, dst); + fprintf(stderr, errmsg, keyname); + return -EINVAL; + } +@@ -490,8 +513,8 @@ static int kwb_export_pubkey(RSA *key, struct pubkey_der_v1 *dst, FILE *hashf, + * do the encoding manually. + */ + +- size_exp = BN_num_bytes(key->e); +- size_mod = BN_num_bytes(key->n); ++ size_exp = BN_num_bytes(key_e); ++ size_mod = BN_num_bytes(key_n); + size_seq = 4 + size_mod + 4 + size_exp; + + if (size_mod > 256) { +@@ -520,14 +543,14 @@ static int kwb_export_pubkey(RSA *key, struct pubkey_der_v1 *dst, FILE *hashf, + *cur++ = 0x82; + *cur++ = (size_mod >> 8) & 0xFF; + *cur++ = size_mod & 0xFF; +- BN_bn2bin(key->n, cur); ++ BN_bn2bin(key_n, cur); + cur += size_mod; + /* Exponent */ + *cur++ = 0x02; /* INTEGER */ + *cur++ = 0x82; + *cur++ = (size_exp >> 8) & 0xFF; + *cur++ = size_exp & 0xFF; +- BN_bn2bin(key->e, cur); ++ BN_bn2bin(key_e, cur); + + if (hashf) { + struct hash_v1 pk_hash; +-- +2.11.1 + diff --git a/uboot-tools.spec b/uboot-tools.spec index 647c0b8..acf27e8 100644 --- a/uboot-tools.spec +++ b/uboot-tools.spec @@ -2,7 +2,7 @@ Name: uboot-tools Version: 2017.03 -Release: 0.4%{?candidate:.%{candidate}}%{?dist} +Release: 0.5%{?candidate:.%{candidate}}%{?dist} Summary: U-Boot utilities Group: Development/Tools @@ -13,8 +13,9 @@ Source1: armv7-boards Source2: armv8-boards Patch1: add-BOOTENV_INIT_COMMAND-for-commands-that-may-be-ne.patch -#Patch2: U-Boot-1-2-rsa-Fix-build-with-OpenSSL-1.1.x.patch -#Patch3: U-Boot-2-2-rsa-Fix-deprecated-warnings-for-OpenSSL-1.1.x.patch +Patch2: U-Boot-1-2-rsa-Fix-build-with-OpenSSL-1.1.x.patch +Patch3: U-Boot-2-2-rsa-Fix-deprecated-warnings-for-OpenSSL-1.1.x.patch +Patch4: tools-kwbimage-fix-build-with-OpenSSL-1.1.x.patch Patch5: 0001-mx6sx-udoo_neo-Define-the-default-serial-console.patch Patch6: 0002-mx6sx-udoo_neo-use-different-load-address-for-ramdis.patch @@ -26,7 +27,7 @@ BuildRequires: dtc BuildRequires: fedora-logos BuildRequires: git BuildRequires: netpbm-progs -BuildRequires: compat-openssl10-devel +BuildRequires: openssl-devel BuildRequires: SDL-devel BuildRequires: python-devel BuildRequires: python-setuptools @@ -254,6 +255,9 @@ cp -p board/rockchip/evb_rk3399/README doc/README.evb_rk3399 %endif %changelog +* Wed Feb 15 2017 Peter Robinson 2017.03-0.5.rc2 +- Rebase OpenSSL 1.1 patches + * Mon Feb 13 2017 Peter Robinson 2017.03-0.4.rc2 - 2017.03 RC2 - Temporarily drop OpenSSL 1.1 patches (need rebase)