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
- ConnectionInterfaceCollection.cs
- HashFinalRequest.cs
- WebPartConnectionsCloseVerb.cs
- DataGridViewImageCell.cs
- SqlError.cs
- SupportsEventValidationAttribute.cs
- TextEditorTyping.cs
- BevelBitmapEffect.cs
- GridViewRowPresenterBase.cs
- PasswordBoxAutomationPeer.cs
- TreeWalkHelper.cs
- DataSourceHelper.cs
- ValidationSummary.cs
- BufferBuilder.cs
- ReaderWriterLock.cs
- Span.cs
- DesignerCategoryAttribute.cs
- RuntimeResourceSet.cs
- SQLGuid.cs
- Mapping.cs
- BinaryExpression.cs
- AxHostDesigner.cs
- UnsafeNativeMethodsPenimc.cs
- CardSpaceSelector.cs
- MatrixAnimationBase.cs
- ForwardPositionQuery.cs
- ArgumentsParser.cs
- CriticalExceptions.cs
- Mappings.cs
- DbSetClause.cs
- IdentityValidationException.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- DataColumnMappingCollection.cs
- _SslSessionsCache.cs
- DataGridParentRows.cs
- BitmapEffectGroup.cs
- PointCollection.cs
- SemanticResolver.cs
- SiteIdentityPermission.cs
- Msec.cs
- SelectionProviderWrapper.cs
- DrawingGroup.cs
- AppDomainInfo.cs
- MailBnfHelper.cs
- WebEncodingValidator.cs
- PrintEvent.cs
- _UncName.cs
- SplitterPanel.cs
- XmlDataSourceDesigner.cs
- DocumentSchemaValidator.cs
- PinnedBufferMemoryStream.cs
- ServicePointManager.cs
- BooleanAnimationUsingKeyFrames.cs
- ToolboxBitmapAttribute.cs
- UnknownWrapper.cs
- VirtualizingPanel.cs
- TableStyle.cs
- OdbcParameterCollection.cs
- SchemaMapping.cs
- OdbcDataAdapter.cs
- CodeGotoStatement.cs
- TabItem.cs
- ImageClickEventArgs.cs
- XmlExceptionHelper.cs
- CssClassPropertyAttribute.cs
- TextSerializer.cs
- ButtonFieldBase.cs
- FixedDocument.cs
- SystemNetworkInterface.cs
- RequestCachePolicy.cs
- HTMLTagNameToTypeMapper.cs
- DesigntimeLicenseContextSerializer.cs
- Directory.cs
- ResourceSet.cs
- DataGridViewButtonCell.cs
- XmlName.cs
- DataViewManager.cs
- DynamicContractTypeBuilder.cs
- SamlAttributeStatement.cs
- RelationshipDetailsCollection.cs
- StreamSecurityUpgradeProvider.cs
- ApplyImportsAction.cs
- QilTernary.cs
- NativeWindow.cs
- SimpleApplicationHost.cs
- TextDecorationLocationValidation.cs
- JoinGraph.cs
- EdmTypeAttribute.cs
- QueueNameHelper.cs
- WindowsStatic.cs
- AddInController.cs
- XmlTextReaderImpl.cs
- ReadOnlyCollection.cs
- CircleHotSpot.cs
- FormatVersion.cs
- SpellerHighlightLayer.cs
- XmlMembersMapping.cs
- SettingsAttributes.cs
- ProcessRequestArgs.cs
- SelectorItemAutomationPeer.cs