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
- IconBitmapDecoder.cs
- IBuiltInEvidence.cs
- RadialGradientBrush.cs
- Literal.cs
- EncryptRequest.cs
- XmlReaderDelegator.cs
- PropertyGridEditorPart.cs
- MatrixAnimationBase.cs
- EntityDataSourceViewSchema.cs
- CachedPathData.cs
- parserscommon.cs
- DataGridHeaderBorder.cs
- CustomValidator.cs
- QueueException.cs
- EditBehavior.cs
- RequestContext.cs
- NavigationService.cs
- Char.cs
- HiddenFieldPageStatePersister.cs
- WebServiceMethodData.cs
- Keyboard.cs
- EventWaitHandle.cs
- ValueConversionAttribute.cs
- ConnectionPoolManager.cs
- X509SecurityTokenAuthenticator.cs
- ValidationErrorCollection.cs
- TailCallAnalyzer.cs
- CodeDomDesignerLoader.cs
- Merger.cs
- DesignerSerializationOptionsAttribute.cs
- InvokeMethodDesigner.xaml.cs
- CriticalFileToken.cs
- TransformedBitmap.cs
- ConstantProjectedSlot.cs
- PresentationTraceSources.cs
- ContextMenuStripGroup.cs
- Misc.cs
- ColorAnimationUsingKeyFrames.cs
- UsernameTokenFactoryCredential.cs
- PeerObject.cs
- PolygonHotSpot.cs
- NewArrayExpression.cs
- ConnectionsZone.cs
- DesignerTransactionCloseEvent.cs
- LogicalTreeHelper.cs
- MetadataFile.cs
- ComplexObject.cs
- HostingPreferredMapPath.cs
- MetadataItemEmitter.cs
- WebPartConnectionsConfigureVerb.cs
- DocumentPaginator.cs
- TypedReference.cs
- StringAnimationUsingKeyFrames.cs
- PageTrueTypeFont.cs
- SerializationSectionGroup.cs
- XmlEncoding.cs
- UserPrincipalNameElement.cs
- Atom10FormatterFactory.cs
- SrgsNameValueTag.cs
- KeyProperty.cs
- SHA384Managed.cs
- SqlStream.cs
- filewebresponse.cs
- RawStylusInputReport.cs
- MasterPageCodeDomTreeGenerator.cs
- glyphs.cs
- HandlerBase.cs
- UnmanagedBitmapWrapper.cs
- ResourcePermissionBaseEntry.cs
- Blend.cs
- ImageConverter.cs
- MSAAWinEventWrap.cs
- BamlBinaryWriter.cs
- SoapObjectReader.cs
- ScriptResourceAttribute.cs
- StreamGeometryContext.cs
- LockCookie.cs
- PointAnimationUsingKeyFrames.cs
- TypographyProperties.cs
- Matrix3DValueSerializer.cs
- TraceSwitch.cs
- CodeAccessSecurityEngine.cs
- WinFormsUtils.cs
- MD5.cs
- ObjectDataSourceEventArgs.cs
- Literal.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- CompilerState.cs
- DeobfuscatingStream.cs
- SiteMapNodeItemEventArgs.cs
- UITypeEditor.cs
- XpsResourceDictionary.cs
- AnnotationAuthorChangedEventArgs.cs
- ParagraphVisual.cs
- ListViewItemEventArgs.cs
- DataSpaceManager.cs
- GroupItemAutomationPeer.cs
- MetaModel.cs
- HttpEncoderUtility.cs
- ColorMap.cs