本文整理汇总了C#中System.Security.Cryptography.DSACryptoServiceProvider.ToXmlString方法的典型用法代码示例。如果您正苦于以下问题:C# DSACryptoServiceProvider.ToXmlString方法的具体用法?C# DSACryptoServiceProvider.ToXmlString怎么用?C# DSACryptoServiceProvider.ToXmlString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Security.Cryptography.DSACryptoServiceProvider
的用法示例。
在下文中一共展示了DSACryptoServiceProvider.ToXmlString方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: createKeyPair
static Key createKeyPair()
{
// note: Clear() just calls Dispose() :)
using (var dsa = new DSACryptoServiceProvider(DefaultKeySize.signed()))
{
return new Key(DefaultAlgorithm, DefaultKeySize, System.Text.Encoding.UTF8.GetBytes(dsa.ToXmlString(true)));
}
}
示例2: GenerateKeys
private static void GenerateKeys()
{
if (File.Exists(SignatureVerifier.DefaultDSAPrivKeyFileName) || File.Exists(SignatureVerifier.DefaultDSAPubKeyFileName))
{
ShowErrorMessage("\tError: Output files already exists!");
}
var prv = new DSACryptoServiceProvider();
using (var sw = new StreamWriter(SignatureVerifier.DefaultDSAPrivKeyFileName))
{
sw.Write(prv.ToXmlString(true));
}
using (var sw = new StreamWriter(SignatureVerifier.DefaultDSAPubKeyFileName))
{
sw.Write(prv.ToXmlString(false));
}
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.WriteLine("\tFinished generating keys");
Console.ResetColor();
}
示例3: RealizarFirmaDigitalPorDSA
/// <summary>
/// Método realiza firma digital.
/// </summary>
/// <param name="pCadenaTexto">Cadena de texto.</param>
/// <returns>
/// Mensajes de impresión.
/// </returns>
public static string RealizarFirmaDigitalPorDSA(string pCadenaTexto)
{
// Declara mensajes de impresión.
string vMsgImpresion = string.Empty;
// Instancia servicio criptografico DSA.
DSACryptoServiceProvider vServicioCriptorDSA = new DSACryptoServiceProvider();
// Obtiene claves privadas y publicas.
string vClaves = vServicioCriptorDSA.ToXmlString(true);
// Genera clave hash.
vClaveHash = GenerarClaveSHA1(pCadenaTexto);
// Convierte a cadena array de clave SHA1.
string vCadenaClaveSHA1 = Convert.ToBase64String(vClaveHash);
vMsgImpresion += "FIRMA DIGITAL - Cadena de entrada (DSA): " + pCadenaTexto + " \n ";
vMsgImpresion += "GERERAR CLAVE SHA1 - Cadena de clave hash (DSA): " + vCadenaClaveSHA1 + " \n ";
// Crea firma digital para la clave hash.
vFirmaDigital = CrearFirmaDigitalDSA(vClaveHash, vClaves);
// Convierte a cadena array de firma digital.
string vCadenaFirmaDigital = Convert.ToBase64String(vFirmaDigital);
vMsgImpresion += "GERERAR FIRMA DIGITAL (DSA): Se cargaron clave privada y pública a servicio criptor DSA \n ";
vMsgImpresion += "GERERAR FIRMA DIGITAL - Cadena firma digital (DSA): " + vCadenaFirmaDigital + " \n ";
// Obtiene clave pública.
vClavePublica = vServicioCriptorDSA.ToXmlString(false);
// Retorna mensaje.
return vMsgImpresion;
}
示例4: PersistKey_FalseTrue
public void PersistKey_FalseTrue ()
{
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider (minKeySize);
string key = dsa.ToXmlString (true);
dsa.PersistKeyInCsp = false;
dsa.PersistKeyInCsp = true;
Assert.AreEqual (key, dsa.ToXmlString (true), "PersistKeyInCsp-FalseTrue");
}
示例5: Persistence_Delete
public void Persistence_Delete ()
{
CspParameters csp = new CspParameters (3, null, "Persistence_Delete");
// MS generates (or load) keypair here
// Mono load (if it exists) the keypair here
DSACryptoServiceProvider dsa1 = new DSACryptoServiceProvider (minKeySize, csp);
// Mono will generate the keypair here (if it doesn't exists)
string original = dsa1.ToXmlString (true);
// note: Delete isn't well documented but can be done by
// flipping the PersistKeyInCsp to false and back to true.
dsa1.PersistKeyInCsp = false;
dsa1.Clear ();
// recreate using the same container name
DSACryptoServiceProvider dsa2 = new DSACryptoServiceProvider (minKeySize, csp);
string newKeyPair = dsa2.ToXmlString (true);
Assert.IsTrue (original != newKeyPair, "Key Pair Deleted");
}
示例6: Persistence_PersistKeyInCsp_True
public void Persistence_PersistKeyInCsp_True ()
{
CspParameters csp = new CspParameters (3, null, "Persistence_PersistKeyInCsp_True");
// MS generates (or load) keypair here
// Mono load (if it exists) the keypair here
DSACryptoServiceProvider dsa1 = new DSACryptoServiceProvider (minKeySize, csp);
// Mono will generate the keypair here (if it doesn't exists)
string first = dsa1.ToXmlString (true);
// persistance is "on" by default
Assert.IsTrue (dsa1.PersistKeyInCsp, "PersistKeyInCsp");
// reload using the same container name
DSACryptoServiceProvider dsa2 = new DSACryptoServiceProvider (minKeySize, csp);
string second = dsa2.ToXmlString (true);
Assert.AreEqual (first, second, "Key Pair Same Container");
}
示例7: MonoXmlImportExport
public void MonoXmlImportExport ()
{
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider ();
dsa.FromXmlString (MonoXml512);
Assert.AreEqual (MonoXml512, dsa.ToXmlString (true), "Mono-Xml512");
dsa.FromXmlString (MonoXml576);
Assert.AreEqual (MonoXml576, dsa.ToXmlString (true), "Mono-Xml576");
dsa.FromXmlString (MonoXml640);
Assert.AreEqual (MonoXml640, dsa.ToXmlString (true), "Mono-Xml640");
dsa.FromXmlString (MonoXml704);
Assert.AreEqual (MonoXml704, dsa.ToXmlString (true), "Mono-Xml704");
dsa.FromXmlString (MonoXml768);
Assert.AreEqual (MonoXml768, dsa.ToXmlString (true), "Mono-Xml768");
dsa.FromXmlString (MonoXml832);
Assert.AreEqual (MonoXml832, dsa.ToXmlString (true), "Mono-Xml832");
dsa.FromXmlString (MonoXml896);
Assert.AreEqual (MonoXml896, dsa.ToXmlString (true), "Mono-Xml896");
dsa.FromXmlString (MonoXml960);
Assert.AreEqual (MonoXml960, dsa.ToXmlString (true), "Mono-Xml960");
dsa.FromXmlString (MonoXml1024);
Assert.AreEqual (MonoXml1024, dsa.ToXmlString (true), "Mono-Xml1024");
}
示例8: TooBigKeyPair
public void TooBigKeyPair ()
{
dsa = new DSACryptoServiceProvider (2048);
// in 2.0 MS delay the creation of the key pair until it is required
// (same trick that Mono almost always used ;-) but they also delay
// the parameter validation (what Mono didn't). So here we must "get"
// the key (export) to trigger the exception
dsa.ToXmlString (true);
}
示例9: CreateKey
public static int FileReadStep = 4194304; // 4M
#region CreateKey
/// <summary>
/// 创建密钥对(XmlString),使用者应将结果保存到文件存档
/// </summary>
/// <param name="ContainsPKey">是否包含私钥</param>
/// <returns></returns>
public static string CreateKey(bool ContainsPKey)
{
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider();
return dsa.ToXmlString(ContainsPKey);
}
示例10: GeneratePrivateKey
public static String GeneratePrivateKey()
{
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider();
return dsa.ToXmlString(true);
}
示例11: button8_Click
//Формируем цифровую подпись
private void button8_Click(object sender, EventArgs e)
{
// создаем объект выбранного заказа
// как и в примере из предыдущего раздела
// В результате имеем заполненный объект класса Заказ с именем с
// определяем, какой заказ следует сериализовать
// код создания объекта (Zakaz c) аналогичен предыдущему примеру
// определяем, какой заказ выбран для генерации документа
if (dataGridView1.SelectedRows.Count == 0)
return;
//получение номера текущего выбранного заказа
nom = (int)dataGridView1.SelectedRows[0].Cells["НомерЗаказа"].Value;
//получение даты текущего выбранного заказа
date = (DateTime)dataGridView1.SelectedRows[0].Cells["ДатаЗаказа"].Value;
// поиск заказа по ключу
DataRow dr = ds.Tables["Заказы"].Rows.Find(new object[] { (object)nom, (object)date });
// создаем объект заказа для последующей сериализации
Zakaz c = new Zakaz((int)dr["IDЗаказчика"], (int)dr["IDИсполнителя"], (int)dr["НомерЗаказа"], (DateTime)dr["ДатаЗаказа"], (string)dr["Предмет/Тема"], (int)dr["Стоимость"]);
// хэшировать будем по двоичному коду объекта класса Zakaz
// проводим бинарную сериализацию объекта c
// создаем объект-форматер
BinaryFormatter ser = new BinaryFormatter();
// создаем поток для сериализации объекта в оперативной памяти
MemoryStream ms = new MemoryStream();
// проводим сериализацию в память
ser.Serialize(ms, c);
// получаем массив байт, определяющий объект заказа,
// считывая из потока в памяти
byte[] message = new byte[ms.Length];
ms.Read(message, 0, (int)ms.Length);
// хэшируем заказ
// создаем провайдер для хэширования
SHA1 sha1 = new SHA1CryptoServiceProvider();
// проводим хэширование
byte[] hashMessage = sha1.ComputeHash(message);
// получаем цифровую подпись с помощью алгоритма DSA
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider();
// цифровая подпись – это также набор байт.
// Второй параметр метода – своеобразный ключ
byte[] signature = dsa.SignHash(hashMessage, "1.3.14.3.2.26");
// сохраняем параметры ключа в виде структурированной строки
string key = dsa.ToXmlString(true);
// сохраним подпись данного документа в бинарном файле,
// имя которого зависит от номера Заказа
BinaryWriter br = new BinaryWriter(new FileStream("Zakaz"+c.НомерЗаказа+".dat", FileMode.Create));
// сохраняем ключ в созданный файл
br.Write(key);
// сохраняем в файл цифровую подпись
// сначала количество байт
br.Write(signature.Length);
// затем саму подпись
br.Write(signature);
// закрываем файл с подписью
br.Close();
MessageBox.Show("Создана цифровая подпись!");
}
示例12: PersistKey_False
public void PersistKey_False ()
{
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider (minKeySize);
string key = dsa.ToXmlString (true);
dsa.PersistKeyInCsp = false;
AssertEquals ("PersistKeyInCsp-False", key, dsa.ToXmlString (true));
}
示例13: Persistence_PersistKeyInCsp_False
public void Persistence_PersistKeyInCsp_False ()
{
CspParameters csp = new CspParameters (3, null, "Persistence_PersistKeyInCsp_False");
// MS generates (or load) keypair here
// Mono load (if it exists) the keypair here
DSACryptoServiceProvider dsa1 = new DSACryptoServiceProvider (minKeySize, csp);
// Mono will generate the keypair here (if it doesn't exists)
string first = dsa1.ToXmlString (true);
// persistance is "on" by default when a CspParameters is supplied
Assert ("PersistKeyInCsp", dsa1.PersistKeyInCsp);
// this means nothing if we don't call Clear !!!
dsa1.PersistKeyInCsp = false;
Assert ("PersistKeyInCsp", !dsa1.PersistKeyInCsp);
// reload using the same container name
DSACryptoServiceProvider dsa2 = new DSACryptoServiceProvider (minKeySize, csp);
string second = dsa2.ToXmlString (true);
AssertEquals ("Key Pair Same Container", first, second);
}
示例14: CapiXmlImportExport
public void CapiXmlImportExport ()
{
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider ();
dsa.FromXmlString (CapiXml512);
AssertEquals ("Capi-Xml512", CapiXml512, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml576);
AssertEquals ("Capi-Xml576", CapiXml576, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml640);
AssertEquals ("Capi-Xml640", CapiXml640, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml704);
AssertEquals ("Capi-Xml704", CapiXml704, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml768);
AssertEquals ("Capi-Xml768", CapiXml768, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml832);
AssertEquals ("Capi-Xml832", CapiXml832, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml896);
AssertEquals ("Capi-Xml896", CapiXml896, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml960);
AssertEquals ("Capi-Xml960", CapiXml960, dsa.ToXmlString (true));
dsa.FromXmlString (CapiXml1024);
AssertEquals ("Capi-Xml1024", CapiXml1024, dsa.ToXmlString (true));
}
示例15: UseMachineKeyStore
public void UseMachineKeyStore ()
{
// note only applicable when CspParameters isn't used - which don't
// help much as you can't know the generated key container name
try {
DSACryptoServiceProvider.UseMachineKeyStore = true;
CspParameters csp = new CspParameters (13, null, "UseMachineKeyStore");
csp.KeyContainerName = "UseMachineKeyStore";
DSACryptoServiceProvider dsa = new DSACryptoServiceProvider (csp);
string machineKeyPair = dsa.ToXmlString (true);
dsa.Clear ();
DSACryptoServiceProvider.UseMachineKeyStore = false;
csp = new CspParameters (13, null, "UseMachineKeyStore");
csp.Flags |= CspProviderFlags.UseMachineKeyStore;
dsa = new DSACryptoServiceProvider (csp);
Assert.IsTrue (machineKeyPair != dsa.ToXmlString (true), "UseMachineKeyStore");
}
catch (CryptographicException ce) {
// only root can create the required directory (if inexistant)
// afterward anyone can use (read from) it
if (!(ce.InnerException is UnauthorizedAccessException))
throw;
}
catch (UnauthorizedAccessException) {
}
}