Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Cryptography / HMACSHA512.cs / 2 / HMACSHA512.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// HMACSHA512.cs
//
namespace System.Security.Cryptography {
[System.Runtime.InteropServices.ComVisible(true)]
public class HMACSHA512 : HMAC {
private bool m_useLegacyBlockSize = Utils._ProduceLegacyHmacValues();
//
// public constructors
//
public HMACSHA512 () : this (Utils.GenerateRandom(128)) {}
public HMACSHA512 (byte[] key) {
Utils._ShowLegacyHmacWarning();
m_hashName = "SHA512";
m_hash1 = new SHA512Managed();
m_hash2 = new SHA512Managed();
HashSizeValue = 512;
BlockSizeValue = BlockSize;
base.InitializeKey(key);
}
private int BlockSize {
get { return m_useLegacyBlockSize ? 64 : 128; }
}
///
/// In Whidbey we incorrectly used a block size of 64 bytes for HMAC-SHA-384 and HMAC-SHA-512,
/// rather than using the correct value of 128 bytes. Setting this to true causes us to fall
/// back to the Whidbey mode which produces incorrect HMAC values.
///
/// This value should be set only once, before hashing has begun, since we need to reset the key
/// buffer for the block size change to take effect.
///
/// The default vaue is off, however this can be toggled for the application by setting the
/// legacyHMACMode config switch.
///
/// We will also produce a warning when using either of these classes which is output to the
/// debugger and event log unless the showLegacyHMACWarning config setting is disabled. This
/// warning is generated for the first time either class is constructed.
///
public bool ProduceLegacyHmacValues {
get { return m_useLegacyBlockSize; }
set {
m_useLegacyBlockSize = value;
BlockSizeValue = BlockSize;
InitializeKey(KeyValue);
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FactoryMaker.cs
- XPathNodeHelper.cs
- ColumnClickEvent.cs
- GroupBoxAutomationPeer.cs
- SqlBooleanMismatchVisitor.cs
- MimeObjectFactory.cs
- StylusPlugin.cs
- CatalogPartDesigner.cs
- Semaphore.cs
- DataKeyArray.cs
- HtmlForm.cs
- UriExt.cs
- MarshalDirectiveException.cs
- Internal.cs
- IChannel.cs
- XmlSchemaObjectCollection.cs
- InfoCardSymmetricCrypto.cs
- ModulesEntry.cs
- ReaderWriterLockSlim.cs
- HttpFileCollection.cs
- BaseDataBoundControl.cs
- ScriptingProfileServiceSection.cs
- brushes.cs
- DebugHandleTracker.cs
- ServiceOperationParameter.cs
- EncoderParameters.cs
- ScriptingJsonSerializationSection.cs
- XmlSchemaProviderAttribute.cs
- FacetDescription.cs
- DataGridCell.cs
- SqlNotificationRequest.cs
- PointAnimationUsingKeyFrames.cs
- HtmlMeta.cs
- DetailsViewDesigner.cs
- AdCreatedEventArgs.cs
- MailDefinition.cs
- CompModSwitches.cs
- DropDownHolder.cs
- InstalledFontCollection.cs
- LocalizedNameDescriptionPair.cs
- UrlMapping.cs
- SparseMemoryStream.cs
- ViewManager.cs
- Expander.cs
- XmlNamespaceDeclarationsAttribute.cs
- HtmlControl.cs
- VectorConverter.cs
- UInt32.cs
- SmtpNtlmAuthenticationModule.cs
- CanonicalFormWriter.cs
- XmlSerializableReader.cs
- UniqueCodeIdentifierScope.cs
- Label.cs
- UTF32Encoding.cs
- TdsParserSafeHandles.cs
- ComPlusContractBehavior.cs
- TCPClient.cs
- TypeUsage.cs
- DoubleAnimationUsingPath.cs
- CryptographicAttribute.cs
- QuaternionConverter.cs
- XmlProcessingInstruction.cs
- BevelBitmapEffect.cs
- TileBrush.cs
- Knowncolors.cs
- TransformerInfo.cs
- CoreSwitches.cs
- User.cs
- ParseHttpDate.cs
- HtmlInputSubmit.cs
- WorkflowElementDialogWindow.xaml.cs
- ArraySubsetEnumerator.cs
- AnnotationComponentChooser.cs
- ProfileProvider.cs
- AutomationElement.cs
- BuildResultCache.cs
- Triangle.cs
- CommonProperties.cs
- WebWorkflowRole.cs
- RequestStatusBarUpdateEventArgs.cs
- HttpRequestCacheValidator.cs
- Size3DConverter.cs
- DSASignatureDeformatter.cs
- CellPartitioner.cs
- MaskPropertyEditor.cs
- CustomAttribute.cs
- NavigateEvent.cs
- WindowsGraphics2.cs
- HandleDictionary.cs
- PropertyConverter.cs
- Group.cs
- QilExpression.cs
- TypeReference.cs
- PageContent.cs
- Filter.cs
- OdbcReferenceCollection.cs
- BufferBuilder.cs
- BamlMapTable.cs
- ConfigurationStrings.cs
- CompModSwitches.cs