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
- InputMethodStateTypeInfo.cs
- ApplicationDirectoryMembershipCondition.cs
- WebControlsSection.cs
- RequestCacheEntry.cs
- TargetFrameworkUtil.cs
- CodeParameterDeclarationExpressionCollection.cs
- ServicesUtilities.cs
- ActivityExecutionContextCollection.cs
- PassportAuthenticationEventArgs.cs
- IntSecurity.cs
- SpellerStatusTable.cs
- AmbiguousMatchException.cs
- HtmlMeta.cs
- StopStoryboard.cs
- InvokeMethod.cs
- ProviderIncompatibleException.cs
- CrossContextChannel.cs
- TransactionInterop.cs
- TextEditorParagraphs.cs
- ThreadStateException.cs
- PeerNeighborManager.cs
- NamedObject.cs
- ObjectSet.cs
- EntityDataSourceConfigureObjectContext.cs
- ConfigurationPropertyCollection.cs
- XmlValidatingReader.cs
- WsatEtwTraceListener.cs
- PersistenceContext.cs
- NamedElement.cs
- TextDpi.cs
- ToolStripPanel.cs
- JsonUriDataContract.cs
- TextServicesContext.cs
- DataGridViewComponentPropertyGridSite.cs
- SqlCachedBuffer.cs
- SrgsDocument.cs
- FunctionParameter.cs
- TemplateAction.cs
- UntypedNullExpression.cs
- ConnectionManagementElement.cs
- ReadOnlyNameValueCollection.cs
- HttpValueCollection.cs
- ModuleBuilder.cs
- ApplicationDirectory.cs
- DesignOnlyAttribute.cs
- WebPartDisplayMode.cs
- BaseValidator.cs
- Misc.cs
- TextTreeUndoUnit.cs
- TreeWalker.cs
- ResourceContainer.cs
- TemplateControlParser.cs
- XamlWriter.cs
- HttpContextServiceHost.cs
- TabletDevice.cs
- SubMenuStyleCollection.cs
- Marshal.cs
- HttpCookie.cs
- HttpContextServiceHost.cs
- HostVisual.cs
- WorkflowViewStateService.cs
- ImageList.cs
- MessageDecoder.cs
- TheQuery.cs
- SystemIcmpV6Statistics.cs
- CookielessHelper.cs
- FontFaceLayoutInfo.cs
- Color.cs
- RequiredFieldValidator.cs
- GridView.cs
- XmlEncoding.cs
- BooleanAnimationBase.cs
- UdpMessageProperty.cs
- GlyphRun.cs
- MarkupCompilePass1.cs
- RandomNumberGenerator.cs
- OleDbPropertySetGuid.cs
- XmlCharacterData.cs
- SQLDecimalStorage.cs
- PrintingPermissionAttribute.cs
- IsolatedStorageFile.cs
- LineGeometry.cs
- DataControlButton.cs
- OleServicesContext.cs
- PagePropertiesChangingEventArgs.cs
- IdentityManager.cs
- AssemblyAttributesGoHere.cs
- ComponentResourceKeyConverter.cs
- CancelEventArgs.cs
- AdapterUtil.cs
- FormsAuthenticationTicket.cs
- DesignUtil.cs
- Hash.cs
- EmptyEnumerator.cs
- ThemeInfoAttribute.cs
- DesignTableCollection.cs
- FieldTemplateUserControl.cs
- DataGridItemAttachedStorage.cs
- StylusPoint.cs
- FileSystemWatcher.cs