envoyproxy / envoy-openssl

Envoy OpenSSL extensions
Apache License 2.0
47 stars 45 forks source link

com_github_grpc_grpc fails to build due undeclared identifier 'X509_CRL_get_issuer' #155

Open rposts opened 6 months ago

rposts commented 6 months ago

Hi there,

I am trying to build envoy 1.29.1 on s390x arch using envoy-openssl repo but bazel build --config=clang --verbose_failures -s @envoy//:envoy fails due to following error:

...
Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
[1mexternal/com_github_grpc_grpc/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc:60:33: [0m[0;1;31merror: [0m[1muse of undeclared identifier 'X509_CRL_get_issuer'; did you mean 'ossl_X509_CRL_get_issuer'?[0m
  char* buf = X509_NAME_oneline(X509_CRL_get_issuer(crl), nullptr, 0);
[0;1;32m                                ^~~~~~~~~~~~~~~~~~~
[0m[0;32m                                ossl_X509_CRL_get_issuer
[0m[1mbazel-out/s390x-fastbuild/bin/external/bssl-compat/bssl-compat/include/ossl/openssl/x509.h:935:17: [0m[0;1;30mnote: [0m'ossl_X509_CRL_get_issuer' declared here[0m
ossl_X509_NAME *ossl_X509_CRL_get_issuer(const ossl_X509_CRL *crl);
[0;1;32m                ^
[0m[1mexternal/com_github_grpc_grpc/src/core/lib/security/credentials/tls/grpc_tls_crl_provider.cc:60:15: [0m[0;1;31merror: [0m[1muse of undeclared identifier 'X509_NAME_oneline'; did you mean 'ossl_X509_NAME_oneline'?[0m
  char* buf = X509_NAME_oneline(X509_CRL_get_issuer(crl), nullptr, 0);
[0;1;32m              ^~~~~~~~~~~~~~~~~
[0m[0;32m              ossl_X509_NAME_oneline
[0m[1mbazel-out/s390x-fastbuild/bin/external/bssl-compat/bssl-compat/include/ossl/openssl/x509.h:799:7: [0m[0;1;30mnote: [0m'ossl_X509_NAME_oneline' declared here[0m
char *ossl_X509_NAME_oneline(const ossl_X509_NAME *a, char *buf, int size);
[0;1;32m      ^
[0m2 errors generated.
Target @envoy//source/exe:envoy-static failed to build
...

I suspect problem is that bssl-compat build does not contain these declaration resulting in this error. Even after manually changing grpc_tls_crl_provider.cc to use ossl_X509_CRL_get_issuer etc. build fails down the path with other SSL related errors (missing SSL_ERROR_WANT_CERTIFICATE_VERIFY identifier).

Please let me know if there is something obvious I am missing.

Thanks.