Microsoft加密API禁用RSAES-OAEP密钥传输算法的使用
我CryptEncryptMessage用来生成PKCS#7一封信封邮件。我正在使用szOID_NIST_AES256_CBC作为加密算法。 生成的消息似乎是有效的,但是它是RSAES-OAEP针对密钥传输算法的,它在野外的支持有限(Thunderbird,OpenSSL SMIME Module等不支持它)。 我希望CAPI恢复为旧版本RSAencryption以进行密钥传输。 有没有办法做到这一点,如果有办法而不是使用,我可以回复到低级消息传递功能 CryptEncryptMessage但是即使使用低级功能,我也找不到方法。 码: CRYPT_ENCRYPT_MESSAGE_PARA EncryptMessageParams; EncryptMessageParams.cbSize = sizeof(CMSG_ENVELOPED_ENCODE_INFO); EncryptMessageParams.dwMsgEncodingType = PKCS_7_ASN_ENCODING; EncryptMessageParams.ContentEncryptionAlgorithm.pszObjId = szOID_NIST_AES256_CBC; EncryptMessageParams.ContentEncryptionAlgorithm.Parameters.cbData = 0; EncryptMessageParams.ContentEncryptionAlgorithm.Parameters.pbData = 0; EncryptMessageParams.hCryptProv = NULL; EncryptMessageParams.pvEncryptionAuxInfo = NULL; EncryptMessageParams.dwFlags = 0; EncryptMessageParams.dwInnerContentType = 0; BYTE pbEncryptedBlob[640000]; DWORD pcbEncryptedBlob = 640000; BOOL retval = CryptEncryptMessage(&EncryptMessageParams, cRecipientCert, pRecipCertContextArray, pbMsgText, …