SecureSocket class

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.

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.

Instance Properties

peerCertificate X509Certificate
read-only
selectedProtocol String
read-only
encoding Encoding Inherited
read / write
The Encoding used when writing strings. Depending on the underlying consumer this property might be mutable.
remotePort int Inherited
read-only
last Future<List<int>> Inherited
read-only
single Future<List<int>> Inherited
read-only
length Future<int> Inherited
read-only
done Future Inherited
read-only
isEmpty Future<bool> Inherited
read-only
isBroadcast bool Inherited
read-only
remoteAddress InternetAddress Inherited
read-only
address InternetAddress Inherited
read-only
port int Inherited
read-only
first Future<List<int>> Inherited
read-only

Instance 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.