Поделиться через


SignedCms.ComputeSignature Метод

Определение

Создает подпись и добавляет ее к сообщению CMS/PKCS 7.

Перегрузки

ComputeSignature(CmsSigner, Boolean)

Создает подпись для указанного подписавшего и добавляет эту подпись к сообщению CMS/PKCS 7.

ComputeSignature()

Создает подпись и добавляет ее к сообщению CMS/PKCS 7.

ComputeSignature(CmsSigner)

Создает подпись для указанного подписавшего и добавляет эту подпись к сообщению CMS/PKCS 7.

ComputeSignature(CmsSigner, Boolean)

Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs

Создает подпись для указанного подписавшего и добавляет эту подпись к сообщению CMS/PKCS 7.

public:
 void ComputeSignature(System::Security::Cryptography::Pkcs::CmsSigner ^ signer, bool silent);
public void ComputeSignature (System.Security.Cryptography.Pkcs.CmsSigner signer, bool silent);
member this.ComputeSignature : System.Security.Cryptography.Pkcs.CmsSigner * bool -> unit
Public Sub ComputeSignature (signer As CmsSigner, silent As Boolean)

Параметры

signer
CmsSigner

Объект CmsSigner, представляющий подписавшего.

silent
Boolean

Только для .NET Core и .NET 5+: true запрос открытия ключей с отключенными запросами ПИН-кода, если поддерживается; в противном случае — значение false. В .NET Framework этот параметр не используется и всегда отображается запрос на ввод PIN-кода (при необходимости).

Исключения

signer имеет значение null.

Завершение операции шифрования невозможно.

Только .NET Framework: сертификат для подписи не указан.

Только .NET Core и .NET 5+: сертификат подписи не указан.

Комментарии

Только .NET Core: silent параметр не действует, CmsSigner.PrivateKey если значение не равно NULL. Указанное значение определяет, отображает ли вычисление сигнатуры запрос ПИН-кода. Даже если PrivateKey свойство имеет значение NULL и silent параметр имеет значение true, некоторые сочетания параметров операционной системы и подписывающий по-прежнему могут привести к выводу ЗАПРОСА ПИН-кода.

Для отображения пользовательского интерфейса на платформа .NET Framework требуются следующие разрешения:

Для доступа к ключу подписи на платформа .NET Framework требуются следующие разрешения:

Применяется к

ComputeSignature()

Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs

Создает подпись и добавляет ее к сообщению CMS/PKCS 7.

public:
 void ComputeSignature();
public void ComputeSignature ();
member this.ComputeSignature : unit -> unit
Public Sub ComputeSignature ()

Исключения

.NET Framework (все версии) и .NET Core 3.0 и более поздние версии: не указан сертификат получателя.

.NET Core версии 2.2 и более ранние версии: не указан сертификат подписавшего.

Комментарии

Этот метод завершается успешно, если SubjectIdentifierType.NoSignature он был указан в signerIdentifierType качестве аргумента одной из SignedCms перегрузок конструктора. В противном случае выдается исключение.

Для доступа к ключу подписи на платформа .NET Framework требуются следующие разрешения:

Применяется к

ComputeSignature(CmsSigner)

Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs

Создает подпись для указанного подписавшего и добавляет эту подпись к сообщению CMS/PKCS 7.

public:
 void ComputeSignature(System::Security::Cryptography::Pkcs::CmsSigner ^ signer);
public void ComputeSignature (System.Security.Cryptography.Pkcs.CmsSigner signer);
member this.ComputeSignature : System.Security.Cryptography.Pkcs.CmsSigner -> unit
Public Sub ComputeSignature (signer As CmsSigner)

Параметры

signer
CmsSigner

Объект CmsSigner, представляющий подписавшего.

Исключения

Пустая ссылка была передана методу, не принимающему ее в качестве допустимого аргумента.

Завершение операции шифрования невозможно.

Примеры

В следующем примере показаны шаги по вычислению подписи SignedCms в сообщении с содержимым сообщения, которое не отсоединяется. В этом случае содержимое сообщения включается в SignedCms сообщение.

// The dataToSign byte array holds the data to be signed.
ContentInfo contentInfo = new ContentInfo(dataToSign);

// Create a new, nondetached SignedCms message.
SignedCms signedCms = new SignedCms(contentInfo);

// Sign the message.
signedCms.ComputeSignature();

// Encode the message.
byte[] myCmsMessage = signedCms.Encode();

// The signed CMS/PKCS #7 message is ready to send.
// The original content is included in this byte array.
' The dataToSign byte array holds the data to be signed.
Dim contentInfo As New ContentInfo(dataToSign)

' Create a new, nondetached SignedCms message.
Dim signedCms As New SignedCms(contentInfo)

' Sign the message.
signedCms.ComputeSignature()

' Encode the message.
Dim myCmsMessage As Byte() = signedCms.Encode()

' The signed CMS/PKCS #7 message is ready to send.
' The original content is included in this byte array.

В следующем примере показаны шаги по вычислению подписи SignedCms в сообщении с отсоединяющимся содержимым сообщения. В этом случае содержимое сообщения должно проверяться независимо SignedCms от сообщения.

// The dataToSign byte array holds the data to be signed.
ContentInfo contentInfo = new ContentInfo(dataToSign);

// Create a new, detached SignedCms message.
SignedCms signedCms = new SignedCms(contentInfo, true);

// Sign the message.
signedCms.ComputeSignature();

// Encode the message.
byte[] myCmsMessage = signedCms.Encode();

// The signed CMS/PKCS #7 message is ready to send.
// The original content is not included in this byte array.
' The dataToSign byte array holds the data to be signed.
Dim contentInfo As New ContentInfo(dataToSign)

' Create a new, detached SignedCms message.
Dim signedCms As New SignedCms(contentInfo, True)

' Sign the message.
signedCms.ComputeSignature()

' Encode the message.
Dim myCmsMessage As Byte() = signedCms.Encode()

' The signed CMS/PKCS #7 message is ready to send.
' The original content is not included in this byte array.

Комментарии

Для доступа к ключу подписи на платформа .NET Framework требуются следующие разрешения:

Применяется к