05-ssl.patch 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
  2. index fec7f52..be0ede8 100644
  3. --- a/include/grpc/grpc.h
  4. +++ b/include/grpc/grpc.h
  5. @@ -48,6 +48,9 @@
  6. GRPCAPI void grpc_call_details_init(grpc_call_details* details);
  7. GRPCAPI void grpc_call_details_destroy(grpc_call_details* details);
  8. +GRPCAPI void grpc_init_openssl(void);
  9. +GRPCAPI void grpc_dont_init_openssl(void);
  10. +
  11. /** Initialize the grpc library.
  12. After it's called, a matching invocation to grpc_shutdown() is expected
  13. diff --git a/src/core/tsi/ssl_transport_security.cc b/src/core/tsi/ssl_transport_security.cc
  14. index 2107bca..7326d11 100644
  15. --- a/src/core/tsi/ssl_transport_security.cc
  16. +++ b/src/core/tsi/ssl_transport_security.cc
  17. @@ -201,6 +201,16 @@
  18. GPR_ASSERT(g_ssl_ex_verified_root_cert_index != -1);
  19. }
  20. +static void do_nothing(void) {}
  21. +
  22. +extern "C" void grpc_dont_init_openssl(void) {
  23. + gpr_once_init(&g_init_openssl_once, do_nothing);
  24. +}
  25. +
  26. +extern "C" void grpc_init_openssl(void) {
  27. + gpr_once_init(&g_init_openssl_once, init_openssl);
  28. +}
  29. +
  30. // --- Ssl utils. ---
  31. // TODO(jboeuf): Remove when we are past the debugging phase with this code
  32. diff --git a/src/core/lib/security/security_connector/ssl_utils.cc b/src/core/lib/security/security_connector/ssl_utils.cc
  33. index 29030f0..317651c 100644
  34. --- a/src/core/lib/security/security_connector/ssl_utils.cc
  35. +++ b/src/core/lib/security/security_connector/ssl_utils.cc
  36. @@ -47,6 +47,8 @@
  37. #include "src/core/tsi/ssl_transport_security.h"
  38. #include "src/core/tsi/transport_security.h"
  39. +#include "add_arcadia_root_certs.h"
  40. +
  41. // -- Constants. --
  42. #if defined(GRPC_ROOT_PEM_PATH)
  43. @@ -584,6 +586,8 @@
  44. if (GRPC_SLICE_IS_EMPTY(result) &&
  45. !ConfigVars::Get().NotUseSystemSslRoots()) {
  46. result = LoadSystemRootCerts();
  47. + // Merge with Arcadia certs.
  48. + result = AddArcadiaRootCerts(result);
  49. }
  50. // Fallback to roots manually shipped with gRPC.
  51. if (GRPC_SLICE_IS_EMPTY(result) &&