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
- EntityModelBuildProvider.cs
- DataGridViewBand.cs
- Parser.cs
- InputLangChangeEvent.cs
- COSERVERINFO.cs
- WebPartEditorApplyVerb.cs
- EditorPartChrome.cs
- PeerCollaborationPermission.cs
- WindowsGraphics.cs
- _ListenerResponseStream.cs
- ButtonChrome.cs
- WebPartMenuStyle.cs
- DbFunctionCommandTree.cs
- ParameterElement.cs
- localization.cs
- XmlSchemaObject.cs
- ServicePointManagerElement.cs
- SessionStateItemCollection.cs
- Directory.cs
- SafeSecurityHandles.cs
- WinInetCache.cs
- CollectionTypeElement.cs
- IsolatedStorageFilePermission.cs
- FixedSOMSemanticBox.cs
- ChangesetResponse.cs
- BasicKeyConstraint.cs
- safelink.cs
- DeviceContext2.cs
- TableAutomationPeer.cs
- PropertyPathConverter.cs
- StorageConditionPropertyMapping.cs
- TaskExtensions.cs
- BasicViewGenerator.cs
- SudsParser.cs
- MultiPageTextView.cs
- OleDbFactory.cs
- InputLanguageSource.cs
- ModelServiceImpl.cs
- DataGridItemEventArgs.cs
- UIAgentMonitor.cs
- FixedSOMFixedBlock.cs
- DataGridViewRowPrePaintEventArgs.cs
- SamlAssertionKeyIdentifierClause.cs
- OleDbSchemaGuid.cs
- ReliabilityContractAttribute.cs
- RoutedEventArgs.cs
- SpellerHighlightLayer.cs
- MenuTracker.cs
- SqlNotificationEventArgs.cs
- Polygon.cs
- TdsParserSafeHandles.cs
- EventLogPermissionAttribute.cs
- FactoryMaker.cs
- XamlFrame.cs
- EventDescriptor.cs
- ClientBuildManager.cs
- ExpanderAutomationPeer.cs
- CodeGenerator.cs
- GridViewHeaderRowPresenter.cs
- FreeFormDragDropManager.cs
- DynamicActivity.cs
- HttpCacheParams.cs
- BitArray.cs
- GlyphCollection.cs
- SslStreamSecurityElement.cs
- DrawingVisualDrawingContext.cs
- RemotingClientProxy.cs
- CustomGrammar.cs
- SafeWaitHandle.cs
- DataTableReaderListener.cs
- GeneralTransform3DGroup.cs
- AssertSection.cs
- _NegoState.cs
- StartUpEventArgs.cs
- BamlRecords.cs
- HtmlTextArea.cs
- sqlinternaltransaction.cs
- CreateUserWizard.cs
- ScrollChrome.cs
- CategoryGridEntry.cs
- OdbcConnectionPoolProviderInfo.cs
- SafeCryptContextHandle.cs
- TextParentUndoUnit.cs
- AuthStoreRoleProvider.cs
- MatrixAnimationUsingPath.cs
- SoapTransportImporter.cs
- FixedDSBuilder.cs
- SQLBinary.cs
- RegexWorker.cs
- PersonalizationStateInfo.cs
- DragDrop.cs
- CellTreeNodeVisitors.cs
- BindingExpression.cs
- ListItemCollection.cs
- ListViewItemMouseHoverEvent.cs
- ADConnectionHelper.cs
- WorkflowItemPresenter.cs
- ErrorReporting.cs
- GregorianCalendarHelper.cs
- ToolboxControl.cs