LoginSignup
0
0

More than 1 year has passed since last update.

cscの作法 その256

Posted at

概要

cscの作法、調べてみた。
練習問題やってみた。

練習問題

xml秘密鍵ファイルからJsonWebKeyを生成せよ。

方針

  • xml読み込みにFromXmlStringを使う
  • ExportParameters使う
  • ExponentとModulusを使う
  • base64url使う

サンプルコード

using System;
using System.IO;
using System.Security.Cryptography;
using System.Collections.Generic;
using System.Text;

	class test0 {
		static void Main() {
			var privateKey2 = File.ReadAllText("privateKey.xml");
			var rsa = RSA.Create();
			rsa.FromXmlString(privateKey2);
			var publicParameters = rsa.ExportParameters(false);
			var e = Convert.ToBase64String(publicParameters.Exponent).TrimEnd('=').Replace('+', '-').Replace('/', '_');
			var n = Convert.ToBase64String(publicParameters.Modulus).TrimEnd('=').Replace('+', '-').Replace('/', '_');
			var dict = new Dictionary<string, string>() {
				{"e", e},
				{"kty", "RSA"},
				{"n", n}
			};
			foreach (var item in dict)
			{
				Console.WriteLine(item.Key + ": " + item.Value);
			}
		}
	}

実行結果

>xml2jwk
e: AQAB
kty: RSA
n: lrpUlgxTaOLAUNOus45cl_VBOtqoAv1Y3w3ka5VLzxHVgw9Z4gW1t5a1KsbboJQn_u_gG5SJ_FaV4RzlJe_nGxYYep5fcfSHiZPCV__5xl7QJLvh4PzA6vXJ3BJQF7mEx5xvvW2Ga-gTYpfAQppo_OGcjGJ1VLw06x4oNUliz9zH_vUROlNR2Tbhl8xpSUY6LCPJiQvhVbIBC6GJKosfrXXe-rtrGbUrNtsOjGYJk7496_hzHtsrDy-HdBAWKDjdot7GW2ESxybIrVUIDvyNXV9CUyyQmC_jA6_yiAN9xrWK75Un7Eav_bbhOKVGN9DC2JaSoTcjavomP9QMEWjWOxNcCX0f6iONBGDw4FpaYaCRyiqkD_lY1xfAFLEhD_5QY6GWvHgvRSDyjQwV8Mc4ZUORsEX7eN1DUdIZUfJ5lsRFwXuxCnjgzkdi_-RZocPOuaFkjpX_Es0ZcWc8Rb_-dyaJQlVzrQHC7y8LduPa-qotb7vLUjoxp-1g0yGeK6Sy4sXO0UflrrfsIn8vfmW3VNFxhUUJB4ruXw99yAkyGwCWEonYH3GbK09sx-3_cNDZdx9V04q3vp3nMr0jQ2VfF6I5pRGRl6niWUDNH5OFcGOQ6DRBGaaJ-LXXn6dnsvpimPmf38pshYV8OiHVl1o4fP0NxdeQl25XIpGAWJEJJAE


以上。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0