Fungsi CryptMsgCalculateEncodedLength (wincrypt.h)
Fungsi CryptMsgCalculateEncodedLength menghitung jumlah maksimum byte yang diperlukan untuk pesan kriptografi yang dikodekan mengingat jenis pesan, parameter pengodean, dan panjang total data yang akan dikodekan. Perhatikan bahwa hasilnya akan selalu lebih besar dari atau sama dengan jumlah byte aktual yang diperlukan.
Sintaks
DWORD CryptMsgCalculateEncodedLength(
[in] DWORD dwMsgEncodingType,
[in] DWORD dwFlags,
[in] DWORD dwMsgType,
[in] void const *pvMsgEncodeInfo,
[in, optional] LPSTR pszInnerContentObjID,
[in] DWORD cbData
);
Parameter
[in] dwMsgEncodingType
Menentukan jenis pengodean yang digunakan. Selalu dapat diterima untuk menentukan jenis pengodean sertifikat dan pesan dengan menggabungkannya dengan operasi bitwise-OR seperti yang ditunjukkan dalam contoh berikut:
X509_ASN_ENCODING | PKCS_7_ASN_ENCODING
Jenis pengodean yang saat ini ditentukan adalah:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] dwFlags
Bendera yang saat ini ditentukan diperlihatkan dalam tabel berikut.
Nilai | Makna |
---|---|
|
Menunjukkan bahwa output yang dialirkan tidak akan memiliki pembungkus ContentInfo luar (seperti yang didefinisikan oleh PKCS #7). Ini membuatnya cocok untuk dialirkan ke dalam pesan yang tertutup. |
|
Menunjukkan bahwa ada data yang dicopot yang disediakan untuk panggilan berikutnya ke CryptMsgUpdate. |
|
Digunakan untuk menghitung ukuran pengodean DER pesan yang akan disarangkan di dalam pesan yang diselimuti. Ini sangat berguna ketika streaming sedang dilakukan. |
|
Konten dalam tipe non-Data dienkapsulasi dalam STRING OCTET. Bendera ini berlaku untuk pesan Yang Ditandatangani dan Diselimuti. |
[in] dwMsgType
Jenis pesan yang ditentukan saat ini diperlihatkan dalam tabel berikut ini.
Nilai | Makna |
---|---|
|
String oktet (BYTE). |
|
|
|
|
|
Tidak diterapkan. |
|
|
|
Tidak diterapkan. |
[in] pvMsgEncodeInfo
Penunjuk ke data yang akan dikodekan. Jenis data yang diarahkan tergantung pada nilai dwMsgType. Untuk detailnya, lihat tabel dwMsgType .
[in, optional] pszInnerContentObjID
Saat memanggil CryptMsgCalculateEncodedLength dengan data yang disediakan untuk CryptMsgUpdate yang sudah dikodekan , pengidentifikasi objek yang sesuai diteruskan dalam pszInnerContentObjID. Jika pszInnerContentObjID adalah NULL, jenis konten dalam diasumsikan tidak telah dikodekan sebelumnya, dan dikodekan sebagai string oktet dan diberikan jenis CMSG_DATA.
Saat streaming digunakan, pszInnerContentObjID harus NULL atau szOID_RSA_data.
Pengidentifikasi objek algoritma berikut umumnya digunakan:
- szOID_RSA_data
- szOID_RSA_signedData
- szOID_RSA_envelopedData
- szOID_RSA_signEnvData
- szOID_RSA_digestedData
- szOID_RSA_encryptedData
- SPC_INDIRECT_DATA_OBJID
[in] cbData
Ukuran, dalam byte, konten.
Nilai kembali
Mengembalikan panjang yang diperlukan untuk pesan kriptografi yang dikodekan. Panjang ini mungkin bukan panjang yang tepat tetapi tidak akan kurang dari panjang yang diperlukan. Nol dikembalikan jika fungsi gagal.
Untuk mengambil informasi kesalahan yang diperluas, gunakan fungsi GetLastError . Tabel berikut mencantumkan kode kesalahan yang paling sering dikembalikan.
Menampilkan kode | Deskripsi |
---|---|
|
Tipe pesan tidak valid. |
|
Algoritma kriptografi tidak diketahui. |
|
Satu atau beberapa argumen tidak valid. |
Persyaratan
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | wincrypt.h |
Pustaka | Crypt32.lib |
DLL | Crypt32.dll |