Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Security / Cryptography / HMACSHA512.cs / 1305376 / 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)) {} [System.Security.SecuritySafeCritical] // auto-generated public HMACSHA512 (byte[] key) { 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. /// 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)) {} [System.Security.SecuritySafeCritical] // auto-generated public HMACSHA512 (byte[] key) { 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. /// 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
- TemplatePagerField.cs
- ObjectDataSource.cs
- Module.cs
- ThemeDirectoryCompiler.cs
- Enumerable.cs
- ConditionalAttribute.cs
- CheckBox.cs
- FigureHelper.cs
- GlobalizationAssembly.cs
- CryptoStream.cs
- OleDbMetaDataFactory.cs
- BuildProviderCollection.cs
- LinkLabelLinkClickedEvent.cs
- DecoderBestFitFallback.cs
- TemplateBindingExtensionConverter.cs
- SimpleBitVector32.cs
- ContractSearchPattern.cs
- XmlJsonReader.cs
- ClaimTypeElementCollection.cs
- DataBindingHandlerAttribute.cs
- StrokeDescriptor.cs
- HtmlLink.cs
- IOThreadScheduler.cs
- DrawingContextDrawingContextWalker.cs
- ExpressionVisitorHelpers.cs
- HtmlInputHidden.cs
- DefaultWorkflowLoaderService.cs
- MethodAccessException.cs
- StaticFileHandler.cs
- CodeSnippetStatement.cs
- InputProcessorProfiles.cs
- EdmItemError.cs
- DetailsViewModeEventArgs.cs
- EventMappingSettings.cs
- UnsafeNativeMethods.cs
- GradientBrush.cs
- BevelBitmapEffect.cs
- Scene3D.cs
- COAUTHINFO.cs
- DBAsyncResult.cs
- ParameterModifier.cs
- XmlSchemaAnyAttribute.cs
- CodeObject.cs
- FontWeights.cs
- RoutedEventConverter.cs
- XmlSchemaObjectCollection.cs
- WS2007HttpBindingCollectionElement.cs
- BuilderPropertyEntry.cs
- DocumentSchemaValidator.cs
- HuffCodec.cs
- ViewStateException.cs
- XmlSchemaGroupRef.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- DataSourceExpression.cs
- ClientUtils.cs
- EdmComplexPropertyAttribute.cs
- OleDbDataAdapter.cs
- OdbcErrorCollection.cs
- Drawing.cs
- FormParameter.cs
- RelatedEnd.cs
- TextTreePropertyUndoUnit.cs
- PackWebRequest.cs
- unsafenativemethodsother.cs
- DictionaryItemsCollection.cs
- MonthCalendar.cs
- Point3DAnimationUsingKeyFrames.cs
- PropertyEmitterBase.cs
- QilXmlReader.cs
- DataGrid.cs
- ScrollableControl.cs
- ImageField.cs
- ConnectivityStatus.cs
- DivideByZeroException.cs
- compensatingcollection.cs
- DataBinding.cs
- TransformProviderWrapper.cs
- RoleGroupCollection.cs
- XPathAncestorIterator.cs
- PageThemeCodeDomTreeGenerator.cs
- GroupBoxRenderer.cs
- RepeatButtonAutomationPeer.cs
- SQLDateTime.cs
- Paragraph.cs
- MeasureItemEvent.cs
- MultiDataTrigger.cs
- NamespaceList.cs
- HttpValueCollection.cs
- XmlHierarchicalEnumerable.cs
- RangeValuePattern.cs
- ImmutableObjectAttribute.cs
- SafeCryptContextHandle.cs
- HtmlUtf8RawTextWriter.cs
- SiteOfOriginContainer.cs
- CollectionBuilder.cs
- XmlCountingReader.cs
- QilLiteral.cs
- storepermissionattribute.cs
- Trace.cs
- ServerIdentity.cs