pub type EncryptedStream<R, W, A, S> = (ReadHalf<R, Decryptor<A, S>>, WriteHalf<W, Encryptor<A, S>>);