Code cleanup

This commit is contained in:
Stone_Red
2026-06-12 15:18:02 +02:00
parent 9f2aae3ba8
commit c70fd501bc
11 changed files with 735 additions and 707 deletions
+43 -44
View File
@@ -5,66 +5,65 @@ using Org.BouncyCastle.Crypto.Parameters;
using System.Security.Cryptography;
using System.Text;
namespace RemSox.Cryptography
namespace RemSox.Cryptography;
public static class AesGcmCrypto
{
public static class AesGcmCrypto
private const int NonceSize = 12;
private const int TagSize = 128;
public static byte[] Encrypt(byte[] plainData, byte[] key)
{
private const int NonceSize = 12;
private const int TagSize = 128;
byte[] nonce = new byte[NonceSize];
RandomNumberGenerator.Fill(nonce);
public static byte[] Encrypt(byte[] plainData, byte[] key)
{
byte[] nonce = new byte[NonceSize];
RandomNumberGenerator.Fill(nonce);
GcmBlockCipher cipher = new GcmBlockCipher(new AesEngine());
cipher.Init(true, new AeadParameters(new KeyParameter(key), TagSize, nonce));
GcmBlockCipher cipher = new GcmBlockCipher(new AesEngine());
cipher.Init(true, new AeadParameters(new KeyParameter(key), TagSize, nonce));
byte[] output = new byte[cipher.GetOutputSize(plainData.Length)];
byte[] output = new byte[cipher.GetOutputSize(plainData.Length)];
int len = cipher.ProcessBytes(plainData, 0, plainData.Length, output, 0);
_ = cipher.DoFinal(output, len);
int len = cipher.ProcessBytes(plainData, 0, plainData.Length, output, 0);
_ = cipher.DoFinal(output, len);
byte[] result = new byte[nonce.Length + output.Length];
byte[] result = new byte[nonce.Length + output.Length];
Buffer.BlockCopy(nonce, 0, result, 0, nonce.Length);
Buffer.BlockCopy(output, 0, result, nonce.Length, output.Length);
Buffer.BlockCopy(nonce, 0, result, 0, nonce.Length);
Buffer.BlockCopy(output, 0, result, nonce.Length, output.Length);
return result;
}
return result;
}
public static string Encrypt(string text, byte[] key)
{
byte[] data = Encoding.UTF8.GetBytes(text);
return Convert.ToBase64String(Encrypt(data, key));
}
public static string Encrypt(string text, byte[] key)
{
byte[] data = Encoding.UTF8.GetBytes(text);
return Convert.ToBase64String(Encrypt(data, key));
}
public static byte[] Decrypt(byte[] encryptedData, byte[] key)
{
byte[] nonce = new byte[NonceSize];
Buffer.BlockCopy(encryptedData, 0, nonce, 0, NonceSize);
public static byte[] Decrypt(byte[] encryptedData, byte[] key)
{
byte[] nonce = new byte[NonceSize];
Buffer.BlockCopy(encryptedData, 0, nonce, 0, NonceSize);
int cipherLength = encryptedData.Length - NonceSize;
byte[] cipherBytes = new byte[cipherLength];
int cipherLength = encryptedData.Length - NonceSize;
byte[] cipherBytes = new byte[cipherLength];
Buffer.BlockCopy(encryptedData, NonceSize, cipherBytes, 0, cipherLength);
Buffer.BlockCopy(encryptedData, NonceSize, cipherBytes, 0, cipherLength);
GcmBlockCipher cipher = new GcmBlockCipher(new AesEngine());
cipher.Init(false, new AeadParameters(new KeyParameter(key), TagSize, nonce));
GcmBlockCipher cipher = new GcmBlockCipher(new AesEngine());
cipher.Init(false, new AeadParameters(new KeyParameter(key), TagSize, nonce));
byte[] plain = new byte[cipher.GetOutputSize(cipherBytes.Length)];
byte[] plain = new byte[cipher.GetOutputSize(cipherBytes.Length)];
int len = cipher.ProcessBytes(cipherBytes, 0, cipherBytes.Length, plain, 0);
_ = cipher.DoFinal(plain, len);
int len = cipher.ProcessBytes(cipherBytes, 0, cipherBytes.Length, plain, 0);
_ = cipher.DoFinal(plain, len);
return plain;
}
return plain;
}
public static string Decrypt(string cipherText, byte[] key)
{
byte[] data = Convert.FromBase64String(cipherText);
byte[] plain = Decrypt(data, key);
return Encoding.UTF8.GetString(plain);
}
public static string Decrypt(string cipherText, byte[] key)
{
byte[] data = Convert.FromBase64String(cipherText);
byte[] plain = Decrypt(data, key);
return Encoding.UTF8.GetString(plain);
}
}
+7 -7
View File
@@ -1,13 +1,10 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Numerics;
using System.Threading.Tasks;
using Cosmos.Kernel.System.Keyboard;
using Cosmos.Kernel.System.Mouse;
using RemSox.Plugs;
using System.Drawing;
namespace RemSox.Cryptography;
public static class CryptoManager
@@ -26,7 +23,10 @@ public static class CryptoManager
RandomNumberGeneratorImplementationImpl.AddMouseEntropy(dx, dy, dz, x, y);
if (!KeyboardManager.KeyAvailable) return;
if (!KeyboardManager.KeyAvailable)
{
return;
}
KeyEvent keyEvent = KeyboardManager.Peek();
+15 -16
View File
@@ -3,25 +3,24 @@ using Org.BouncyCastle.Crypto.Digests;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Crypto.Parameters;
namespace RemSox.Cryptography
namespace RemSox.Cryptography;
public static class Pkcs5S2PasswordKeyDeriver
{
public static class Pkcs5S2PasswordKeyDeriver
private const int KeySize = 32; // 256-bit key
private const int Iterations = 150_000; // PBKDF2 cost factor
public static byte[] DeriveKey(string password, byte[] salt)
{
private const int KeySize = 32; // 256-bit key
private const int Iterations = 150_000; // PBKDF2 cost factor
Pkcs5S2ParametersGenerator generator = new Pkcs5S2ParametersGenerator(new Sha256Digest());
public static byte[] DeriveKey(string password, byte[] salt)
{
Pkcs5S2ParametersGenerator generator = new Pkcs5S2ParametersGenerator(new Sha256Digest());
generator.Init(
PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()),
salt,
Iterations
);
generator.Init(
PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()),
salt,
Iterations
);
return ((KeyParameter)generator.GenerateDerivedMacParameters(KeySize * 8))
.GetKey();
}
return ((KeyParameter)generator.GenerateDerivedMacParameters(KeySize * 8))
.GetKey();
}
}