web-dev-qa-db-fra.com

erreur: le champ 'ctx' a un type incomplet EVP_CIPHER_CTX

Problème: j'ai besoin d'installer Cepstral (moteur tts) dans Freeswitch exécutant Debian 8. Freeswitch est déjà opérationnel, mais je devais le construire à partir des sources pour qu'il crée le module mod_cepstral.

Lorsque j'exécute make, voici l'erreur que j'obtiens:

In file included from ./crypto/include/prng.h:17:0,
                 from ./crypto/include/crypto_kernel.h:50,
                 from ./include/srtp.h:53,
                 from srtp/srtp.c:46:
./crypto/include/aes_icm_ossl.h:66:20: error: field ‘ctx’ has incomplete type
     EVP_CIPHER_CTX ctx;
                    ^~~
In file included from srtp/srtp.c:50:0:
./crypto/include/aes_gcm_ossl.h:58:18: error: field ‘ctx’ has incomplete type
   EVP_CIPHER_CTX ctx;
                  ^~~
Makefile:646: recipe for target 'srtp.lo' failed
make[1]: *** [srtp.lo] Error 1
make[1]: Leaving directory '/usr/src/freeswitch/libs/srtp'
Makefile:3931: recipe for target 'libs/srtp/libsrtp.la' failed
make: *** [libs/srtp/libsrtp.la] Error 2

J'ai parcouru Internet pour trouver des solutions, mais je ne suis pas un développeur et c'est bien au-dessus de ma tête. Toute aide serait appréciée.

7
Joe

Après avoir discuté avec le support de Cepstral, nous avons déterminé que Jessie (Debian 8) n'est pas encore entièrement compatible. J'ai reconstruit le serveur avec Debian 7 et cela fonctionne bien maintenant.

1
Joe
wget https://github.com/Cisco/libsrtp/archive/v2.1.0.tar.gz
tar xfv v2.1.0.tar.gz
cd libsrtp-2.1.0
./configure --prefix=/usr --enable-openssl
make shared_library && Sudo make install

Obtenez la dernière version de libsrtp.

7
mikeb

car les nouveaux OpenSSL n'exposent pas strcut EVP_CIPHER_CTX,

essaye ça

EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
EVP_CIPHER_CTX_init(ctx);
//do sth here
//...
EVP_CIPHER_CTX_free(ctx);
5
Xt Z

Il semble qu'il existe une dépendance à OpenSSL, mais la version d'OpenSSL que vous utilisez est incompatible. Vous utilisez OpenSSL 1.1.0 mais vous devez utiliser OpenSSL 1.0.2

3
Matt Caswell