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
- BreakRecordTable.cs
- TypedColumnHandler.cs
- UrlAuthorizationModule.cs
- Pts.cs
- DesignerSerializerAttribute.cs
- ComNativeDescriptor.cs
- filewebrequest.cs
- ListViewAutomationPeer.cs
- TextAdaptor.cs
- SafeNativeMethods.cs
- XmlSchemaAttributeGroup.cs
- CopyNamespacesAction.cs
- X509ScopedServiceCertificateElementCollection.cs
- IntegerFacetDescriptionElement.cs
- EntityCommand.cs
- SessionStateUtil.cs
- UnmanagedMarshal.cs
- SecurityChannelListener.cs
- ProviderConnectionPoint.cs
- HtmlInputControl.cs
- MenuItem.cs
- DesignerRegion.cs
- SchemaNotation.cs
- TraceSection.cs
- CompatibleIComparer.cs
- CodeTypeReference.cs
- WorkBatch.cs
- UnsafeNativeMethods.cs
- Math.cs
- FontCollection.cs
- SyndicationLink.cs
- SqlServer2KCompatibilityCheck.cs
- ParameterModifier.cs
- ObjectConverter.cs
- Token.cs
- EventData.cs
- VectorCollectionValueSerializer.cs
- WinEventQueueItem.cs
- TextStore.cs
- DetailsViewModeEventArgs.cs
- RelationshipFixer.cs
- CodeCatchClause.cs
- GZipDecoder.cs
- BindingsSection.cs
- MappingItemCollection.cs
- LineMetrics.cs
- LoadRetryStrategyFactory.cs
- regiisutil.cs
- SymbolTable.cs
- ellipse.cs
- WebPartConnectionsDisconnectVerb.cs
- OleDbRowUpdatedEvent.cs
- PartialCachingAttribute.cs
- ControlCachePolicy.cs
- DataServicePagingProviderWrapper.cs
- EventHandlerList.cs
- ZipIOLocalFileHeader.cs
- BCLDebug.cs
- Debug.cs
- CollectionViewSource.cs
- BamlMapTable.cs
- FixedTextView.cs
- ReadWriteObjectLock.cs
- WinFormsUtils.cs
- ProcessHostFactoryHelper.cs
- ACL.cs
- CounterSetInstance.cs
- DocumentEventArgs.cs
- PrinterUnitConvert.cs
- RegexCapture.cs
- RuntimeEnvironment.cs
- RemoteCryptoTokenProvider.cs
- FileDialogCustomPlace.cs
- PlatformNotSupportedException.cs
- XmlNavigatorStack.cs
- XPathSingletonIterator.cs
- DetailsViewCommandEventArgs.cs
- ToolStripKeyboardHandlingService.cs
- XPathSingletonIterator.cs
- Emitter.cs
- FixedSOMContainer.cs
- InvalidProgramException.cs
- uribuilder.cs
- ConsoleCancelEventArgs.cs
- DesignerWebPartChrome.cs
- PenCursorManager.cs
- ActiveXHelper.cs
- PolyQuadraticBezierSegment.cs
- SqlGatherConsumedAliases.cs
- TextRenderer.cs
- DetailsViewPagerRow.cs
- WebConfigurationHost.cs
- SoapHeader.cs
- PluralizationService.cs
- HtmlInputRadioButton.cs
- ClientBuildManagerTypeDescriptionProviderBridge.cs
- RouteItem.cs
- ObjectPersistData.cs
- FormParameter.cs
- DataRowView.cs