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
- AuthenticateEventArgs.cs
- EventMappingSettingsCollection.cs
- SafeSystemMetrics.cs
- SourceItem.cs
- FlowSwitchLink.cs
- ResourceAssociationSet.cs
- IFlowDocumentViewer.cs
- AttributeEmitter.cs
- SQLUtility.cs
- LocatorBase.cs
- TdsParameterSetter.cs
- PerfCounters.cs
- RenderDataDrawingContext.cs
- OdbcEnvironmentHandle.cs
- ValidationPropertyAttribute.cs
- HttpCapabilitiesEvaluator.cs
- LockCookie.cs
- FindResponse.cs
- CredentialCache.cs
- BaseTemplateBuildProvider.cs
- MinimizableAttributeTypeConverter.cs
- CheckPair.cs
- Visual3D.cs
- DoubleCollectionConverter.cs
- SortableBindingList.cs
- DataTemplateSelector.cs
- ReaderWriterLock.cs
- FixUpCollection.cs
- HotCommands.cs
- Msmq4PoisonHandler.cs
- WebPartConnectionsCloseVerb.cs
- Msec.cs
- ImageSource.cs
- Oid.cs
- filewebrequest.cs
- XmlQueryType.cs
- Byte.cs
- GridViewRowEventArgs.cs
- EndPoint.cs
- DropSource.cs
- Gdiplus.cs
- ListenerConnectionDemuxer.cs
- UndoManager.cs
- DeferredReference.cs
- Lease.cs
- FlowNode.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- TextTreeText.cs
- PeekCompletedEventArgs.cs
- Condition.cs
- UInt64.cs
- EnvironmentPermission.cs
- _OverlappedAsyncResult.cs
- DBCSCodePageEncoding.cs
- HostSecurityManager.cs
- HtmlLink.cs
- FileChangeNotifier.cs
- COM2ExtendedUITypeEditor.cs
- TextMetrics.cs
- x509store.cs
- EntityDataSourceQueryBuilder.cs
- AnnotationHelper.cs
- TempFiles.cs
- HostExecutionContextManager.cs
- StateWorkerRequest.cs
- ReadOnlyDataSourceView.cs
- RegionInfo.cs
- ColumnResult.cs
- DatePickerTextBox.cs
- HostedTransportConfigurationManager.cs
- Array.cs
- SecurityResources.cs
- PriorityBindingExpression.cs
- LabelLiteral.cs
- ParameterCollection.cs
- TransactionManager.cs
- RoleServiceManager.cs
- LinqToSqlWrapper.cs
- ButtonRenderer.cs
- EncoderReplacementFallback.cs
- ComponentEvent.cs
- ServiceSecurityAuditBehavior.cs
- BuildTopDownAttribute.cs
- SqlGenerator.cs
- SizeConverter.cs
- FileStream.cs
- MarginsConverter.cs
- XmlDataSource.cs
- BitmapEffectInputConnector.cs
- ComponentEditorForm.cs
- WmlLinkAdapter.cs
- TrackingQueryElement.cs
- AbstractExpressions.cs
- ObjectDataSourceEventArgs.cs
- NotFiniteNumberException.cs
- CodeChecksumPragma.cs
- UnauthorizedWebPart.cs
- AxHostDesigner.cs
- OptionUsage.cs
- GridViewPageEventArgs.cs