2013-07-03 15 views
58

PEM_read_bio_PrivateKey() restituisce NULL se una chiave privata viene crittografata da DES EDE in modalità ECB. Il problema si verifica in EVP_DecryptFinal_ex():PEM_read_bio_PrivateKey() restituisce NULL solo in modalità ECB

4128:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:330:

Se la stessa chiave privata viene crittografata DES EDE in modalità CBC, questa funzione OK.

Ho controllato, questo problema è riproducibile su openssl 0.9.8r/y versioni (senza FIPS). Se openssl è costruito con FIPS, il problema non si verifica.

Che cosa causa questo comportamento?

Grazie!

+1

Benvenuti in crypto.SE. La tua domanda è probabilmente più adatta a essere posta sulla mailing list [openssl-users] (http://www.openssl.org/support/community.html). – archie

+2

ti sei assicurato di [caricare gli algoritmi appropriati?] (Http://www.openssl.org/docs/crypto/OpenSSL_add_all_algorithms.html) – javex

+0

Sì, chiamo OpenSSL_add_all_algorithms(). Inoltre ho controllato che la cifratura corretta è selezionata per la lettura di una chiave privata. Sembra strano che funzioni solo con FIPS. – Alex

risposta

1

Guardando alle origini OpenSSL, ciò può accadere solo se il riempimento nei dati crittografati non è valido. Succede con chiavi diverse e puoi fornirne una campione? E quale strumento viene utilizzato per generare tali chiavi (ad esempio lo stesso OpenSSL o no)? Probabilmente, omette il padding/o scrive zero padding invece di uno corretto.

Problemi correlati