コード例 #1
0
ファイル: ECIESTest.cs プロジェクト: kazuki/opencrypto.net
		public void Test_GEC2 ()
		{
			ECDomainNames domainName = ECDomainNames.secp160r1;
			ECDomainParameters domain = ECDomains.GetDomainParameter (domainName);
			ECIES ecies = new ECIES (domainName);
			Number V_Private = Number.Parse ("45FB58A92A17AD4B15101C66E74F277E2B460866", 16);
			ECKeyPair pair = new ECKeyPair (V_Private, null, domain);
			pair.CreatePublicKeyFromPrivateKey ();
			ecies.Parameters._Q = pair._Q;
			byte[] M = System.Text.Encoding.ASCII.GetBytes ("abcdefghijklmnopqrst");
			byte[] k = Number.Parse ("702232148019446860144825009548118511996283736794", 10).ToByteArray (20, false);
			byte[] C = ecies.Encrypt (M, k);
			byte[] expectedC = new byte[] {0x02, 0xCE, 0x28, 0x73, 0xE5, 0xBE, 0x44, 0x95, 0x63, 0x39, 0x1F, 0xEB, 0x47, 0xDD, 0xCB, 0xA2, 0xDC, 0x16, 0x37, 0x91, 0x91, 0x71, 0x23, 0xC8, 0x70, 0xA3, 0x1A, 0x81, 0xEA, 0x75, 0x83, 0x29, 0x0D, 0x1B, 0xA1, 0x7B, 0xC8, 0x75, 0x94, 0x35, 0xED, 0x1C, 0xCD, 0xA9, 0xEB, 0x4E, 0xD2, 0x73, 0x60, 0xBE, 0x89, 0x67, 0x29, 0xAD, 0x18, 0x54, 0x93, 0x62, 0x25, 0x91, 0xE5};
			Assert.AreEqual (expectedC, C, "Encryption");

			ecies = new ECIES (domainName);
			ecies.Parameters._d = V_Private;
			byte[] M2 = ecies.Decrypt (C);
			Assert.AreEqual (M, M2, "Decryption");
		}