Hello community, here is the log from the commit of package ima-evm-utils for openSUSE:Factory checked in at 2017-11-10 14:57:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ima-evm-utils (Old) and /work/SRC/openSUSE:Factory/.ima-evm-utils.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ima-evm-utils" Fri Nov 10 14:57:00 2017 rev:11 rq:539892 version:1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/ima-evm-utils/ima-evm-utils.changes 2017-10-24 22:23:40.719570353 +0200 +++ /work/SRC/openSUSE:Factory/.ima-evm-utils.new/ima-evm-utils.changes 2017-11-10 14:57:21.136176123 +0100 @@ -1,0 +2,5 @@ +Wed Nov 8 12:31:07 UTC 2017 - meiss...@suse.com + +- ima-evm-utils-openssl1.patch: allow building against openssl 1.1 (bsc#1066947) + +------------------------------------------------------------------- New: ---- ima-evm-utils-openssl1.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ima-evm-utils.spec ++++++ --- /var/tmp/diff_new_pack.9scVxb/_old 2017-11-10 14:57:22.304133877 +0100 +++ /var/tmp/diff_new_pack.9scVxb/_new 2017-11-10 14:57:22.308133733 +0100 @@ -28,6 +28,7 @@ Url: http://sourceforge.net/projects/linux-ima/ Source0: http://downloads.sourceforge.net/project/linux-ima/ima-evm-utils/%{name}-%{version}.tar.gz Patch2: ima-evm-utils-fix-docbook-xsl-directory.patch +Patch3: ima-evm-utils-openssl1.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: asciidoc BuildRequires: autoconf @@ -77,6 +78,9 @@ %if %suse_version >= 1315 %patch2 -p1 %endif +if pkg-config --atleast-version=1.1 openssl; then +%patch3 -p1 +fi %build NOCONFIGURE=1 ./autogen.sh ++++++ ima-evm-utils-openssl1.patch ++++++ Index: ima-evm-utils-1.0/src/evmctl.c =================================================================== --- ima-evm-utils-1.0.orig/src/evmctl.c +++ ima-evm-utils-1.0/src/evmctl.c @@ -305,7 +305,7 @@ static int calc_evm_hash(const char *fil struct stat st; int err; uint32_t generation = 0; - EVP_MD_CTX ctx; + EVP_MD_CTX *ctx; unsigned int mdlen; char **xattrname; char xattr_value[1024]; @@ -345,7 +345,8 @@ static int calc_evm_hash(const char *fil return -1; } - err = EVP_DigestInit(&ctx, EVP_sha1()); + ctx = EVP_MD_CTX_new(); + err = EVP_DigestInit(ctx, EVP_sha1()); if (!err) { log_err("EVP_DigestInit() failed\n"); return 1; @@ -364,7 +365,7 @@ static int calc_evm_hash(const char *fil /*log_debug("name: %s, value: %s, size: %d\n", *xattrname, xattr_value, err);*/ log_info("name: %s, size: %d\n", *xattrname, err); log_debug_dump(xattr_value, err); - err = EVP_DigestUpdate(&ctx, xattr_value, err); + err = EVP_DigestUpdate(ctx, xattr_value, err); if (!err) { log_err("EVP_DigestUpdate() failed\n"); return 1; @@ -412,7 +413,7 @@ static int calc_evm_hash(const char *fil log_debug("hmac_misc (%d): ", hmac_size); log_debug_dump(&hmac_misc, hmac_size); - err = EVP_DigestUpdate(&ctx, &hmac_misc, hmac_size); + err = EVP_DigestUpdate(ctx, &hmac_misc, hmac_size); if (!err) { log_err("EVP_DigestUpdate() failed\n"); return 1; @@ -423,14 +424,14 @@ static int calc_evm_hash(const char *fil if (err) return -1; - err = EVP_DigestUpdate(&ctx, (const unsigned char *)uuid, sizeof(uuid)); + err = EVP_DigestUpdate(ctx, (const unsigned char *)uuid, sizeof(uuid)); if (!err) { log_err("EVP_DigestUpdate() failed\n"); return 1; } } - err = EVP_DigestFinal(&ctx, hash, &mdlen); + err = EVP_DigestFinal(ctx, hash, &mdlen); if (!err) { log_err("EVP_DigestFinal() failed\n"); return 1; @@ -844,7 +845,7 @@ static int calc_evm_hmac(const char *fil struct stat st; int err = -1; uint32_t generation = 0; - HMAC_CTX ctx; + HMAC_CTX *ctx; unsigned int mdlen; char **xattrname; unsigned char xattr_value[1024]; @@ -900,7 +901,8 @@ static int calc_evm_hmac(const char *fil goto out; } - err = !HMAC_Init(&ctx, evmkey, sizeof(evmkey), EVP_sha1()); + ctx = HMAC_CTX_new(); + err = !HMAC_Init(ctx, evmkey, sizeof(evmkey), EVP_sha1()); if (err) { log_err("HMAC_Init() failed\n"); goto out; @@ -919,7 +921,7 @@ static int calc_evm_hmac(const char *fil /*log_debug("name: %s, value: %s, size: %d\n", *xattrname, xattr_value, err);*/ log_info("name: %s, size: %d\n", *xattrname, err); log_debug_dump(xattr_value, err); - err = !HMAC_Update(&ctx, xattr_value, err); + err = !HMAC_Update(ctx, xattr_value, err); if (err) { log_err("HMAC_Update() failed\n"); goto out_ctx_cleanup; @@ -960,16 +962,16 @@ static int calc_evm_hmac(const char *fil log_debug("hmac_misc (%d): ", hmac_size); log_debug_dump(&hmac_misc, hmac_size); - err = !HMAC_Update(&ctx, (const unsigned char *)&hmac_misc, hmac_size); + err = !HMAC_Update(ctx, (const unsigned char *)&hmac_misc, hmac_size); if (err) { log_err("HMAC_Update() failed\n"); goto out_ctx_cleanup; } - err = !HMAC_Final(&ctx, hash, &mdlen); + err = !HMAC_Final(ctx, hash, &mdlen); if (err) log_err("HMAC_Final() failed\n"); out_ctx_cleanup: - HMAC_CTX_cleanup(&ctx); + HMAC_CTX_free(ctx); out: free(key); return err ?: mdlen; Index: ima-evm-utils-1.0/src/libimaevm.c =================================================================== --- ima-evm-utils-1.0.orig/src/libimaevm.c +++ ima-evm-utils-1.0/src/libimaevm.c @@ -269,7 +269,7 @@ int ima_calc_hash(const char *file, uint { const EVP_MD *md; struct stat st; - EVP_MD_CTX ctx; + EVP_MD_CTX *ctx; unsigned int mdlen; int err; @@ -286,7 +286,8 @@ int ima_calc_hash(const char *file, uint return 1; } - err = EVP_DigestInit(&ctx, md); + ctx = EVP_MD_CTX_new(); + err = EVP_DigestInit(ctx, md); if (!err) { log_err("EVP_DigestInit() failed\n"); return 1; @@ -294,17 +295,17 @@ int ima_calc_hash(const char *file, uint switch (st.st_mode & S_IFMT) { case S_IFREG: - err = add_file_hash(file, &ctx); + err = add_file_hash(file, ctx); break; case S_IFDIR: - err = add_dir_hash(file, &ctx); + err = add_dir_hash(file, ctx); break; case S_IFLNK: - err = add_link_hash(file, &ctx); + err = add_link_hash(file, ctx); break; case S_IFIFO: case S_IFSOCK: case S_IFCHR: case S_IFBLK: - err = add_dev_hash(&st, &ctx); + err = add_dev_hash(&st, ctx); break; default: log_errno("Unsupported file type"); @@ -314,11 +315,12 @@ int ima_calc_hash(const char *file, uint if (err) return err; - err = EVP_DigestFinal(&ctx, hash, &mdlen); + err = EVP_DigestFinal(ctx, hash, &mdlen); if (!err) { log_err("EVP_DigestFinal() failed\n"); return 1; } + EVP_MD_CTX_free(ctx); return mdlen; } @@ -547,6 +549,7 @@ int key2bin(RSA *key, unsigned char *pub { int len, b, offset = 0; struct pubkey_hdr *pkh = (struct pubkey_hdr *)pub; + const BIGNUM *n, *e; /* add key header */ pkh->version = 1; @@ -556,18 +559,19 @@ int key2bin(RSA *key, unsigned char *pub offset += sizeof(*pkh); - len = BN_num_bytes(key->n); - b = BN_num_bits(key->n); + RSA_get0_key(key,&n,&e,NULL); + len = BN_num_bytes(n); + b = BN_num_bits(n); pub[offset++] = b >> 8; pub[offset++] = b & 0xff; - BN_bn2bin(key->n, &pub[offset]); + BN_bn2bin(n, &pub[offset]); offset += len; - len = BN_num_bytes(key->e); - b = BN_num_bits(key->e); + len = BN_num_bytes(e); + b = BN_num_bits(e); pub[offset++] = b >> 8; pub[offset++] = b & 0xff; - BN_bn2bin(key->e, &pub[offset]); + BN_bn2bin(e, &pub[offset]); offset += len; return offset;