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();
}