SignedCms.ComputeSignature Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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
signer
adalah 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
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: