2017-08-01 11 views
0

RSA sign on C#について質問したい。Sign自分自身のRSAパラメータを16進数で符号化した文書

私は署名のための1つの文書を持っています。モジュラス、プライベート指数、公開指数のプレーン16進値を持っています。私はランダムに生成された鍵で署名したくない。私がサインツールでサインしようとすると、結果が完全に得られます。しかし、私はC#でそれをすることはできません。私はこの種の問題のために新しいです。だから私は本当にくっついている。

私は多くのサイトとarcticlesを見ましたが、私は解決策を見つけることができませんでした。おそらくそこにはあるが、私はそれを得ることができない、私は知らない。

詳細(手順)を教えていただけたら、本当に感謝しています。

答えて

0

.NETでは、秘密鍵のCRTパラメータがすべて必要です.Dを使用している場合は、P、Q、DP、DQ、およびInverseQも必要です。 ParseHex(string str, int len=-1)

RSAParameters rsaParams = new RSAParameters(); 
rsaParams.Modulus = ParseHex(modulus); 
rsaParams.Exponent = ParseHex(exponent); 
rsaParams.D = ParseHex(d, rsaParams.Modulus.Length); 
rsaParams.P = ParseHex(p, (rsaParams.Modulus.Length + 1)/2); 
rsaParams.Q = ParseHex(q, rsaParams.P.Length); 
rsaParams.DP = ParseHex(dp, rsaParams.P.Length); 
rsaParams.DQ = ParseHex(dq, rsaParams.P.Length); 
rsaParams.InverseQ = ParseHex(inverseQ, rsaParams.P.Length); 

RSA rsa = RSA.Create(); 
rsa.ImportParameters(rsaParams); 

が固定長配列へのご進文字列を解析するルーチンである(16進数文字列が短い場合、配列は左詰めされなければならない0バイトの値を持ちます)。

関連する問題