| IGLib 1.7.2 The IGLib base library for development of numerical, technical and business applications.

- Main Page
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Classes | Enumerations
Package IG.Crypto

## Classes
class | ConstCrypto
| Contains constants for cryptographic operations from shell functions. More...
class | CryptoManager
| Performs high level cryptographic opereratins, such ass reading command-line parameters and performing high-level tasks that can be directly used in application commands (i.e. those commands that are installed on applicaition interpreters). More...
class | CryptoParameters
| This class contains key parameters of the cryptographic operations performed on some item. More...
class | PasswordAlgorithmBase
| Base class for algorithms that generate passwords, encryption initialization vectors, and salts from the specified keys/passwords and salts. More...
class | PasswordAlgorithmDeriveBytes
| Key generation algorithm that uses a Rfc2898DeriveBytes object (PBKDF2 algorithm). More...
class | PasswordAlgorithmNone
| Key generation "algorithm" that generates key as an (eventually padded and truncated) copy of its original bytes. More...
class | PasswordAlgorithmRfc2898
| Key generation algorithm that uses a Rfc2898DeriveBytes object (PBKDF2 algorithm). More...
class | UtilCrypto
| Basic Cryptographic utilities. More...

## Enumerations
enum | HashType : int { HashType.None = 0, HashType.Default = SHA512, HashType.MD5 = 1, HashType.SHA1 = 2, HashType.SHA256 = 4, HashType.SHA512 = 8 }
| Enumeration for selecting the hashing algorithm. More...
enum | PasswordAlgorithmType : int { PasswordAlgorithmType.None = 0, PasswordAlgorithmType.Default = Rfc2898, PasswordAlgorithmType.Rfc = Rfc2898, PasswordAlgorithmType.Rfc2898 = 1, PasswordAlgorithmType.DeriveBytes = 2 }
| Enumeration for selecting the algorithm for generation of secret keys, initialization vectors, etc., on basis of provided passwords, keys, and salts. More...
enum | SymmetricAlgorithmType : int { SymmetricAlgorithmType.None = 0, SymmetricAlgorithmType.Default = Rijndael, SymmetricAlgorithmType.RD = Rijndael, SymmetricAlgorithmType.Rijndael = 1, SymmetricAlgorithmType.AES = 2, SymmetricAlgorithmType.TripleDES = 4, SymmetricAlgorithmType.DES = 8, SymmetricAlgorithmType.RC2 = 16 }
| Enumeration for selecting the symmetric encryption algorithm. More...
enum | AsymmetricAlgorithmType : int { AsymmetricAlgorithmType.None = 0, AsymmetricAlgorithmType.Default = RSA, AsymmetricAlgorithmType.RSA = 1, AsymmetricAlgorithmType.DSA = 2 }
| Enumeration for selecting the asymmetric cryptographic algorithm. More...
enum | CryptoFlags : int { CryptoFlags.None = 0, CryptoFlags.EncryptionError = -1, CryptoFlags.DecryptionError = -2, CryptoFlags.Error = EncryptionError | DecryptionError, CryptoFlags.Hashing = 1, CryptoFlags.KeyGeneration = 2, CryptoFlags.SymmetricEncryption = 4, CryptoFlags.AsymmetricEncryption = 8, CryptoFlags.Signing = 16, CryptoFlags.Public = 32, CryptoFlags.Private = 64 }
| Flags for cryptographic operations. More...

## Enumeration Type Documentation

enum IG.Crypto.HashType : int

Enumeration for selecting the hashing algorithm.

All names must be at most 20 characters in length (constant ConstCrypto.MaxTypeStringLength).

Names can only contain ASCII characters and may not change once they are defined (as many functionality will rely on string representation of flag values rather than integer codes).

Integer numbers of flags should not change once they are defined. New numbers must be defined sych that they can be combined by bitwise or (i.e. as flags). The "Default" value may eventually be changed (for which there must be very strong reasons) but must always point to some other value that is not "None".

$A Igor Apr10;

Enumerator
None | No hashing algorithm specified.
Default | Default hashing algorithm.
MD5 | Specifies the MD5 hashing algorithm.
SHA1 | Specifies the SHA1 hashing algorithm.
SHA256 | Specifies the SHA256 hashing algorithm.
SHA512 | Specifies the SHA512 hashing algorithm.

enum IG.Crypto.PasswordAlgorithmType : int

Enumeration for selecting the algorithm for generation of secret keys, initialization vectors, etc., on basis of provided passwords, keys, and salts.

The algorithm must be of type System.Security.Cryptography.DeriveBytes

All names must be at most 20 characters in length (constant ConstCrypto.MaxTypeStringLength).

Names can only contain ASCII characters and may not change once they are defined (as many functionality will rely on string representation of flag values rather than integer codes).

Integer numbers of flags should not change once they are defined. New numbers must be defined sych that they can be combined by bitwise or (i.e. as flags). The "Default" value may eventually be changed (for which there must be very strong reasons) but must always point to some other value that is not "None".

$A Igor Apr10;

Enumerator
None | No asymmetric algorithm specified.
Default | Default key derivation algorithm.
Rfc | Default key derivation algorithm.
Rfc2898 | Specifies the Rfc2898DeriveBytes algorithms.
DeriveBytes | Specifies the DeriveBytes algorithm.

enum IG.Crypto.SymmetricAlgorithmType : int

Enumeration for selecting the symmetric encryption algorithm.

All names must be at most 20 characters in length (constant ConstCrypto.MaxTypeStringLength).

Names can only contain ASCII characters and may not change once they are defined (as many functionality will rely on string representation of flag values rather than integer codes).

Integer numbers of flags should not change once they are defined. New numbers must be defined sych that they can be combined by bitwise or (i.e. as flags). The "Default" value may eventually be changed (for which there must be very strong reasons) but must always point to some other value that is not "None".

$A Igor Apr10;

Enumerator
None | No hashing algorithm specified.
Default | Default Symmetric algorithm.
RD |
Rijndael | Alias for Rijndael (used in Advanced Encryption Standard - AES, only that AES has block size limited to 128 bits and has some other limitations).
AES | Specifies the AES symmetric encryption algorithm.
TripleDES | Specifies the TripleDES symmetric encryption algorithm.
DES | Specifies the DES symmetric encryption algorithm.
RC2 | Specifies the RC2 symmetric encryption algorithm.

enum IG.Crypto.AsymmetricAlgorithmType : int

Enumeration for selecting the asymmetric cryptographic algorithm.

All names must be at most 20 characters in length (constant ConstCrypto.MaxTypeStringLength).

Names can only contain ASCII characters and may not change once they are defined (as many functionality will rely on string representation of flag values rather than integer codes).

Integer numbers of flags should not change once they are defined. New numbers must be defined sych that they can be combined by bitwise or (i.e. as flags). The "Default" value may eventually be changed (for which there must be very strong reasons) but must always point to some other value that is not "None".

$A Igor Apr10;

Enumerator
None | No asymmetric algorithm specified.
Default | Default asymmetric algorithm.
RSA | Specifies the RSA asymmetric algorithms.
DSA | Specifies the DSA asymmetric algorithm.

enum IG.Crypto.CryptoFlags : int

Flags for cryptographic operations.

These flags describe which cryptographic operations has been performed and some other details.

The flags are written e.g. to headers of encrypted data in order to know what data should be expected further in the header. Sizes of further data are then specified by further information such as types of algorithms used, key sizes, salt and initialization vecor lengths, etc.

$A Igor May15;

Enumerator
None |
EncryptionError |
DecryptionError |
Error |
Hashing |
KeyGeneration |
SymmetricEncryption |
AsymmetricEncryption |
Signing |
Public |
Private |