Bagikan melalui


SignedCms.ComputeSignature Metode

Definisi

Membuat tanda tangan dan menambahkan tanda tangan ke pesan CMS/PKCS #7.

Overload

ComputeSignature(CmsSigner, Boolean)

Membuat tanda tangan menggunakan penanda tangan yang ditentukan dan menambahkan tanda tangan ke pesan CMS/PKCS #7.

ComputeSignature()

Membuat tanda tangan dan menambahkan tanda tangan ke pesan CMS/PKCS #7.

ComputeSignature(CmsSigner)

Membuat tanda tangan menggunakan penanda tangan yang ditentukan dan menambahkan tanda tangan ke pesan CMS/PKCS #7.

ComputeSignature(CmsSigner, Boolean)

Sumber:
SignedCms.cs
Sumber:
SignedCms.cs
Sumber:
SignedCms.cs

Membuat tanda tangan menggunakan penanda tangan yang ditentukan dan menambahkan tanda tangan ke pesan 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)

Parameter

signer
CmsSigner

Objek CmsSigner yang mewakili penanda tangan.

silent
Boolean

Hanya .NET Core dan .NET 5+: true untuk meminta kunci pembukaan dengan perintah PIN dinonaktifkan, jika didukung; jika tidak, false. Dalam .NET Framework, parameter ini tidak digunakan dan perintah PIN selalu ditampilkan, jika diperlukan.

Pengecualian

signeradalah null.

Operasi kriptografi tidak dapat diselesaikan.

.NET Framework saja: Sertifikat penandatanganan tidak ditentukan.

Hanya .NET Core dan .NET 5+: Sertifikat penandatanganan tidak ditentukan.

Keterangan

.NET Core saja: Parameter silent tidak berpengaruh jika CmsSigner.PrivateKey nilainya tidak null. Nilai yang disediakan mengontrol apakah menghitung tanda tangan menunjukkan perintah PIN atau tidak. Bahkan ketika PrivateKey properti null dan silent parameter diatur ke true, beberapa kombinasi sistem operasi dan opsi penanda tangan masih dapat menghasilkan perintah PIN.

Izin berikut diperlukan untuk menampilkan antarmuka pengguna pada .NET Framework:

Izin berikut diperlukan untuk mengakses kunci tanda tangan pada .NET Framework:

Berlaku untuk

ComputeSignature()

Sumber:
SignedCms.cs
Sumber:
SignedCms.cs
Sumber:
SignedCms.cs

Membuat tanda tangan dan menambahkan tanda tangan ke pesan CMS/PKCS #7.

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

Pengecualian

.NET Framework (semua versi) dan .NET Core 3.0 dan yang lebih baru: Sertifikat penerima tidak ditentukan.

.NET Core versi 2.2 dan yang lebih lama: Tidak ada sertifikat penanda tangan yang disediakan.

Keterangan

Metode ini berhasil jika SubjectIdentifierType.NoSignature disediakan sebagai signerIdentifierType argumen dari salah SignedCms satu overload konstruktor. Jika tidak, itu melemparkan pengecualian.

Izin berikut diperlukan untuk mengakses kunci tanda tangan pada .NET Framework:

Berlaku untuk

ComputeSignature(CmsSigner)

Sumber:
SignedCms.cs
Sumber:
SignedCms.cs
Sumber:
SignedCms.cs

Membuat tanda tangan menggunakan penanda tangan yang ditentukan dan menambahkan tanda tangan ke pesan 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)

Parameter

signer
CmsSigner

Objek CmsSigner yang mewakili penanda tangan.

Pengecualian

Referensi null diteruskan ke metode yang tidak menerimanya sebagai argumen yang valid.

Operasi kriptografi tidak dapat diselesaikan.

Contoh

Contoh berikut menunjukkan langkah-langkah untuk menghitung tanda tangan pada SignedCms pesan dengan konten pesan yang tidak dilepaskan. Dalam hal ini, konten pesan disertakan SignedCms dalam pesan.

// 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.

Contoh berikut menunjukkan langkah-langkah untuk menghitung tanda tangan pada SignedCms pesan dengan konten pesan yang dicopot. Dalam hal ini, konten pesan harus diverifikasi secara independen dari SignedCms pesan.

// 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.

Keterangan

Izin berikut diperlukan untuk mengakses kunci tanda tangan pada .NET Framework:

Berlaku untuk