Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / ManagedLibraries / Security / System / Security / Cryptography / Pkcs / Pkcs7Signer.cs / 1305376 / Pkcs7Signer.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // Pkcs7Signer.cs // namespace System.Security.Cryptography.Pkcs { using System.Globalization; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public sealed class CmsSigner { private SubjectIdentifierType m_signerIdentifierType; private X509Certificate2 m_certificate; private Oid m_digestAlgorithm; private CryptographicAttributeObjectCollection m_signedAttributes; private CryptographicAttributeObjectCollection m_unsignedAttributes; private X509Certificate2Collection m_certificates; private X509IncludeOption m_includeOption; private bool m_dummyCert; // // Constructors. // public CmsSigner () : this(SubjectIdentifierType.IssuerAndSerialNumber, null) {} public CmsSigner (SubjectIdentifierType signerIdentifierType) : this (signerIdentifierType, null) {} public CmsSigner (X509Certificate2 certificate) : this(SubjectIdentifierType.IssuerAndSerialNumber, certificate) {} [SecuritySafeCritical] public CmsSigner (CspParameters parameters) : this(SubjectIdentifierType.SubjectKeyIdentifier, PkcsUtils.CreateDummyCertificate(parameters)) { m_dummyCert = true; this.IncludeOption = X509IncludeOption.None; } public CmsSigner (SubjectIdentifierType signerIdentifierType, X509Certificate2 certificate) { switch (signerIdentifierType) { case SubjectIdentifierType.Unknown: this.SignerIdentifierType = SubjectIdentifierType.IssuerAndSerialNumber; this.IncludeOption = X509IncludeOption.ExcludeRoot; break; case SubjectIdentifierType.IssuerAndSerialNumber: this.SignerIdentifierType = signerIdentifierType; this.IncludeOption = X509IncludeOption.ExcludeRoot; break; case SubjectIdentifierType.SubjectKeyIdentifier: this.SignerIdentifierType = signerIdentifierType; this.IncludeOption = X509IncludeOption.ExcludeRoot; break; case SubjectIdentifierType.NoSignature: this.SignerIdentifierType = signerIdentifierType; this.IncludeOption = X509IncludeOption.None; break; default: this.SignerIdentifierType = SubjectIdentifierType.IssuerAndSerialNumber; this.IncludeOption = X509IncludeOption.ExcludeRoot; break; } this.Certificate = certificate; this.DigestAlgorithm = new Oid(CAPI.szOID_OIWSEC_sha1); m_signedAttributes = new CryptographicAttributeObjectCollection(); m_unsignedAttributes = new CryptographicAttributeObjectCollection(); m_certificates = new X509Certificate2Collection(); } // // Public APIs. // public SubjectIdentifierType SignerIdentifierType { get { return m_signerIdentifierType; } set { if (value != SubjectIdentifierType.IssuerAndSerialNumber && value != SubjectIdentifierType.SubjectKeyIdentifier && value != SubjectIdentifierType.NoSignature) throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Arg_EnumIllegalVal"), "value")); if (m_dummyCert && value != SubjectIdentifierType.SubjectKeyIdentifier) throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Arg_EnumIllegalVal"), "value")); m_signerIdentifierType = value; } } public X509Certificate2 Certificate { get { return m_certificate; } set { m_certificate = value; } } public Oid DigestAlgorithm { get { return m_digestAlgorithm; } set { m_digestAlgorithm = value; } } public CryptographicAttributeObjectCollection SignedAttributes { get { return m_signedAttributes; } } public CryptographicAttributeObjectCollection UnsignedAttributes { get { return m_unsignedAttributes; } } public X509Certificate2Collection Certificates { get { return m_certificates; } } public X509IncludeOption IncludeOption { get { return m_includeOption; } set { if (value < X509IncludeOption.None || value > X509IncludeOption.WholeChain) throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, SecurityResources.GetResourceString("Arg_EnumIllegalVal"), "value")); m_includeOption = value; } } } } // 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
- XmlArrayItemAttributes.cs
- CursorConverter.cs
- StaticDataManager.cs
- BufferModeSettings.cs
- WbemException.cs
- ResourceWriter.cs
- WebFormDesignerActionService.cs
- ConfigXmlCDataSection.cs
- ToolStripContainer.cs
- DigestComparer.cs
- SQLDateTime.cs
- QueryExecutionOption.cs
- BindingMAnagerBase.cs
- RelationshipConstraintValidator.cs
- Cursor.cs
- Brush.cs
- UnsafeNetInfoNativeMethods.cs
- RtfControls.cs
- IImplicitResourceProvider.cs
- ForceCopyBuildProvider.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- StylusEventArgs.cs
- CollectionEditorDialog.cs
- Object.cs
- CurrentTimeZone.cs
- NetworkInformationPermission.cs
- IConvertible.cs
- IdleTimeoutMonitor.cs
- SQLDateTimeStorage.cs
- SqlInternalConnectionSmi.cs
- DynamicVirtualDiscoSearcher.cs
- ErrorActivity.cs
- DefaultWorkflowLoaderService.cs
- RsaSecurityToken.cs
- ServiceManager.cs
- AggregateNode.cs
- StrokeCollectionConverter.cs
- Graphics.cs
- TraceUtility.cs
- configsystem.cs
- Timer.cs
- TextSearch.cs
- MulticastDelegate.cs
- PerformanceCountersElement.cs
- HttpListenerResponse.cs
- XmlQueryOutput.cs
- DataGridViewCellConverter.cs
- MgmtResManager.cs
- RectangleF.cs
- ProcessThreadCollection.cs
- OdbcConnectionStringbuilder.cs
- MessageQueueTransaction.cs
- XsltOutput.cs
- PersistChildrenAttribute.cs
- StringCollection.cs
- ConfigXmlSignificantWhitespace.cs
- RightsManagementEncryptionTransform.cs
- XamlTypeMapperSchemaContext.cs
- TableItemPattern.cs
- _TimerThread.cs
- CustomWebEventKey.cs
- RowsCopiedEventArgs.cs
- ConfigXmlWhitespace.cs
- FileUtil.cs
- BuilderElements.cs
- DataBinder.cs
- SqlWorkflowInstanceStore.cs
- AnyAllSearchOperator.cs
- WizardPanelChangingEventArgs.cs
- TableItemProviderWrapper.cs
- StateMachineSubscriptionManager.cs
- DefaultEventAttribute.cs
- ConfigurationErrorsException.cs
- InvalidComObjectException.cs
- FastPropertyAccessor.cs
- WebPartManager.cs
- AuthenticationModulesSection.cs
- Vector3DCollection.cs
- IItemProperties.cs
- MemberBinding.cs
- AnnotationResourceChangedEventArgs.cs
- CompileLiteralTextParser.cs
- WindowsProgressbar.cs
- x509store.cs
- BamlMapTable.cs
- TableTextElementCollectionInternal.cs
- Soap12ProtocolReflector.cs
- WebBrowserContainer.cs
- BehaviorEditorPart.cs
- ReferencedAssembly.cs
- EntityDataSourceEntityTypeFilterItem.cs
- EntityProviderServices.cs
- PropertyDescriptorGridEntry.cs
- SamlAssertionKeyIdentifierClause.cs
- CodeTypeMember.cs
- SessionEndingEventArgs.cs
- FullTextBreakpoint.cs
- BevelBitmapEffect.cs
- SimpleLine.cs
- FlowDocumentReaderAutomationPeer.cs