public abstract class KeyedHashAlgorithm : HashAlgorithm { // Protected Constructors protected KeyedHashAlgorithm( ); // Protected Instance Fields protected byte[ ] KeyValue; // Public Instance Properties public virtual byte[ ] Key{set; get; } // Public Static Methods public static KeyedHashAlgorithm Create( ); public static KeyedHashAlgorithm Create(string algName); // Protected Instance Methods protected override void Dispose(bool disposing); // overrides HashAlgorithm protected override void Finalize( ); // overrides object }
Keyed hash algorithms provide authenticated hash codes by combining a secret key with the data to process. The recipient can validate the hash code only if he knows the secret key.
All keyed hash algorithm implementations inherit from this abstract class, which extends the HashAlgorithm class. Implementation classes are instantiated using the Create( ) method, which accepts the name of an implementation as a System.String argument. The default implementation class is created if no name is specified; the system administrator determines the default class.
In addition to the members defined by the parent class, KeyedHashAlgorithm implements the Key property, which gets and sets the value of the secret key, expressed as a System.Byte array.