Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- BooleanAnimationBase.cs
- WeakHashtable.cs
- DWriteFactory.cs
- XmlSchemaInferenceException.cs
- ProtectedConfigurationSection.cs
- HttpListenerException.cs
- NetDataContractSerializer.cs
- Int32Storage.cs
- BindingMAnagerBase.cs
- MobileUserControl.cs
- LocatorGroup.cs
- ListDataBindEventArgs.cs
- ClosableStream.cs
- SoapFaultCodes.cs
- ParameterCollection.cs
- OptionalRstParameters.cs
- SiteMapDataSourceView.cs
- Solver.cs
- RealizationContext.cs
- LedgerEntry.cs
- Logging.cs
- PeerDuplexChannelListener.cs
- ConcurrentQueue.cs
- ProfileInfo.cs
- HtmlAnchor.cs
- RuleProcessor.cs
- PointAnimationUsingKeyFrames.cs
- TransactionOptions.cs
- BoundingRectTracker.cs
- InputLangChangeRequestEvent.cs
- CharKeyFrameCollection.cs
- ToolStripDropDownButton.cs
- ISessionStateStore.cs
- HostSecurityManager.cs
- CurrentChangedEventManager.cs
- DbgUtil.cs
- SchemaLookupTable.cs
- RepeatBehavior.cs
- NaturalLanguageHyphenator.cs
- LinearKeyFrames.cs
- DataGridCommandEventArgs.cs
- ComponentCodeDomSerializer.cs
- XPathDocumentBuilder.cs
- SqlExpressionNullability.cs
- ToolBarTray.cs
- SapiInterop.cs
- WebConfigurationHostFileChange.cs
- PropertyRef.cs
- Binding.cs
- DrawingContextWalker.cs
- XmlSchemaAttributeGroupRef.cs
- SvcMapFileSerializer.cs
- ParentQuery.cs
- GroupBox.cs
- DataBoundControl.cs
- TemplatedWizardStep.cs
- ReaderOutput.cs
- SqlNode.cs
- CryptoProvider.cs
- XmlSchemaDatatype.cs
- _LocalDataStoreMgr.cs
- HttpAsyncResult.cs
- EntityTransaction.cs
- WaitHandleCannotBeOpenedException.cs
- ArrayWithOffset.cs
- Memoizer.cs
- DrawingVisualDrawingContext.cs
- XsltSettings.cs
- Compiler.cs
- DefaultTextStoreTextComposition.cs
- TextTreeTextElementNode.cs
- Polyline.cs
- MsmqBindingMonitor.cs
- Trace.cs
- EncoderNLS.cs
- DriveNotFoundException.cs
- TimerExtension.cs
- ComponentChangingEvent.cs
- OlePropertyStructs.cs
- EmptyControlCollection.cs
- DebugView.cs
- HandlerMappingMemo.cs
- ExceptionUtil.cs
- UrlRoutingHandler.cs
- ControlParameter.cs
- MouseBinding.cs
- SapiAttributeParser.cs
- BaseTreeIterator.cs
- DependencyObject.cs
- PersonalizationStateInfo.cs
- XmlNamedNodeMap.cs
- MessageQueuePermission.cs
- XPathScanner.cs
- ObjectQuery.cs
- OracleParameterBinding.cs
- StringUtil.cs
- ObjectPropertyMapping.cs
- odbcmetadatacolumnnames.cs
- FormattedTextSymbols.cs
- MULTI_QI.cs