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
- SystemResources.cs
- ListViewItem.cs
- IssuanceTokenProviderState.cs
- WebPartEditorCancelVerb.cs
- DataGridColumnFloatingHeader.cs
- TemplatedWizardStep.cs
- DetailsViewActionList.cs
- ApplicationInfo.cs
- bidPrivateBase.cs
- Unit.cs
- SelectionRange.cs
- Operators.cs
- JavaScriptSerializer.cs
- RoutedEventArgs.cs
- TextEditorDragDrop.cs
- VersionedStreamOwner.cs
- ResourceContainer.cs
- ClassValidator.cs
- SingleStorage.cs
- PeerUnsafeNativeMethods.cs
- Proxy.cs
- HttpCapabilitiesBase.cs
- SemanticAnalyzer.cs
- ListViewTableRow.cs
- InvalidChannelBindingException.cs
- DrawingBrush.cs
- DatePickerDateValidationErrorEventArgs.cs
- ReliableSession.cs
- ListChangedEventArgs.cs
- MultilineStringConverter.cs
- StringHandle.cs
- WebPartMenuStyle.cs
- VectorCollectionConverter.cs
- VisualTreeHelper.cs
- Marshal.cs
- EDesignUtil.cs
- EndCreateSecurityTokenRequest.cs
- PropagatorResult.cs
- NetPeerTcpBinding.cs
- EntityStoreSchemaGenerator.cs
- SmtpNegotiateAuthenticationModule.cs
- _NegoState.cs
- Clipboard.cs
- XmlSchemaComplexContentExtension.cs
- BrowserTree.cs
- HostedBindingBehavior.cs
- OutputCacheSection.cs
- UseLicense.cs
- DescendentsWalker.cs
- TransactionContextManager.cs
- ProfileEventArgs.cs
- HttpProfileBase.cs
- DefaultPrintController.cs
- MenuStrip.cs
- ProviderCommandInfoUtils.cs
- DurableInstancingOptions.cs
- FloatUtil.cs
- TypeReference.cs
- BuildProviderCollection.cs
- cookiecollection.cs
- IndentTextWriter.cs
- StringReader.cs
- ValuePattern.cs
- StickyNoteHelper.cs
- UIntPtr.cs
- SqlFileStream.cs
- EventBindingService.cs
- XmlHierarchicalEnumerable.cs
- DesignerActionUIService.cs
- SchemaImporterExtension.cs
- MetaModel.cs
- WindowsFormsSynchronizationContext.cs
- StaticTextPointer.cs
- KnownColorTable.cs
- webclient.cs
- TextRangeAdaptor.cs
- RuntimeHelpers.cs
- SafePEFileHandle.cs
- SizeAnimation.cs
- COM2AboutBoxPropertyDescriptor.cs
- TreeViewAutomationPeer.cs
- Int32Collection.cs
- ValidationPropertyAttribute.cs
- BrowserDefinition.cs
- QueryExtender.cs
- PrefixQName.cs
- UnmanagedMemoryStreamWrapper.cs
- WebServiceHost.cs
- IntAverageAggregationOperator.cs
- ChildDocumentBlock.cs
- DbMetaDataColumnNames.cs
- BindingNavigator.cs
- PropertyItemInternal.cs
- WinCategoryAttribute.cs
- ByteFacetDescriptionElement.cs
- FixedPageProcessor.cs
- AppDomainShutdownMonitor.cs
- DataDesignUtil.cs
- ManagedCodeMarkers.cs
- PropertyDescriptorComparer.cs