crypto: use consistent error reporting pattern for unsupported cipher modes
Not all paths in qcrypto_cipher_ctx_new() were correctly distinguishing between valid user input for cipher mode (which should report a user facing error), vs program logic errors (which should assert). Reported-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
586ac2c67d
commit
41162dd6ee
@ -525,8 +525,10 @@ static QCryptoCipher *qcrypto_cipher_ctx_new(QCryptoCipherAlgorithm alg,
|
||||
case QCRYPTO_CIPHER_MODE_CTR:
|
||||
drv = &qcrypto_nettle_des_driver_ctr;
|
||||
break;
|
||||
default:
|
||||
case QCRYPTO_CIPHER_MODE_XTS:
|
||||
goto bad_cipher_mode;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
||||
ctx = g_new0(QCryptoNettleDES, 1);
|
||||
@ -551,8 +553,10 @@ static QCryptoCipher *qcrypto_cipher_ctx_new(QCryptoCipherAlgorithm alg,
|
||||
case QCRYPTO_CIPHER_MODE_CTR:
|
||||
drv = &qcrypto_nettle_des3_driver_ctr;
|
||||
break;
|
||||
default:
|
||||
case QCRYPTO_CIPHER_MODE_XTS:
|
||||
goto bad_cipher_mode;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
||||
ctx = g_new0(QCryptoNettleDES3, 1);
|
||||
@ -663,8 +667,10 @@ static QCryptoCipher *qcrypto_cipher_ctx_new(QCryptoCipherAlgorithm alg,
|
||||
case QCRYPTO_CIPHER_MODE_CTR:
|
||||
drv = &qcrypto_nettle_cast128_driver_ctr;
|
||||
break;
|
||||
default:
|
||||
case QCRYPTO_CIPHER_MODE_XTS:
|
||||
goto bad_cipher_mode;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
||||
ctx = g_new0(QCryptoNettleCAST128, 1);
|
||||
@ -741,8 +747,12 @@ static QCryptoCipher *qcrypto_cipher_ctx_new(QCryptoCipherAlgorithm alg,
|
||||
case QCRYPTO_CIPHER_MODE_ECB:
|
||||
drv = &qcrypto_nettle_sm4_driver_ecb;
|
||||
break;
|
||||
default:
|
||||
case QCRYPTO_CIPHER_MODE_CBC:
|
||||
case QCRYPTO_CIPHER_MODE_CTR:
|
||||
case QCRYPTO_CIPHER_MODE_XTS:
|
||||
goto bad_cipher_mode;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
||||
ctx = g_new0(QCryptoNettleSm4, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user