Domanda

Quando provo a decifrare un messaggio S / MIME crittografato utilizzando CMS in openssl, il metodo Decrypt mi restituisce 0 che sta per non aver avuto successo.

openssl.org dice ..

.

cms_decrypt () restituisce 1 per il successo o 0 per il fallimento.L'errore può essere ottenuto da err_get_error (3)

Quando eseguo questo ...

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 variabile di errore è 0 che indica che si è verificato un errore e il codice di errore da ERR_get_error() è anche 0. Inoltre, ERR_print_errors_fp() non stampare nulla che significa che non ci fosse alcun errore.

L'uscita dal codice sopra menzionato:

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

Qualcuno ha un suggerimento cosa sta andando storto qui?Grazie

È stato utile?

Soluzione

Dopo molte settimane di provarsi diversi approcci e frustrazione che ho finito usando PKCS # 7 Decrypt di openssl. Due CMS è fondamentalmente basato su PKCS # 7 funziona bene con la crittografia utilizzando CMS e decrittografia utilizzando PKCS7.

Il metodo che ho usato è pkcs7_decrypt().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top