Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- OdbcEnvironment.cs
- LinqToSqlWrapper.cs
- ContentType.cs
- RecognitionResult.cs
- PartialCachingAttribute.cs
- SHA512CryptoServiceProvider.cs
- ListViewDataItem.cs
- ShadowGlyph.cs
- XPathCompileException.cs
- RegexEditorDialog.cs
- ModelToObjectValueConverter.cs
- SqlBuilder.cs
- DatatypeImplementation.cs
- XmlNodeWriter.cs
- MappingModelBuildProvider.cs
- RequestNavigateEventArgs.cs
- SpellerInterop.cs
- _CommandStream.cs
- SerializationEventsCache.cs
- InternalCache.cs
- FreezableCollection.cs
- CompilerTypeWithParams.cs
- TextServicesProperty.cs
- ListControlStringCollectionEditor.cs
- XPathParser.cs
- ProfilePropertyMetadata.cs
- XPathAncestorIterator.cs
- ControlEvent.cs
- KeyValuePair.cs
- BinarySerializer.cs
- ToolStripOverflow.cs
- UnaryNode.cs
- SystemDiagnosticsSection.cs
- serverconfig.cs
- WorkflowQueueInfo.cs
- RawStylusInputReport.cs
- Point3DValueSerializer.cs
- DXD.cs
- XmlILOptimizerVisitor.cs
- RelationshipWrapper.cs
- DrawingCollection.cs
- DataServiceHostFactory.cs
- XmlSchemaIdentityConstraint.cs
- XslVisitor.cs
- X509RecipientCertificateServiceElement.cs
- BuildProviderCollection.cs
- HttpPostProtocolReflector.cs
- RadioButton.cs
- RadioButtonList.cs
- SynchronizedPool.cs
- ComplexLine.cs
- querybuilder.cs
- DeviceContext.cs
- ReferenceSchema.cs
- DiscoveryDocumentSerializer.cs
- TextRunCacheImp.cs
- DataViewManagerListItemTypeDescriptor.cs
- Rotation3DAnimationBase.cs
- ErrorHandler.cs
- ToolStripSettings.cs
- CodeMemberEvent.cs
- ParallelDesigner.xaml.cs
- ObjectDataSourceStatusEventArgs.cs
- StrokeCollectionConverter.cs
- ImageSource.cs
- CodeAttributeArgument.cs
- ResourceWriter.cs
- MasterPageCodeDomTreeGenerator.cs
- HtmlButton.cs
- InboundActivityHelper.cs
- Int64.cs
- OpenTypeLayoutCache.cs
- XPathPatternParser.cs
- FrameworkObject.cs
- CodeGen.cs
- Operators.cs
- LinqTreeNodeEvaluator.cs
- AdjustableArrowCap.cs
- SizeConverter.cs
- XmlSerializerVersionAttribute.cs
- WebSysDescriptionAttribute.cs
- SerializableAttribute.cs
- Trace.cs
- StreamSecurityUpgradeAcceptorBase.cs
- FontDialog.cs
- FontFamilyValueSerializer.cs
- TypeExtensionConverter.cs
- TextBoxAutomationPeer.cs
- StringReader.cs
- ServiceOperationParameter.cs
- Size.cs
- TypeInitializationException.cs
- BitmapEffectDrawing.cs
- SmtpFailedRecipientException.cs
- AuthStoreRoleProvider.cs
- ScriptModule.cs
- SvcMapFileLoader.cs
- ArraySegment.cs
- XmlReflectionMember.cs
- CodeMethodReturnStatement.cs