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
- Util.cs
- LocationUpdates.cs
- EntityDataSourceReferenceGroup.cs
- OdbcTransaction.cs
- WebBrowserBase.cs
- GregorianCalendar.cs
- GeneralTransform3DGroup.cs
- InheritablePropertyChangeInfo.cs
- ExtensionWindowHeader.cs
- HttpDebugHandler.cs
- AQNBuilder.cs
- Random.cs
- DispatcherExceptionEventArgs.cs
- hebrewshape.cs
- DataControlReferenceCollection.cs
- DataChangedEventManager.cs
- RequestQueue.cs
- ClassHandlersStore.cs
- FixedSOMContainer.cs
- BindingValueChangedEventArgs.cs
- SqlException.cs
- WpfKnownType.cs
- DependencyProperty.cs
- PeerValidationBehavior.cs
- DateTimeConverter.cs
- XmlSchemaAppInfo.cs
- XmlNodeChangedEventManager.cs
- CodeCommentStatement.cs
- ValidationHelpers.cs
- DateRangeEvent.cs
- HtmlTableCellCollection.cs
- Renderer.cs
- RbTree.cs
- PartialArray.cs
- SchemaComplexType.cs
- EdmItemError.cs
- WindowShowOrOpenTracker.cs
- XmlSchemaImporter.cs
- SqlException.cs
- _ScatterGatherBuffers.cs
- DbProviderServices.cs
- CodeDomConfigurationHandler.cs
- AnnotationStore.cs
- ThrowHelper.cs
- ClientConfigPaths.cs
- XmlReader.cs
- SqlConnectionString.cs
- EntityTypeEmitter.cs
- OpenFileDialog.cs
- DynamicRendererThreadManager.cs
- XmlAggregates.cs
- Selection.cs
- localization.cs
- URLIdentityPermission.cs
- RemotingServices.cs
- MailMessage.cs
- ObjectDataSourceWizardForm.cs
- nulltextnavigator.cs
- DataBoundControlHelper.cs
- Part.cs
- DependencyPropertyDescriptor.cs
- DbConnectionPoolOptions.cs
- WithStatement.cs
- CoreChannel.cs
- CollectionConverter.cs
- HttpHeaderCollection.cs
- CachedTypeface.cs
- HttpConfigurationSystem.cs
- SmtpSection.cs
- XmlObjectSerializer.cs
- User.cs
- DatatypeImplementation.cs
- WCFBuildProvider.cs
- Baml2006KnownTypes.cs
- XamlPointCollectionSerializer.cs
- TimeSpanMinutesConverter.cs
- ObjectFullSpanRewriter.cs
- InstanceStore.cs
- ProcessHostServerConfig.cs
- GroupDescription.cs
- AuthenticationSection.cs
- CompilerErrorCollection.cs
- TracedNativeMethods.cs
- MissingManifestResourceException.cs
- ApplicationInfo.cs
- DesignerDataParameter.cs
- HtmlMeta.cs
- BrowserCapabilitiesFactoryBase.cs
- _NetworkingPerfCounters.cs
- GrowingArray.cs
- StyleBamlTreeBuilder.cs
- SerialPort.cs
- DataGridViewColumnCollection.cs
- FieldMetadata.cs
- RectValueSerializer.cs
- ServicePoint.cs
- PasswordRecovery.cs
- SID.cs
- FormViewDeletedEventArgs.cs
- AddInAttribute.cs