Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- GlyphsSerializer.cs
- TextTreeNode.cs
- WsdlBuildProvider.cs
- GeneralTransform3DGroup.cs
- ToolStripDropDownButton.cs
- HtmlWindow.cs
- WebPartDisplayModeCancelEventArgs.cs
- BitmapEffectInputData.cs
- NonDualMessageSecurityOverHttpElement.cs
- QueryMatcher.cs
- Cursors.cs
- CompoundFileReference.cs
- DataColumnMappingCollection.cs
- NamespaceMapping.cs
- SequenceQuery.cs
- UpdatePanelTriggerCollection.cs
- NetStream.cs
- ExternalCalls.cs
- DecoderBestFitFallback.cs
- _WebProxyDataBuilder.cs
- InvocationExpression.cs
- Certificate.cs
- AsynchronousChannelMergeEnumerator.cs
- MultipartContentParser.cs
- SystemInformation.cs
- CustomWebEventKey.cs
- TextRunTypographyProperties.cs
- TextFormatterHost.cs
- MessageBuffer.cs
- QilLiteral.cs
- CompoundFileStreamReference.cs
- DataException.cs
- CellIdBoolean.cs
- ProcessThreadDesigner.cs
- StringUtil.cs
- NonClientArea.cs
- XmlSchemaAny.cs
- Win32MouseDevice.cs
- Filter.cs
- MemberProjectedSlot.cs
- Visitors.cs
- FamilyMapCollection.cs
- DataTemplateKey.cs
- TextRangeEditLists.cs
- DPCustomTypeDescriptor.cs
- BindingValueChangedEventArgs.cs
- XmlSchemaInfo.cs
- WindowsPen.cs
- DataGridTablesFactory.cs
- ManipulationVelocities.cs
- Int32Converter.cs
- DocumentApplicationJournalEntry.cs
- IListConverters.cs
- SourceLocation.cs
- XmlQueryRuntime.cs
- DataGridHeaderBorder.cs
- _RequestLifetimeSetter.cs
- XmlSchemaAttributeGroup.cs
- SafeFindHandle.cs
- TaskSchedulerException.cs
- Path.cs
- FormViewInsertEventArgs.cs
- CompressionTransform.cs
- DesignerActionVerbItem.cs
- TileModeValidation.cs
- FileIOPermission.cs
- ReferenceEqualityComparer.cs
- IFlowDocumentViewer.cs
- Privilege.cs
- TableCell.cs
- ReadOnlyAttribute.cs
- ObjectDataSourceSelectingEventArgs.cs
- DbTransaction.cs
- UserControlAutomationPeer.cs
- ComPlusInstanceProvider.cs
- KeyFrames.cs
- SQLDecimal.cs
- RadioButton.cs
- SponsorHelper.cs
- LinkedResourceCollection.cs
- ClientProtocol.cs
- ReflectTypeDescriptionProvider.cs
- Label.cs
- PointHitTestResult.cs
- GradientBrush.cs
- SimpleHandlerBuildProvider.cs
- ChannelServices.cs
- RegexInterpreter.cs
- StorageEntityContainerMapping.cs
- CngKeyBlobFormat.cs
- FileClassifier.cs
- CmsInterop.cs
- SqlInternalConnectionTds.cs
- DocumentGridPage.cs
- XmlSchemaAttributeGroup.cs
- EncoderBestFitFallback.cs
- ManifestResourceInfo.cs
- DesignerEventService.cs
- RegistrySecurity.cs
- NameNode.cs