Flutter Engine
The Flutter Engine
third_party
dart-lang
sdk
runtime
bin
security_context_fuchsia.cc
Go to the documentation of this file.
1
// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2
// for details. All rights reserved. Use of this source code is governed by a
3
// BSD-style license that can be found in the LICENSE file.
4
5
#if !defined(DART_IO_SECURE_SOCKET_DISABLED)
6
7
#include "
platform/globals.h
"
8
#if defined(DART_HOST_OS_FUCHSIA)
9
10
#include "
bin/security_context.h
"
11
12
#include <openssl/bio.h>
13
#include <openssl/ssl.h>
14
#include <openssl/x509.h>
15
16
#include "
bin/directory.h
"
17
#include "
bin/file.h
"
18
#include "
bin/secure_socket_filter.h
"
19
#include "
bin/secure_socket_utils.h
"
20
#include "
platform/syslog.h
"
21
22
namespace
dart
{
23
namespace
bin {
24
25
// The security context won't necessarily use the compiled-in root certificates,
26
// but since there is no way to update the size of the allocation after creating
27
// the weak persistent handle, we assume that it will. Note that when the
28
// root certs aren't compiled in, |root_certificates_pem_length| is 0.
29
const
intptr_t
SSLCertContext::kApproximateSize
=
30
sizeof
(SSLCertContext) +
root_certificates_pem_length
;
31
32
void
SSLCertContext::TrustBuiltinRoots
() {
33
// First, try to use locations specified on the command line.
34
if
(
root_certs_file
() !=
nullptr
) {
35
LoadRootCertFile(
root_certs_file
());
36
return
;
37
}
38
if
(
root_certs_cache
() !=
nullptr
) {
39
LoadRootCertCache(
root_certs_cache
());
40
return
;
41
}
42
43
int
status = SSL_CTX_set_default_verify_paths(
context
());
44
SecureSocketUtils::CheckStatus
(status,
"TlsException"
,
45
"Failure trusting builtin roots"
);
46
}
47
48
void
SSLCertContext::RegisterCallbacks
(SSL* ssl) {
49
// No callbacks to register for implementations using BoringSSL's built-in
50
// verification mechanism.
51
}
52
53
TrustEvaluateHandlerFunc
SSLCertContext::GetTrustEvaluateHandler
()
const
{
54
return
nullptr
;
55
}
56
57
}
// namespace bin
58
}
// namespace dart
59
60
#endif
// defined(DART_HOST_OS_FUCHSIA)
61
62
#endif
// !defined(DART_IO_SECURE_SOCKET_DISABLED)
dart::bin::SSLCertContext::RegisterCallbacks
void RegisterCallbacks(SSL *ssl)
dart::bin::SSLCertContext::context
SSL_CTX * context() const
Definition:
security_context.h:73
dart::bin::SSLCertContext::root_certs_file
static const char * root_certs_file()
Definition:
security_context.h:53
dart::bin::SSLCertContext::GetTrustEvaluateHandler
TrustEvaluateHandlerFunc GetTrustEvaluateHandler() const
dart::bin::SSLCertContext::kApproximateSize
static const intptr_t kApproximateSize
Definition:
security_context.h:26
dart::bin::SSLCertContext::root_certs_cache
static const char * root_certs_cache()
Definition:
security_context.h:57
dart::bin::SSLCertContext::TrustBuiltinRoots
void TrustBuiltinRoots()
dart::bin::SecureSocketUtils::CheckStatus
static void CheckStatus(int status, const char *type, const char *message)
Definition:
secure_socket_utils.cc:97
directory.h
dart::bin::root_certificates_pem_length
unsigned int root_certificates_pem_length
Definition:
root_certificates.cc:18310
dart::bin::TrustEvaluateHandlerFunc
void(* TrustEvaluateHandlerFunc)(Dart_Port dest_port_id, Dart_CObject *message)
Definition:
security_context.h:21
dart
Definition:
dart_vm.cc:33
globals.h
secure_socket_filter.h
secure_socket_utils.h
security_context.h
syslog.h
file.h
Generated on Sun Jun 23 2024 21:55:24 for Flutter Engine by
1.9.4