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)

Asymmetric cryptographic algorithms, also known as public-key algorithms, require that both sender and receiver maintain a pair of related keys: a private key and a public key. Both keys are unique to the entity. The public key can be made available to anyone; this key is used for encoding data that is sent to a receiver. The private key must be kept private by the receiver; this key is used for decoding messages encoded using the receiver's public key. The class is an implementation of a public-key algorithm. For an in-depth discussion of public-key encryption and algorithms, see the "Public-Key Encryption" section in Cryptographic Services. For information about how to use the Srong Name tool (Sn.exe) to create key pairs, see How to: Create a Public/Private Key Pair.

You can use public-key systems to form digital signatures. Digital signatures are used to help to protect the integrity of data. For example, to use a public-key system to digitally sign a message, the sender first applies a hash function to the message to create a message digest. The sender then encrypts the message digest with the sender's private key to create the sender's personal signature. Upon receiving the message and signature, the receiver decrypts the signature using the sender's public key to recover the message digest and hashes the message using the same hash algorithm that the sender used. If the message digest that the receiver computes matches the message digest received from the sender, the receiver can assume that the message was not altered while in transit. Note that anyone can verify a signature, because the sender's public key is common knowledge. This technique does not retain the secrecy of the message; for the message to be secret, it must also be encrypted.

The .NET Framework provides the following classes that implement digital signature algorithms: , , (base class), and .

The namespace provides concrete classes for and only.

To learn how to use the RSA algorithm to encrypt and decrypt XML data, and create and verify XML digital signatures, see these articles:

How to: Encrypt XML Elements with Asymmetric Keys

How to: Decrypt XML Elements with Asymmetric Keys

How to: Sign XML Documents with Digital Signatures

How to: Verify the Digital Signatures of XML Documents

Represents the abstract base class from which all implementations of asymmetric 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. The and classes are the only currently supported implementations.

  Initializes a new instance of the class.

- Method
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.Void

  This method is a simple call to the method.

  Calling Dispose allows the resources used by the class to be reallocated for other purposes. For more information about Dispose, see [<topic://cpconCleaningUpUnmanagedResources>].

  Releases all resources used by the class.

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

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

  A new instance, unless the default settings have been changed with the <cryptoClass> element.

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

  Creates an instance of the specified implementation of an asymmetric algorithm.

  A new instance of the specified asymmetric algorithm implementation.

  The asymmetric algorithm implementation to use. The following table shows the valid values for the parameter and the algorithms they map to.
- 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 class and optionally releases the managed resources.

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

  When overridden in a derived class, reconstructs an object from an XML string.

  The XML string to use to reconstruct the object.
- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String To be added: an object of type 'string' To be added

  When overridden in a derived class, gets the name of the key exchange 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 implementation of the asymmetric algorithm and are listed in the property.

  Gets or sets the size, in bits, of the key modulus used by the asymmetric 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 implementation of the asymmetric algorithm and are listed in the property.

  This field is accessed through the property.

  Represents the size, in bits, of the key modulus used by the asymmetric 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 asymmetric algorithm supports only key sizes that match an entry in this array.

  Gets the key sizes that are supported by the asymmetric algorithm.

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

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

  This field is accessed through the property.

  Specifies the key sizes that are supported by the asymmetric algorithm.

- Property
  1.0.5000.0
  2.0.0.0
  4.0.0.0
  System.String To be added: an object of type 'string' To be added

  Gets the name of the signature algorithm.

- Method
  System.Void

  This member is an explicit interface member implementation. It can be used only when the instance is cast to an interface.

  For a description of this member, see .

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

  When overridden in a derived class, creates and returns an XML string representation of the current object.

  An XML string encoding of the current object.

  true to include private parameters; otherwise, false.