static IObservable<T> Decrypt<T>(this IObservable<byte[]> s…

Twetch ·

static IObservable<T> Decrypt<T>(this IObservable<byte[]> source, byte[] key, byte[] IV) {
return Observable.Create<T>(o =>
source.Subscribe(t => {

Replies

Twetch ·

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)) {

Twetch ·

var formatter = new BinaryFormatter();
T decrypted = (T)formatter.Deserialize(cs);
try {
o.OnNext(decrypted);
o.OnCompleted();
} catch(CryptographicException cex) {
o.OnError(cex);
}
}

Twetch ·

var formatter = new BinaryFormatter();
T decrypted = (T)formatter.Deserialize(cs);
try {
o.OnNext(decrypted);
o.OnCompleted();
} catch(CryptographicException cex) {
o.OnError(cex);}}}}}));}}