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
- InputMethod.cs
- TextRange.cs
- TreeViewImageKeyConverter.cs
- SoapException.cs
- EventDescriptorCollection.cs
- SqlDeflator.cs
- TypeContext.cs
- WithParamAction.cs
- CustomAttribute.cs
- DrawToolTipEventArgs.cs
- regiisutil.cs
- IndicFontClient.cs
- TextSelectionProcessor.cs
- ConnectionInterfaceCollection.cs
- ILGenerator.cs
- WeakReference.cs
- ErrorTableItemStyle.cs
- GeneralTransformGroup.cs
- DataTemplateKey.cs
- PageSetupDialog.cs
- LocatorManager.cs
- PasswordPropertyTextAttribute.cs
- InputBuffer.cs
- DocumentViewer.cs
- TreeWalkHelper.cs
- Geometry3D.cs
- FormatterServices.cs
- MetabaseReader.cs
- HwndStylusInputProvider.cs
- Int32Animation.cs
- DocumentScope.cs
- Source.cs
- SafeFileMapViewHandle.cs
- XsdDataContractExporter.cs
- WebHttpBehavior.cs
- Int64KeyFrameCollection.cs
- QueueTransferProtocol.cs
- Assign.cs
- TextTreeDeleteContentUndoUnit.cs
- OperationFormatter.cs
- ComplexType.cs
- HelpPage.cs
- DirectionalLight.cs
- HierarchicalDataTemplate.cs
- AxisAngleRotation3D.cs
- AllMembershipCondition.cs
- SetterBase.cs
- ExpressionBuilder.cs
- Crc32.cs
- altserialization.cs
- WebZoneDesigner.cs
- LostFocusEventManager.cs
- XmlQueryCardinality.cs
- DrawingBrush.cs
- SecurityManager.cs
- DelimitedListTraceListener.cs
- EventTrigger.cs
- CompilerGlobalScopeAttribute.cs
- NamespaceCollection.cs
- AppendHelper.cs
- StringHandle.cs
- Line.cs
- Error.cs
- ServiceManagerHandle.cs
- RuntimeConfigLKG.cs
- AnchoredBlock.cs
- WebPartConnection.cs
- TextElementEnumerator.cs
- Style.cs
- XmlSchemaAttributeGroupRef.cs
- PageThemeCodeDomTreeGenerator.cs
- HttpCapabilitiesEvaluator.cs
- EnumerableRowCollection.cs
- StrokeNodeData.cs
- TreeBuilder.cs
- EmptyCollection.cs
- UserNameSecurityTokenAuthenticator.cs
- TableHeaderCell.cs
- RefreshEventArgs.cs
- MergeFilterQuery.cs
- DataGridViewTextBoxEditingControl.cs
- TrackingLocationCollection.cs
- DiscoveryReference.cs
- DomainConstraint.cs
- RadioButtonList.cs
- MaskPropertyEditor.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- Knowncolors.cs
- AnimationLayer.cs
- MessageQueueCriteria.cs
- EventHandlersStore.cs
- CompiledQuery.cs
- MouseActionValueSerializer.cs
- Form.cs
- DataFormats.cs
- WCFServiceClientProxyGenerator.cs
- ILGenerator.cs
- FragmentQueryKB.cs
- EventMappingSettings.cs
- RegexReplacement.cs