awslabs / awslabs/aws-crt-php

Build failure with OpenSSL 4

Open
#124 1 comment 0 reactions 0 assignees View on GitHub
bug needs-triage
Dominant language
PHP
Stars
426
Forks
14
PR merge metrics
No merged PRs in 30d

Description

### Describe the bug

```
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c: In function ‘s2n_cert_chain_and_key_load_sans’:
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:245:57: error: invalid use of incomplete typedef ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
245 | unsigned char *san_str = san_name->d.dNSName->data;
| ^~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:246:59: error: invalid use of incomplete typedef ‘ASN1_IA5STRING’ {aka ‘struct asn1_string_st’}
246 | const size_t san_str_len = san_name->d.dNSName->length;
| ^~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c: In function ‘s2n_cert_chain_and_key_load_cns’:
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:283:26: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
283 | X509_NAME *subject = X509_get_subject_name(x509_cert);
| ^~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:290:39: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
290 | X509_NAME_ENTRY *name_entry = X509_NAME_get_entry(subject, lastpos);
| ^~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:295:33: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
295 | ASN1_STRING *asn1_str = X509_NAME_ENTRY_get_data(name_entry);
| ^~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c: In function ‘s2n_utf8_string_from_extension_data’:
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:739:40: error: implicit declaration of function ‘ASN1_STRING_data’; did you mean ‘ASN1_STRING_set0’? [-Wimplicit-function-declaration]
739 | unsigned char *internal_data = ASN1_STRING_data(asn1_str);
| ^~~~~~~~~~~~~~~~
| ASN1_STRING_set0
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:739:40: error: initialization of ‘unsigned char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c: In function ‘s2n_parse_x509_extension’:
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:811:36: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
811 | X509_EXTENSION *x509_ext = X509_get_ext(x509_cert, loc);
| ^~~~~~~~~~~~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:819:33: warning: initialization discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
819 | ASN1_OBJECT *asn1_obj = X509_EXTENSION_get_object(x509_ext);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:833:22: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
833 | asn1_str = X509_EXTENSION_get_data(x509_ext);
| ^
/builddir/build/BUILD/php-pecl-awscrt-1.2.7-build/php-pecl-awscrt-1.2.7/awscrt-1.2.7/crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c:845:48: error: initialization of ‘unsigned char *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
845 | unsigned char *internal_data = ASN1_STRING_data(asn1_str);
| ^~~~~~~~~~~~~~~~
gmake[3]: *** [CMakeFiles/s2n.dir/build.make:135: CMakeFiles/s2n.dir/crypto/s2n_certificate.c.o] Error 1
gmake[2]: *** [CMakeFiles/Makefile2:87: CMakeFiles/s2n.dir/all] Error 2
gmake[1]: *** [Makefile:136: all] Error 2

```

### Regression Issue

- [ ] Select this option if this issue appears to be a regression.

### Expected Behavior

Compatibility with OpenSSL 4

### Current Behavior

Build failiure

### Reproduction Steps

Build

### Possible Solution

_No response_

### Additional Information/Context

_No response_

### aws-crt-php version used

N/A

### php version used

N/A

### Operating System and version

Fedora 45

Contributor guide

Open the contributing guide

Research direction

Start with crt/aws-crt-ffi/crt/s2n/crypto/s2n_certificate.c and reproduce the build on Fedora 45 with OpenSSL 4. Review the reported ASN.1 and removed-API errors, then verify that the project builds successfully with OpenSSL 4.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, php
Domain
build-system
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.