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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- IQueryable.cs
- IncomingWebRequestContext.cs
- _DisconnectOverlappedAsyncResult.cs
- OleAutBinder.cs
- MatrixValueSerializer.cs
- ExpressionBuilderContext.cs
- CodeValidator.cs
- TargetControlTypeAttribute.cs
- WebControlAdapter.cs
- EmptyEnumerator.cs
- QuaternionValueSerializer.cs
- JoinSymbol.cs
- SystemResourceHost.cs
- Process.cs
- EventProviderBase.cs
- XmlSchemaAnnotation.cs
- OutputCacheProfileCollection.cs
- OuterGlowBitmapEffect.cs
- ViewValidator.cs
- AutomationPatternInfo.cs
- NullReferenceException.cs
- AxisAngleRotation3D.cs
- _OverlappedAsyncResult.cs
- WebPartConnectionsConnectVerb.cs
- Registry.cs
- DurableInstanceContextProvider.cs
- EventPrivateKey.cs
- DocobjHost.cs
- MessageQueueInstaller.cs
- AttributeXamlType.cs
- Relationship.cs
- HostSecurityManager.cs
- ImageCodecInfoPrivate.cs
- SQLByte.cs
- XmlUtil.cs
- SiteOfOriginContainer.cs
- LabelLiteral.cs
- AppearanceEditorPart.cs
- FormViewInsertedEventArgs.cs
- Subordinate.cs
- ListViewHitTestInfo.cs
- OutputCacheModule.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- XmlDocumentFragment.cs
- TimeSpanConverter.cs
- ByteConverter.cs
- Exception.cs
- DesignerForm.cs
- TickBar.cs
- DrawingGroup.cs
- AnnouncementService.cs
- ViewPort3D.cs
- VectorValueSerializer.cs
- MissingManifestResourceException.cs
- XdrBuilder.cs
- TemplatedControlDesigner.cs
- SQLByte.cs
- util.cs
- ToolStripDropTargetManager.cs
- RuleSettingsCollection.cs
- InProcStateClientManager.cs
- RegionIterator.cs
- ChannelProtectionRequirements.cs
- COM2ComponentEditor.cs
- IndentTextWriter.cs
- DbProviderFactories.cs
- AccessDataSourceView.cs
- SafeReversePInvokeHandle.cs
- GridLengthConverter.cs
- SQLDouble.cs
- CodeSpit.cs
- PreApplicationStartMethodAttribute.cs
- ServiceMetadataExtension.cs
- OleAutBinder.cs
- BinaryConverter.cs
- ConfigurationException.cs
- NameValuePair.cs
- SecurityManager.cs
- DataColumnMappingCollection.cs
- NameTable.cs
- Point3DCollectionValueSerializer.cs
- ParseNumbers.cs
- ImageListStreamer.cs
- SHA1.cs
- WebPartDescription.cs
- HandlerBase.cs
- FormParameter.cs
- UIEndRequest.cs
- XmlSchemaIdentityConstraint.cs
- ProviderBase.cs
- _Semaphore.cs
- TextBoxAutomationPeer.cs
- DetailsViewRow.cs
- SelfIssuedSamlTokenFactory.cs
- ContextStack.cs
- Rotation3DAnimationBase.cs
- DataGridState.cs
- DrawItemEvent.cs
- DataGridItem.cs
- TemplateXamlTreeBuilder.cs