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
- CryptoProvider.cs
- Context.cs
- GridViewDeleteEventArgs.cs
- ZipArchive.cs
- AsyncResult.cs
- ExpandCollapseProviderWrapper.cs
- SqlDataRecord.cs
- FixedHighlight.cs
- NeutralResourcesLanguageAttribute.cs
- _UriTypeConverter.cs
- RequestCacheEntry.cs
- UIElementHelper.cs
- DataGridHelper.cs
- UserCancellationException.cs
- DurableServiceAttribute.cs
- SqlNode.cs
- MulticastIPAddressInformationCollection.cs
- PriorityRange.cs
- safex509handles.cs
- StylusPointPropertyUnit.cs
- InputScopeAttribute.cs
- DataGridViewHeaderCell.cs
- TypefaceMap.cs
- RSACryptoServiceProvider.cs
- LogWriteRestartAreaState.cs
- AssemblyAssociatedContentFileAttribute.cs
- ScrollEvent.cs
- ActivityDesignerLayoutSerializers.cs
- OlePropertyStructs.cs
- DataGridViewRow.cs
- TableLayoutStyle.cs
- AttachInfo.cs
- OrderPreservingSpoolingTask.cs
- DataBoundControl.cs
- PreviousTrackingServiceAttribute.cs
- NavigationExpr.cs
- SafeNativeMethods.cs
- HttpCachePolicyWrapper.cs
- TextEditorTyping.cs
- DataSourceSelectArguments.cs
- WindowsListBox.cs
- SoapFaultCodes.cs
- Compress.cs
- AutomationPatternInfo.cs
- TraceContext.cs
- ResourcePermissionBase.cs
- UnsafeNativeMethods.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ExpressionPrinter.cs
- TableHeaderCell.cs
- SafeLocalMemHandle.cs
- FormsAuthenticationEventArgs.cs
- ClientBuildManager.cs
- SymLanguageType.cs
- BinaryUtilClasses.cs
- TemplateKeyConverter.cs
- InteropAutomationProvider.cs
- TimeStampChecker.cs
- XmlSchemaImport.cs
- ModelUIElement3D.cs
- PropertyDescriptors.cs
- DropSource.cs
- WSTrust.cs
- OracleNumber.cs
- HwndMouseInputProvider.cs
- KnownBoxes.cs
- OdbcConnectionHandle.cs
- TabItemWrapperAutomationPeer.cs
- xsdvalidator.cs
- AppDomain.cs
- ByteStorage.cs
- TransformedBitmap.cs
- HTTPNotFoundHandler.cs
- ConfigurationElementCollection.cs
- LinqDataSourceInsertEventArgs.cs
- ComponentEditorForm.cs
- Point.cs
- EastAsianLunisolarCalendar.cs
- AppManager.cs
- ReadOnlyHierarchicalDataSource.cs
- securitycriticaldataClass.cs
- Permission.cs
- HtmlEncodedRawTextWriter.cs
- ClientType.cs
- XmlResolver.cs
- EntityDesignerDataSourceView.cs
- QueryResults.cs
- ObjectDisposedException.cs
- ResourceManager.cs
- NumericUpDownAcceleration.cs
- HtmlLinkAdapter.cs
- DateTimeAutomationPeer.cs
- CodeGenHelper.cs
- ImageListUtils.cs
- MailWebEventProvider.cs
- BrushConverter.cs
- PatternMatchRules.cs
- RuntimeResourceSet.cs
- Pair.cs
- UIElementCollection.cs