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
- MasterPageCodeDomTreeGenerator.cs
- HttpProfileGroupBase.cs
- ExpressionBuilder.cs
- Symbol.cs
- PermissionRequestEvidence.cs
- HtmlTable.cs
- ConnectionPointGlyph.cs
- InplaceBitmapMetadataWriter.cs
- XmlSchemaSimpleType.cs
- MaterialGroup.cs
- SystemIPv4InterfaceProperties.cs
- List.cs
- remotingproxy.cs
- OneToOneMappingSerializer.cs
- FontDifferentiator.cs
- XPathAncestorQuery.cs
- WebEventTraceProvider.cs
- EntityModelSchemaGenerator.cs
- BaseParaClient.cs
- DataGridViewCellParsingEventArgs.cs
- SizeLimitedCache.cs
- FrameworkObject.cs
- ProviderUtil.cs
- InlinedAggregationOperator.cs
- And.cs
- Attributes.cs
- BinaryKeyIdentifierClause.cs
- XmlTextReaderImpl.cs
- ConfigXmlWhitespace.cs
- HtmlInputImage.cs
- TableRow.cs
- FixedElement.cs
- SqlBuffer.cs
- DataGridViewAdvancedBorderStyle.cs
- HashHelper.cs
- MasterPageParser.cs
- BroadcastEventHelper.cs
- ObjectAnimationUsingKeyFrames.cs
- GridSplitter.cs
- TextDecorationCollection.cs
- StandardBindingImporter.cs
- AssertUtility.cs
- RandomNumberGenerator.cs
- NumericUpDownAccelerationCollection.cs
- TypeReference.cs
- SurrogateSelector.cs
- XmlElementList.cs
- MessageQueuePermissionEntryCollection.cs
- SortedSetDebugView.cs
- TargetPerspective.cs
- SpeechEvent.cs
- DesignerActionUIService.cs
- DBAsyncResult.cs
- CorePropertiesFilter.cs
- DirectoryInfo.cs
- Stroke.cs
- ProfileEventArgs.cs
- Visitors.cs
- TemplatePagerField.cs
- BitmapCache.cs
- RunInstallerAttribute.cs
- ToolboxItemAttribute.cs
- XmlAnyElementAttributes.cs
- ProfileSection.cs
- DataGridHeaderBorder.cs
- FrameworkObject.cs
- EntityDescriptor.cs
- StructuralCache.cs
- ConfigurationManagerHelperFactory.cs
- SelectionChangedEventArgs.cs
- LabelAutomationPeer.cs
- OracleFactory.cs
- Simplifier.cs
- OleDbDataReader.cs
- AddDataControlFieldDialog.cs
- EventPrivateKey.cs
- PreloadedPackages.cs
- ScaleTransform3D.cs
- ReturnEventArgs.cs
- BatchWriter.cs
- Transform3DGroup.cs
- TextTreeTextBlock.cs
- FileDialog_Vista_Interop.cs
- sqlmetadatafactory.cs
- TableRowGroup.cs
- Column.cs
- ButtonPopupAdapter.cs
- TagPrefixInfo.cs
- FileAuthorizationModule.cs
- EncodingInfo.cs
- AbstractExpressions.cs
- DataGridViewComboBoxEditingControl.cs
- BinaryMessageEncodingBindingElement.cs
- SpellCheck.cs
- AuthenticationService.cs
- ChannelSinkStacks.cs
- SmtpException.cs
- DataRecordInternal.cs
- StandardCommandToolStripMenuItem.cs
- ControlPaint.cs