Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / ManagedLibraries / Security / System / Security / Cryptography / Pkcs / Pkcs7Signer.cs / 1 / 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) {} 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. // ==++== // // 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) {} 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
- _ListenerResponseStream.cs
- HelpInfo.cs
- PerspectiveCamera.cs
- QilList.cs
- DataContractSerializerServiceBehavior.cs
- DataTemplate.cs
- EdmToObjectNamespaceMap.cs
- ColorEditor.cs
- DesignerCategoryAttribute.cs
- MaskedTextBox.cs
- MemberInfoSerializationHolder.cs
- ReaderOutput.cs
- KnowledgeBase.cs
- AccessDataSourceView.cs
- NumericUpDownAcceleration.cs
- RefType.cs
- COSERVERINFO.cs
- TemplateControlBuildProvider.cs
- MessageSecurityOverTcpElement.cs
- XmlBoundElement.cs
- LockedActivityGlyph.cs
- XmlILOptimizerVisitor.cs
- SkipStoryboardToFill.cs
- MachineKeyConverter.cs
- FlowPosition.cs
- WrappedReader.cs
- ZipIOFileItemStream.cs
- TemplateColumn.cs
- SQLGuid.cs
- ManipulationVelocities.cs
- Keywords.cs
- ToolboxComponentsCreatingEventArgs.cs
- DbDataRecord.cs
- XmlCustomFormatter.cs
- WindowsScrollBarBits.cs
- SpnegoTokenAuthenticator.cs
- ListMarkerLine.cs
- HtmlLink.cs
- PeerObject.cs
- HttpDebugHandler.cs
- CellTreeNode.cs
- AbstractSvcMapFileLoader.cs
- Pipe.cs
- ClientUtils.cs
- ProjectedSlot.cs
- Point4D.cs
- RIPEMD160.cs
- _AuthenticationState.cs
- HttpConfigurationSystem.cs
- DoubleLinkList.cs
- MaterialGroup.cs
- GestureRecognizer.cs
- Table.cs
- Util.cs
- _IPv4Address.cs
- Compiler.cs
- OneOfElement.cs
- LoadedOrUnloadedOperation.cs
- BaseDataBoundControlDesigner.cs
- QilNode.cs
- QuaternionConverter.cs
- EventLogException.cs
- FontNamesConverter.cs
- Padding.cs
- PartitionResolver.cs
- CrossSiteScriptingValidation.cs
- HuffCodec.cs
- DependencySource.cs
- XmlSchemaComplexContentExtension.cs
- MappingModelBuildProvider.cs
- DbParameterCollectionHelper.cs
- DataControlField.cs
- namescope.cs
- ServiceDefaults.cs
- PageThemeParser.cs
- DrawingVisual.cs
- DynamicRenderer.cs
- CodeObjectCreateExpression.cs
- StylusCollection.cs
- BaseAsyncResult.cs
- DataServiceRequestException.cs
- AtomMaterializer.cs
- Regex.cs
- DataGridViewTextBoxColumn.cs
- RolePrincipal.cs
- HttpCacheParams.cs
- Property.cs
- WindowsFormsHostAutomationPeer.cs
- EntityContainerEmitter.cs
- MissingFieldException.cs
- StorageScalarPropertyMapping.cs
- ContentOperations.cs
- NotifyParentPropertyAttribute.cs
- RenderDataDrawingContext.cs
- entityreference_tresulttype.cs
- HtmlTableCellCollection.cs
- ThreadStaticAttribute.cs
- PathNode.cs
- MessagingDescriptionAttribute.cs
- CategoryNameCollection.cs