Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Security / Cryptography / CngProvider.cs / 1305376 / CngProvider.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== using System; using System.Diagnostics.CodeAnalysis; using System.Diagnostics.Contracts; namespace System.Security.Cryptography { ////// Utility class to strongly type providers used with CNG. Since all CNG APIs which require a /// provider name take the name as a string, we use this string wrapper class to specifically mark /// which parameters are expected to be providers. We also provide a list of well known provider /// names, which helps Intellisense users find a set of good providernames to use. /// [Serializable] [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public sealed class CngProvider : IEquatable{ private static CngProvider s_msSmartCardKsp; private static CngProvider s_msSoftwareKsp; private string m_provider; public CngProvider(string provider) { Contract.Ensures(!String.IsNullOrEmpty(m_provider)); if (provider == null) { throw new ArgumentNullException("provider"); } if (provider.Length == 0) { throw new ArgumentException(SR.GetString(SR.Cryptography_InvalidProviderName, provider), "provider"); } m_provider = provider; } /// /// Name of the CNG provider /// public string Provider { get { Contract.Ensures(!String.IsNullOrEmpty(Contract.Result())); return m_provider; } } public static bool operator ==(CngProvider left, CngProvider right) { if (Object.ReferenceEquals(left, null)) { return Object.ReferenceEquals(right, null); } return left.Equals(right); } [Pure] public static bool operator !=(CngProvider left, CngProvider right) { if (Object.ReferenceEquals(left, null)) { return !Object.ReferenceEquals(right, null); } return !left.Equals(right); } public override bool Equals(object obj) { Contract.Assert(m_provider != null); return Equals(obj as CngProvider); } public bool Equals(CngProvider other) { if (Object.ReferenceEquals(other, null)) { return false; } return m_provider.Equals(other.Provider); } public override int GetHashCode() { Contract.Assert(m_provider != null); return m_provider.GetHashCode(); } public override string ToString() { Contract.Assert(m_provider != null); return m_provider.ToString(); } // // Well known NCrypt KSPs // [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "CardKey", Justification = "This is not 'Smart Cardkey', but 'Smart Card Key'")] [SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "SmartCard", Justification = "Smart Card is two words in the ncrypt usage")] public static CngProvider MicrosoftSmartCardKeyStorageProvider { get { Contract.Ensures(Contract.Result () != null); if (s_msSmartCardKsp == null) { s_msSmartCardKsp = new CngProvider("Microsoft Smart Card Key Storage Provider"); // MS_SMART_CARD_KEY_STORAGE_PROVIDER } return s_msSmartCardKsp; } } public static CngProvider MicrosoftSoftwareKeyStorageProvider { get { Contract.Ensures(Contract.Result () != null); if (s_msSoftwareKsp == null) { s_msSoftwareKsp = new CngProvider("Microsoft Software Key Storage Provider"); // MS_KEY_STORAGE_PROVIDER } return s_msSoftwareKsp; } } } } // 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
- QuadraticBezierSegment.cs
- RoutingChannelExtension.cs
- MultiBindingExpression.cs
- DbExpressionRules.cs
- Helpers.cs
- StylusPointProperties.cs
- FigureParaClient.cs
- WebPartAddingEventArgs.cs
- CmsInterop.cs
- SerializationObjectManager.cs
- PathTooLongException.cs
- PaintEvent.cs
- InheritanceContextChangedEventManager.cs
- WebPartAuthorizationEventArgs.cs
- DataFieldConverter.cs
- DynamicFilterExpression.cs
- EUCJPEncoding.cs
- WrappedIUnknown.cs
- AdRotator.cs
- PersonalizationProviderCollection.cs
- BoundColumn.cs
- IdentifierCollection.cs
- base64Transforms.cs
- AlternateView.cs
- SelectionProviderWrapper.cs
- ComplexTypeEmitter.cs
- CommandPlan.cs
- ActivityScheduledRecord.cs
- panel.cs
- StylusShape.cs
- OdbcTransaction.cs
- TransportElement.cs
- ItemChangedEventArgs.cs
- FixedSOMLineRanges.cs
- WebPartCollection.cs
- FileLoadException.cs
- ActionFrame.cs
- ActiveXHelper.cs
- Int16Storage.cs
- Size3DValueSerializer.cs
- _SecureChannel.cs
- SystemPens.cs
- IgnoreFlushAndCloseStream.cs
- basecomparevalidator.cs
- CopyAttributesAction.cs
- TypeRestriction.cs
- LayoutTableCell.cs
- SqlInfoMessageEvent.cs
- EventNotify.cs
- FormatException.cs
- userdatakeys.cs
- StrongNameIdentityPermission.cs
- Queue.cs
- ImageCollectionCodeDomSerializer.cs
- FileChangesMonitor.cs
- WorkflowDesigner.cs
- QualifiedCellIdBoolean.cs
- PageFunction.cs
- WindowsGraphics.cs
- FileBasedResourceGroveler.cs
- Pens.cs
- SqlDataRecord.cs
- BindableAttribute.cs
- XNameTypeConverter.cs
- WindowsFormsSectionHandler.cs
- fixedPageContentExtractor.cs
- NoResizeSelectionBorderGlyph.cs
- CollectionChange.cs
- CachedTypeface.cs
- DecimalKeyFrameCollection.cs
- LicenseContext.cs
- SoapProcessingBehavior.cs
- DynamicILGenerator.cs
- ListBoxItemAutomationPeer.cs
- DbXmlEnabledProviderManifest.cs
- EntityCommandCompilationException.cs
- TableStyle.cs
- ComplexBindingPropertiesAttribute.cs
- WinEventWrap.cs
- DebugView.cs
- GlyphTypeface.cs
- DynamicValidator.cs
- OdbcConnectionPoolProviderInfo.cs
- XmlElementAttributes.cs
- OleDragDropHandler.cs
- OracleBinary.cs
- EventManager.cs
- TaskFormBase.cs
- GetPageNumberCompletedEventArgs.cs
- BindToObject.cs
- ParentUndoUnit.cs
- PointLightBase.cs
- PropertyInformation.cs
- ScaleTransform.cs
- NameHandler.cs
- KeyValueInternalCollection.cs
- AsymmetricKeyExchangeDeformatter.cs
- ComponentManagerBroker.cs
- DataGridViewRow.cs
- FileDialogPermission.cs