mscorlib [00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00] 1.0.5000.0 2.0.0.0 4.0.0.0 Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details. System.Object System.IDisposable System.Runtime.InteropServices.ComVisible(true)

The classes that derive from the class use a chaining mode called cipher block chaining (CBC), which requires a key () and an initialization vector () to perform cryptographic transformations on data. To decrypt data that was encrypted using one of the classes, you must set the property and the property to the same values that were used for encryption. For a symmetric algorithm to be useful, the secret key must be known only to the sender and the receiver.

, , , and are implementations of symmetric algorithms.

Note that when using derived classes, it is not enough, from a security perspective, to simply force a garbage collection after you have finished using the object. You must explicitly call the method on the object to zero out any sensitive data within the object before it is released. Note that garbage collection does not zero out the contents of collected objects but simply marks the memory as available for reallocation. Thus the data contained within a garbage collected object may still be present in the memory heap in unallocated memory. In the case of cryptographic objects, this data could contain sensitive information such as key data or a block of plain text.

All cryptographic classes in the .NET Framework that hold sensitive data implement a Clear method. When called, the Clear method overwrites all sensitive data within the object with zeros and then releases the object so that it can be safely garbage collected. When the object has been zeroed and released, you should then call the Dispose method with the parameter set to True to dispose of all managed and unmanaged resources associated with the object.

Represents the abstract base class from which all implementations of symmetric algorithms must inherit.

- Constructor
  1.0.5000.0
  2.0.0.0
  4.0.0.0

  You cannot create an instance of an abstract class. Application code creates a new instance of a derived class.

  Initializes a new instance of the class.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  The block size is the basic unit of data that can be encrypted or decrypted in one operation. Messages longer than the block size are handled as successive blocks; messages shorter than the block size must be padded with extra bits to reach the size of a block. Valid block sizes are determined by the symmetric algorithm used.

  Gets or sets the block size, in bits, of the cryptographic operation.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32

  The block size is the basic unit of data that can be encrypted or decrypted in one operation. Messages longer than the block size are handled as successive blocks; messages shorter than the block size must be padded with extra bits to reach the size of a block. Valid block sizes are determined by the symmetric algorithm used.

  This field is accessed through the property.

  Represents the block size, in bits, of the cryptographic operation.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void

  Note that when using derived classes, it is not enough, from a security perspective, to simply force a garbage collection after you have finished using the object. You must explicitly call the method on the object to zero out any sensitive data within the object before it is released. Note that garbage collection does not zero out the contents of collected objects but simply marks the memory as available for reallocation. Thus the data contained within a garbage collected object may still be present in the memory heap in unallocated memory. In the case of cryptographic objects, this data could contain sensitive information such as key data or a block of plain text.

  All cryptographic classes in the .NET Framework that hold sensitive data implement a Clear method. When called, the Clear method overwrites all sensitive data within the object with zeros and then releases the object so that it can be safely garbage collected. When the object has been zeroed and released, you should then call the Dispose method with the parameter set to True to dispose of all managed and unmanaged resources associated with the object.

  Releases all resources used by the class.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.SymmetricAlgorithm To be added

  Creates a default cryptographic object used to perform the symmetric algorithm.

  A default cryptographic object used to perform the symmetric algorithm.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.SymmetricAlgorithm `` To be added

  Creates the specified cryptographic object used to perform the symmetric algorithm.

  A cryptographic object used to perform the symmetric algorithm.

  The name of the specific implementation of the class to use.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.ICryptoTransform

  This method decrypts an encrypted message created using the overload with the same signature.

  Creates a symmetric decryptor object with the current property and initialization vector ().

  A symmetric decryptor object.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.ICryptoTransform `` ``

  This method decrypts an encrypted message created using the overload with the same parameters.

  When overridden in a derived class, creates a symmetric decryptor object with the specified property and initialization vector ().

  A symmetric decryptor object.

  The secret key to use for the symmetric algorithm. The initialization vector to use for the symmetric algorithm.
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.ICryptoTransform

  If the current property is null, the method is called to create a new random . If the current property is null, the method is called to create a new random .

  Use the overload with the same signature to decrypt the result of this method.

  Creates a symmetric encryptor object with the current property and initialization vector ().

  A symmetric encryptor object.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.ICryptoTransform `` ``

  Use the overload with the same parameters to decrypt the result of this method.

  When overridden in a derived class, creates a symmetric encryptor object with the specified property and initialization vector ().

  A symmetric encryptor object.

  The secret key to use for the symmetric algorithm. The initialization vector to use for the symmetric algorithm.
- Method
  4.0.0.0
  System.Void

  Call Dispose when you are finished using the . The Dispose method leaves the in an unusable state. After calling Dispose, you must release all references to the so the garbage collector can reclaim the memory that the was occupying.

  For more information, see Cleaning Up Unmanaged Resources and Implementing a Dispose Method.

  Always call Dispose before you release your last reference to the . Otherwise, the resources it is using will not be freed until the garbage collector calls the object's Finalize method.

  Releases all resources used by the current instance of the class.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void ``

  This method is called by the public Dispose() method and the Finalize method. Dispose() invokes the protected Dispose(Boolean) method with the parameter set to true. Finalize invokes Dispose with set to false.

  When the parameter is true, this method releases all resources held by any managed objects that this references. This method invokes the Dispose() method of each referenced object.

  Releases the unmanaged resources used by the and optionally releases the managed resources.

  true to release both managed and unmanaged resources; false to release only unmanaged resources.
- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  The feedback size determines the amount of data that is fed back to successive encryption or decryption operations. The feedback size cannot be greater than the block size.

  Gets or sets the feedback size, in bits, of the cryptographic operation.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32

  The feedback size determines the amount of data that is fed back to successive encryption or decryption operations. The feedback size cannot be greater than the block size.

  This field is accessed through the property.

  Represents the feedback size, in bits, of the cryptographic operation.

- Method
  System.Void To be added. To be added. 1.0.5000.0 2.0.0.0
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void

  In general, there is no reason to use this method, because CreateEncryptor() or CreateEncryptor(null, null) automatically generates both an initialization vector and a key. However, you may want to use the method to reuse a symmetric algorithm instance with a different initialization vector.

  When overridden in a derived class, generates a random initialization vector () to use for the algorithm.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void

  In general, there is no reason to use this method, because CreateEncryptor() or CreateEncryptor(null, null) automatically generates both an initialization vector and a key. However, you may want to use the method to reuse a symmetric algorithm instance with a different key.

  When overridden in a derived class, generates a random key () to use for the algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Byte[] To be added.

  The property is automatically set to a new random value whenever you create a new instance of one of the classes or when you manually call the method. The size of the property must be the same as the property divided by 8.

  The classes that derive from the class use a chaining mode called cipher block chaining (CBC), which requires a key and an initialization vector to perform cryptographic transformations on data. To decrypt data that was encrypted using one of the classes, you must set the property and property to the same values that were used for encryption.

  For a given secret key k, a simple block cipher that does not use an initialization vector will encrypt the same input block of plain text into the same output block of cipher text. If you have duplicate blocks within your plain text stream, you will have duplicate blocks within your cipher text stream. If unauthorized users know anything about the structure of a block of your plain text, they can use that information to decipher the known cipher text block and possibly recover your key. To combat this problem, information from the previous block is mixed into the process of encrypting the next block. Thus, the output of two identical plain text blocks is different. Because this technique uses the previous block to encrypt the next block, an initialization vector is needed to encrypt the first block of data.

  Gets or sets the initialization vector () for the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Byte[]

  This field is accessed through the property.

  Represents the initialization vector () for the symmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Byte[] To be added.

  The secret key is used both for encryption and for decryption. For a symmetric algorithm to be successful, the secret key must be known only to the sender and the receiver. The valid key sizes are specified by the particular symmetric algorithm implementation and are listed in the property.

  If this property is null when it is used, the method is called to create a new random value.

  Gets or sets the secret key for the symmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32 To be added.

  The valid key sizes are specified by the particular symmetric algorithm implementation and are listed in the property.

  Gets or sets the size, in bits, of the secret key used by the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Int32

  The valid key sizes are specified by the particular symmetric algorithm implementation and are listed in the property.

  This field is accessed through the property.

  Represents the size, in bits, of the secret key used by the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Byte[]

  The secret key is used both for encryption and for decryption. For a symmetric algorithm to be successful, the secret key must be known only to the sender and the receiver. The valid key sizes are specified by the particular symmetric algorithm implementation and are listed in the property.

  This field is accessed through the property.

  Represents the secret key for the symmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.KeySizes[] To be added: an object of type 'KeySizes []'

  The symmetric algorithm supports only block sizes that match an entry in this array.

  Gets the block sizes, in bits, that are supported by the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.KeySizes[]

  The symmetric algorithm supports only block sizes that match an entry in this array.

  This field is accessed through the property.

  Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.KeySizes[] To be added: an object of type 'KeySizes []'

  The symmetric algorithm supports only key sizes that match an entry in this array.

  Gets the key sizes, in bits, that are supported by the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.KeySizes[]

  The symmetric algorithm supports only key sizes that match an entry in this array.

  This field is accessed through the property.

  Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.CipherMode To be added.

  See enumeration for a description of specific modes.

  Gets or sets the mode for operation of the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.CipherMode

  See enumeration for a description of specific modes.

  This field is accessed through the property.

  Represents the cipher mode used in the symmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.PaddingMode To be added.

  Most plain text messages do not consist of a number of bytes that completely fill blocks. Often, there are not enough bytes to fill the last block. When this happens, a padding string is added to the text. For example, if the block length is 64 bits and the last block contains only 40 bits, 24 bits of padding are added. See the enumeration for a description of specific modes.

  Gets or sets the padding mode used in the symmetric algorithm.

- Field
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Security.Cryptography.PaddingMode

  Most plain text messages do not consist of a number of bytes that completely fill blocks. Often, there are not enough bytes to fill the last block. When this happens, a padding string is added to the text. For example, if the block length is 64 bits and the last block contains only 40 bits, 24 bits of padding are added. See the enumeration for a description of specific modes.

  This field is accessed through the property.

  Represents the padding mode used in the symmetric algorithm.

- Method
  System.Void To be added.

  Releases the unmanaged resources used by the and optionally releases the managed resources.

  1.0.5000.0
  2.0.0.0
- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Boolean `` To be added

  Determines whether the specified key size is valid for the current algorithm.

  true if the specified key size is valid for the current algorithm; otherwise, false.

  The length, in bits, to check for a valid key size.