struktur CMSG_SIGNER_ENCODE_INFO (wincrypt.h)
Struktur CMSG_SIGNER_ENCODE_INFO berisi informasi penanda tangan. Ini diteruskan ke CryptMsgCountersign, CryptMsgCountersignEncoded, dan secara opsional ke CryptMsgOpenToEncode sebagai anggota struktur CMSG_SIGNED_ENCODE_INFO , jika parameter dwMsgType CMSG_SIGNED.
Sintaks
typedef struct _CMSG_SIGNER_ENCODE_INFO {
DWORD cbSize;
PCERT_INFO pCertInfo;
union {
HCRYPTPROV hCryptProv;
NCRYPT_KEY_HANDLE hNCryptKey;
BCRYPT_KEY_HANDLE hBCryptKey;
} DUMMYUNIONNAME;
DWORD dwKeySpec;
CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
void *pvHashAuxInfo;
DWORD cAuthAttr;
PCRYPT_ATTRIBUTE rgAuthAttr;
DWORD cUnauthAttr;
PCRYPT_ATTRIBUTE rgUnauthAttr;
CERT_ID SignerId;
CRYPT_ALGORITHM_IDENTIFIER HashEncryptionAlgorithm;
void *pvHashEncryptionAuxInfo;
} CMSG_SIGNER_ENCODE_INFO, *PCMSG_SIGNER_ENCODE_INFO;
Anggota
cbSize
Ukuran, dalam byte, dari struktur ini.
pCertInfo
Penunjuk ke struktur CERT_INFO yang berisi
Penerbit, SerialNumber, dan anggota SubjectPublicKeyInfo .
Anggota pbData dari struktur Penerbit dan SerialNumber digabungkan secara unik mengidentifikasi sertifikat. Anggota Algoritma dari struktur SubjectPublicKeyInfo menentukan algoritma enkripsi hash yang digunakan.
DUMMYUNIONNAME
DUMMYUNIONNAME.hCryptProv
Handel ke penyedia layanan kriptografi (CSP). Jika HashEncryptionAlgorithm diatur ke szOID_PKIX_NO_SIGNATURE, handel ini dapat menjadi penanganan CSP yang diperoleh dengan menggunakan parameter dwFlags yang diatur ke CRYPT_VERIFYCONTEXT. Fungsi CNG NCryptIsKeyHandle dipanggil untuk menentukan pilihan gabungan.
DUMMYUNIONNAME.hNCryptKey
Handel ke CNG CSP. Fungsi CNG NCryptIsKeyHandle dipanggil untuk menentukan pilihan gabungan. Algoritma enkripsi baru hanya didukung dalam fungsi CNG. Fungsi CNG NCryptTranslateHandle akan dipanggil untuk mengonversi pilihan CryptoAPI hCryptProv jika perlu. Kami menyarankan agar aplikasi meneruskan, ke anggota hNCryptKey , handel CNG CSP yang dikembalikan dari fungsi NCryptOpenKey .
DUMMYUNIONNAME.hBCryptKey
dwKeySpec
Menentukan kunci privat yang akan digunakan. Anggota ini tidak digunakan ketika anggota hNCryptKey digunakan.
Jika dwKeySpec adalah nol, maka nilai AT_KEYEXCHANGE default digunakan.
Nilai dwKeySpec berikut didefinisikan untuk penyedia default.
Nilai | Makna |
---|---|
|
Kunci yang digunakan untuk mengenkripsi/mendekripsi kunci sesi. |
|
Kunci yang digunakan untuk membuat dan memverifikasi tanda tangan digital. |
HashAlgorithm
Struktur CRYPT_ALGORITHM_IDENTIFIER yang menentukan algoritma hash.
pvHashAuxInfo
Tidak digunakan. Anggota ini harus diatur ke NULL.
cAuthAttr
Jumlah elemen dalam array rgAuthAttr . Jika tidak ada atribut terautentikasi yang ada di rgAuthAttr, maka cAuthAttr adalah nol.
rgAuthAttr
Array pointer ke struktur CRYPT_ATTRIBUTE , yang masing-masing berisi informasi atribut yang diautentikasi.
Standar PKCS #9 menentukan bahwa jika ada atribut, setidaknya harus ada dua: pengidentifikasi objek jenis konten (OID) dan hash pesan. Atribut ini secara otomatis ditambahkan oleh sistem.
cUnauthAttr
Jumlah elemen dalam array rgUnauthAttr . Jika tidak ada atribut yang tidak terauthenticated, cUnauthAttr adalah nol.
rgUnauthAttr
Array penunjuk ke struktur CRYPT_ATTRIBUTE , yang masing-masing berisi informasi atribut yang tidak diaturentikasi. Atribut yang tidak terauthenticated dapat berisi countersignature, di antara kegunaan lainnya.
SignerId
Struktur CERT_ID yang berisi pengidentifikasi unik sertifikat penanda tangan. Anggota ini secara opsional dapat digunakan dengan PKCS #7 dengan Sintaks Pesan Kriptografi (CMS). Jika anggota ini bukan NULL dan anggota dwIdChoice-nya bukan nol, maka digunakan untuk mengidentifikasi sertifikat alih-alih anggota Penerbit dan SerialNumber dari struktur CERT_INFO yang ditunjukkan oleh pCertInfo. CMS mendukung struktur KEY_IDENTIFIER dan ISSUER_SERIAL_NUMBER CERT_ID. PKCS versi 1.5 hanya mendukung pilihan ISSUER_SERIAL_NUMBER CERT_ID. Anggota ini digunakan dengan CMS untuk pemrosesan PKCS #7 dan hanya dapat digunakan jika CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS ditentukan.
HashEncryptionAlgorithm
Struktur CRYPT_ALGORITHM_IDENTIFIER secara opsional digunakan dengan PKCS #7 dengan CMS. Jika anggota ini bukan NULL, algoritma yang diidentifikasi digunakan alih-alih algoritma SubjectPublicKeyInfo.Algorithm. Jika anggota ini diatur ke szOID_PKIX_NO_SIGNATURE, nilai tanda tangan hanya berisi oktet hash.
Untuk RSA, algoritma enkripsi hash biasanya sama dengan algoritma kunci publik. Untuk DSA, algoritma enkripsi hash biasanya merupakan algoritma tanda tangan DSS.
Anggota ini digunakan dengan CMS untuk pemrosesan PKCS #7 dan hanya dapat digunakan jika CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS ditentukan.
pvHashEncryptionAuxInfo
Anggota ini tidak digunakan. Anggota ini harus diatur ke NULL jika ada dalam struktur data. Anggota ini hanya ada jika CMSG_SIGNER_ENCODE_INFO_HAS_CMS_FIELDS ditentukan.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Header | wincrypt.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk