Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Security / Cryptography / HMACSHA512.cs / 5 / 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
- CompositionCommandSet.cs
- CellLabel.cs
- Translator.cs
- CodeConstructor.cs
- DataGridViewRowCancelEventArgs.cs
- AttachedPropertyMethodSelector.cs
- ChannelCredentials.cs
- CodeFieldReferenceExpression.cs
- OutputCacheProfileCollection.cs
- AnnotationService.cs
- DeferredElementTreeState.cs
- Events.cs
- SynchronizationLockException.cs
- COM2ExtendedBrowsingHandler.cs
- _RequestCacheProtocol.cs
- ControlPaint.cs
- ViewPort3D.cs
- Matrix.cs
- DataObject.cs
- AvtEvent.cs
- XmlDocument.cs
- XamlToRtfParser.cs
- DataGridViewHitTestInfo.cs
- Input.cs
- PreservationFileReader.cs
- UserControl.cs
- WebHttpBehavior.cs
- recordstatescratchpad.cs
- GridPattern.cs
- Receive.cs
- AliasedSlot.cs
- CheckoutException.cs
- TraceSwitch.cs
- DataServiceConfiguration.cs
- QueryAsyncResult.cs
- SubqueryRules.cs
- GB18030Encoding.cs
- Fault.cs
- BorderGapMaskConverter.cs
- Preprocessor.cs
- TypeHelpers.cs
- MailDefinition.cs
- GiveFeedbackEvent.cs
- Cursor.cs
- DataGridItemCollection.cs
- Msec.cs
- SystemInformation.cs
- PolyLineSegmentFigureLogic.cs
- TreeChangeInfo.cs
- SqlUdtInfo.cs
- DateTimeOffsetStorage.cs
- SerializationHelper.cs
- AssociationTypeEmitter.cs
- TransactionScopeDesigner.cs
- Journaling.cs
- HttpServerVarsCollection.cs
- parserscommon.cs
- DataGridViewElement.cs
- EditCommandColumn.cs
- BitSet.cs
- FilterFactory.cs
- BatchStream.cs
- DataKeyCollection.cs
- ManualWorkflowSchedulerService.cs
- ResourceReferenceExpression.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- SQLDouble.cs
- DataRowExtensions.cs
- DbgCompiler.cs
- XPathDocument.cs
- StylusTip.cs
- ExtensionFile.cs
- XmlUnspecifiedAttribute.cs
- NumberFormatInfo.cs
- WindowsIPAddress.cs
- WindowInteropHelper.cs
- DBCSCodePageEncoding.cs
- TextSelectionHelper.cs
- CorrelationTokenTypeConvertor.cs
- LinkedList.cs
- BaseTemplateParser.cs
- EnumBuilder.cs
- VerticalAlignConverter.cs
- EventlogProvider.cs
- ConfigXmlAttribute.cs
- ForwardPositionQuery.cs
- ConstantExpression.cs
- GeneralTransform.cs
- ReflectEventDescriptor.cs
- EventDescriptor.cs
- PageThemeCodeDomTreeGenerator.cs
- TypeConverterHelper.cs
- TimeoutValidationAttribute.cs
- SID.cs
- BevelBitmapEffect.cs
- COM2EnumConverter.cs
- SqlRecordBuffer.cs
- TextDecorationLocationValidation.cs
- shaper.cs
- FrameSecurityDescriptor.cs