Class Symmetric
Utility class for performing simple symmetric encryption and decryption based upon values in the ConfigFile.Security.Cryptography.
The encrypted data has an encryption header in this general format: Version | IV | EncryptedData | Signature
Version 1 uses AES256 (in CBC mode) and HMACSHA256 as the encryption and signature algorithms.
Inherited Members
Namespace: SuperOffice.Security.Cryptography
Assembly: SoCore.dll
Syntax
public sealed class Symmetric
Constructors
Symmetric()
Utility class for performing simple symmetric encryption and decryption based upon values in the ConfigFile.Security.Cryptography.
The encrypted data has an encryption header in this general format: Version | IV | EncryptedData | Signature
Version 1 uses AES256 (in CBC mode) and HMACSHA256 as the encryption and signature algorithms.
Declaration
public Symmetric()
Methods
Decrypt(string)
Decrypts the Base64 encoded string and return it as a clear-text string.
Declaration
public static string Decrypt(string text)
Parameters
| Type | Name | Description |
|---|---|---|
| string | text | Base64 encoded encrypted string. |
Returns
| Type | Description |
|---|---|
| string | Decrypted string |
Remarks
The signature of the data is verified before the data is decrypted.
DecryptBytes(string)
Decrypts the Base64 encoded string and return it as a byte array (e.g. byte[]).
Declaration
public static byte[] DecryptBytes(string text)
Parameters
| Type | Name | Description |
|---|---|---|
| string | text | Base64 encoded encrypted string. |
Returns
| Type | Description |
|---|---|
| byte[] | Decrypted byte array (e.g. byte[]). |
Remarks
The signature of the data is verified before the data is decrypted.
DecryptUTF8(string)
Decrypts the base64 encoded version. Throws SoInvalidSignatureException if the signature is invalid.
Declaration
public static string DecryptUTF8(string text)
Parameters
| Type | Name | Description |
|---|---|---|
| string | text |
Returns
| Type | Description |
|---|---|
| string |
Encrypt(string)
Encrypts the string and return it as a Base64 encoded encrypted string.
Declaration
public static string Encrypt(string text)
Parameters
| Type | Name | Description |
|---|---|---|
| string | text | Text to encrypt. |
Returns
| Type | Description |
|---|---|
| string | Encrypted Base64 encoded string |
Remarks
The data is encrypted and signed.
EncryptBytes(byte[])
Encrypts the byte array (e.g. byte[]) and return it as a Base64 encoded encrypted string.
Declaration
public static string EncryptBytes(byte[] bytes)
Parameters
| Type | Name | Description |
|---|---|---|
| byte[] | bytes | byte array (e.g. byte[]) to encrypt. |
Returns
| Type | Description |
|---|---|
| string | Encrypted Base64 encoded string |
Remarks
The data is encrypted and signed.
EncryptUTF8(string)
Utility class for performing simple symmetric encryption and decryption based upon values in the ConfigFile.Security.Cryptography.
The encrypted data has an encryption header in this general format: Version | IV | EncryptedData | Signature
Version 1 uses AES256 (in CBC mode) and HMACSHA256 as the encryption and signature algorithms.
Declaration
public static string EncryptUTF8(string text)
Parameters
| Type | Name | Description |
|---|---|---|
| string | text |
Returns
| Type | Description |
|---|---|
| string |
GenerateEncryptionKeyAsBase64()
Generate a new key for usage on the current encryption algorithm.
Declaration
public static string GenerateEncryptionKeyAsBase64()
Returns
| Type | Description |
|---|---|
| string | A base64-encoded version of the generated key |
GenerateSigningKeyAsBase64()
Generate a new "secret" which is used when signing the encrypted data.
Declaration
public static string GenerateSigningKeyAsBase64()
Returns
| Type | Description |
|---|---|
| string | A base64-encoded version of the generated secret/signing key |