Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(825)

Side by Side Diff: runtime/bin/secure_socket_patch.dart

Issue 2767533002: Revert "Fix observatory tests broken by running dartfmt." (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/bin/process_patch.dart ('k') | runtime/bin/socket_patch.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 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. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 @patch 5 @patch class SecureSocket {
6 class SecureSocket { 6 @patch factory SecureSocket._(RawSecureSocket rawSocket) =>
7 @patch
8 factory SecureSocket._(RawSecureSocket rawSocket) =>
9 new _SecureSocket(rawSocket); 7 new _SecureSocket(rawSocket);
10 } 8 }
11 9
12 @patch 10
13 class _SecureFilter { 11 @patch class _SecureFilter {
14 @patch 12 @patch factory _SecureFilter() => new _SecureFilterImpl();
15 factory _SecureFilter() => new _SecureFilterImpl();
16 } 13 }
17 14
18 @patch 15 @patch class X509Certificate {
19 class X509Certificate { 16 @patch factory X509Certificate._() => new _X509CertificateImpl();
20 @patch
21 factory X509Certificate._() => new _X509CertificateImpl();
22 } 17 }
23 18
24 class _SecureSocket extends _Socket implements SecureSocket { 19 class _SecureSocket extends _Socket implements SecureSocket {
25 _SecureSocket(RawSecureSocket raw) : super(raw); 20 _SecureSocket(RawSecureSocket raw) : super(raw);
26 21
27 void set onBadCertificate(bool callback(X509Certificate certificate)) { 22 void set onBadCertificate(bool callback(X509Certificate certificate)) {
28 if (_raw == null) { 23 if (_raw == null) {
29 throw new StateError("onBadCertificate called on destroyed SecureSocket"); 24 throw new StateError("onBadCertificate called on destroyed SecureSocket");
30 } 25 }
31 _raw.onBadCertificate = callback; 26 _raw.onBadCertificate = callback;
32 } 27 }
33 28
34 void renegotiate( 29 void renegotiate({bool useSessionCache: true,
35 {bool useSessionCache: true, 30 bool requestClientCertificate: false,
36 bool requestClientCertificate: false, 31 bool requireClientCertificate: false}) {
37 bool requireClientCertificate: false}) { 32 _raw.renegotiate(useSessionCache: useSessionCache,
38 _raw.renegotiate( 33 requestClientCertificate: requestClientCertificate,
39 useSessionCache: useSessionCache, 34 requireClientCertificate: requireClientCertificate);
40 requestClientCertificate: requestClientCertificate,
41 requireClientCertificate: requireClientCertificate);
42 } 35 }
43 36
44 X509Certificate get peerCertificate { 37 X509Certificate get peerCertificate {
45 if (_raw == null) { 38 if (_raw == null) {
46 throw new StateError("peerCertificate called on destroyed SecureSocket"); 39 throw new StateError("peerCertificate called on destroyed SecureSocket");
47 } 40 }
48 return _raw.peerCertificate; 41 return _raw.peerCertificate;
49 } 42 }
50 43
51 String get selectedProtocol { 44 String get selectedProtocol {
52 if (_raw == null) { 45 if (_raw == null) {
53 throw new StateError("selectedProtocol called on destroyed SecureSocket"); 46 throw new StateError("selectedProtocol called on destroyed SecureSocket");
54 } 47 }
55 return _raw.selectedProtocol; 48 return _raw.selectedProtocol;
56 } 49 }
57 } 50 }
58 51
52
59 /** 53 /**
60 * _SecureFilterImpl wraps a filter that encrypts and decrypts data travelling 54 * _SecureFilterImpl wraps a filter that encrypts and decrypts data travelling
61 * over an encrypted socket. The filter also handles the handshaking 55 * over an encrypted socket. The filter also handles the handshaking
62 * and certificate verification. 56 * and certificate verification.
63 * 57 *
64 * The filter exposes its input and output buffers as Dart objects that 58 * The filter exposes its input and output buffers as Dart objects that
65 * are backed by an external C array of bytes, so that both Dart code and 59 * are backed by an external C array of bytes, so that both Dart code and
66 * native code can access the same data. 60 * native code can access the same data.
67 */ 61 */
68 class _SecureFilterImpl extends NativeFieldWrapperClass1 62 class _SecureFilterImpl
63 extends NativeFieldWrapperClass1
69 implements _SecureFilter { 64 implements _SecureFilter {
70 // Performance is improved if a full buffer of plaintext fits 65 // Performance is improved if a full buffer of plaintext fits
71 // in the encrypted buffer, when encrypted. 66 // in the encrypted buffer, when encrypted.
72 static final int SIZE = 8 * 1024; 67 static final int SIZE = 8 * 1024;
73 static final int ENCRYPTED_SIZE = 10 * 1024; 68 static final int ENCRYPTED_SIZE = 10 * 1024;
74 69
75 _SecureFilterImpl() { 70 _SecureFilterImpl() {
76 buffers = new List<_ExternalBuffer>(_RawSecureSocket.NUM_BUFFERS); 71 buffers = new List<_ExternalBuffer>(_RawSecureSocket.NUM_BUFFERS);
77 for (int i = 0; i < _RawSecureSocket.NUM_BUFFERS; ++i) { 72 for (int i = 0; i < _RawSecureSocket.NUM_BUFFERS; ++i) {
78 buffers[i] = new _ExternalBuffer( 73 buffers[i] = new _ExternalBuffer(_RawSecureSocket._isBufferEncrypted(i) ?
79 _RawSecureSocket._isBufferEncrypted(i) ? ENCRYPTED_SIZE : SIZE); 74 ENCRYPTED_SIZE :
75 SIZE);
80 } 76 }
81 } 77 }
82 78
83 void connect( 79 void connect(String hostName,
84 String hostName, 80 SecurityContext context,
85 SecurityContext context, 81 bool is_server,
86 bool is_server, 82 bool requestClientCertificate,
87 bool requestClientCertificate, 83 bool requireClientCertificate,
88 bool requireClientCertificate, 84 Uint8List protocols) native "SecureSocket_Connect";
89 Uint8List protocols) native "SecureSocket_Connect";
90 85
91 void destroy() { 86 void destroy() {
92 buffers = null; 87 buffers = null;
93 _destroy(); 88 _destroy();
94 } 89 }
95 90
96 void _destroy() native "SecureSocket_Destroy"; 91 void _destroy() native "SecureSocket_Destroy";
97 92
98 void handshake() native "SecureSocket_Handshake"; 93 void handshake() native "SecureSocket_Handshake";
99 94
100 String selectedProtocol() native "SecureSocket_GetSelectedProtocol"; 95 String selectedProtocol() native "SecureSocket_GetSelectedProtocol";
101 96
102 void renegotiate(bool useSessionCache, bool requestClientCertificate, 97 void renegotiate(bool useSessionCache,
103 bool requireClientCertificate) native "SecureSocket_Renegotiate"; 98 bool requestClientCertificate,
99 bool requireClientCertificate)
100 native "SecureSocket_Renegotiate";
104 101
105 void init() native "SecureSocket_Init"; 102 void init() native "SecureSocket_Init";
106 103
107 X509Certificate get peerCertificate native "SecureSocket_PeerCertificate"; 104 X509Certificate get peerCertificate native "SecureSocket_PeerCertificate";
108 105
109 void registerBadCertificateCallback(Function callback) 106 void registerBadCertificateCallback(Function callback)
110 native "SecureSocket_RegisterBadCertificateCallback"; 107 native "SecureSocket_RegisterBadCertificateCallback";
111 108
112 void registerHandshakeCompleteCallback(Function handshakeCompleteHandler) 109 void registerHandshakeCompleteCallback(Function handshakeCompleteHandler)
113 native "SecureSocket_RegisterHandshakeCompleteCallback"; 110 native "SecureSocket_RegisterHandshakeCompleteCallback";
114 111
115 // This is a security issue, as it exposes a raw pointer to Dart code. 112 // This is a security issue, as it exposes a raw pointer to Dart code.
116 int _pointer() native "SecureSocket_FilterPointer"; 113 int _pointer() native "SecureSocket_FilterPointer";
117 114
118 List<_ExternalBuffer> buffers; 115 List<_ExternalBuffer> buffers;
119 } 116 }
120 117
121 @patch 118 @patch class SecurityContext {
122 class SecurityContext { 119 @patch factory SecurityContext() {
123 @patch
124 factory SecurityContext() {
125 return new _SecurityContext(); 120 return new _SecurityContext();
126 } 121 }
127 122
128 @patch 123 @patch static SecurityContext get defaultContext {
129 static SecurityContext get defaultContext {
130 return _SecurityContext.defaultContext; 124 return _SecurityContext.defaultContext;
131 } 125 }
132 126
133 @patch 127 @patch static bool get alpnSupported {
134 static bool get alpnSupported {
135 return _SecurityContext.alpnSupported; 128 return _SecurityContext.alpnSupported;
136 } 129 }
137 } 130 }
138 131
139 class _SecurityContext extends NativeFieldWrapperClass1 132 class _SecurityContext
133 extends NativeFieldWrapperClass1
140 implements SecurityContext { 134 implements SecurityContext {
141 _SecurityContext() { 135 _SecurityContext() {
142 _createNativeContext(); 136 _createNativeContext();
143 } 137 }
144 138
145 void _createNativeContext() native "SecurityContext_Allocate"; 139 void _createNativeContext() native "SecurityContext_Allocate";
146 140
147 static final SecurityContext defaultContext = new _SecurityContext() 141 static final SecurityContext defaultContext =
148 .._trustBuiltinRoots(); 142 new _SecurityContext().._trustBuiltinRoots();
149 143
150 void usePrivateKey(String file, {String password}) { 144 void usePrivateKey(String file, {String password}) {
151 List<int> bytes = (new File(file)).readAsBytesSync(); 145 List<int> bytes = (new File(file)).readAsBytesSync();
152 usePrivateKeyBytes(bytes, password: password); 146 usePrivateKeyBytes(bytes, password: password);
153 } 147 }
154
155 void usePrivateKeyBytes(List<int> keyBytes, {String password}) 148 void usePrivateKeyBytes(List<int> keyBytes, {String password})
156 native "SecurityContext_UsePrivateKeyBytes"; 149 native "SecurityContext_UsePrivateKeyBytes";
157 150
158 void setTrustedCertificates(String file, {String password}) { 151 void setTrustedCertificates(String file, {String password}) {
159 List<int> bytes = (new File(file)).readAsBytesSync(); 152 List<int> bytes = (new File(file)).readAsBytesSync();
160 setTrustedCertificatesBytes(bytes, password: password); 153 setTrustedCertificatesBytes(bytes, password: password);
161 } 154 }
162
163 void setTrustedCertificatesBytes(List<int> certBytes, {String password}) 155 void setTrustedCertificatesBytes(List<int> certBytes, {String password})
164 native "SecurityContext_SetTrustedCertificatesBytes"; 156 native "SecurityContext_SetTrustedCertificatesBytes";
165 157
166 void useCertificateChain(String file, {String password}) { 158 void useCertificateChain(String file, {String password}) {
167 List<int> bytes = (new File(file)).readAsBytesSync(); 159 List<int> bytes = (new File(file)).readAsBytesSync();
168 useCertificateChainBytes(bytes, password: password); 160 useCertificateChainBytes(bytes, password: password);
169 } 161 }
170
171 void useCertificateChainBytes(List<int> chainBytes, {String password}) 162 void useCertificateChainBytes(List<int> chainBytes, {String password})
172 native "SecurityContext_UseCertificateChainBytes"; 163 native "SecurityContext_UseCertificateChainBytes";
173 164
174 void setClientAuthorities(String file, {String password}) { 165 void setClientAuthorities(String file, {String password}) {
175 List<int> bytes = (new File(file)).readAsBytesSync(); 166 List<int> bytes = (new File(file)).readAsBytesSync();
176 setClientAuthoritiesBytes(bytes, password: password); 167 setClientAuthoritiesBytes(bytes, password: password);
177 } 168 }
178
179 void setClientAuthoritiesBytes(List<int> authCertBytes, {String password}) 169 void setClientAuthoritiesBytes(List<int> authCertBytes, {String password})
180 native "SecurityContext_SetClientAuthoritiesBytes"; 170 native "SecurityContext_SetClientAuthoritiesBytes";
181 171
182 static bool get alpnSupported => _alpnSupported(); 172 static bool get alpnSupported => _alpnSupported();
183 static bool _alpnSupported() native "SecurityContext_AlpnSupported"; 173 static bool _alpnSupported() native "SecurityContext_AlpnSupported";
184 void setAlpnProtocols(List<String> protocols, bool isServer) { 174 void setAlpnProtocols(List<String> protocols, bool isServer) {
185 Uint8List encodedProtocols = 175 Uint8List encodedProtocols =
186 SecurityContext._protocolsToLengthEncoding(protocols); 176 SecurityContext._protocolsToLengthEncoding(protocols);
187 _setAlpnProtocols(encodedProtocols, isServer); 177 _setAlpnProtocols(encodedProtocols, isServer);
188 } 178 }
189
190 void _setAlpnProtocols(Uint8List protocols, bool isServer) 179 void _setAlpnProtocols(Uint8List protocols, bool isServer)
191 native "SecurityContext_SetAlpnProtocols"; 180 native "SecurityContext_SetAlpnProtocols";
192 void _trustBuiltinRoots() native "SecurityContext_TrustBuiltinRoots"; 181 void _trustBuiltinRoots()
182 native "SecurityContext_TrustBuiltinRoots";
193 } 183 }
194 184
195 /** 185 /**
196 * _X509CertificateImpl wraps an X509 certificate object held by the BoringSSL 186 * _X509CertificateImpl wraps an X509 certificate object held by the BoringSSL
197 * library. It exposes the fields of the certificate object. 187 * library. It exposes the fields of the certificate object.
198 */ 188 */
199 class _X509CertificateImpl extends NativeFieldWrapperClass1 189 class _X509CertificateImpl extends NativeFieldWrapperClass1
200 implements X509Certificate { 190 implements X509Certificate {
201 // The native field must be set manually on a new object, in native code. 191 // The native field must be set manually on a new object, in native code.
202 // This is done by WrappedX509 in secure_socket.cc. 192 // This is done by WrappedX509 in secure_socket.cc.
203 _X509CertificateImpl(); 193 _X509CertificateImpl();
204 194
205 String get subject native "X509_Subject"; 195 String get subject native "X509_Subject";
206 String get issuer native "X509_Issuer"; 196 String get issuer native "X509_Issuer";
207 DateTime get startValidity { 197 DateTime get startValidity {
208 return new DateTime.fromMillisecondsSinceEpoch(_startValidity(), 198 return new DateTime.fromMillisecondsSinceEpoch(_startValidity(),
209 isUtc: true); 199 isUtc: true);
210 } 200 }
211
212 DateTime get endValidity { 201 DateTime get endValidity {
213 return new DateTime.fromMillisecondsSinceEpoch(_endValidity(), isUtc: true); 202 return new DateTime.fromMillisecondsSinceEpoch(_endValidity(),
203 isUtc: true);
214 } 204 }
215
216 int _startValidity() native "X509_StartValidity"; 205 int _startValidity() native "X509_StartValidity";
217 int _endValidity() native "X509_EndValidity"; 206 int _endValidity() native "X509_EndValidity";
218 } 207 }
OLDNEW
« no previous file with comments | « runtime/bin/process_patch.dart ('k') | runtime/bin/socket_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698