IGLib  1.7.2
The IGLib base library for development of numerical, technical and business applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
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.

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.

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.

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.

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