異なる指数サイズに遭遇する可能性のあるソフトウェアの単体テストを作成しています。(このRFCのセクション3.3.1を参照してください)
Bouncy Castleまたはその他のC#ライブラリを使用して、65537のキーサイズを持たないRSAキーペアを生成するにはどうすればよいですか。
答えが、秘密鍵も更新する限り、これを直接変更できるということである場合、公開鍵と秘密鍵に対してどのような特定の変更(または再計算)を行う必要がありますか?
指数が65537のキーを作成するために使用しているサンプルコードは次のとおりです。
// Create key
RsaKeyPairGenerator generator = new RsaKeyPairGenerator();
var param = new KeyGenerationParameters(new SecureRandom(), 1024);
generator.Init(param);
AsymmetricCipherKeyPair keyPair= generator.GenerateKeyPair();
// Save to export format
SubjectPublicKeyInfo info = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(keyPair.Public);
byte[] ret = info.GetEncoded();
string ovalue1 = Convert.ToBase64String(ret);
// Read from export format
byte[] publicKeyBytes = Convert.FromBase64String(ovalue1);
AsymmetricKeyParameter asymmetricKeyParameter = PublicKeyFactory.CreateKey(publicKeyBytes);
RsaKeyParameters rsaKeyParameters = (RsaKeyParameters)asymmetricKeyParameter;
RSAParameters rsaParameters = new RSAParameters();
rsaParameters.Modulus = rsaKeyParameters.Modulus.ToByteArray();
rsaParameters.Exponent = rsaKeyParameters.Exponent.ToByteArray();
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParameters);