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
- DoubleAnimationBase.cs
- NoPersistProperty.cs
- TableLayoutPanelCodeDomSerializer.cs
- FunctionDefinition.cs
- ServiceObjectContainer.cs
- CircleHotSpot.cs
- LambdaCompiler.cs
- HostingEnvironmentSection.cs
- RuleSettingsCollection.cs
- XmlSchemas.cs
- Point3DAnimationBase.cs
- MultiTouchSystemGestureLogic.cs
- MissingMethodException.cs
- XmlDocumentFieldSchema.cs
- BooleanFunctions.cs
- TraceContextRecord.cs
- TextBox.cs
- XmlSchemaAppInfo.cs
- Function.cs
- XmlSerializationReader.cs
- UpdateExpressionVisitor.cs
- ConfigXmlComment.cs
- SqlInternalConnectionSmi.cs
- HistoryEventArgs.cs
- EdmSchemaError.cs
- StreamedWorkflowDefinitionContext.cs
- ColumnBinding.cs
- ProfileBuildProvider.cs
- ObservableDictionary.cs
- SapiRecognizer.cs
- ArgIterator.cs
- SafeFreeMibTable.cs
- LazyTextWriterCreator.cs
- DeviceFilterEditorDialog.cs
- RequestQueryParser.cs
- DocumentEventArgs.cs
- ImageBrush.cs
- HostingEnvironmentWrapper.cs
- WmlLiteralTextAdapter.cs
- Int16AnimationBase.cs
- regiisutil.cs
- EntityTemplateFactory.cs
- SqlInternalConnection.cs
- RoutedUICommand.cs
- RouteUrlExpressionBuilder.cs
- DefaultValueConverter.cs
- EntityProviderServices.cs
- CompositeScriptReferenceEventArgs.cs
- ForwardPositionQuery.cs
- SecurityCriticalDataForSet.cs
- XmlWriter.cs
- DBAsyncResult.cs
- Vector3DKeyFrameCollection.cs
- FrameworkContentElement.cs
- UnionExpr.cs
- BamlVersionHeader.cs
- ComNativeDescriptor.cs
- NominalTypeEliminator.cs
- AssemblyBuilderData.cs
- MetroSerializationManager.cs
- ServiceOperationParameter.cs
- ListItemConverter.cs
- XmlSerializerAssemblyAttribute.cs
- Dictionary.cs
- CaseInsensitiveComparer.cs
- TextEndOfParagraph.cs
- WindowsGraphics.cs
- SqlRecordBuffer.cs
- EntityKey.cs
- CheckBox.cs
- SystemInfo.cs
- FormsAuthenticationUser.cs
- CompilationUtil.cs
- SpeechRecognitionEngine.cs
- TdsParserStaticMethods.cs
- FormsAuthenticationConfiguration.cs
- SystemTcpConnection.cs
- KeyValuePair.cs
- ModuleConfigurationInfo.cs
- ImageFormat.cs
- URI.cs
- DeferrableContent.cs
- BinaryFormatterWriter.cs
- CapabilitiesState.cs
- XmlSchemaElement.cs
- User.cs
- ResourceAttributes.cs
- OdbcErrorCollection.cs
- AnnotationMap.cs
- SocketElement.cs
- ProgressBar.cs
- FilterElement.cs
- DetailsViewRow.cs
- BypassElement.cs
- ImageInfo.cs
- OutputChannel.cs
- ImplicitInputBrush.cs
- BitmapEncoder.cs
- OdbcException.cs
- ClientSettingsStore.cs