Skip to content

Commit

Permalink
Merge pull request #51 from lunasoft/hotfix/certificados
Browse files Browse the repository at this point in the history
Fix RSAParameters
  • Loading branch information
FerCarrilloM authored Oct 13, 2023
2 parents e288067 + 47952ae commit 7a18c00
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 7 deletions.
20 changes: 16 additions & 4 deletions SW.Tools/Helpers/SignUtils.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using SW.Tools.Services.Fiscal;
using System;
using System.Collections;
Expand Down Expand Up @@ -136,14 +137,25 @@ private static RSAParameters ToRSAParameters(RsaPrivateCrtKeyParameters privKey)
RSAParameters rp = new RSAParameters();
rp.Modulus = privKey.Modulus.ToByteArrayUnsigned();
rp.Exponent = privKey.PublicExponent.ToByteArrayUnsigned();
rp.D = privKey.Exponent.ToByteArrayUnsigned();
rp.P = privKey.P.ToByteArrayUnsigned();
rp.Q = privKey.Q.ToByteArrayUnsigned();
rp.DP = privKey.DP.ToByteArrayUnsigned();
rp.DQ = privKey.DQ.ToByteArrayUnsigned();
rp.InverseQ = privKey.QInv.ToByteArrayUnsigned();
rp.D = ConvertRSAParametersField(privKey.Exponent, rp.Modulus.Length);
rp.DP = ConvertRSAParametersField(privKey.DP, rp.P.Length);
rp.DQ = ConvertRSAParametersField(privKey.DQ, rp.Q.Length);
rp.InverseQ = ConvertRSAParametersField(privKey.QInv, rp.Q.Length);
return rp;
}
private static byte[] ConvertRSAParametersField(BigInteger n, int size)
{
byte[] bs = n.ToByteArrayUnsigned();
if (bs.Length == size)
return bs;
if (bs.Length > size)
throw new ArgumentException("Specified size too small", "size");
byte[] padded = new byte[size];
Array.Copy(bs, 0, padded, size - bs.Length, bs.Length);
return padded;
}
private static string ToHexString(byte[] data)
{
if (data != null)
Expand Down
4 changes: 2 additions & 2 deletions SW.Tools/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,6 @@



[assembly: AssemblyVersion("1.0.9.2")]
[assembly: AssemblyFileVersion("1.0.9.2")]
[assembly: AssemblyVersion("1.0.9.3")]
[assembly: AssemblyFileVersion("1.0.9.3")]

1 change: 0 additions & 1 deletion SW.ToolsUT/UT_Tools_Sign.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ public void UT_Tools_Sign_CrearPFX_OK()
X509Certificate x509 = new X509Certificate(pfx, password);
Assert.IsTrue(x509.GetPublicKey() != null);
}

[TestMethod]
[ExpectedException(typeof(Exception), "Los datos del Certificado CER KEY o Password son incorrectos.No es posible leer la llave privada.")]
public void UT_Tools_Sign_CrearPFX_ERROR()
Expand Down

0 comments on commit 7a18c00

Please sign in to comment.