private static CryptoStreamMode ModeAdapter(PCLCrypto.CryptoStreamMode mode)
 {
     switch (mode)
     {
         case PCLCrypto.CryptoStreamMode.Read:
             return CryptoStreamMode.Read;
         case PCLCrypto.CryptoStreamMode.Write:
             return CryptoStreamMode.Write;
         default:
             throw new ArgumentOutOfRangeException();
     }
 }
 internal static ICryptoTransform Adapt(PCLCrypto.ICryptoTransform transform)
 {
     return transform != null ? new CryptoTransformAdapter(transform) : null;
 }
 private CryptoTransformAdapter(PCLCrypto.ICryptoTransform transform)
 {
     this.transform = transform;
 }
 protected override Stream CreateCryptoStream(Stream target, PCLCrypto.ICryptoTransform transform, PCLCrypto.CryptoStreamMode mode)
 {
     return new CryptoStream(target, CryptoTransformAdapter.Adapt(transform), ModeAdapter(mode));
 }