protected override IObservable <byte[]> BeforeWriteToDiskFilter(byte[] data, IScheduler scheduler)
        {
            try
            {
                var ret = Observable.Return(DataProtectionApi.Encrypt(DataProtectionApi.KeyType.UserKey, data, null, null));

                // NB: MemoizedRequests will be null as we're disposing
                if (MemoizedRequests != null)
                {
                    lock (MemoizedRequests) MemoizedRequests.InvalidateAll();
                }
                return(ret);
            }
            catch (Exception ex)
            {
                return(Observable.Throw <byte[]>(ex));
            }
        }
        protected override IObservable <byte[]> AfterReadFromDiskFilter(byte[] data, IScheduler scheduler)
        {
            try
            {
                string dontcare;
                var    ret = Observable.Return(DataProtectionApi.Decrypt(data, null, out dontcare));

                // NB: MemoizedRequests will be null as we're disposing
                if (MemoizedRequests != null)
                {
                    lock (MemoizedRequests) MemoizedRequests.InvalidateAll();
                }
                return(ret);
            }
            catch (Exception ex)
            {
                return(Observable.Throw <byte[]>(ex));
            }
        }
Beispiel #3
0
        protected override IObservable <byte[]> AfterReadFromDiskFilter(byte[] data, IScheduler scheduler)
        {
            try
            {
                string dontcare;
#if SILVERLIGHT
                var ret = Observable.Return(ProtectedData.Unprotect(data, null));
#else
                var ret = Observable.Return(ProtectedData.Unprotect(data, null, DataProtectionScope.CurrentUser));
#endif

                // NB: MemoizedRequests will be null as we're disposing
                if (MemoizedRequests != null)
                {
                    lock (MemoizedRequests) MemoizedRequests.InvalidateAll();
                }
                return(ret);
            }
            catch (Exception ex)
            {
                return(Observable.Throw <byte[]>(ex));
            }
        }