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
- StatusBarDrawItemEvent.cs
- AddInIpcChannel.cs
- DesignerActionVerbList.cs
- FormsAuthenticationUser.cs
- PLINQETWProvider.cs
- ListViewGroupItemCollection.cs
- TranslateTransform.cs
- Inflater.cs
- ItemCollection.cs
- AnnotationResourceChangedEventArgs.cs
- AutomationPatternInfo.cs
- PropertyCollection.cs
- DataGridViewTopLeftHeaderCell.cs
- XmlCustomFormatter.cs
- DataGridCell.cs
- PointCollectionValueSerializer.cs
- AnnotationStore.cs
- StringToken.cs
- WebResponse.cs
- IListConverters.cs
- ContainerSelectorActiveEvent.cs
- WsdlEndpointConversionContext.cs
- Propagator.JoinPropagator.cs
- ParamArrayAttribute.cs
- PersistChildrenAttribute.cs
- DatePickerTextBox.cs
- HiddenFieldPageStatePersister.cs
- EqualityComparer.cs
- TimelineCollection.cs
- EntityCodeGenerator.cs
- InfoCardMasterKey.cs
- VirtualPath.cs
- WebContext.cs
- Matrix.cs
- MoveSizeWinEventHandler.cs
- PersonalizablePropertyEntry.cs
- BamlLocalizableResourceKey.cs
- ComponentChangingEvent.cs
- VerificationAttribute.cs
- StateMachineWorkflowInstance.cs
- DoubleCollectionValueSerializer.cs
- HasRunnableWorkflowEvent.cs
- AppDomainCompilerProxy.cs
- Misc.cs
- GroupItemAutomationPeer.cs
- XPathBinder.cs
- Vector3DAnimationBase.cs
- DbSetClause.cs
- MethodCallConverter.cs
- ConfigurationSchemaErrors.cs
- PolicyChain.cs
- ErrorFormatterPage.cs
- AssemblyNameProxy.cs
- Domain.cs
- DataBoundControlAdapter.cs
- SwitchElementsCollection.cs
- HtmlHead.cs
- RealProxy.cs
- XmlSerializableReader.cs
- CaseInsensitiveOrdinalStringComparer.cs
- FontNamesConverter.cs
- XPathDocumentIterator.cs
- RegexParser.cs
- MediaPlayerState.cs
- Point3DCollection.cs
- ResXFileRef.cs
- EdmItemCollection.cs
- NativeMethodsOther.cs
- FigureParagraph.cs
- FormCollection.cs
- ErrorHandlerModule.cs
- DirectoryInfo.cs
- MultilineStringConverter.cs
- TemplateInstanceAttribute.cs
- ZoneLinkButton.cs
- ValueUtilsSmi.cs
- VersionPair.cs
- RewritingSimplifier.cs
- PropertyChangeTracker.cs
- ImageCodecInfoPrivate.cs
- VisualStateChangedEventArgs.cs
- InternalTypeHelper.cs
- TextOptionsInternal.cs
- UserInitiatedNavigationPermission.cs
- StorageSetMapping.cs
- LineInfo.cs
- MethodToken.cs
- XsltCompileContext.cs
- QuaternionAnimation.cs
- FixedPageProcessor.cs
- EventDescriptorCollection.cs
- ThreadExceptionEvent.cs
- GACMembershipCondition.cs
- StatusStrip.cs
- ConstrainedGroup.cs
- DataListCommandEventArgs.cs
- SerializeAbsoluteContext.cs
- WebServiceTypeData.cs
- ControlParameter.cs
- PropertyDescriptor.cs