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
- DataGridAddNewRow.cs
- Odbc32.cs
- Viewport3DVisual.cs
- EditorZoneBase.cs
- HuffCodec.cs
- XmlSchemaAttributeGroup.cs
- httpapplicationstate.cs
- DocumentReference.cs
- DiscardableAttribute.cs
- ToolStripItem.cs
- BoolLiteral.cs
- MemberDescriptor.cs
- InvalidWMPVersionException.cs
- FilterUserControlBase.cs
- columnmapkeybuilder.cs
- MasterPageBuildProvider.cs
- DirectoryObjectSecurity.cs
- CachedPathData.cs
- EmptyEnumerable.cs
- CanonicalFormWriter.cs
- MessageDirection.cs
- ExpandSegment.cs
- StickyNoteAnnotations.cs
- AnimationClockResource.cs
- SendKeys.cs
- ConstructorArgumentAttribute.cs
- ContainerFilterService.cs
- CodeAttachEventStatement.cs
- SettingsSection.cs
- ListViewUpdatedEventArgs.cs
- Exceptions.cs
- ParseElement.cs
- TextSelectionHighlightLayer.cs
- EmptyCollection.cs
- ObjectView.cs
- AssertValidation.cs
- ComEventsHelper.cs
- StyleSheet.cs
- DataGridItemEventArgs.cs
- ResolveNameEventArgs.cs
- QilExpression.cs
- FixedStringLookup.cs
- CellParagraph.cs
- HebrewNumber.cs
- NotEqual.cs
- GotoExpression.cs
- RegexWriter.cs
- ContentType.cs
- List.cs
- SqlClientPermission.cs
- SafeHGlobalHandleCritical.cs
- HtmlInputSubmit.cs
- ConstrainedDataObject.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- Int64Storage.cs
- ToolboxItemSnapLineBehavior.cs
- DataGridTable.cs
- LineInfo.cs
- HostExecutionContextManager.cs
- Image.cs
- JoinSymbol.cs
- ScrollData.cs
- MasterPage.cs
- RowUpdatedEventArgs.cs
- ServerValidateEventArgs.cs
- AssociationSet.cs
- InvalidPrinterException.cs
- Baml2006KeyRecord.cs
- HandlerFactoryWrapper.cs
- UDPClient.cs
- PageScaling.cs
- BooleanConverter.cs
- ScrollData.cs
- RoamingStoreFile.cs
- DateTimePicker.cs
- ToolboxBitmapAttribute.cs
- DataGridViewCellStateChangedEventArgs.cs
- MergeFilterQuery.cs
- BrowserTree.cs
- TypeBrowserDialog.cs
- ByteAnimationBase.cs
- TextInfo.cs
- MsmqChannelFactory.cs
- Pair.cs
- StylusOverProperty.cs
- TabControlAutomationPeer.cs
- NameTable.cs
- securitymgrsite.cs
- TTSVoice.cs
- AnonymousIdentificationSection.cs
- ListBoxItem.cs
- StaticResourceExtension.cs
- CheckedListBox.cs
- MultiBinding.cs
- _LoggingObject.cs
- AsymmetricKeyExchangeFormatter.cs
- panel.cs
- HandleCollector.cs
- XmlDocumentSerializer.cs
- FullTrustAssembly.cs