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

Unified Diff: sdk/lib/io/security_context.dart

Issue 1665433002: Adds SecurityContext.setTrustedCertificatesBytes (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sdk/lib/io/http.dart ('k') | tests/standalone/io/http_proxy_advanced_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/io/security_context.dart
diff --git a/sdk/lib/io/security_context.dart b/sdk/lib/io/security_context.dart
index 4675b60048a0fbaefd2478176f73ff7f4c5cdc4b..28351b26741cc88c7fc92fd4e17a2ee4d8106076 100644
--- a/sdk/lib/io/security_context.dart
+++ b/sdk/lib/io/security_context.dart
@@ -18,6 +18,14 @@ part of dart.io;
* "-----BEGIN CERTIFICATE -----" and "-----END CERTIFICATE-----".
* Distinguished encoding rules (DER) is a canonical binary serialization
* of ASN1 objects into an octet string.
+ *
+ * [usePrivateKey], [setTrustedCertificates], [useCertificateChain], and
+ * [setClientAuthorities] are deprecated. They have been renamed
+ * [usePrivateKeySync], [setTrustedCertificatesSync], [useCertificateChainSync],
+ * and [setClientAuthoritiesSync] to reflect the fact that they do blocking
+ * IO. Async-friendly versions have been added in [usePrivateKeyBytes],
+ * [setTrustedCertificatesBytes], [useCertificateChainBytes], and
+ * [setClientAuthoritiesBytes].
*/
abstract class SecurityContext {
external factory SecurityContext();
@@ -41,11 +49,15 @@ abstract class SecurityContext {
* [keyFile] is a PEM file containing an encrypted
* private key, encrypted with [password]. An unencrypted file can be
* used, but this is not usual.
- *
- * The function returns a [Future] that completes when the key has been added
- * to the context.
*/
- Future usePrivateKey(String keyFile, {String password});
+ void usePrivateKeySync(String keyFile, {String password});
+
+ /**
+ * [usePrivateKey] is deprecated. Use [usePrivateKeySync] or
+ * [usePrivateKeyBytes].
+ */
+ @deprecated
+ void usePrivateKey(String keyFile, {String password});
/**
* Sets the private key for a server certificate or client certificate.
@@ -62,20 +74,26 @@ abstract class SecurityContext {
* Sets the set of trusted X509 certificates used by [SecureSocket]
* client connections, when connecting to a secure server.
*
- * There are two ways to set a set of trusted certificates, with a single
- * PEM file, or with a directory containing individual PEM files for
- * certificates.
- *
- * [file] is an optional PEM file containing X509 certificates, usually
+ * [file] is the path to a PEM file containing X509 certificates, usually
* root certificates from certificate authorities.
+ */
+ void setTrustedCertificatesSync(String file);
+
+ /**
+ * [setTrustedCertificates] is deprecated. Use [setTrustedCertificatesSync]
+ * or [setTrustedCertificatesBytes].
+ */
+ @deprecated
+ void setTrustedCertificates(String file);
+
+ /**
+ * Sets the set of trusted X509 certificates used by [SecureSocket]
+ * client connections, when connecting to a secure server.
*
- * [directory] is an optional directory containing PEM files. The directory
- * must also have filesystem links added, which link extra filenames based
- * on the hash of a certificate's distinguished name (DN) to the file
- * containing that certificate. OpenSSL contains a tool called c_rehash
- * to create these links in a directory.
+ * [file] is the contents of a PEM file containing X509 certificates, usually
+ * root certificates from certificate authorities.
*/
- void setTrustedCertificates({String file, String directory});
+ void setTrustedCertificatesBytes(List<int> certBytes);
/**
* Sets the chain of X509 certificates served by [SecureServer]
@@ -85,11 +103,15 @@ abstract class SecurityContext {
* the root authority and intermediate authorities forming the signed
* chain to the server certificate, and ending with the server certificate.
* The private key for the server certificate is set by [usePrivateKey].
- *
- * The function returns a [Future] that completes when the certificate chain
- * has been set.
*/
- Future useCertificateChain(String file);
+ void useCertificateChainSync(String file);
+
+ /**
+ * [useCertificateChain] is deprecated. Use [useCertificateChainSync]
+ * or [useCertificateChainBytes].
+ */
+ @deprecated
+ void useCertificateChain({String file, String directory});
/**
* Sets the chain of X509 certificates served by [SecureServer]
@@ -109,9 +131,25 @@ abstract class SecurityContext {
* client. [file] is a PEM file containing the accepted signing authority
* certificates - the authority names are extracted from the certificates.
*/
+ void setClientAuthoritiesSync(String file);
+
+ /**
+ * [setClientAuthorities] is deprecated. Use [setClientAuthoritiesSync]
+ * or [setClientAuthoritiesBytes].
+ */
+ @deprecated
void setClientAuthorities(String file);
/**
+ * Sets the list of authority names that a [SecureServer] will advertise
+ * as accepted, when requesting a client certificate from a connecting
+ * client. [authCertBytes] is the contents of a PEM file containing the
+ * accepted signing authority certificates - the authority names are extracted
+ * from the certificates.
+ */
+ void setClientAuthoritiesBytes(List<int> authCertBytes);
+
+ /**
* Sets the list of application-level protocols supported by a client
* connection or server connection. The ALPN (application level protocol
* negotiation) extension to TLS allows a client to send a list of
« no previous file with comments | « sdk/lib/io/http.dart ('k') | tests/standalone/io/http_proxy_advanced_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698