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
- HwndPanningFeedback.cs
- LayoutTable.cs
- PropertyEmitter.cs
- EditingCommands.cs
- FlowDocumentPaginator.cs
- CreatingCookieEventArgs.cs
- BaseDataBoundControl.cs
- UTF32Encoding.cs
- XmlSchemaSimpleContentExtension.cs
- ScriptingRoleServiceSection.cs
- XmlSchemaAnnotated.cs
- HtmlElementCollection.cs
- RowToParametersTransformer.cs
- XmlValueConverter.cs
- SafeNativeMethods.cs
- assemblycache.cs
- UpdatePanelTrigger.cs
- ModifierKeysValueSerializer.cs
- XmlBinaryReader.cs
- IPCCacheManager.cs
- CodeGotoStatement.cs
- ElementAction.cs
- FloatSumAggregationOperator.cs
- WebPartMinimizeVerb.cs
- AppLevelCompilationSectionCache.cs
- FilterableAttribute.cs
- Menu.cs
- ZipIOLocalFileBlock.cs
- StringConcat.cs
- ProcessProtocolHandler.cs
- SystemMulticastIPAddressInformation.cs
- TreeViewItemAutomationPeer.cs
- ReferentialConstraint.cs
- TabControl.cs
- StateBag.cs
- Dispatcher.cs
- HandlerBase.cs
- StylusPointDescription.cs
- PartialCachingAttribute.cs
- NameTable.cs
- SqlErrorCollection.cs
- ThreadAbortException.cs
- DesignerVerbCollection.cs
- mediaeventshelper.cs
- SqlExpressionNullability.cs
- MdiWindowListItemConverter.cs
- BaseCodeDomTreeGenerator.cs
- OpenFileDialog.cs
- SqlVisitor.cs
- ResourcePermissionBaseEntry.cs
- HwndProxyElementProvider.cs
- OleDbCommandBuilder.cs
- _Events.cs
- RenameRuleObjectDialog.cs
- DateTimeOffsetConverter.cs
- TableAutomationPeer.cs
- PriorityItem.cs
- NavigationWindowAutomationPeer.cs
- GridViewDeleteEventArgs.cs
- X509Certificate.cs
- SqlGenericUtil.cs
- QueryAccessibilityHelpEvent.cs
- wgx_commands.cs
- BasicCommandTreeVisitor.cs
- FontSource.cs
- ResourceExpressionBuilder.cs
- MenuRendererClassic.cs
- ListViewUpdateEventArgs.cs
- TraceListeners.cs
- MetricEntry.cs
- PeerToPeerException.cs
- ClipboardProcessor.cs
- WebPartsPersonalizationAuthorization.cs
- ColumnClickEvent.cs
- IgnoreSectionHandler.cs
- TraceSwitch.cs
- AffineTransform3D.cs
- StatusBarPanelClickEvent.cs
- TemplateBindingExpression.cs
- XamlReaderConstants.cs
- InkCanvasSelectionAdorner.cs
- DocumentSequenceHighlightLayer.cs
- ThicknessAnimation.cs
- DSASignatureFormatter.cs
- SafeMILHandle.cs
- TableRow.cs
- CodeExpressionRuleDeclaration.cs
- ImageClickEventArgs.cs
- ItemCheckedEvent.cs
- DataGridGeneralPage.cs
- Pair.cs
- _UriSyntax.cs
- ProxyWebPartManagerDesigner.cs
- UnhandledExceptionEventArgs.cs
- ConnectionPoolManager.cs
- WorkflowTransactionService.cs
- CodeAttributeArgument.cs
- SafeNativeMethods.cs
- XmlnsCache.cs
- AsyncContentLoadedEventArgs.cs