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
- NullableLongSumAggregationOperator.cs
- AssemblyBuilder.cs
- VideoDrawing.cs
- PageContentAsyncResult.cs
- XmlSchemaInfo.cs
- SQLInt16Storage.cs
- AssemblyResourceLoader.cs
- CalloutQueueItem.cs
- ShapingEngine.cs
- MethodSignatureGenerator.cs
- TextElementCollection.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- BroadcastEventHelper.cs
- DomainUpDown.cs
- TypeBinaryExpression.cs
- RichTextBoxAutomationPeer.cs
- LoopExpression.cs
- SafePEFileHandle.cs
- handlecollector.cs
- ConfigXmlCDataSection.cs
- KeyNotFoundException.cs
- ADMembershipProvider.cs
- TrustLevel.cs
- TextRunCache.cs
- ContractValidationHelper.cs
- RichTextBox.cs
- IndicFontClient.cs
- SourceInterpreter.cs
- StyleSelector.cs
- RadialGradientBrush.cs
- GenerateTemporaryTargetAssembly.cs
- OdbcDataAdapter.cs
- TaskResultSetter.cs
- ExtensibleClassFactory.cs
- GreenMethods.cs
- ProtocolViolationException.cs
- InstanceView.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- HtmlUtf8RawTextWriter.cs
- CodeGenerator.cs
- StreamWriter.cs
- TableLayoutStyle.cs
- HttpGetClientProtocol.cs
- SiteMapProvider.cs
- BrowserCapabilitiesCompiler.cs
- PeerInvitationResponse.cs
- MeasureData.cs
- ThreadExceptionEvent.cs
- SelectionProcessor.cs
- RewritingSimplifier.cs
- BypassElementCollection.cs
- QuadraticBezierSegment.cs
- TypeDescriptionProvider.cs
- DbProviderFactory.cs
- RestClientProxyHandler.cs
- SystemTcpStatistics.cs
- _HeaderInfo.cs
- SafeArrayRankMismatchException.cs
- RangeValueProviderWrapper.cs
- ScriptManagerProxy.cs
- HtmlInputCheckBox.cs
- JournalNavigationScope.cs
- DataContractAttribute.cs
- FieldInfo.cs
- IgnoreSection.cs
- InputElement.cs
- Attributes.cs
- LexicalChunk.cs
- InputMethodStateTypeInfo.cs
- Line.cs
- Deflater.cs
- ActivityBindForm.Designer.cs
- HtmlControlPersistable.cs
- ComboBoxRenderer.cs
- StringTraceRecord.cs
- HotSpot.cs
- SafeCertificateContext.cs
- Matrix.cs
- StateBag.cs
- Hash.cs
- QilParameter.cs
- LockRecoveryTask.cs
- Model3D.cs
- PerformanceCounterLib.cs
- DataGridItemAutomationPeer.cs
- AutomationPatternInfo.cs
- SamlAuthenticationClaimResource.cs
- RequestCacheEntry.cs
- SetUserLanguageRequest.cs
- TiffBitmapDecoder.cs
- XmlWrappingWriter.cs
- CmsInterop.cs
- ConstructorBuilder.cs
- SessionStateContainer.cs
- ObjectQueryState.cs
- RuntimeHandles.cs
- _NestedSingleAsyncResult.cs
- ImageConverter.cs
- XPathSingletonIterator.cs
- RandomNumberGenerator.cs