RSAParameters convertSequenceToRSAParameters(Asn1Sequence seq) { var rsaParams = new RSAParameters(); rsaParams.Modulus = ((DerInteger)seq[1]).Value.ToByteArrayUnsigned(); rsaParams.Exponent = ((DerInteger)seq[2]).Value.ToByteArrayUnsigned(); rsaParams.D = ((DerInteger)seq[3]).Value.ToByteArrayUnsigned(); rsaParams.P = ((DerInteger)seq[4]).Value.ToByteArrayUnsigned(); rsaParams.Q = ((DerInteger)seq[5]).Value.ToByteArrayUnsigned(); rsaParams.DP = ((DerInteger)seq[6]).Value.ToByteArrayUnsigned(); rsaParams.DQ = ((DerInteger)seq[7]).Value.ToByteArrayUnsigned(); rsaParams.InverseQ = ((DerInteger)seq[8]).Value.ToByteArrayUnsigned(); return rsaParams; }
RSAParameters convertSequenceToRSAParameters(Asn1Sequence seq) { var rsaParams = new RSAParameters(); var modules = ((DerInteger)seq[1]).Value.ToByteArrayUnsigned(); var alignmentValue = GetAlignmentValue(modules); rsaParams.Modulus = FixAlignment(modules, alignmentValue); rsaParams.Exponent = ((DerInteger)seq[2]).Value.ToByteArrayUnsigned(); rsaParams.D = FixAlignment(((DerInteger)seq[3]).Value.ToByteArrayUnsigned(), alignmentValue); rsaParams.P = FixAlignment(((DerInteger)seq[4]).Value.ToByteArrayUnsigned(), alignmentValue / 2); rsaParams.Q = FixAlignment(((DerInteger)seq[5]).Value.ToByteArrayUnsigned(), alignmentValue / 2); rsaParams.DP = FixAlignment(((DerInteger)seq[6]).Value.ToByteArrayUnsigned(), alignmentValue / 2); rsaParams.DQ = FixAlignment(((DerInteger)seq[7]).Value.ToByteArrayUnsigned(), alignmentValue / 2); rsaParams.InverseQ = FixAlignment(((DerInteger)seq[8]).Value.ToByteArrayUnsigned(), alignmentValue / 2); return rsaParams; }