Silverlight 5 WinRT

  public abstract class AuthenticatedStream
  : Stream, IDisposable
  protected Stream InnerStream { get; }
  public abstract virtual Boolean IsAuthenticated { get; }
  public abstract virtual Boolean IsEncrypted { get; }
  public abstract virtual Boolean IsMutuallyAuthenticated { get; }
  public abstract virtual Boolean IsServer { get; }
  public abstract virtual Boolean IsSigned { get; }
  public Boolean LeaveInnerStreamOpen { get; }
  protected virtual void Dispose(Boolean disposing);

  public sealed enum AuthenticationLevel
  : IComparable, IFormattable, IConvertible
  { None, MutualAuthRequested, MutualAuthRequired }

  public sealed enum EncryptionPolicy
  : IComparable, IFormattable, IConvertible
  { RequireEncryption, AllowNoEncryption, NoEncryption }

  public sealed class LocalCertificateSelectionCallback
  : MulticastDelegate, ICloneable, ISerializable
  public virtual IAsyncResult BeginInvoke(Object sender, String targetHost, X509CertificateCollection localCertificates, X509Certificate remoteCertificate, String acceptableIssuers, AsyncCallback callback, Object object);
  public virtual X509Certificate EndInvoke(IAsyncResult result);
  public virtual X509Certificate Invoke(Object sender, String targetHost, X509CertificateCollection localCertificates, X509Certificate remoteCertificate, String acceptableIssuers);

  public class NegotiateStream
  : AuthenticatedStream, IDisposable
  public virtual Boolean CanRead { get; }
  public virtual Boolean CanSeek { get; }
  public virtual Boolean CanTimeout { get; }
  public virtual Boolean CanWrite { get; }
  public virtual TokenImpersonationLevel ImpersonationLevel { get; }
  public virtual Boolean IsAuthenticated { get; }
  public virtual Boolean IsEncrypted { get; }
  public virtual Boolean IsMutuallyAuthenticated { get; }
  public virtual Boolean IsServer { get; }
  public virtual Boolean IsSigned { get; }
  public virtual Int64 Length { get; }
  public virtual Int64 Position { get; set; }
  public virtual Int32 ReadTimeout { get; set; }
  public virtual IIdentity RemoteIdentity { get; }
  public virtual Int32 WriteTimeout { get; set; }
  public virtual void AuthenticateAsClient();
  public virtual void AuthenticateAsClient(NetworkCredential credential, String targetName);
  public virtual void AuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName);
  public virtual void AuthenticateAsClient(NetworkCredential credential, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel);
  public virtual void AuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel);
  public virtual Task AuthenticateAsClientAsync();
  public virtual Task AuthenticateAsClientAsync(NetworkCredential credential, String targetName);
  public virtual Task AuthenticateAsClientAsync(NetworkCredential credential, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel);
  public virtual Task AuthenticateAsClientAsync(NetworkCredential credential, ChannelBinding binding, String targetName);
  public virtual Task AuthenticateAsClientAsync(NetworkCredential credential, ChannelBinding binding, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel);
  public virtual void AuthenticateAsServer();
  public virtual void AuthenticateAsServer(ExtendedProtectionPolicy policy);
  public virtual void AuthenticateAsServer(NetworkCredential credential, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel);
  public virtual void AuthenticateAsServer(NetworkCredential credential, ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel);
  public virtual Task AuthenticateAsServerAsync();
  public virtual Task AuthenticateAsServerAsync(ExtendedProtectionPolicy policy);
  public virtual Task AuthenticateAsServerAsync(NetworkCredential credential, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel);
  public virtual Task AuthenticateAsServerAsync(NetworkCredential credential, ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel);
  public virtual IAsyncResult BeginAuthenticateAsClient(AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, String targetName, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsServer(AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsServer(ExtendedProtectionPolicy policy, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsServer(NetworkCredential credential, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsServer(NetworkCredential credential, ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginRead(Byte buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginWrite(Byte buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState);
  protected virtual void Dispose(Boolean disposing);
  public virtual void EndAuthenticateAsClient(IAsyncResult asyncResult);
  public virtual void EndAuthenticateAsServer(IAsyncResult asyncResult);
  public virtual Int32 EndRead(IAsyncResult asyncResult);
  public virtual void EndWrite(IAsyncResult asyncResult);
  public virtual void Flush();
  public virtual Int32 Read(Byte buffer, Int32 offset, Int32 count);
  public virtual Int64 Seek(Int64 offset, SeekOrigin origin);
  public virtual void SetLength(Int64 value);
  public virtual void Write(Byte buffer, Int32 offset, Int32 count);

  public sealed enum ProtectionLevel
  : IComparable, IFormattable, IConvertible
  { None, Sign, EncryptAndSign }

  public sealed class RemoteCertificateValidationCallback
  : MulticastDelegate, ICloneable, ISerializable
  public virtual IAsyncResult BeginInvoke(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors, AsyncCallback callback, Object object);
  public virtual Boolean EndInvoke(IAsyncResult result);
  public virtual Boolean Invoke(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors);

  public sealed enum SslPolicyErrors
  : IComparable, IFormattable, IConvertible
  { None, RemoteCertificateNotAvailable, RemoteCertificateNameMismatch, RemoteCertificateChainErrors }

  public class SslStream
  : AuthenticatedStream, IDisposable
  public virtual Boolean CanRead { get; }
  public virtual Boolean CanSeek { get; }
  public virtual Boolean CanTimeout { get; }
  public virtual Boolean CanWrite { get; }
  public virtual Boolean CheckCertRevocationStatus { get; }
  public virtual CipherAlgorithmType CipherAlgorithm { get; }
  public virtual Int32 CipherStrength { get; }
  public virtual HashAlgorithmType HashAlgorithm { get; }
  public virtual Int32 HashStrength { get; }
  public virtual Boolean IsAuthenticated { get; }
  public virtual Boolean IsEncrypted { get; }
  public virtual Boolean IsMutuallyAuthenticated { get; }
  public virtual Boolean IsServer { get; }
  public virtual Boolean IsSigned { get; }
  public virtual ExchangeAlgorithmType KeyExchangeAlgorithm { get; }
  public virtual Int32 KeyExchangeStrength { get; }
  public virtual Int64 Length { get; }
  public virtual X509Certificate LocalCertificate { get; }
  public virtual Int64 Position { get; set; }
  public virtual Int32 ReadTimeout { get; set; }
  public virtual X509Certificate RemoteCertificate { get; }
  public virtual SslProtocols SslProtocol { get; }
  public TransportContext TransportContext { get; }
  public virtual Int32 WriteTimeout { get; set; }
  public virtual void AuthenticateAsClient(String targetHost);
  public virtual void AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation);
  public virtual Task AuthenticateAsClientAsync(String targetHost);
  public virtual Task AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation);
  public virtual void AuthenticateAsServer(X509Certificate serverCertificate);
  public virtual void AuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation);
  public virtual Task AuthenticateAsServerAsync(X509Certificate serverCertificate);
  public virtual Task AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation);
  public virtual IAsyncResult BeginAuthenticateAsClient(String targetHost, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsServer(X509Certificate serverCertificate, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginRead(Byte buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState);
  public virtual IAsyncResult BeginWrite(Byte buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState);
  protected virtual void Dispose(Boolean disposing);
  public virtual void EndAuthenticateAsClient(IAsyncResult asyncResult);
  public virtual void EndAuthenticateAsServer(IAsyncResult asyncResult);
  public virtual Int32 EndRead(IAsyncResult asyncResult);
  public virtual void EndWrite(IAsyncResult asyncResult);
  public virtual void Flush();
  public virtual Int32 Read(Byte buffer, Int32 offset, Int32 count);
  public virtual Int64 Seek(Int64 offset, SeekOrigin origin);
  public virtual void SetLength(Int64 value);
  public void Write(Byte buffer);
  public virtual void Write(Byte buffer, Int32 offset, Int32 count);