Build failure with OpenSSL 4
- 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
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