Skip to content

Commit e0eaefd

Browse files
committed
Refactor RSA encryption provider
1 parent cd293d4 commit e0eaefd

File tree

4 files changed

+79
-40
lines changed

4 files changed

+79
-40
lines changed

src/Cosmos.Encryption/Cosmos/Encryption/Asymmetric/RSAEncryptionProvider._NET451.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public static partial class RSAEncryptionProvider {
2222
/// <param name="sizeType"></param>
2323
/// <param name="keyType"></param>
2424
/// <returns>The encrypted data.</returns>
25-
public static string Encrypt(
25+
public static string EncryptByPublicKey(
2626
string data,
2727
string publicKey,
2828
Encoding encoding = null,
@@ -40,7 +40,7 @@ public static string Encrypt(
4040
/// <param name="sizeType"></param>
4141
/// <param name="keyType"></param>
4242
/// <returns>The encrypted data.</returns>
43-
public static string Encrypt(
43+
public static string EncryptByPublicKey(
4444
byte[] dataBytes,
4545
string publicKey,
4646
RSAKeySizeTypes sizeType = RSAKeySizeTypes.R2048,
@@ -59,7 +59,7 @@ public static string Encrypt(
5959
/// <param name="sizeType"></param>
6060
/// <param name="keyType"></param>
6161
/// <returns>The decrypted data.</returns>
62-
public static string Decrypt(
62+
public static string DecryptByPrivateKey(
6363
string data,
6464
string privateKey,
6565
Encoding encoding = null,
@@ -77,7 +77,7 @@ public static string Decrypt(
7777
/// <param name="sizeType"></param>
7878
/// <param name="keyType"></param>
7979
/// <returns>The decrypted data.</returns>
80-
public static string Decrypt(
80+
public static string DecryptByPrivateKey(
8181
byte[] dataBytes,
8282
string privateKey,
8383
RSAKeySizeTypes sizeType = RSAKeySizeTypes.R2048,

src/Cosmos.Encryption/Cosmos/Encryption/Asymmetric/RSAEncryptionProvider.cs

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static partial class RSAEncryptionProvider {
2626
/// <param name="sizeType"></param>
2727
/// <param name="keyType"></param>
2828
/// <returns>The encrypted data.</returns>
29-
public static string Encrypt(
29+
public static string EncryptByPublicKey(
3030
string data,
3131
string publicKey,
3232
RSAEncryptionPadding padding,
@@ -46,7 +46,7 @@ public static string Encrypt(
4646
/// <param name="keyType"></param>
4747
/// <param name="padding"></param>
4848
/// <returns>The encrypted data.</returns>
49-
public static string Encrypt(
49+
public static string EncryptByPublicKey(
5050
byte[] dataBytes,
5151
string publicKey,
5252
RSAEncryptionPadding padding,
@@ -56,6 +56,45 @@ public static string Encrypt(
5656
return rsa.EncryptByPublicKey(dataBytes, padding);
5757
}
5858

59+
/// <summary>
60+
/// Encrypt string data with xml/json format.
61+
/// </summary>
62+
/// <param name="data">The data to be encrypted.</param>
63+
/// <param name="privateKey">The public key of xml format.</param>
64+
/// <param name="padding"></param>
65+
/// <param name="encoding">The <see cref="T:System.Text.Encoding"/>,default is Encoding.UTF8.</param>
66+
/// <param name="sizeType"></param>
67+
/// <param name="keyType"></param>
68+
/// <returns>The encrypted data.</returns>
69+
public static string EncryptByPrivateKey(
70+
string data,
71+
string privateKey,
72+
RSAEncryptionPadding padding,
73+
Encoding encoding = null,
74+
RSAKeySizeTypes sizeType = RSAKeySizeTypes.R2048,
75+
RSAKeyTypes keyType = RSAKeyTypes.XML) {
76+
var rsa = TouchRsaUtilFromPrivateKey(keyType, encoding, privateKey, sizeType);
77+
return rsa.EncryptByPrivateKey(data, padding);
78+
}
79+
80+
/// <summary>
81+
/// Encrypt byte[] data with xml/json format.
82+
/// </summary>
83+
/// <param name="dataBytes">The data to be encrypted.</param>
84+
/// <param name="privateKey">The public key of xml format.</param>
85+
/// <param name="sizeType"></param>
86+
/// <param name="keyType"></param>
87+
/// <param name="padding"></param>
88+
/// <returns>The encrypted data.</returns>
89+
public static string EncryptByPrivateKey(
90+
byte[] dataBytes,
91+
string privateKey,
92+
RSAEncryptionPadding padding,
93+
RSAKeySizeTypes sizeType = RSAKeySizeTypes.R2048,
94+
RSAKeyTypes keyType = RSAKeyTypes.XML) {
95+
var rsa = TouchRsaUtilFromPrivateKey(keyType, Encoding.UTF8, privateKey, sizeType);
96+
return rsa.EncryptByPrivateKey(dataBytes, padding);
97+
}
5998

6099
/// <summary>
61100
/// Decrypt string data with xml/json format.
@@ -67,7 +106,7 @@ public static string Encrypt(
67106
/// <param name="sizeType"></param>
68107
/// <param name="keyType"></param>
69108
/// <returns>The decrypted data.</returns>
70-
public static string Decrypt(
109+
public static string DecryptByPrivateKey(
71110
string data,
72111
string privateKey,
73112
RSAEncryptionPadding padding,
@@ -87,7 +126,7 @@ public static string Decrypt(
87126
/// <param name="sizeType"></param>
88127
/// <param name="keyType"></param>
89128
/// <returns>The decrypted data.</returns>
90-
public static string Decrypt(
129+
public static string DecryptByPrivateKey(
91130
byte[] dataBytes,
92131
string privateKey,
93132
RSAEncryptionPadding padding,

tests/Cosmos.Encryption.NfxTests/Asymmetric/RsaTests.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,71 +9,71 @@ public class RsaTests
99
public void EncryptDecrypt_R1024_XML_Test()
1010
{
1111
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R1024);
12-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
13-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
12+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
13+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
1414
Assert.Equal("image", origin);
1515
}
1616

1717
[Fact]
1818
public void EncryptDecrypt_R2048_XML_Test()
1919
{
2020
var key = RSAEncryptionProvider.CreateKey();
21-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
22-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
21+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
22+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
2323
Assert.Equal("image", origin);
2424
}
2525

2626
[Fact]
2727
public void EncryptDecrypt_R3072_XML_Test()
2828
{
2929
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R3072);
30-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
31-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
30+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
31+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
3232
Assert.Equal("image", origin);
3333
}
3434

3535
[Fact]
3636
public void EncryptDecrypt_R4096_XML_Test()
3737
{
3838
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R4096);
39-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
40-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
39+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
40+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
4141
Assert.Equal("image", origin);
4242
}
4343

4444
[Fact]
4545
public void EncryptDecrypt_R1024_JSON_Test()
4646
{
4747
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R1024, RSAKeyTypes.JSON);
48-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
49-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
48+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
49+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
5050
Assert.Equal("image", origin);
5151
}
5252

5353
[Fact]
5454
public void EncryptDecrypt_R2048_JSON_Test()
5555
{
5656
var key = RSAEncryptionProvider.CreateKey(keyType: RSAKeyTypes.JSON);
57-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
58-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
57+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
58+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
5959
Assert.Equal("image", origin);
6060
}
6161

6262
[Fact]
6363
public void EncryptDecrypt_R3072_JSON_Test()
6464
{
6565
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R3072, RSAKeyTypes.JSON);
66-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
67-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
66+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
67+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
6868
Assert.Equal("image", origin);
6969
}
7070

7171
[Fact]
7272
public void EncryptDecrypt_R4096_JSON_Test()
7373
{
7474
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R4096, RSAKeyTypes.JSON);
75-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
76-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
75+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
76+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
7777
Assert.Equal("image", origin);
7878
}
7979
}

tests/Cosmos.Encryption.Tests/Asymmetric/RsaTests.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,71 +9,71 @@ public class RsaTests
99
public void EncryptDecrypt_R1024_XML_Test()
1010
{
1111
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R1024);
12-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
13-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
12+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
13+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
1414
Assert.Equal("image", origin);
1515
}
1616

1717
[Fact]
1818
public void EncryptDecrypt_R2048_XML_Test()
1919
{
2020
var key = RSAEncryptionProvider.CreateKey();
21-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
22-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
21+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
22+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
2323
Assert.Equal("image", origin);
2424
}
2525

2626
[Fact]
2727
public void EncryptDecrypt_R3072_XML_Test()
2828
{
2929
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R3072);
30-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
31-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
30+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
31+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
3232
Assert.Equal("image", origin);
3333
}
3434

3535
[Fact]
3636
public void EncryptDecrypt_R4096_XML_Test()
3737
{
3838
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R4096);
39-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
40-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
39+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1);
40+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1);
4141
Assert.Equal("image", origin);
4242
}
4343

4444
[Fact]
4545
public void EncryptDecrypt_R1024_JSON_Test()
4646
{
4747
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R1024, RSAKeyTypes.JSON);
48-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
49-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
48+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
49+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
5050
Assert.Equal("image", origin);
5151
}
5252

5353
[Fact]
5454
public void EncryptDecrypt_R2048_JSON_Test()
5555
{
5656
var key = RSAEncryptionProvider.CreateKey(keyType: RSAKeyTypes.JSON);
57-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
58-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
57+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
58+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
5959
Assert.Equal("image", origin);
6060
}
6161

6262
[Fact]
6363
public void EncryptDecrypt_R3072_JSON_Test()
6464
{
6565
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R3072, RSAKeyTypes.JSON);
66-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
67-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
66+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
67+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
6868
Assert.Equal("image", origin);
6969
}
7070

7171
[Fact]
7272
public void EncryptDecrypt_R4096_JSON_Test()
7373
{
7474
var key = RSAEncryptionProvider.CreateKey(RSAKeySizeTypes.R4096, RSAKeyTypes.JSON);
75-
var signature = RSAEncryptionProvider.Encrypt("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
76-
var origin = RSAEncryptionProvider.Decrypt(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
75+
var signature = RSAEncryptionProvider.EncryptByPublicKey("image", key.PublicKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
76+
var origin = RSAEncryptionProvider.DecryptByPrivateKey(signature, key.PrivateKey, RSAEncryptionPadding.OaepSHA1, keyType: RSAKeyTypes.JSON);
7777
Assert.Equal("image", origin);
7878
}
7979
}

0 commit comments

Comments
 (0)