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
- Literal.cs
- MultipartContentParser.cs
- VisualSerializer.cs
- GACIdentityPermission.cs
- WebSysDefaultValueAttribute.cs
- ThreadPool.cs
- panel.cs
- StylusEventArgs.cs
- Walker.cs
- StatusBarPanel.cs
- EDesignUtil.cs
- HtmlFormAdapter.cs
- FormatSettings.cs
- ErrorWebPart.cs
- LayoutTable.cs
- PopupRoot.cs
- AbandonedMutexException.cs
- Point3D.cs
- ConstraintEnumerator.cs
- WebBrowserHelper.cs
- ResourceSet.cs
- FieldToken.cs
- PlainXmlSerializer.cs
- FullTextState.cs
- WebPartDescription.cs
- Maps.cs
- SqlProvider.cs
- HttpDictionary.cs
- MembershipValidatePasswordEventArgs.cs
- ContactManager.cs
- X509SubjectKeyIdentifierClause.cs
- ConfigXmlWhitespace.cs
- HttpFileCollectionWrapper.cs
- PageRanges.cs
- DataKey.cs
- ClosableStream.cs
- FigureParaClient.cs
- PixelFormats.cs
- PrtCap_Reader.cs
- Faults.cs
- CapabilitiesRule.cs
- LinqDataSourceValidationException.cs
- ManagedWndProcTracker.cs
- MD5CryptoServiceProvider.cs
- MissingSatelliteAssemblyException.cs
- XPathNavigator.cs
- PrefixQName.cs
- ExpressionNode.cs
- SystemDropShadowChrome.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- StatusStrip.cs
- WindowPattern.cs
- XPathDocumentBuilder.cs
- RadialGradientBrush.cs
- BamlResourceContent.cs
- ValidationPropertyAttribute.cs
- SequenceDesigner.cs
- HScrollBar.cs
- sitestring.cs
- WeakHashtable.cs
- _KerberosClient.cs
- Missing.cs
- DateBoldEvent.cs
- Window.cs
- DataGridViewColumnCollection.cs
- UnsafeNativeMethods.cs
- cache.cs
- RegexRunner.cs
- ManagementEventWatcher.cs
- PagedDataSource.cs
- WpfMemberInvoker.cs
- EventLogger.cs
- PartitionResolver.cs
- XamlInterfaces.cs
- TextOnlyOutput.cs
- AdvancedBindingPropertyDescriptor.cs
- BuildDependencySet.cs
- IdentityValidationException.cs
- MimeWriter.cs
- DataGridViewImageColumn.cs
- ACE.cs
- PreloadHost.cs
- ElementHostAutomationPeer.cs
- Int32RectValueSerializer.cs
- XsltArgumentList.cs
- ProcessHost.cs
- XmlLoader.cs
- ButtonBaseAdapter.cs
- BitStack.cs
- DigitShape.cs
- GridView.cs
- ImageFormat.cs
- XDeferredAxisSource.cs
- InvalidWMPVersionException.cs
- XsltContext.cs
- SqlClientPermission.cs
- ResolveRequestResponseAsyncResult.cs
- shaperfactoryquerycachekey.cs
- PhysicalFontFamily.cs
- CreateCardRequest.cs