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
- WebBaseEventKeyComparer.cs
- IncrementalHitTester.cs
- FlowDocumentPageViewerAutomationPeer.cs
- SchemaTableColumn.cs
- ClassHandlersStore.cs
- ListBoxAutomationPeer.cs
- HitTestDrawingContextWalker.cs
- Storyboard.cs
- ProcessHostServerConfig.cs
- ValueProviderWrapper.cs
- documentsequencetextcontainer.cs
- X509ChainElement.cs
- InvalidAsynchronousStateException.cs
- XmlSchemaAnnotation.cs
- ToolStripItemRenderEventArgs.cs
- CodeArrayCreateExpression.cs
- DispatcherExceptionEventArgs.cs
- WorkflowWebService.cs
- CompatibleIComparer.cs
- SecurityContext.cs
- TextSegment.cs
- TextDecoration.cs
- DiscoveryServiceExtension.cs
- MarshalDirectiveException.cs
- IisTraceListener.cs
- ViewManager.cs
- Label.cs
- Vector3DValueSerializer.cs
- CompilerError.cs
- EncodingNLS.cs
- WhiteSpaceTrimStringConverter.cs
- OleDbEnumerator.cs
- PropertyTabAttribute.cs
- Rule.cs
- WebPartRestoreVerb.cs
- SlotInfo.cs
- InternalPolicyElement.cs
- ToolTipAutomationPeer.cs
- CapabilitiesAssignment.cs
- RoleBoolean.cs
- Range.cs
- XmlSchemaAttribute.cs
- XmlNode.cs
- IisNotInstalledException.cs
- ControlParameter.cs
- XhtmlBasicObjectListAdapter.cs
- RunWorkerCompletedEventArgs.cs
- WindowsAltTab.cs
- ElementsClipboardData.cs
- odbcmetadatacolumnnames.cs
- NumberFormatter.cs
- MonitoringDescriptionAttribute.cs
- ListenUriMode.cs
- OptimalTextSource.cs
- EndGetFileNameFromUserRequest.cs
- WebPartAuthorizationEventArgs.cs
- QilLoop.cs
- EncryptedXml.cs
- XhtmlTextWriter.cs
- XmlSchemaComplexContentRestriction.cs
- CryptoConfig.cs
- ChangePassword.cs
- TextRunTypographyProperties.cs
- RSAOAEPKeyExchangeDeformatter.cs
- Error.cs
- ColumnCollectionEditor.cs
- MissingMemberException.cs
- Crc32.cs
- ThreadStaticAttribute.cs
- Substitution.cs
- MediaSystem.cs
- VBIdentifierNameEditor.cs
- LoginNameDesigner.cs
- FontInfo.cs
- ApplicationBuildProvider.cs
- PreviewPrintController.cs
- SafeRightsManagementPubHandle.cs
- BaseUriHelper.cs
- FixedHighlight.cs
- FacetValues.cs
- EmptyCollection.cs
- QueryContinueDragEvent.cs
- ImageMapEventArgs.cs
- IISMapPath.cs
- ButtonFieldBase.cs
- FileDialog.cs
- CLSCompliantAttribute.cs
- SeparatorAutomationPeer.cs
- Parameter.cs
- PerspectiveCamera.cs
- DeferredRunTextReference.cs
- TextBoxAutoCompleteSourceConverter.cs
- FormsAuthenticationConfiguration.cs
- WebBrowserUriTypeConverter.cs
- M3DUtil.cs
- GB18030Encoding.cs
- BidPrivateBase.cs
- EventTrigger.cs
- HMAC.cs
- MimeMapping.cs