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
- shaper.cs
- BoundsDrawingContextWalker.cs
- StoragePropertyMapping.cs
- HandleCollector.cs
- RestClientProxyHandler.cs
- ISessionStateStore.cs
- UIntPtr.cs
- HttpConfigurationContext.cs
- XmlCompatibilityReader.cs
- SubstitutionList.cs
- DelegateSerializationHolder.cs
- AutomationAttributeInfo.cs
- DbProviderServices.cs
- IncrementalReadDecoders.cs
- StylusPointPropertyId.cs
- InputLanguageCollection.cs
- DrawingVisualDrawingContext.cs
- TextEditorCharacters.cs
- Quaternion.cs
- HttpBindingExtension.cs
- SurrogateSelector.cs
- WindowsFormsHelpers.cs
- Region.cs
- CollectionContainer.cs
- SafeNativeMethodsCLR.cs
- WriterOutput.cs
- Int64Storage.cs
- SchemaNotation.cs
- DataBindingCollectionEditor.cs
- PersistChildrenAttribute.cs
- SpecularMaterial.cs
- CellParaClient.cs
- HuffmanTree.cs
- SystemDropShadowChrome.cs
- FacetEnabledSchemaElement.cs
- CurrentChangingEventManager.cs
- SByteStorage.cs
- DoubleAnimation.cs
- ImmutableObjectAttribute.cs
- BindingExpression.cs
- BuildManagerHost.cs
- Panel.cs
- XmlNamespaceDeclarationsAttribute.cs
- ServerValidateEventArgs.cs
- Stroke2.cs
- SplayTreeNode.cs
- CannotUnloadAppDomainException.cs
- isolationinterop.cs
- ExplicitDiscriminatorMap.cs
- ToolStripPanelCell.cs
- ContainerVisual.cs
- NumericUpDownAccelerationCollection.cs
- DeferrableContentConverter.cs
- EnumValidator.cs
- ValueType.cs
- ThreadStartException.cs
- DbDataAdapter.cs
- Query.cs
- DynamicDocumentPaginator.cs
- SourceSwitch.cs
- SdlChannelSink.cs
- NameValueConfigurationElement.cs
- XmlSerializerFormatAttribute.cs
- ConfigurationProperty.cs
- TypeAccessException.cs
- ListSourceHelper.cs
- LexicalChunk.cs
- CodeAttributeDeclaration.cs
- CFGGrammar.cs
- CrossSiteScriptingValidation.cs
- StrongNamePublicKeyBlob.cs
- BamlLocalizableResourceKey.cs
- HtmlShim.cs
- MimeBasePart.cs
- TextCompositionManager.cs
- BaseComponentEditor.cs
- AddInStore.cs
- ResourceProviderFactory.cs
- AsyncStreamReader.cs
- ByteConverter.cs
- BitmapMetadata.cs
- WSSecurityTokenSerializer.cs
- Misc.cs
- XmlSchemaComplexContent.cs
- KeyValueSerializer.cs
- Activator.cs
- EncodedStreamFactory.cs
- DataTableClearEvent.cs
- VectorAnimationBase.cs
- ExtensionFile.cs
- CounterSampleCalculator.cs
- HttpDebugHandler.cs
- ReadingWritingEntityEventArgs.cs
- WebPartMinimizeVerb.cs
- DateBoldEvent.cs
- CharAnimationBase.cs
- StackSpiller.cs
- BuildProvider.cs
- NumberSubstitution.cs
- DurableOperationContext.cs