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
- DesignerLoader.cs
- IPAddress.cs
- CustomAttribute.cs
- InvalidContentTypeException.cs
- PermissionRequestEvidence.cs
- Stackframe.cs
- ActionFrame.cs
- BufferedStream.cs
- UrlAuthorizationModule.cs
- DataGridViewTopLeftHeaderCell.cs
- SHA256.cs
- Currency.cs
- DataReceivedEventArgs.cs
- CodeGen.cs
- SqlAggregateChecker.cs
- ExpressionNormalizer.cs
- ClientUriBehavior.cs
- ProxyManager.cs
- Button.cs
- RayHitTestParameters.cs
- DataList.cs
- SqlClientMetaDataCollectionNames.cs
- DataObjectSettingDataEventArgs.cs
- TrackPoint.cs
- StringFunctions.cs
- PrimaryKeyTypeConverter.cs
- BaseProcessProtocolHandler.cs
- Sentence.cs
- GPRECTF.cs
- ArgumentException.cs
- SqlDataSourceCustomCommandEditor.cs
- TextSelectionHighlightLayer.cs
- PersonalizationDictionary.cs
- OverlappedAsyncResult.cs
- _SpnDictionary.cs
- TraceContext.cs
- AngleUtil.cs
- ConditionBrowserDialog.cs
- SynchronousSendBindingElement.cs
- Flowchart.cs
- ObjectDataSourceFilteringEventArgs.cs
- Viewport2DVisual3D.cs
- DiscardableAttribute.cs
- DataGridViewCellLinkedList.cs
- DatatypeImplementation.cs
- XsdDuration.cs
- DataGridViewAutoSizeModeEventArgs.cs
- MulticastIPAddressInformationCollection.cs
- TlsnegoTokenProvider.cs
- SafeCloseHandleCritical.cs
- DefaultAuthorizationContext.cs
- CallContext.cs
- GeneratedCodeAttribute.cs
- UniqueIdentifierService.cs
- ContentFileHelper.cs
- DoubleLinkListEnumerator.cs
- CalendarDateRangeChangingEventArgs.cs
- NetworkStream.cs
- RemotingException.cs
- AxisAngleRotation3D.cs
- Globals.cs
- CompressEmulationStream.cs
- FileDataSourceCache.cs
- DataGridViewCellCancelEventArgs.cs
- PeerUnsafeNativeMethods.cs
- ComPlusServiceLoader.cs
- WinEventTracker.cs
- SeekableReadStream.cs
- SystemException.cs
- XamlStream.cs
- PointCollection.cs
- SmtpReplyReaderFactory.cs
- HostSecurityManager.cs
- Evaluator.cs
- WindowsScroll.cs
- XmlFormatMapping.cs
- CustomBindingCollectionElement.cs
- ObjectParameterCollection.cs
- TextChangedEventArgs.cs
- SystemMulticastIPAddressInformation.cs
- WebConfigurationHostFileChange.cs
- AsyncSerializedWorker.cs
- SignatureDescription.cs
- FileClassifier.cs
- CompressEmulationStream.cs
- StreamGeometry.cs
- Utils.cs
- _LocalDataStore.cs
- GenericTypeParameterBuilder.cs
- TextRangeAdaptor.cs
- OutputCacheProfile.cs
- AutomationPropertyInfo.cs
- NumberSubstitution.cs
- XslAst.cs
- Maps.cs
- XmlTextWriter.cs
- Header.cs
- IIS7UserPrincipal.cs
- HierarchicalDataSourceIDConverter.cs
- Message.cs