static IObservable<T> Decrypt<T>(this IObservable<byte[]> s…
static IObservable<T> Decrypt<T>(this IObservable<byte[]> source, byte[] key, byte[] IV) {
return Observable.Create<T>(o =>
source.Subscribe(t => {
Replies
using(var aes = Aes.Create()) {
var decryptor = aes.CreateDecryptor(key, IV);
using (var ms = new MemoryStream(t)) {
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read)) {
var formatter = new BinaryFormatter();
T decrypted = (T)formatter.Deserialize(cs);
try {
o.OnNext(decrypted);
o.OnCompleted();
} catch(CryptographicException cex) {
o.OnError(cex);
}
}
var formatter = new BinaryFormatter();
T decrypted = (T)formatter.Deserialize(cs);
try {
o.OnNext(decrypted);
o.OnCompleted();
} catch(CryptographicException cex) {
o.OnError(cex);}}}}}));}}