Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Security / Cryptography / HMACSHA512.cs / 5 / 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
- LayoutTable.cs
- ExpressionBuilderContext.cs
- ToolStripRenderer.cs
- DataPointer.cs
- __ComObject.cs
- ColorDialog.cs
- BitmapEffectGroup.cs
- CommandEventArgs.cs
- Splitter.cs
- CopyAction.cs
- HttpsHostedTransportConfiguration.cs
- CookieHandler.cs
- NavigationProperty.cs
- PanelDesigner.cs
- ContainerAction.cs
- AutoGeneratedField.cs
- WebSysDisplayNameAttribute.cs
- SqlTopReducer.cs
- CompilerState.cs
- XamlSerializerUtil.cs
- TreeView.cs
- ErrorStyle.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- SymbolTable.cs
- RtfControlWordInfo.cs
- AnimationClock.cs
- WebBrowserHelper.cs
- PolyBezierSegmentFigureLogic.cs
- CustomWebEventKey.cs
- ExpressionList.cs
- HScrollProperties.cs
- MemberPath.cs
- StringAttributeCollection.cs
- ArgumentElement.cs
- KeyedPriorityQueue.cs
- ElementHostPropertyMap.cs
- ProfileGroupSettings.cs
- DataControlFieldHeaderCell.cs
- SocketElement.cs
- XmlDataDocument.cs
- SocketException.cs
- FileResponseElement.cs
- MSAAWinEventWrap.cs
- BindingNavigator.cs
- PinnedBufferMemoryStream.cs
- ViewEventArgs.cs
- EFDataModelProvider.cs
- SubqueryRules.cs
- DragDropManager.cs
- ServiceAuthorizationManager.cs
- RadioButton.cs
- HtmlAnchor.cs
- TextEndOfParagraph.cs
- ConnectivityStatus.cs
- FunctionUpdateCommand.cs
- WorkerRequest.cs
- IssuanceLicense.cs
- Int16.cs
- HeaderedItemsControl.cs
- SessionEndingCancelEventArgs.cs
- StringAnimationBase.cs
- DES.cs
- PropertyToken.cs
- DispatcherHooks.cs
- DocumentGrid.cs
- CharConverter.cs
- SqlDependencyListener.cs
- ControlDesigner.cs
- Int16.cs
- PropertyMetadata.cs
- ContentPresenter.cs
- UnescapedXmlDiagnosticData.cs
- ScrollChrome.cs
- DocumentPageViewAutomationPeer.cs
- Message.cs
- UserControlCodeDomTreeGenerator.cs
- TabItemWrapperAutomationPeer.cs
- Repeater.cs
- HtmlDocument.cs
- EdmProperty.cs
- SByteStorage.cs
- ProxyElement.cs
- InlineCollection.cs
- EventSourceCreationData.cs
- UriParserTemplates.cs
- UIElementHelper.cs
- BrowserDefinitionCollection.cs
- Collection.cs
- SettingsPropertyWrongTypeException.cs
- RenderData.cs
- InstanceLockQueryResult.cs
- TransactionTable.cs
- XmlUtil.cs
- StyleHelper.cs
- XmlParser.cs
- DecoderExceptionFallback.cs
- SiteMapDataSourceView.cs
- XmlSchemaParticle.cs
- ObjectDataSourceDesigner.cs
- SiteMapSection.cs