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


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
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
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 этот параметр не используется, и при необходимости всегда отображается запрос ПИН-кода.

Исключения

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
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs

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

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

Исключения

Сертификат получателя не указан.

Комментарии

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

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

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

ComputeSignature(CmsSigner)

Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
SignedCms.cs
Исходный код:
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 , представляющий подписыватель.

Исключения

Ссылка null была передана методу, который не принимает его в качестве допустимого аргумента.

Не удалось завершить криптографическую операцию.

Примеры

В следующем примере показано, как вычислить подпись 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 требуются следующие разрешения:

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