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
- TypeExtension.cs
- SqlAliasesReferenced.cs
- ColumnWidthChangingEvent.cs
- MoveSizeWinEventHandler.cs
- NameSpaceEvent.cs
- EventPrivateKey.cs
- SqlResolver.cs
- XmlWrappingWriter.cs
- DefaultPropertyAttribute.cs
- ResourceIDHelper.cs
- SoapHeaderException.cs
- MarkedHighlightComponent.cs
- SmtpNetworkElement.cs
- XmlC14NWriter.cs
- DataChangedEventManager.cs
- StylusPointDescription.cs
- NullEntityWrapper.cs
- SoapRpcServiceAttribute.cs
- LockedAssemblyCache.cs
- WebBrowserProgressChangedEventHandler.cs
- BamlLocalizableResourceKey.cs
- OleDbRowUpdatingEvent.cs
- TypeConverterAttribute.cs
- FilterElement.cs
- TextServicesCompartmentContext.cs
- BasePattern.cs
- metadatamappinghashervisitor.cs
- EmbeddedObject.cs
- BaseAsyncResult.cs
- DataGridViewComboBoxColumn.cs
- ComboBoxRenderer.cs
- UserControl.cs
- StringUtil.cs
- CheckBox.cs
- SerializationSectionGroup.cs
- AccessibleObject.cs
- SHA1Cng.cs
- _BaseOverlappedAsyncResult.cs
- SafeFileMappingHandle.cs
- PageSettings.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- OutputCacheProfile.cs
- DataGridColumnHeaderCollection.cs
- BitmapImage.cs
- SafeRegistryKey.cs
- ToolStripSplitStackLayout.cs
- _LocalDataStore.cs
- Span.cs
- DiscoveryEndpointElement.cs
- SessionStateItemCollection.cs
- BrowserTree.cs
- RectangleGeometry.cs
- CellTreeNodeVisitors.cs
- ExtenderProvidedPropertyAttribute.cs
- GenerateHelper.cs
- TcpHostedTransportConfiguration.cs
- SQLDecimalStorage.cs
- PaintEvent.cs
- RequestCacheValidator.cs
- Storyboard.cs
- BufferedReadStream.cs
- ToolStripRenderer.cs
- ListenerConnectionDemuxer.cs
- ChtmlCommandAdapter.cs
- sortedlist.cs
- ListViewPagedDataSource.cs
- WebScriptClientGenerator.cs
- DictionaryEntry.cs
- ContextMenu.cs
- SystemFonts.cs
- BaseDataList.cs
- Keywords.cs
- TypeSystem.cs
- ExpressionEvaluator.cs
- KeyboardDevice.cs
- KnownTypeAttribute.cs
- LoadedOrUnloadedOperation.cs
- CodeSnippetCompileUnit.cs
- MatrixTransform.cs
- CodeSnippetCompileUnit.cs
- MonitorWrapper.cs
- XmlToDatasetMap.cs
- WebPartDeleteVerb.cs
- QuaternionConverter.cs
- BuildManager.cs
- CodeArgumentReferenceExpression.cs
- TreeSet.cs
- GregorianCalendarHelper.cs
- SecurityDocument.cs
- Sentence.cs
- StringUtil.cs
- GeometryDrawing.cs
- HtmlLink.cs
- MonthCalendar.cs
- TextCollapsingProperties.cs
- StringArrayConverter.cs
- UnsafeNativeMethods.cs
- CngKeyBlobFormat.cs
- DataViewListener.cs
- MultipartIdentifier.cs