Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Security / Cryptography / HMACSHA512.cs / 1 / 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.
//
// ==--==
//
// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Rijndael.cs
- LateBoundBitmapDecoder.cs
- ScriptControlDescriptor.cs
- ComponentResourceKeyConverter.cs
- ChannelManager.cs
- DispatcherEventArgs.cs
- SignatureToken.cs
- XmlSchemaInfo.cs
- ObjectDataSourceStatusEventArgs.cs
- ScrollChrome.cs
- ColumnResizeAdorner.cs
- ExceptionValidationRule.cs
- RequestCacheValidator.cs
- SystemParameters.cs
- PolyBezierSegment.cs
- WhitespaceRuleReader.cs
- OracleDateTime.cs
- PrintController.cs
- WindowsFormsLinkLabel.cs
- XsdBuildProvider.cs
- SID.cs
- TraceSwitch.cs
- FusionWrap.cs
- TimeSpanMinutesConverter.cs
- XmlSchemaGroupRef.cs
- DrawingImage.cs
- FrameSecurityDescriptor.cs
- PackagingUtilities.cs
- XdrBuilder.cs
- IncrementalHitTester.cs
- MSHTMLHost.cs
- FrameworkElementFactoryMarkupObject.cs
- SmtpNetworkElement.cs
- AuthStoreRoleProvider.cs
- QfeChecker.cs
- BoundField.cs
- XmlRawWriter.cs
- ConnectivityStatus.cs
- SubtreeProcessor.cs
- DetailsViewRowCollection.cs
- ListDictionary.cs
- FormViewModeEventArgs.cs
- TransformationRules.cs
- AddInController.cs
- SByteStorage.cs
- SimpleFileLog.cs
- SymbolDocumentGenerator.cs
- GlobalDataBindingHandler.cs
- OdbcConnectionFactory.cs
- DataGridViewCellStateChangedEventArgs.cs
- DocumentGridContextMenu.cs
- MdImport.cs
- PropertyEmitter.cs
- IntellisenseTextBox.cs
- GcHandle.cs
- recordstate.cs
- UriParserTemplates.cs
- TagPrefixCollection.cs
- Rotation3D.cs
- WebPartConnectionsCancelVerb.cs
- UnsafeNativeMethods.cs
- VisualStyleInformation.cs
- SpAudioStreamWrapper.cs
- ThemeableAttribute.cs
- ItemCheckEvent.cs
- DataTable.cs
- DataGridViewHeaderCell.cs
- BooleanExpr.cs
- ISFTagAndGuidCache.cs
- ThreadBehavior.cs
- ImportFileRequest.cs
- CodeRegionDirective.cs
- GZipObjectSerializer.cs
- CacheSection.cs
- Scene3D.cs
- Base64Encoder.cs
- GenericPrincipal.cs
- ControlCachePolicy.cs
- ComboBox.cs
- MLangCodePageEncoding.cs
- xml.cs
- DrawingState.cs
- RenderTargetBitmap.cs
- GeneralTransform3DGroup.cs
- TableLayout.cs
- SharedRuntimeState.cs
- ConvertersCollection.cs
- TextParentUndoUnit.cs
- QueryPageSettingsEventArgs.cs
- SafeArrayRankMismatchException.cs
- MsmqIntegrationReceiveParameters.cs
- ParentControlDesigner.cs
- SqlDependencyListener.cs
- DocumentGrid.cs
- PhysicalAddress.cs
- RemotingSurrogateSelector.cs
- mansign.cs
- ISFClipboardData.cs
- InputLanguageEventArgs.cs
- OperationCanceledException.cs