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
- ViewValidator.cs
- WindowsSysHeader.cs
- QilBinary.cs
- AttributeXamlType.cs
- RoleServiceManager.cs
- RtType.cs
- WindowsGraphicsCacheManager.cs
- MetaDataInfo.cs
- DeleteWorkflowOwnerCommand.cs
- ByteStreamGeometryContext.cs
- x509store.cs
- TextRunProperties.cs
- TableLayoutStyle.cs
- FilteredReadOnlyMetadataCollection.cs
- ComponentDispatcher.cs
- SettingsSection.cs
- StringConcat.cs
- Math.cs
- CompositeCollection.cs
- VirtualDirectoryMappingCollection.cs
- PathFigureCollection.cs
- Assembly.cs
- GridViewUpdateEventArgs.cs
- XmlByteStreamReader.cs
- UpDownEvent.cs
- CatalogZone.cs
- SqlFormatter.cs
- RC2CryptoServiceProvider.cs
- DataGridTextBoxColumn.cs
- TextSimpleMarkerProperties.cs
- SourceElementsCollection.cs
- GeneralTransform3DTo2DTo3D.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- OleCmdHelper.cs
- RectAnimationBase.cs
- AttributeQuery.cs
- WindowPatternIdentifiers.cs
- TransformerInfoCollection.cs
- MiniModule.cs
- AsyncDataRequest.cs
- XmlSchemaExporter.cs
- BinaryCommonClasses.cs
- SignatureResourceHelper.cs
- InternalBufferOverflowException.cs
- TextFormatterHost.cs
- KeyEventArgs.cs
- FileNotFoundException.cs
- ScriptManager.cs
- GeometryModel3D.cs
- DbProviderConfigurationHandler.cs
- StorageTypeMapping.cs
- RenderContext.cs
- MultipleViewProviderWrapper.cs
- CommandBinding.cs
- webeventbuffer.cs
- DesignerExtenders.cs
- WebEventTraceProvider.cs
- SqlMethods.cs
- DesignTimeTemplateParser.cs
- ExpressionEditorAttribute.cs
- TableDesigner.cs
- ImageCodecInfoPrivate.cs
- DataGridClipboardCellContent.cs
- SecurityNegotiationException.cs
- MetadataUtil.cs
- DataGridColumnHeadersPresenter.cs
- KeySplineConverter.cs
- CodeDelegateInvokeExpression.cs
- ColumnBinding.cs
- VirtualDirectoryMappingCollection.cs
- StreamProxy.cs
- PathFigureCollectionValueSerializer.cs
- SqlFunctionAttribute.cs
- TreeWalker.cs
- Soap12ServerProtocol.cs
- WmpBitmapDecoder.cs
- ZipIOCentralDirectoryFileHeader.cs
- ForceCopyBuildProvider.cs
- PeerCredential.cs
- HtmlElementErrorEventArgs.cs
- TableLayoutSettingsTypeConverter.cs
- ConvertEvent.cs
- WebBrowserDocumentCompletedEventHandler.cs
- ContentDesigner.cs
- InkCanvasAutomationPeer.cs
- ElapsedEventArgs.cs
- PlanCompiler.cs
- RelatedView.cs
- XamlWriterExtensions.cs
- WindowsEditBoxRange.cs
- StringBlob.cs
- PointAnimationUsingPath.cs
- AnnouncementDispatcherAsyncResult.cs
- SerializerWriterEventHandlers.cs
- SafeLocalMemHandle.cs
- DataListItemCollection.cs
- WebPartEditorCancelVerb.cs
- MatrixTransform.cs
- PagesSection.cs
- ApplicationHost.cs