iphone content-management-system openssl encryption smime

iphone - El descifrado de OpenSSL falla pero el código de error es 0



content-management-system encryption (2)

Por curiosidad, ¿qué devuelve ERR_peek_last_error ()?

Cuando trato de descifrar un mensaje S / MIME encriptado usando CMS en OpenSSL, el método de descifrado me devuelve 0 que significa que no tuvo éxito.

OpenSSL.org dice ...

CMS_decrypt () devuelve 1 para el éxito o 0 para el fracaso. El error se puede obtener de ERR_get_error (3)

Cuando corro esto ...

out = BIO_new(BIO_s_mem()); if (!out) assert(false); int error = CMS_decrypt(cms, rkey, rcert, out, NULL, 0); if (!error) { fprintf(stderr, "Error Decrypting Data/n"); printf("error code: %d/n", ERR_get_error()); ERR_print_errors_fp(stderr); assert(false); }

... la variable de error es 0, lo que significa que ocurrió un error y el código de error de ERR_get_error() también es 0. Además, ERR_print_errors_fp() no imprime nada, lo que significa que no hubo ningún error.

El resultado del código mencionado anteriormente:

Error Decrypting Data error code: 0 Assertion failed: (false)

¿Alguien tiene una sugerencia de lo que está mal aquí? Gracias


Después de muchas semanas de probar diferentes enfoques y frustraciones, terminé usando el descifrado PKCS # 7 de OpenSSL. Debido a que CMS se basa básicamente en PKCS # 7, funciona bien con cifrado usando CMS y descifrado usando PKCS7.

El método que he usado es pkcs7_decrypt() .