Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / ManagedLibraries / Security / System / Security / Cryptography / Pkcs / Pkcs7Signer.cs / 5 / 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
- ResolveNameEventArgs.cs
- EventHandlerList.cs
- SelectorAutomationPeer.cs
- CheckedListBox.cs
- FastEncoderWindow.cs
- wmiprovider.cs
- translator.cs
- RuntimeConfigLKG.cs
- FilterQueryOptionExpression.cs
- StorageAssociationSetMapping.cs
- SymLanguageType.cs
- ListMarkerLine.cs
- FrameworkContentElement.cs
- StrokeNodeOperations2.cs
- ColumnBinding.cs
- SqlClientFactory.cs
- SaveFileDialogDesigner.cs
- SecurityHeaderElementInferenceEngine.cs
- DbProviderFactoriesConfigurationHandler.cs
- EncoderFallback.cs
- PathSegment.cs
- LocalsItemDescription.cs
- DesignParameter.cs
- TreeViewItemAutomationPeer.cs
- Stream.cs
- TextTrailingCharacterEllipsis.cs
- TextLineBreak.cs
- ContainerControl.cs
- FontUnitConverter.cs
- DataGridViewCellStyle.cs
- EditCommandColumn.cs
- ListenerElementsCollection.cs
- ReturnValue.cs
- SqlBuilder.cs
- DateTimeUtil.cs
- EntityWithChangeTrackerStrategy.cs
- MasterPage.cs
- Italic.cs
- DiffuseMaterial.cs
- ComponentRenameEvent.cs
- SchemaNotation.cs
- ArrayTypeMismatchException.cs
- assertwrapper.cs
- updatecommandorderer.cs
- DateTimeFormat.cs
- XmlSchemaInferenceException.cs
- BidOverLoads.cs
- Animatable.cs
- Converter.cs
- RectAnimationUsingKeyFrames.cs
- SqlConnectionString.cs
- RoutingEndpointTrait.cs
- DataGridViewColumnConverter.cs
- InfiniteTimeSpanConverter.cs
- TreeViewTemplateSelector.cs
- HtmlAnchor.cs
- TemporaryBitmapFile.cs
- SmtpMail.cs
- XmlDataCollection.cs
- XmlSchemaValidator.cs
- BuildProvidersCompiler.cs
- BindingMAnagerBase.cs
- Triplet.cs
- HybridCollection.cs
- Emitter.cs
- ReaderWriterLockWrapper.cs
- NativeWindow.cs
- Accessible.cs
- UnsafeNativeMethods.cs
- TreeBuilderBamlTranslator.cs
- XmlElementList.cs
- ReachPageContentCollectionSerializer.cs
- webbrowsersite.cs
- BuildProvider.cs
- EncryptedKey.cs
- EncodingInfo.cs
- MessageBox.cs
- QueryHandler.cs
- COAUTHIDENTITY.cs
- DocumentScope.cs
- StrongNameHelpers.cs
- SystemShuttingDownException.cs
- EdmFunctions.cs
- MetadataHelper.cs
- MissingMethodException.cs
- ContainerCodeDomSerializer.cs
- FilterElement.cs
- CompareValidator.cs
- ToolStripButton.cs
- QueryTaskGroupState.cs
- SqlConnectionHelper.cs
- ParseChildrenAsPropertiesAttribute.cs
- WindowsListViewGroupHelper.cs
- DecimalKeyFrameCollection.cs
- OciLobLocator.cs
- DefaultValueConverter.cs
- DocumentViewerBaseAutomationPeer.cs
- EventSinkHelperWriter.cs
- SoapClientMessage.cs
- ThreadExceptionEvent.cs