Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / HMACSHA512.cs / 1305376 / 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)) {} [System.Security.SecuritySafeCritical] // auto-generated public HMACSHA512 (byte[] key) { 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. /// 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)) {} [System.Security.SecuritySafeCritical] // auto-generated public HMACSHA512 (byte[] key) { 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. /// 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
- WebPartEventArgs.cs
- TextSerializer.cs
- IndexedString.cs
- HyperLinkColumn.cs
- RefExpr.cs
- _DynamicWinsockMethods.cs
- _ListenerAsyncResult.cs
- Delegate.cs
- WCFModelStrings.Designer.cs
- VarInfo.cs
- Documentation.cs
- PolicyValidator.cs
- RawStylusInputCustomDataList.cs
- CounterCreationDataCollection.cs
- DateTime.cs
- ComboBoxRenderer.cs
- SettingsAttributeDictionary.cs
- ListBox.cs
- DataTableCollection.cs
- EntityReference.cs
- WindowProviderWrapper.cs
- SerializationAttributes.cs
- DirectoryObjectSecurity.cs
- LogReserveAndAppendState.cs
- RuntimeWrappedException.cs
- FixedNode.cs
- MatrixTransform3D.cs
- GenericAuthenticationEventArgs.cs
- Drawing.cs
- MatrixStack.cs
- Boolean.cs
- DateTimeValueSerializerContext.cs
- QuaternionAnimationUsingKeyFrames.cs
- CodeStatement.cs
- RootBuilder.cs
- TextServicesLoader.cs
- ExpandableObjectConverter.cs
- SubMenuStyleCollectionEditor.cs
- RangeValuePattern.cs
- SR.cs
- StandardToolWindows.cs
- ReferencedAssemblyResolver.cs
- TimeManager.cs
- ToolBar.cs
- Preprocessor.cs
- SettingsPropertyValue.cs
- JoinSymbol.cs
- User.cs
- Vars.cs
- PerformanceCounterPermission.cs
- NullExtension.cs
- SymDocumentType.cs
- TraversalRequest.cs
- NamespaceExpr.cs
- TemplateXamlParser.cs
- GroupBoxRenderer.cs
- XamlToRtfParser.cs
- ZipIOExtraField.cs
- ImmutablePropertyDescriptorGridEntry.cs
- XLinq.cs
- WindowsToolbarAsMenu.cs
- DataGridViewEditingControlShowingEventArgs.cs
- LinqDataSourceHelper.cs
- WebPartManagerInternals.cs
- AspNetPartialTrustHelpers.cs
- XmlIlGenerator.cs
- PolyLineSegmentFigureLogic.cs
- AsymmetricCryptoHandle.cs
- StylusShape.cs
- SecondaryIndexList.cs
- InputLangChangeEvent.cs
- NamedPipeDuplicateContext.cs
- CodeTypeReferenceSerializer.cs
- TypeBrowser.xaml.cs
- WindowsEditBox.cs
- InkCanvasInnerCanvas.cs
- DataMemberListEditor.cs
- SplineQuaternionKeyFrame.cs
- BamlRecordWriter.cs
- DataGridTableStyleMappingNameEditor.cs
- StylusCaptureWithinProperty.cs
- MenuItemCollection.cs
- DependencyPropertyKind.cs
- ConditionalWeakTable.cs
- safesecurityhelperavalon.cs
- DecimalConstantAttribute.cs
- PropertyGroupDescription.cs
- Console.cs
- PanelStyle.cs
- IncrementalReadDecoders.cs
- SqlFormatter.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- MediaContext.cs
- CodeDefaultValueExpression.cs
- OpCodes.cs
- Transactions.cs
- TextInfo.cs
- SatelliteContractVersionAttribute.cs
- Pair.cs
- GridViewUpdatedEventArgs.cs