Skip to content

openssl.c - ignores opensslconf.h & fails to link #8430

Closed

Description

@fsbruva

Description

If openssl 1.1.1n is configured & built with any combination of the Configure [no-<cipher> ...] options:

no-md2
no-md4
no-md5
no-rmd160

While building php 8.0.18, linking results in this output (or similar):

ld: error: undefined symbol: EVP_md4
>>> referenced by openssl.c
>>>               ext/openssl/openssl.o:(php_openssl_get_evp_md_from_algo)
>>> did you mean: EVP_md5
>>> defined in: /usr/local/lib/libcrypto.so

But I expected this output instead:

Build complete.
Don't forget to run 'make test'.

This has two causes. First is that the existing precompiler test for MD2 merely checks for the presence of the include/openssl/md2.h file, rather than the actual capabilities of the compiled library. The second cause is that openssl.c does not consult include/openssl/opensslconf.h for the other listed options. I have a patch, and will submit a PR once I get the bug number.

PHP Version

8.0.18

Operating System

FreeBSD 12.3-RELEASE

Activity

  1. added a commit that references this issue on Apr 23, 2022
    69b50c3
  2. added a commit that references this issue on Aug 19, 2022
  3. added a commit that references this issue on Oct 22, 2022
    fa1b6ab
  4. bukka commented on Oct 22, 2022

    @bukka
    Member

    Fixed except no-md5 which was removed in OpenSSL 1.1.0. It actually did not even work with OpenSSL 1.0.2. And we still have default MD5 alg for SPKI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions