概要
cscの作法、調べてみた。
キーストアp12ファイルを読み込んで、秘密鍵を取り出して、平文を暗号化、復号してみた。
サンプルコード
using System;
using System.IO;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography.X509Certificates;
class test0 {
static void Main() {
string encryptWord = "hogehoge2";
var encByte = Encoding.Unicode.GetBytes(encryptWord);
Console.WriteLine("original: " + Encoding.Unicode.GetString(encByte));
var certificate = new X509Certificate2("pkcs12.p12", "password");
var rsa = (RSACryptoServiceProvider) certificate.PrivateKey;
byte[] encryptedByte;
encryptedByte = rsa.Encrypt(encByte, RSAEncryptionPadding.OaepSHA1);
Console.WriteLine("encrypted: " + Convert.ToBase64String(encryptedByte));
byte[] decryptedByte;
decryptedByte = rsa.Decrypt(encryptedByte, RSAEncryptionPadding.OaepSHA1);
var decryptedString = Encoding.Unicode.GetString(decryptedByte);
Console.WriteLine("Decrypt: " + decryptedString);
Console.WriteLine("ok");
}
}
実行結果
>ras3
original: hogehoge2
encrypted: USyHfi1J/io8rLbspjSYaThB36aZo45OQ1DNHDgsL19hGj/zOuJPGsxYnYkmlse2KLZyOw0b1XSLCVXc2vi+0R6oBOXuH1TB9216qrKSNeYHB7nZIeC+OCZH6haL3mXa9OK8nW94t4SBBMLbW5a+4lEb6ee0QVMz3vrk5WtL6gM69kebdRkrxSVmI4vQb4jjVhC6F5WnNt1iXB2UceV69an22910FIQwACPcrrQ0APr+G0WCJbAWxldRRb1Lv8Cy28jn8DhFDqelgxCzIJ9jtRVvqQCd4rgx+wqFvFwl3Qy56UUAc1VC9WYu7vcstHZ1IHtOBVKGO5lNmCxiAGy/GA==
Decrypt: hogehoge2
ok
以上。