31.10.2007 1:30:19как заверить пару ключей хранящуюся в контейнере Ответов: 1
Егорка
всем снова привет и доброго времени суток.
вот что у меня есть
public static void GenKey_SaveInContainer(string ContainerName)
{
// Create the CspParameters object and set the key container
// name used to store the RSA key pair.
CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;

// Create a new instance of RSACryptoServiceProvider that accesses
// the key container MyKeyContainerName.
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

// Display the key information to the console.
Console.WriteLine("Key added to container: \n {0}", rsa.ToXmlString(true));
}
запустил создался ключ и записался в контейнер hranilcert123
теперь есть ещё
public static void GetKeyFromContainer(string ContainerName)
{
// Create the CspParameters object and set the key container
// name used to store the RSA key pair.
CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;

// Create a new instance of RSACryptoServiceProvider that accesses
// the key container MyKeyContainerName.
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(cp);

// Display the key information to the console.

//Create a new instance of RSAParameters.
RSAParameters RSAKeyInfo = new RSAParameters();

//Export key parameters into RSA.
RSAKeyInfo = rsa.ExportParameters(false);
Byte[] msg = RSAKeyInfo.Modulus;
// Exponent = RSAKeyInfo.Exponent;
Console.WriteLine("Key retrieved from container : \n {0}", rsa.ToXmlString(false));
}

в общем когда достаю ключ из контейнера он достаёться и при переводе в XML строку получаю (для открытой части )

Key retrieved from container :
<RSAKeyValue><Modulus>60aif7LeSIK5+0lQtnHIAIqlDLUHbyP+g4yntY18q4MLb1ZrcqDcv0NHa
vC6UNid0pqA7U7vww0tJ99kCjuHWA2mCnx9eZuUBiZ+MmvvaoGIImWEh98Jn9VkPA6UyOpF9JnLTpsl5

/m650xxSPpKsQ28m/9Mro8udnRYdFU61G0=</Modulus><Exponent>AQAB</Exponent></RSAKeyVa
lue>

вроде нормальный ключ. далее хочу заверить его сертификатом и делаю вот что


c:\>makecert -n "CN=Egorka" -sk "hranilcert123" egorka.cer
Succeeded

c:\>makecert -n "CN=Egorka2" -sk hranilcert123 -sr LocalMachine egorka2.cer
Succeeded


c:\>makecert -n "CN=Egorka3" -sk hranilcert123 -sr CurrentUser egorka3.cer
Succeeded

а потом сматрю что там получилось с помощью вот чего
X509Certificate2 certificate1 = new X509Certificate2("c:\\egorka.cer");
Console.WriteLine("{0}Certificate to XML String: {1}{0}", Environment.NewLine, certificate1.PublicKey.Key.ToXmlString(false));


и получаю вот что

Certificate to XML String: <RSAKeyValue><Modulus>w32+jzwZ3gjoI/bWeZy4flM0+7zlNlc
+kDoh4u6SBy5lR+T81Ej+xzob87cyj+GIQUaMOyzgc3REZ2PvCGaYplIR2InbyEJ3g/fifUTJRZsb3zs
4gWVNgVEKo9YWzT2TQqt5cXn1310QiTrvuBhdyW54rTksDiFznNw5TZETxUs=</Modulus><Exponent
>AQAB</Exponent></RSAKeyValue>

для любого из 3 сертификатов. значит в них таки есть логика ? оО

ребят помогите мне пожалуйста.
надо заверить ключ с помощью makecert а я не знаю как (
 
Ответы:
08.11.2007 2:46:50maxdm
Вопрос то в чем?