class
SecureSocket

A high-level class for communicating securely over a TCP socket, using TLS and SSL. The SecureSocket exposes both a Stream and an IOSink interface, making it ideal for using together with other Streams.

Implements

Static Methods

connect(host, int port, {bool sendClientCertificate: false, String certificateName, bool onBadCertificate(X509Certificate certificate), List<String> supportedProtocols}) → Future<SecureSocket>
Constructs a new secure client socket and connect it to the given host on port port. The returned Future will complete with a SecureSocket that is connected and ready for subscription.
secure(Socket socket, {host, bool sendClientCertificate: false, String certificateName, bool onBadCertificate(X509Certificate certificate)}) → Future<SecureSocket>
Takes an already connected socket and starts client side TLS handshake to make the communication secure. When the returned future completes the SecureSocket has completed the TLS handshake. Using this function requires that the other end of the connection is prepared for TLS handshake.
secureServer(Socket socket, String certificateName, {List<int> bufferedData, bool requestClientCertificate: false, bool requireClientCertificate: false, List<String> supportedProtocols}) → Future<SecureSocket>
Takes an already connected socket and starts server side TLS handshake to make the communication secure. When the returned future completes the SecureSocket has completed the TLS handshake. Using this function requires that the other end of the connection is going to start the TLS handshake.
initialize({String database, String password, bool useBuiltinRoots: true}) → void
Initializes the NSS library. If initialize is not called, the library is automatically initialized as if initialize were called with no arguments. If initialize is called more than once, or called after automatic initialization has happened (when a secure connection is made), then a TlsException is thrown.

Properties

X509Certificate peerCertificate
read-only
Get the peer certificate for a connected SecureSocket. If this SecureSocket is the server end of a secure socket connection, [peerCertificate] will return the client certificate, or null, if no client certificate was received. If it is the client end, [peerCertificate] will return the server's certificate.
String selectedProtocol
read-only
Get the protocol which was selected during protocol negotiation.
Encoding encoding
read / write , inherited
The Encoding used when writing strings. Depending on the underlying consumer this property might be mutable.
int remotePort
read-only , inherited
Returns the remote port connected to by this socket.
Future<List<int>> last
read-only , inherited
Returns the last element of the stream.
Future<List<int>> single
read-only , inherited
Returns the single element.
Future<int> length
read-only , inherited
Counts the elements in the stream.
Future done
read-only , inherited
Get a future that will complete when the consumer closes, or when an error occurs. This future is identical to the future returned by [close].
Future<bool> isEmpty
read-only , inherited
Reports whether this stream contains any elements.
bool isBroadcast
read-only , inherited
Reports whether this stream is a broadcast stream.
InternetAddress remoteAddress
read-only , inherited
Returns the remote [InternetAddress] connected to by this socket.
InternetAddress address
read-only , inherited
Returns the [InternetAddress] used to connect this socket.
int port
read-only , inherited
Returns the port used by this socket.
Future<List<int>> first
read-only , inherited
Returns the first element of the stream.

Methods

renegotiate({bool useSessionCache: true, bool requestClientCertificate: false, bool requireClientCertificate: false}) → void
Renegotiate an existing secure connection, renewing the session keys and possibly changing the connection properties.
writeCharCode(int charCode) → void
inherited
Writes the charCode to this.
take(int count) → Stream<List<int>>
inherited
Provides at most the first n values of this stream.
map(dynamic convert(T event)) → Stream
inherited
Creates a new stream that converts each element of this stream to a new value using the convert function.
listen(void onData(T event), {Function onError, void onDone(), bool cancelOnError}) → StreamSubscription<List<int>>
inherited
Adds a subscription to this stream.
timeout(Duration timeLimit, {void onTimeout(EventSink sink)}) → Stream
inherited
Creates a new stream with the same events as this stream.
distinct([bool equals(T previous, T next)]) → Stream<List<int>>
inherited
Skips data events if they are equal to the previous data event.
addStream(Stream<List<int>> stream) → Future
inherited
Adds all elements of the given stream to this.
toSet() → Future<Set<List<int>>>
inherited
Collects the data of this stream in a Set.
forEach(void action(T element)) → Future
inherited
Executes action on each data event of the stream.
skipWhile(bool test(T element)) → Stream<List<int>>
inherited
Skip data events from this stream while they are matched by test.
writeln([Object obj = ""]) → void
inherited
Converts obj to a String by invoking Object.toString and writes the result to this, followed by a newline.
join([String separator = ""]) → Future<String>
inherited
Collects string of data events' string representations.
flush() → Future
inherited
Returns a Future that completes once all buffered data is accepted by the to underlying StreamConsumer.
setOption(SocketOption option, bool enabled) → bool
inherited
Use setOption to customize the RawSocket. See SocketOption for available options.
addError(error, [StackTrace stackTrace]) → void
inherited
Passes the error to the target consumer as an error event.
lastWhere(bool test(T element), {Object defaultValue()}) → Future
inherited
Finds the last element in this stream matching test.
handleError(Function onError, {bool test(error)}) → Stream<List<int>>
inherited
Creates a wrapper Stream that intercepts some errors from this stream.
reduce(T combine(T previous, T element)) → Future<List<int>>
inherited
Reduces a sequence of values by repeatedly applying combine.
transform(StreamTransformer<List<int>> streamTransformer) → Stream
inherited
Chains this stream as the input of the provided StreamTransformer.
any(bool test(T element)) → Future<bool>
inherited
Checks whether test accepts any element provided by this stream.
every(bool test(T element)) → Future<bool>
inherited
Checks whether test accepts all elements provided by this stream.
where(bool test(T event)) → Stream<List<int>>
inherited
Creates a new stream from this stream that discards some data events.
skip(int count) → Stream<List<int>>
inherited
Skips the first count data events from this stream.
expand(Iterable convert(T value)) → Stream
inherited
Creates a new stream from this stream that converts each element into zero or more events.
elementAt(int index) → Future<List<int>>
inherited
Returns the value of the indexth data event of this stream.
pipe(StreamConsumer<List<int>> streamConsumer) → Future
inherited
Pipe the events of this stream into streamConsumer.
takeWhile(bool test(T element)) → Stream<List<int>>
inherited
Forwards data events while test is successful.
write(Object obj) → void
inherited
Converts obj to a String by invoking Object.toString and adds the encoding of the result to the target consumer.
fold(initialValue, dynamic combine(previous, T element)) → Future
inherited
Reduces a sequence of values by repeatedly applying combine.
firstWhere(bool test(T element), {Object defaultValue()}) → Future
inherited
Finds the first element of this stream matching test.
contains(Object needle) → Future<bool>
inherited
Checks whether needle occurs in the elements provided by this stream.
writeAll(Iterable objects, [String separator = ""]) → void
inherited
Iterates over the given objects and writes them in sequence.
asyncExpand(Stream convert(T event)) → Stream
inherited
Creates a new stream with the events of a stream per original event.
add(List<int> data) → void
inherited
Adds data to the target consumer, ignoring encoding.
singleWhere(bool test(T element)) → Future<List<int>>
inherited
Finds the single element in this stream matching test.
drain([futureValue]) → Future
inherited
Discards all data on the stream, but signals when it's done or an error occured.
close() → Future
inherited
Close the target consumer.
asyncMap(dynamic convert(T event)) → Stream
inherited
Creates a new stream with each data event of this stream asynchronously mapped to a new event.
destroy() → void
inherited
Destroy the socket in both directions. Calling destroy will make the send a close event on the stream and will no longer react on data being piped to it.
toList() → Future<List<List<int>>>
inherited
Collects the data of this stream in a List.
asBroadcastStream({void onListen(StreamSubscription<T> subscription), void onCancel(StreamSubscription<T> subscription)}) → Stream<List<int>>
inherited
Returns a multi-subscription stream that produces the same events as this.