Skip to content

Commit d2e9566

Browse files
authored
Merge pull request #43 from selfmadecode/dev
bumping master with changes from dev for release 1.0.2
2 parents 2af4eb1 + 03c71f7 commit d2e9566

5 files changed

Lines changed: 49 additions & 26 deletions

File tree

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ using SafeCrypt.Models;
4545

4646
class Program
4747
{
48-
static void Main()
48+
static async Task Main()
4949
{
5050
var aesEncryptor = new AesEncryption();
5151

52-
var encryptedData = aesEncryptor.EncryptToBase64String("Hello, World!", "gdjdtsraewsuteastwerse=="
52+
var encryptedData = await aesEncryptor.EncryptToBase64StringAsync("Hello, World!", "gdjdtsraewsuteastwerse=="
5353

5454
Console.WriteLine($"Encrypted Data: {encryptedData.EncryptedData}");
5555
Console.WriteLine($"Initialization Vector: {encryptedData.Iv}");
@@ -64,7 +64,7 @@ class Program
6464

6565
};
6666

67-
var data = aesDecryptor.DecryptFromBase64String(parameterToDecrypt)
67+
var data = await aesDecryptor.DecryptFromBase64StringAsync(parameterToDecrypt)
6868

6969
Console.WriteLine($"Decrypted Data: {data.DecryptedData}");
7070
Console.WriteLine($"Initialization Vector: {data.Iv}");
@@ -80,7 +80,7 @@ using SafeCrypt.Models;
8080

8181
class Program
8282
{
83-
static void Main()
83+
static async Task Main()
8484
{
8585
var dataToEncrypt = "Data to Encrypt";
8686

@@ -96,7 +96,7 @@ class Program
9696

9797
var encryptor = new AesEncryption();
9898

99-
var response = encryptor.EncryptToBase64String(encryptionParam.DataToEncrypt, secret);
99+
var response = await encryptor.EncryptToBase64StringAsync(encryptionParam.DataToEncrypt, secret);
100100

101101
Console.WriteLine(response.EncryptedData);
102102
Console.WriteLine(response.Iv);
@@ -113,7 +113,7 @@ class Program
113113

114114

115115
var decryptor = new AesDecryption();
116-
var decryptionData = decryptor.DecryptFromBase64String(decryptorParam);
116+
var decryptionData = await decryptor.DecryptFromBase64StringAsync(decryptorParam);
117117

118118
Console.WriteLine(decryptionData.DecryptedData);
119119
Console.WriteLine(decryptionData.Iv);

src/SafeCrypt.Lib/Encryption/AesEncryption/BaseAesEncryption.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System;
33
using System.IO;
44
using System.Security.Cryptography;
5+
using System.Threading.Tasks;
56

67
namespace SafeCrypt.AesEncryption
78
{
@@ -23,7 +24,7 @@ public class BaseAesEncryption
2324
/// <exception cref="Exception">
2425
/// Thrown for general encryption-related exceptions.
2526
/// </exception>
26-
internal static byte[] EncryptAES(ByteEncryptionParameters param, CipherMode mode = CipherMode.CBC)
27+
internal static async Task<byte[]> EncryptAsync(ByteEncryptionParameters param, CipherMode mode = CipherMode.CBC)
2728
{
2829
try
2930
{
@@ -44,7 +45,7 @@ internal static byte[] EncryptAES(ByteEncryptionParameters param, CipherMode mod
4445
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
4546
{
4647
// Write the data to be encrypted to the CryptoStream
47-
cryptoStream.Write(param.Data, 0, param.Data.Length);
48+
await cryptoStream.WriteAsync(param.Data, 0, param.Data.Length);
4849
cryptoStream.FlushFinalBlock();
4950

5051
// Return the encrypted data as a byte array
@@ -72,7 +73,7 @@ internal static byte[] EncryptAES(ByteEncryptionParameters param, CipherMode mod
7273
/// <exception cref="ArgumentNullException">
7374
/// Thrown if the input encrypted data, key, or initialization vector is null.
7475
/// </exception>
75-
internal static byte[] DecryptAES(ByteDecryptionParameters param, CipherMode mode = CipherMode.CBC)
76+
internal static async Task<byte[]> DecryptAsync(ByteDecryptionParameters param, CipherMode mode = CipherMode.CBC)
7677
{
7778
try
7879
{
@@ -97,7 +98,7 @@ internal static byte[] DecryptAES(ByteDecryptionParameters param, CipherMode mod
9798
using (MemoryStream decryptedStream = new MemoryStream())
9899
{
99100
// Copy the decrypted data from the CryptoStream to the MemoryStream
100-
cryptoStream.CopyTo(decryptedStream);
101+
await cryptoStream.CopyToAsync(decryptedStream);
101102
return decryptedStream.ToArray();
102103
}
103104
}

src/SafeCrypt.Lib/Encryption/AesEncryption/Decrypting.cs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,23 @@
33
using SafeCrypt.Models;
44
using System;
55
using System.Security.Cryptography;
6+
using System.Threading.Tasks;
67

78
namespace SafeCrypt.AESDecryption
89
{
910
public class AesDecryption : BaseAesEncryption
1011
{
11-
public DecryptionData DeEncryptFromHexString(DecryptionParameters param, CipherMode mode = CipherMode.CBC)
12+
/// <summary>
13+
/// Asynchronously decrypts data from a hexadecimal string using the specified decryption parameters and cipher mode.
14+
/// </summary>
15+
/// <param name="param">Decryption parameters containing secret key, IV, and data to decrypt.</param>
16+
/// <param name="mode">Cipher mode used for decryption (default is CipherMode.CBC).</param>
17+
/// <returns>
18+
/// A <see cref="Task{TResult}"/> representing the asynchronous operation.
19+
/// The task result is a <see cref="DecryptionData"/> object containing the decrypted data, IV, and secret key.
20+
/// If decryption fails, the <see cref="DecryptionData"/> object will contain error information.
21+
/// </returns>
22+
public async Task<DecryptionData> DecryptFromHexStringAsync(DecryptionParameters param, CipherMode mode = CipherMode.CBC)
1223
{
1324
var responseData = new DecryptionData();
1425

@@ -44,7 +55,7 @@ public DecryptionData DeEncryptFromHexString(DecryptionParameters param, CipherM
4455
Data = param.DataToDecrypt.HexadecimalStringToByteArray()
4556
};
4657

47-
var response = DecryptAES(byteEncryptionParameters, mode);
58+
var response = await DecryptAsync(byteEncryptionParameters, mode);
4859

4960
return new DecryptionData
5061
{
@@ -54,7 +65,17 @@ public DecryptionData DeEncryptFromHexString(DecryptionParameters param, CipherM
5465
};
5566
}
5667

57-
public DecryptionData DecryptFromBase64String(DecryptionParameters param, CipherMode mode = CipherMode.CBC)
68+
/// <summary>
69+
/// Asynchronously decrypts data from a Base64-encoded string using the specified decryption parameters and cipher mode.
70+
/// </summary>
71+
/// <param name="param">Decryption parameters containing secret key, IV, and data to decrypt.</param>
72+
/// <param name="mode">Cipher mode used for decryption (default is CipherMode.CBC).</param>
73+
/// <returns>
74+
/// A <see cref="Task{TResult}"/> representing the asynchronous operation.
75+
/// The task result is a <see cref="DecryptionData"/> object containing the decrypted data, IV, and secret key.
76+
/// If decryption fails, the <see cref="DecryptionData"/> object will contain error information.
77+
/// </returns>
78+
public async Task<DecryptionData> DecryptFromBase64StringAsync(DecryptionParameters param, CipherMode mode = CipherMode.CBC)
5879
{
5980
var responseData = new DecryptionData();
6081

@@ -82,7 +103,7 @@ public DecryptionData DecryptFromBase64String(DecryptionParameters param, Cipher
82103
Data = Convert.FromBase64String(param.DataToDecrypt)
83104
};
84105

85-
var response = DecryptAES(byteDecryptionParameters, mode);
106+
var response = await DecryptAsync(byteDecryptionParameters, mode);
86107

87108
return new DecryptionData
88109
{

src/SafeCrypt.Lib/Encryption/AesEncryption/Encrypting.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Security.Cryptography;
3+
using System.Threading.Tasks;
34
using SafeCrypt.AesEncryption;
45
using SafeCrypt.Helpers;
56
using SafeCrypt.Models;
@@ -9,7 +10,7 @@ namespace SafeCrypt.AESEncryption
910
public class AesEncryption : BaseAesEncryption
1011
{
1112
/// <summary>
12-
/// Encrypts the provided data using the specified secret key and initialization vector (IV).
13+
/// Asynchronously encrypts the provided data using the specified secret key and initialization vector (IV).
1314
/// </summary>
1415
/// <param name="parameters">The encryption parameters.</param>
1516
/// <returns>The encrypted data as a byte array.</returns>
@@ -22,7 +23,7 @@ public class AesEncryption : BaseAesEncryption
2223
/// <param name="secretKey">The secret key used for encryption.</param>
2324
/// <param name="iv">The initialization vector used for encryption.</param>
2425
/// <returns>The encrypted data as a byte array.</returns>
25-
public EncryptionData EncryptToHexString(EncryptionParameters param, CipherMode mode = CipherMode.CBC)
26+
public async Task<EncryptionData> EncryptToHexStringAsync(EncryptionParameters param, CipherMode mode = CipherMode.CBC)
2627
{
2728
var responseData = new EncryptionData();
2829

@@ -51,7 +52,7 @@ public EncryptionData EncryptToHexString(EncryptionParameters param, CipherMode
5152
Data = param.DataToEncrypt.ConvertToHexString().HexadecimalStringToByteArray()
5253
};
5354

54-
var response = EncryptAES(byteEncryptionParameters, mode);
55+
var response = await EncryptAsync(byteEncryptionParameters, mode);
5556

5657
return new EncryptionData
5758
{
@@ -62,7 +63,7 @@ public EncryptionData EncryptToHexString(EncryptionParameters param, CipherMode
6263
}
6364

6465
/// <summary>
65-
/// Encrypts the provided string data using the Advanced Encryption Standard (AES) algorithm.
66+
/// Asynchronously encrypts the provided string data using the Advanced Encryption Standard (AES) algorithm.
6667
/// </summary>
6768
/// <param name="dataToBeEncrypted">The string data to be encrypted.</param>
6869
/// <param name="base64secretKey">The Base64-encoded secret key used for encryption.</param>
@@ -83,7 +84,7 @@ public EncryptionData EncryptToHexString(EncryptionParameters param, CipherMode
8384
/// <exception cref="FormatException">
8485
/// Thrown if the base64secretKey is not a valid Base64-encoded string.
8586
/// </exception>
86-
public EncryptionData EncryptToBase64String(string dataToBeEncrypted, string base64secretKey, CipherMode mode = CipherMode.CBC)
87+
public async Task<EncryptionData> EncryptToBase64StringAsync(string dataToBeEncrypted, string base64secretKey, CipherMode mode = CipherMode.CBC)
8788
{
8889
// validate is base64
8990
if (!Validators.IsBase64String(base64secretKey))
@@ -103,7 +104,7 @@ public EncryptionData EncryptToBase64String(string dataToBeEncrypted, string bas
103104
Data = dataToBeEncrypted.ConvertToHexString().HexadecimalStringToByteArray()
104105
};
105106

106-
var response = EncryptAES(byteEncryptionParameters, mode);
107+
var response = await EncryptAsync(byteEncryptionParameters, mode);
107108

108109
return new EncryptionData
109110
{

src/SafeCrypt.Test/Program.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111
var encryptor = new AesEncryption();
1212
// this method generates a random IV key for the encryption process
1313
// the IV is returned in the response with other properties
14-
var response = encryptor.EncryptToBase64String(dataToEncrypt, secret);
14+
var response = await encryptor.EncryptToBase64StringAsync(dataToEncrypt, secret);
1515

16-
//Console.WriteLine("............Encryption Started............");
16+
Console.WriteLine("............Encryption Started............");
1717

18-
//Console.WriteLine($"Encrypted data: {response.EncryptedData}");
19-
//Console.WriteLine($"IV key: {response.Iv}");
20-
//Console.WriteLine($"Secret key: {response.SecretKey}");
18+
Console.WriteLine($"Encrypted data: {response.EncryptedData}");
19+
Console.WriteLine($"IV key: {response.Iv}");
20+
Console.WriteLine($"Secret key: {response.SecretKey}");
2121

2222

2323
// Decryption process
@@ -29,7 +29,7 @@
2929
};
3030

3131
var decryptor = new AesDecryption();
32-
var decryptionData = decryptor.DecryptFromBase64String(decryptorParam);
32+
var decryptionData = await decryptor.DecryptFromBase64StringAsync(decryptorParam);
3333

3434
Console.WriteLine("............Decryption Started............");
3535
Console.WriteLine($"Decrypted data: { decryptionData.DecryptedData }");

0 commit comments

Comments
 (0)