crypto: report enum strings instead of values in errors
PATCH 1/1 crypto: report enum strings instead of values in errors
Several error messages print out the raw enum value, which is less than helpful to users, as these values are not documented, nor stable across QEMU releases. Switch to use the enum string instead.
The nettle impl also had two typos where it said "algorithm" instead of "mode".
--- crypto/block.c | 6 ++++-- crypto/cipher-builtin.c | 9 ++++++--- crypto/cipher-gcrypt.c | 6 ++++-- crypto/cipher-nettle.c | 14 ++++++++------ 4 files changed, 22 insertions(+), 13 deletions(-)
crypto/block.c +4 -2
@@ -59,7 +59,8 @@ QCryptoBlock *qcrypto_block_open(QCryptoBlockOpenOptions *options,if (options->format >=G_N_ELEMENTS (qcrypto_block_drivers) || !qcrypto_block_drivers[options->format]) { -error_setg (errp,"Unsupported block driver %d" , options->format); +error_setg (errp,"Unsupported block driver %s" , + QCryptoBlockFormat_lookup[options->format]);g_free (block);return NULL ; }
@@ -88,7 +89,8 @@ QCryptoBlock *qcrypto_block_create(QCryptoBlockCreateOptions *options,if (options->format >=G_N_ELEMENTS (qcrypto_block_drivers) || !qcrypto_block_drivers[options->format]) { -error_setg (errp,"Unsupported block driver %d" , options->format); +error_setg (errp,"Unsupported block driver %s" , + QCryptoBlockFormat_lookup[options->format]);g_free (block);return NULL ; }
crypto/cipher-builtin.c +6 -3
@@ -244,7 +244,8 @@ static int qcrypto_cipher_init_aes(QCryptoCipher *cipher,if (cipher->mode !=QCRYPTO_CIPHER_MODE_CBC && cipher->mode !=QCRYPTO_CIPHER_MODE_ECB && cipher->mode !=QCRYPTO_CIPHER_MODE_XTS ) { -error_setg (errp,"Unsupported cipher mode %d" , cipher->mode); +error_setg (errp,"Unsupported cipher mode %s" , + QCryptoCipherMode_lookup[cipher->mode]);return -1 ; }
@@ -376,7 +377,8 @@ static int qcrypto_cipher_init_des_rfb(QCryptoCipher *cipher,QCryptoCipherBuiltin *ctxt;if (cipher->mode !=QCRYPTO_CIPHER_MODE_ECB ) { -error_setg (errp,"Unsupported cipher mode %d" , cipher->mode); +error_setg (errp,"Unsupported cipher mode %s" , + QCryptoCipherMode_lookup[cipher->mode]);return -1 ; }
@@ -442,7 +444,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg,break ;default :error_setg (errp, -"Unsupported cipher algorithm %d" , cipher->alg); +"Unsupported cipher algorithm %s" , + QCryptoCipherAlgorithm_lookup[cipher->alg]); goto error; }
crypto/cipher-gcrypt.c +4 -2
@@ -70,7 +70,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg, gcrymode =GCRY_CIPHER_MODE_CBC ;break ;default : -error_setg (errp,"Unsupported cipher mode %d" , mode); +error_setg (errp,"Unsupported cipher mode %s" , + QCryptoCipherMode_lookup[mode]);return NULL ; }
@@ -120,7 +121,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg,break ;default : -error_setg (errp,"Unsupported cipher algorithm %d" , alg); +error_setg (errp,"Unsupported cipher algorithm %s" , + QCryptoCipherAlgorithm_lookup[alg]);return NULL ; }
crypto/cipher-nettle.c +8 -6
@@ -227,7 +227,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg,case QCRYPTO_CIPHER_MODE_XTS :break ;default : -error_setg (errp,"Unsupported cipher mode %d" , mode); +error_setg (errp,"Unsupported cipher mode %s" , + QCryptoCipherMode_lookup[mode]);return NULL ; }
@@ -357,7 +358,8 @@ QCryptoCipher *qcrypto_cipher_new(QCryptoCipherAlgorithm alg,break ;default : -error_setg (errp,"Unsupported cipher algorithm %d" , alg); +error_setg (errp,"Unsupported cipher algorithm %s" , + QCryptoCipherAlgorithm_lookup[alg]); goto error; }
@@ -429,8 +431,8 @@ int qcrypto_cipher_encrypt(QCryptoCipher *cipher,break ;default : -error_setg (errp,"Unsupported cipher algorithm %d" , - cipher->alg); +error_setg (errp,"Unsupported cipher mode %s" , + QCryptoCipherMode_lookup[cipher->mode]);return -1 ; }return 0 ;
@@ -469,8 +471,8 @@ int qcrypto_cipher_decrypt(QCryptoCipher *cipher,break ;default : -error_setg (errp,"Unsupported cipher algorithm %d" , - cipher->alg); +error_setg (errp,"Unsupported cipher mode %s" , + QCryptoCipherMode_lookup[cipher->mode]);return -1 ; }return 0 ;
Signature · 1 line
2.7.4
Quoted 7 lines · Daniel P. Berrange
Several error messages print out the raw enum value, which is less than helpful to users, as these values are not documented, nor stable across QEMU releases. Switch to use the enum string instead.
The nettle impl also had two typos where it said "algorithm" instead of "mode".
It doesn't just say "algorithm", it actually prints it:
error_setg(errp, "Unsupported cipher algorithm %d",
cipher->alg);
Quoted 1 line
Signed-off-by Daniel P. Berrange <[email protected]>