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();
        }
    }
 protected override Stream CreateCryptoStream(Stream target, PCLCrypto.ICryptoTransform transform, PCLCrypto.CryptoStreamMode mode)
 {
     return(new CryptoStream(target, CryptoTransformAdapter.Adapt(transform), ModeAdapter(mode)));
 }