Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions src/NETCore.Encrypt/EncryptProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -819,21 +819,29 @@ public static RSAKey CreateRsaKey(RsaSize rsaSize = RsaSize.R2048)
/// Create an RSA key
/// </summary>
/// <param name="rsa">rsa</param>
/// <param name="includePrivate"></param>
/// <returns></returns>
public static RSAKey CreateRsaKey(RSA rsa)
public static RSAKey CreateRsaKey(RSA rsa, bool includePrivate = true)
{
Check.Argument.IsNotNull(rsa, nameof(rsa));

string publicKey = rsa.ToJsonString(false);
string privateKey = rsa.ToJsonString(true);

return new RSAKey()

var rsaKey = new RSAKey()
{
PublicKey = publicKey,
PrivateKey = privateKey,

Exponent = rsa.ExportParameters(false).Exponent.ToHexString(),
Modulus = rsa.ExportParameters(false).Modulus.ToHexString()
};

if (includePrivate)
{
string privateKey = rsa.ToJsonString(true);
rsaKey.PrivateKey = privateKey;
}
return rsaKey;
}

/// <summary>
Expand Down
6 changes: 6 additions & 0 deletions test/NETCore.Encrypt.Tests/RSA_Tests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -309,6 +309,12 @@ public void Rsa_From_Pem_Test()
Assert.NotNull(rsaFromPublickPem);
Assert.NotNull(rsaFromPublickPem);
Assert.Equal(rsaFromPublickPem.KeySize, rsaFromPrivatePem.KeySize);
var privateKey= EncryptProvider.CreateRsaKey(rsaFromPrivatePem);
var publicKey = EncryptProvider.CreateRsaKey(rsaFromPublickPem,false);
var raw = "123123124";
var signStr = EncryptProvider.RSASign(raw, privateKey.PrivateKey);
var result = EncryptProvider.RSAVerify(raw, signStr, publicKey.PublicKey);
Assert.True(result);
}


Expand Down