Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LocalClientSecuritySettings.cs
- ArrayConverter.cs
- NetworkCredential.cs
- BinHexEncoder.cs
- ProviderSettingsCollection.cs
- StickyNoteAnnotations.cs
- EntityContainerEmitter.cs
- CopyAction.cs
- NavigationHelper.cs
- CodePropertyReferenceExpression.cs
- OneOfElement.cs
- ProjectionPath.cs
- NamespaceMapping.cs
- ConcurrentBag.cs
- FlowNode.cs
- BezierSegment.cs
- ProtectedConfiguration.cs
- ToolStripCollectionEditor.cs
- ZoomComboBox.cs
- Predicate.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- MimeBasePart.cs
- VarRefManager.cs
- Models.cs
- CapabilitiesRule.cs
- DataGridSortingEventArgs.cs
- DetailsViewInsertedEventArgs.cs
- FixedElement.cs
- ListenerElementsCollection.cs
- Point4DConverter.cs
- Solver.cs
- PointHitTestParameters.cs
- LingerOption.cs
- StreamAsIStream.cs
- DbDataAdapter.cs
- WindowsProgressbar.cs
- EntityWrapper.cs
- HandleCollector.cs
- PropertyCondition.cs
- DataGridViewRowStateChangedEventArgs.cs
- CompModHelpers.cs
- TraceHandler.cs
- WhiteSpaceTrimStringConverter.cs
- Trace.cs
- LayeredChannelListener.cs
- SqlCommand.cs
- DockPanel.cs
- TextRangeEdit.cs
- ListViewEditEventArgs.cs
- PanelStyle.cs
- ConfigurationValidatorBase.cs
- VolatileResourceManager.cs
- EnvelopeVersion.cs
- ExecutionEngineException.cs
- ProjectionNode.cs
- DefaultParameterValueAttribute.cs
- ManualResetEventSlim.cs
- BitmapEffect.cs
- ScriptResourceInfo.cs
- Decoder.cs
- Label.cs
- FixedTextView.cs
- PointCollectionValueSerializer.cs
- RelationalExpressions.cs
- DocumentOrderQuery.cs
- CodeTypeReferenceCollection.cs
- Header.cs
- EastAsianLunisolarCalendar.cs
- ResourceCodeDomSerializer.cs
- ControlAdapter.cs
- LambdaExpression.cs
- RectAnimationClockResource.cs
- Highlights.cs
- CodeTryCatchFinallyStatement.cs
- DefaultWorkflowSchedulerService.cs
- Expressions.cs
- ConnectionPoint.cs
- DbParameterCollection.cs
- PnrpPermission.cs
- EventPropertyMap.cs
- FixedStringLookup.cs
- XmlILOptimizerVisitor.cs
- MatrixAnimationUsingPath.cs
- _ChunkParse.cs
- ControlAdapter.cs
- SoapIncludeAttribute.cs
- ValidatorCollection.cs
- EmptyStringExpandableObjectConverter.cs
- TextTreeObjectNode.cs
- ProfileSettingsCollection.cs
- XmlILStorageConverter.cs
- XmlWhitespace.cs
- ColorKeyFrameCollection.cs
- FontResourceCache.cs
- TimeZone.cs
- Primitive.cs
- HttpClientCertificate.cs
- Condition.cs
- AttributeProviderAttribute.cs
- NameTable.cs