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
- GetPageNumberCompletedEventArgs.cs
- _CookieModule.cs
- WebPartsPersonalizationAuthorization.cs
- SR.cs
- DefaultWorkflowTransactionService.cs
- FlowNode.cs
- DtdParser.cs
- TextLine.cs
- InvalidOperationException.cs
- remotingproxy.cs
- StylusPointPropertyInfo.cs
- EventSinkHelperWriter.cs
- AutoCompleteStringCollection.cs
- EntityProviderFactory.cs
- TreeNodeStyle.cs
- UInt64Converter.cs
- TransformCryptoHandle.cs
- KeyedHashAlgorithm.cs
- ECDiffieHellman.cs
- DataServices.cs
- TableAutomationPeer.cs
- ThumbAutomationPeer.cs
- SkipQueryOptionExpression.cs
- MachineSettingsSection.cs
- FilterEventArgs.cs
- SearchExpression.cs
- PageThemeParser.cs
- RecordsAffectedEventArgs.cs
- ExpressionLexer.cs
- _ProxyRegBlob.cs
- DataGridColumnHeadersPresenterAutomationPeer.cs
- NodeLabelEditEvent.cs
- DataServiceRequest.cs
- NamedPipeActivation.cs
- Composition.cs
- FilterException.cs
- XmlNodeWriter.cs
- XsdDuration.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- InvalidCastException.cs
- Win32Native.cs
- MouseGestureConverter.cs
- PageContentAsyncResult.cs
- DiagnosticsConfiguration.cs
- SamlSerializer.cs
- SafeTimerHandle.cs
- GenericTextProperties.cs
- AppDomainManager.cs
- UInt64.cs
- InfoCardTrace.cs
- RpcCryptoContext.cs
- DiffuseMaterial.cs
- TemplateAction.cs
- ColumnHeaderConverter.cs
- TextMessageEncoder.cs
- VectorAnimationBase.cs
- SmiGettersStream.cs
- AccessDataSourceView.cs
- ThaiBuddhistCalendar.cs
- RenderCapability.cs
- Int32KeyFrameCollection.cs
- StylusPointDescription.cs
- Vector.cs
- WebServiceData.cs
- NativeObjectSecurity.cs
- GifBitmapDecoder.cs
- ThicknessConverter.cs
- translator.cs
- UrlAuthFailureHandler.cs
- Attributes.cs
- AnimationException.cs
- UnitControl.cs
- HierarchicalDataTemplate.cs
- CollectionConverter.cs
- DocComment.cs
- UnsafeNativeMethodsPenimc.cs
- MailDefinition.cs
- MultiAsyncResult.cs
- HttpPostProtocolReflector.cs
- BackgroundFormatInfo.cs
- WebHeaderCollection.cs
- ObjectConverter.cs
- MetadataExchangeBindings.cs
- BinaryCommonClasses.cs
- TableLayoutPanelBehavior.cs
- PeerInvitationResponse.cs
- FileSystemWatcher.cs
- OptimalBreakSession.cs
- TcpTransportBindingElement.cs
- CalendarDay.cs
- ClaimComparer.cs
- GifBitmapEncoder.cs
- UnicodeEncoding.cs
- ChtmlTextBoxAdapter.cs
- WorkerProcess.cs
- MemoryStream.cs
- CodeDelegateCreateExpression.cs
- RelationshipConverter.cs
- StyleTypedPropertyAttribute.cs
- ExpressionEditorAttribute.cs