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
- IImplicitResourceProvider.cs
- PagedDataSource.cs
- PreloadHost.cs
- IncrementalCompileAnalyzer.cs
- CfgParser.cs
- PrintPreviewGraphics.cs
- reliableinputsessionchannel.cs
- ConstrainedDataObject.cs
- _ListenerResponseStream.cs
- nulltextcontainer.cs
- PostBackTrigger.cs
- DataGridDetailsPresenter.cs
- HtmlInputButton.cs
- ApplicationInfo.cs
- Wizard.cs
- App.cs
- RelationshipDetailsCollection.cs
- EdmProviderManifest.cs
- CommonXSendMessage.cs
- SqlFlattener.cs
- Sql8ExpressionRewriter.cs
- SchemaNames.cs
- CssClassPropertyAttribute.cs
- BezierSegment.cs
- FaultFormatter.cs
- CharAnimationBase.cs
- TabOrder.cs
- DataServiceConfiguration.cs
- WebHttpBinding.cs
- LineUtil.cs
- CatalogPartCollection.cs
- AutomationAttributeInfo.cs
- CloseCryptoHandleRequest.cs
- EntityContainerEntitySetDefiningQuery.cs
- ClipboardProcessor.cs
- LookupNode.cs
- HttpFileCollection.cs
- GroupJoinQueryOperator.cs
- ErrorTableItemStyle.cs
- RuleDefinitions.cs
- GreaterThanOrEqual.cs
- LocalizableAttribute.cs
- GeneralTransform3DTo2D.cs
- StoreItemCollection.Loader.cs
- CultureInfoConverter.cs
- PartialClassGenerationTask.cs
- TextParagraph.cs
- TextViewBase.cs
- XmlILOptimizerVisitor.cs
- ContractValidationHelper.cs
- SkewTransform.cs
- DataGridViewTopLeftHeaderCell.cs
- EventWaitHandleSecurity.cs
- FileEnumerator.cs
- TreeNodeBinding.cs
- Ops.cs
- MaskedTextBox.cs
- WebExceptionStatus.cs
- XPathArrayIterator.cs
- SByte.cs
- ApplicationHost.cs
- TextTreeUndoUnit.cs
- SafeCryptoHandles.cs
- XmlNodeReader.cs
- GridViewRowCollection.cs
- ConnectionPoolManager.cs
- EmbeddedObject.cs
- BinaryCommonClasses.cs
- XamlDesignerSerializationManager.cs
- TagPrefixAttribute.cs
- LoginDesignerUtil.cs
- TypeConverterHelper.cs
- ApplicationProxyInternal.cs
- PrimitiveCodeDomSerializer.cs
- HashSet.cs
- Point4D.cs
- NextPreviousPagerField.cs
- CacheMemory.cs
- ExpressionPrefixAttribute.cs
- WebReferencesBuildProvider.cs
- FileDetails.cs
- InvalidOperationException.cs
- CommandTreeTypeHelper.cs
- StateManagedCollection.cs
- ListSourceHelper.cs
- FamilyTypefaceCollection.cs
- DataGridItemEventArgs.cs
- diagnosticsswitches.cs
- SymLanguageVendor.cs
- SinglePageViewer.cs
- NumberAction.cs
- RangeBase.cs
- FixUpCollection.cs
- Util.cs
- AssemblyContextControlItem.cs
- webeventbuffer.cs
- OleDbParameterCollection.cs
- NotifyInputEventArgs.cs
- XmlC14NWriter.cs
- HiddenField.cs