FlushAsync() public method

public FlushAsync ( CancellationToken cancellationToken ) : Task
cancellationToken CancellationToken
return Task
Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            System.Console.WriteLine(
               typeof(object).AssemblyQualifiedName
            );

            // http://www.drdobbs.com/windows/programming-public-key-cryptostreams-par/184416907
            // X:\jsc.svn\examples\java\hybrid\JVMCLRRSACryptoServiceProviderExport\JVMCLRRSACryptoServiceProviderExport\Program.cs




            //var dwKeySize = (0x100 + 0x100) * 8;
            var dwKeySize = 128 * 8;
            var MaxData = (dwKeySize - 384) / 8 + 7;

            var RSA = new RSACryptoServiceProvider(
                   dwKeySize: dwKeySize,
                   parameters: new CspParameters { }
               );

            RSAParameters p = RSA.ExportParameters(includePrivateParameters: false);



            var value = RSA.Encrypt(
                    Encoding.UTF8.GetBytes("hello from server"), fOAEP: true
            //Encoding.UTF8.GetBytes("hello from server"), fOAEP: false
            );


            var data = new MemoryStream();
            var goo = new CryptoStream(data, new RSAEnCryptoTransform(RSA), CryptoStreamMode.Write);

            var text = Encoding.UTF8.GetBytes("hello".PadRight(8000) + "world");

            goo.WriteAsync(text, 0, text.Length).Wait();

            goo.FlushFinalBlock();

            goo.FlushAsync().Wait();


            var foo = new CryptoStream(data, new RSADeCryptoTransform(RSA), CryptoStreamMode.Read);

            //var buffer = new byte[100];
            //var buffer = new byte[MaxData];
            var buffer = new byte[0x1000];
            var result = foo.Read(buffer, 0, buffer.Length);
            //var result = foo.ReadAsync(buffer, 0, buffer.Length).Result;


            CLRProgram.CLRMain();
        }