public static Task <byte[]> decryptAsync( this SubtleCrypto that, object algorithm, CryptoKey key, byte[] data ) { Console.WriteLine( "enter decryptAsync" ); var x = new TaskCompletionSource <byte[]>(); var promise = that.decrypt(algorithm, key, data); // android webview wont like .catch promise.@catch( err => { // X:\jsc.svn\examples\javascript\Test\TestWebCryptoKeyExport\TestWebCryptoKeyExport\Application.cs // setexception? Console.WriteLine( "decryptAsync " + new { err } ); } ); // tested by? promise.then( z => { x.SetResult(z); } ); return(x.Task); }