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
- SelectiveScrollingGrid.cs
- CollectionViewProxy.cs
- ScriptMethodAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- FixedBufferAttribute.cs
- Exception.cs
- MemoryFailPoint.cs
- EntityContainer.cs
- RegionIterator.cs
- ClassHandlersStore.cs
- assertwrapper.cs
- itemelement.cs
- ClassHandlersStore.cs
- TypeUtil.cs
- MSG.cs
- GPPOINTF.cs
- EndEvent.cs
- handlecollector.cs
- GradientStop.cs
- TableHeaderCell.cs
- XmlNamespaceMapping.cs
- BindableTemplateBuilder.cs
- EpmContentDeSerializer.cs
- PreviewPageInfo.cs
- EntryIndex.cs
- TileBrush.cs
- IndentedWriter.cs
- AccessControlEntry.cs
- WmlPanelAdapter.cs
- TypeLibraryHelper.cs
- WebPartsSection.cs
- SqlInternalConnectionSmi.cs
- CopyOnWriteList.cs
- CryptoApi.cs
- CredentialCache.cs
- WebPartHelpVerb.cs
- ObjectDataSourceFilteringEventArgs.cs
- RoleProviderPrincipal.cs
- ManifestResourceInfo.cs
- SQLSingleStorage.cs
- ProcessRequestArgs.cs
- BamlResourceDeserializer.cs
- XPathItem.cs
- HttpCookie.cs
- GeneralTransform2DTo3D.cs
- _ShellExpression.cs
- ControlUtil.cs
- DataGridViewCellFormattingEventArgs.cs
- Helper.cs
- HttpCacheParams.cs
- ListMarkerSourceInfo.cs
- StringExpressionSet.cs
- SecurityElement.cs
- Signature.cs
- InfoCardSymmetricCrypto.cs
- HttpServerUtilityBase.cs
- ImportContext.cs
- FixedTextPointer.cs
- RealizationContext.cs
- EntityChangedParams.cs
- InputLangChangeEvent.cs
- XmlNullResolver.cs
- TimeoutHelper.cs
- EventWaitHandleSecurity.cs
- HitTestParameters3D.cs
- CharacterHit.cs
- DictionarySectionHandler.cs
- WindowsSysHeader.cs
- PartialCachingAttribute.cs
- EditorPartChrome.cs
- XmlDomTextWriter.cs
- HttpListenerPrefixCollection.cs
- UserPersonalizationStateInfo.cs
- CustomSignedXml.cs
- HttpWriter.cs
- XamlClipboardData.cs
- XmlComment.cs
- RawStylusInputCustomData.cs
- UIHelper.cs
- TextContainerChangeEventArgs.cs
- LabelLiteral.cs
- MultilineStringEditor.cs
- Group.cs
- _DisconnectOverlappedAsyncResult.cs
- GeometryValueSerializer.cs
- StrokeDescriptor.cs
- SmiRequestExecutor.cs
- GuidConverter.cs
- TextTreeInsertElementUndoUnit.cs
- MetadataItemSerializer.cs
- PostBackTrigger.cs
- MemoryMappedFileSecurity.cs
- XmlSchemaSearchPattern.cs
- OleDbReferenceCollection.cs
- QueryGeneratorBase.cs
- MatrixTransform.cs
- IgnoreFileBuildProvider.cs
- WebPartCatalogCloseVerb.cs
- UnsafeNativeMethods.cs
- XmlStreamStore.cs