Bagikan melalui


struktur CMSG_ENVELOPED_ENCODE_INFO (wincrypt.h)

Struktur CMSG_ENVELOPED_ENCODE_INFO berisi informasi yang diperlukan untuk mengodekan pesan yang diselimuti. Ini diteruskan ke CryptMsgOpenToEncode jika parameter dwMsgType CMSG_ENVELOPED.

Sintaks

typedef struct _CMSG_ENVELOPED_ENCODE_INFO {
  DWORD                       cbSize;
  HCRYPTPROV_LEGACY           hCryptProv;
  CRYPT_ALGORITHM_IDENTIFIER  ContentEncryptionAlgorithm;
  void                        *pvEncryptionAuxInfo;
  DWORD                       cRecipients;
  PCERT_INFO                  *rgpRecipients;
  PCMSG_RECIPIENT_ENCODE_INFO rgCmsRecipients;
  DWORD                       cCertEncoded;
  PCERT_BLOB                  rgCertEncoded;
  DWORD                       cCrlEncoded;
  PCRL_BLOB                   rgCrlEncoded;
  DWORD                       cAttrCertEncoded;
  PCERT_BLOB                  rgAttrCertEncoded;
  DWORD                       cUnprotectedAttr;
  PCRYPT_ATTRIBUTE            rgUnprotectedAttr;
} CMSG_ENVELOPED_ENCODE_INFO, *PCMSG_ENVELOPED_ENCODE_INFO;

Anggota

cbSize

Ukuran, dalam byte, dari struktur ini.

hCryptProv

Anggota ini tidak digunakan dan harus diatur ke NULL.

Windows Server 2003 dan Windows XP: Menentukan handel ke penyedia layanan kriptografi (CSP) yang digunakan untuk melakukan enkripsi konten, enkripsi kunci penerima, dan ekspor. Kunci privat hCryptProv tidak digunakan.

Jenis data anggota ini adalah HCRYPTPROV.

Kecuali ada alasan kuat untuk meneruskan penyedia kriptografi tertentu di hCryptProv, teruskan nol untuk menggunakan penyedia RSA atau DSS default.

ContentEncryptionAlgorithm

Struktur CRYPT_ALGORITHM_IDENTIFIER yang berisi jenis algoritma tanda tangan dan parameter tambahan terkait dalam bentuk yang dikodekan.

Anggota struktur pszObjId menentukan algoritma yang digunakan untuk mengenkripsi konten pesan.

Algoritma enkripsi berikut memerlukan vektor inisialisasi delapan byte (IV) yang dikodekan dalam anggota parameter struktur. Untuk detailnya, lihat CryptSetKeyParam.

Nilai Makna
CALG_DES
szOID_OIWSEC_desCBC
CALG_3DES
szOID_RSA_DES_EDE3_CBC
 

Jika anggota cbData dari anggota Parameter adalah nol, STRING OCTET yang dikodekan Abstract Syntax Notation One (ASN.1) yang berisi IV dihasilkan menggunakan CryptGenRandom.

Algoritma szOID_RSA_RC2CBC (CALG_RC2) mengharuskan anggota Parameter pbData menjadi struktur CRYPT_RC2_CBC_PARAMETERS yang dikodekan. Jika anggota cbData dari anggota Parameter adalah nol, CRYPT_RC2_CBC_PARAMETERS yang dikodekan ASN.1 dihasilkan dengan nilai default 40 untuk anggota dwVersion . Ini mengatur panjang kunci default menjadi 40 bit. Panjang kunci default ini dapat diganti dengan pvEncryptionAuxInfo yang menunjuk ke struktur CMSG_RC2_AUX_INFO yang berisi panjang kunci yang diinginkan.

Catatan Pada dekripsi, jika IV ada, CryptSetKeyParam dipanggil dengan IV sebelum dekripsi dimulai.
 

pvEncryptionAuxInfo

Penunjuk ke struktur tergantung pada algoritma enkripsi.

Nilai Makna
RC2

CMSG_RC2_AUX_INFO

RC4

CMSG_RC4_AUX_INFO

SP3 atau kompatibel

CMSG_SP3_COMPATIBLE_AUX_INFO

Semua algoritma enkripsi lainnya
NULL

cRecipients

Jumlah elemen dalam array rgpRecipients atau rgCmsRecipients .

rgpRecipients

Array pointer ke struktur CERT_INFO , masing-masing berisi Penerbit sertifikat penerima, SerialNumber, dan SubjectPublicKeyInfo. Array ini hanya dapat digunakan untuk penerima yang diidentifikasi oleh Penerbit dan nomor seri mereka. Jika rgpRecipients bukan NULL, rgCmsRecipients harus NULL.

rgCmsRecipients

Opsional. Array pointer ke struktur CMSG_RECIPIENT_ENCODE_INFO yang berisi informasi penerima. Jika rgCmsRecipients bukan NULL, rgpRecipients harus NULL. CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

cCertEncoded

Pilihan. Nilai DWORD yang menunjukkan jumlah sertifikat yang dikodekan dalam array rgCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

rgCertEncoded

Pilihan. Array struktur CERT_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

cCrlEncoded

Pilihan. Nilai DWORD yang menunjukkan jumlah daftar pencabutan sertifikat (CRL) yang dikodekan dalam array rgCRLEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

rgCrlEncoded

Pilihan. Array struktur CRL_BLOB . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

cAttrCertEncoded

Pilihan. Nilai DWORD yang menunjukkan jumlah atribut sertifikat yang dikodekan dalam array rgAttrCertEncoded . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

rgAttrCertEncoded

Pilihan. Array struktur CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan anggota ini.

cUnprotectedAttr

Pilihan. Nilai DWORD yang menunjukkan jumlah atribut yang tidak terlindungi dalam array rgUnprotectedAttr . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

rgUnprotectedAttr

Pilihan. Array struktur CRYPT_ATTRIBUTE . CMSG_ENVELOPED_ENCODE_INFO_HAS_CMS_FIELDS harus ditentukan untuk mereferensikan bidang ini.

Persyaratan

   
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header wincrypt.h

Lihat juga

CERT_INFO

CRYPT_ALGORITHM_IDENTIFIER