    This directory, tests/standalone/io/certificates, contains the
X509 TLS certificates and private keys needed to run tests of Dart's
secure networking code.  The SecureSocket and SecureServer classes
are tested by making TLS (formerly called SSL) connections, secured
by certificates from a self-signed test root authority.

The certificates are created by running ../create_sample_certificates.sh
in a bash or sh shell, with the openssl tools installed.  Run the script
twice to create the untrusted_* files.

server_chain.pem:
  Contains the chain of certificates, from the self-signed
test certificate authority, through the intermediate CA, to the server
certificate, used on the server side of a test connection.

server_key.pem:
  Contains the private key for the server certificate

trusted_certs.pem:
  Contains the self-signed certificate of the test certificate authority.
This certificate is set as "trusted" by the client side of the connection
in its SecurityContext object, so that a verified TLS connection to the
server can be made.

untrusted_server_chain.pem:
  Contains a chain of certificates, from a different self-signed
test certificate authority, through an intermediate CA, to a server
certificate, used on the server side of a test connection that is intended
to fail because the client does not accept this certificate authority

untrusted_server_key.pem:
  Contains the private key for the untrusted server certificate 
in untrusted_server_chain.pem

