2. Find The Right Solution For You!
Table Of Contents
Note: While most things have documentation, I didn't bother making documentation for the smaller things that don't have as much precedence!
Please read the important note at the bottom of the page!
../2. Secure Data (Read Me)/1. Understanding Secure Data
../2. Secure Data (Read Me)/3. SecureData & Memory Protection — the full memory-hardening rundown (AES encryption at rest, page-locking, AntiTamper, HardwareKeyStore, SecureCache) plus the honest threat model
Simple, Easy To Use Post Quantum Based Cryptography Tools
| Title | Description | Function # |
|---|---|---|
| ../5. EasyPQC/Functions/1. EasyPQC.Signatures | Dilithium Based Signing | 8 |
| ../5. EasyPQC/Functions/2. EasyPQC.Keys | KYBERS CRYSTAL Based Public/Private Pairs | 8 |
| ../5. EasyPQC/Functions/3. EasyPQC.FileOperations | LZ4 Compression, Blake3 Signing and AES Cryptography All In One | 9 |
| ../5. EasyPQC/Functions/4. EasyPQC.Rotation | SHAKE256 Based Password Rotation | 3 |
Easy To Use AES256-GCM Based Encryption
| Title | Description | Function # |
|---|---|---|
| ../7. Walker.Crypto/Functions/1. Walker.Crypto.SimpleAESEncryption | Sync Based AES256-GCM Cryptography | 6 |
| ../7. Walker.Crypto/Functions/2. Walker.Crypto.AsyncAESEncryption | Async Based AES256-GCM Cryptography | 5 |
| ../7. Walker.Crypto/Functions/3. Walker.Crypto.AESFileEncryptor | A Simple Method To Encrypt and Decrypt Files | 2 |
Self Explanitory
| Title | Description | Function # |
|---|---|---|
| ../6. PasswordGenerator/Functions/PasswordGenerator.GeneratePassword | Random String Based Generation | 1 |
Note; everything after is within the DataHandler Class (DataHandler.JSONDataHandler, DataHandler.PasswordHandler, etc.)
Modular Tools for Data, Secrets, and Sessions
| Title | Description | Function # |
|---|---|---|
| ../4. DataHandler/Functions/2. DataHandler.JSONDataHandler | Easy JSON Based File Handling (Highly Suggest) | 8 |
| ../4. DataHandler/Functions/3. DataHandler.SaltAndHashing | Password Creation And Verification with Argon2 | 5+ |
| ../4. DataHandler/Functions/4. DataHandler.DataEncryptions | Easy Data Based Packing and Unpacking | 2 |
| ../4. DataHandler/Functions/5. DataHandler.SecretManager | Public Secret Rotation, Management and Migration | 10+ |
| ../4. DataHandler/Functions/1. DataHandler.DeviceIdentifier | Device Fingerprinting Tool | 2 |
| ../4. DataHandler/Functions/8. DataHandler.DataRequest | Software to Software Based Data Communication Protocol | 12+ |
| ../4. DataHandler/Functions/6. DataHandler.Accounts | Local User Creation, Login, and Recovery | 5 |
| ../4. DataHandler/Functions/7. DataHandler.AccountsWithSessions | Session Based Local Account Management | 10+ |
| Title | Description | Function # |
|---|---|---|
| ../8. Extra/Utilities.Tools | UUID and Random String Generators | 2 |
BinaryConverter
Modular Tools for Data, Secrets, and Sessions
| Title | Description | Function # |
|---|---|---|
| ../3. BinaryConverter/BinaryConverter | Object/Byte Array Conversion Tools | 4 |
IMPORTANT NOTE
IMPORTANT: There is a Ceras based binary serializer and a non Ceras based one; it's highly recommended to use the Ceras one for the time being due to it's speed compared to the non ceras method; the non ceras method will be fine as is right now, but using Ceras for all other operations will have a noticeable lag. A cofig must also be made for special items and classes; else errors at runtime appear (Look at Signatures and Keys' library, specifically Encode and Decode). In the future, all items will be turned to a byte array before being switched back to a ceras serialized item.
When using JSONDataHandler, ensure you have a parameterless constructor (as seen across the Accounts systems), else your classes will get errors. Example:
public class EncryptedTier
{
public byte[] SignedEncryptedTier { get; set; }
public string EncryptedTierPass { get; set; }
public byte[] SignedTierPass { get; set; }
public EncryptedTier() { } // Required for deserialization
public EncryptedTier(byte[] signedEncryptedTier, string encryptedTierPass, byte[] signedTierPass)
{
SignedEncryptedTier = signedEncryptedTier;
EncryptedTierPass = encryptedTierPass;
SignedTierPass = signedTierPass;
}
}
Finally, when using PariahJson, do not try to save libraries as weird tuples; as an example, during my debugging and testing I saw that
Dictionary<string, string>
Worked fine, whereas
Dictionary<string, (item, item2. item3)>
Would return null items on GetVariable when I was testing it. Instead, it's better to do something like
public class ItemHolder
{
public string item1
public string item2
public string item3
public ItemHolder() { } // Required for deserialization
}
Dictionary<string, itemHolder>