public void TestPrivateKeyExport()
        {
            RSAPrivateKey pk = new RSAPrivateKey();
            string xml = pk.ToXml();

            RSAPrivateKey copy = RSAPrivateKey.FromXml(xml);
            Assert.AreEqual(xml, copy.ToXml());

            byte[] bytes = pk.ToArray();
            Assert.AreEqual(596, bytes.Length);

            copy = RSAPrivateKey.FromBytes(bytes);
            Assert.AreEqual(bytes, copy.ToArray());

            copy = RSAPrivateKey.FromParameters(pk.ExportParameters());
            Assert.AreEqual(bytes, copy.ToArray());
        }
        public void TestKeyStoreAddRemove()
        {
            string keyname = this.GetType().FullName + ".TestKeyCreateAndDelete";
            using (RSAPrivateKey key = new RSAPrivateKey())
            {
                Assert.IsFalse(key.DeleteFromStore());

                key.WriteToStore(keyname);

				CspParameters cp = new CspParameters();
				cp.KeyContainerName = keyname;
				cp.Flags = CspProviderFlags.UseExistingKey;

				using (RSAPrivateKey key2 = RSAPrivateKey.FromStore(cp))
					Assert.AreEqual(key.ToXml(), key2.ToXml());

				using (RSAPrivateKey key2 = RSAPrivateKey.FromStore(keyname))
                {
                    Assert.AreEqual(key.ToXml(), key2.ToXml());
                    Assert.IsTrue(key2.DeleteFromStore());
                    key2.Dispose();
                }
            }
        }