Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- PersonalizationAdministration.cs
- Row.cs
- DesignerActionMethodItem.cs
- ContentPathSegment.cs
- StringToken.cs
- CmsUtils.cs
- TableRowGroup.cs
- FileStream.cs
- ProjectionAnalyzer.cs
- ClientSettingsStore.cs
- MimeTypeMapper.cs
- FormsAuthenticationEventArgs.cs
- _SSPIWrapper.cs
- FlowDocumentPageViewerAutomationPeer.cs
- AnnouncementEndpoint.cs
- WebPartsPersonalizationAuthorization.cs
- DefaultPropertyAttribute.cs
- MouseButton.cs
- SubMenuStyle.cs
- BasicCommandTreeVisitor.cs
- WriterOutput.cs
- _NTAuthentication.cs
- SemanticResultValue.cs
- SqlBulkCopy.cs
- OrderPreservingPipeliningSpoolingTask.cs
- DetailsViewRowCollection.cs
- DataGridViewIntLinkedList.cs
- FormatVersion.cs
- ScrollBarAutomationPeer.cs
- LayoutTableCell.cs
- AuthenticateEventArgs.cs
- CroppedBitmap.cs
- WindowsFont.cs
- DoubleCollectionValueSerializer.cs
- ToolTip.cs
- EditorBrowsableAttribute.cs
- ClientApiGenerator.cs
- SerializationSectionGroup.cs
- ConsumerConnectionPoint.cs
- ObjectSet.cs
- WebPartExportVerb.cs
- InputReport.cs
- MSG.cs
- SchemaNotation.cs
- CustomAttribute.cs
- HttpCachePolicyWrapper.cs
- EdmRelationshipRoleAttribute.cs
- RegexGroup.cs
- LoginName.cs
- DataGridRowAutomationPeer.cs
- QuarticEase.cs
- OutputCacheEntry.cs
- Crc32.cs
- UnsafeCollabNativeMethods.cs
- XmlNotation.cs
- HttpFileCollection.cs
- CodeTypeReference.cs
- WebSysDisplayNameAttribute.cs
- RemoteArgument.cs
- SharedStatics.cs
- Automation.cs
- DocumentationServerProtocol.cs
- WebMessageEncodingBindingElement.cs
- RSAPKCS1KeyExchangeFormatter.cs
- RichTextBoxConstants.cs
- WebPartVerbsEventArgs.cs
- RawStylusActions.cs
- MetaTable.cs
- AssemblyAttributes.cs
- CompiledXpathExpr.cs
- Debugger.cs
- MailHeaderInfo.cs
- MarkupProperty.cs
- WizardStepBase.cs
- AbandonedMutexException.cs
- BoundConstants.cs
- AnimationClockResource.cs
- ConditionCollection.cs
- ProfilePropertySettings.cs
- EventProviderWriter.cs
- WinHttpWebProxyFinder.cs
- BoolExpressionVisitors.cs
- XPathExpr.cs
- WebHttpElement.cs
- InternalTypeHelper.cs
- CodeAccessPermission.cs
- TdsParser.cs
- XslException.cs
- PagerSettings.cs
- ButtonChrome.cs
- Facet.cs
- ReferenceAssemblyAttribute.cs
- EmptyEnumerator.cs
- SuppressMergeCheckAttribute.cs
- StickyNoteContentControl.cs
- CodeAttachEventStatement.cs
- FileChangesMonitor.cs
- validationstate.cs
- ObjectComplexPropertyMapping.cs
- Asn1Utilities.cs