Make usage of pake input getters
Signed-off-by: Przemek Stekiel <przemyslaw.stekiel@mobica.com>
diff --git a/library/psa_crypto_pake.c b/library/psa_crypto_pake.c
index da10cdd..1a7725f 100644
--- a/library/psa_crypto_pake.c
+++ b/library/psa_crypto_pake.c
@@ -204,13 +204,25 @@
const psa_crypto_driver_pake_inputs_t *inputs)
{
psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ size_t password_len = 0;
+ psa_pake_role_t role = PSA_PAKE_ROLE_NONE;
+ psa_pake_cipher_suite_t cipher_suite = psa_pake_cipher_suite_init();
+ size_t actual_password_len = 0;
- uint8_t *password = inputs->password;
- size_t password_len = inputs->password_len;
- psa_pake_role_t role = inputs->role;
- psa_pake_cipher_suite_t cipher_suite = inputs->cipher_suite;
+ status = psa_crypto_driver_pake_get_password_len(inputs, &password_len);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
- memset(operation, 0, sizeof(mbedtls_psa_pake_operation_t));
+ status = psa_crypto_driver_pake_get_role(inputs, &role);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ status = psa_crypto_driver_pake_get_cipher_suite(inputs, &cipher_suite);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
#if defined(MBEDTLS_PSA_BUILTIN_ALG_JPAKE)
if (cipher_suite.algorithm == PSA_ALG_JPAKE) {
@@ -236,8 +248,13 @@
goto error;
}
- memcpy(operation->password, password, password_len);
- operation->password_len = password_len;
+ status = psa_crypto_driver_pake_get_password(inputs, operation->password,
+ password_len, &actual_password_len);
+ if (status != PSA_SUCCESS) {
+ goto error;
+ }
+
+ operation->password_len = actual_password_len;
operation->role = role;
operation->alg = cipher_suite.algorithm;