mbedtls-alt: aligned alternative implementation return value with mbedtls

mbedtls interfaces overwritten by nuttx crypto driver, change return value of mbedtls interfaces from return value of nuttx crypto driver into starndard return value of mbedtls

Signed-off-by: makejian <makejian@xiaomi.com>
This commit is contained in:
makejian 2025-07-28 15:25:20 +08:00 committed by Xiang Xiao
parent 4ecdb92e61
commit 08fdbb03bb
5 changed files with 89 additions and 9 deletions

View file

@ -107,7 +107,12 @@ int mbedtls_cipher_cmac_update(FAR mbedtls_cipher_context_t *ctx,
ctx->cmac_ctx->dev.crypt.flags |= COP_FLAG_UPDATE;
ctx->cmac_ctx->dev.crypt.src = (caddr_t)input;
ctx->cmac_ctx->dev.crypt.len = ilen;
return cryptodev_crypt(&ctx->cmac_ctx->dev);
if (cryptodev_crypt(&ctx->cmac_ctx->dev) != 0)
{
return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_cipher_cmac_finish(FAR mbedtls_cipher_context_t *ctx,
@ -123,6 +128,11 @@ int mbedtls_cipher_cmac_finish(FAR mbedtls_cipher_context_t *ctx,
ctx->cmac_ctx->dev.crypt.flags = 0;
ctx->cmac_ctx->dev.crypt.mac = (caddr_t)output;
ret = cryptodev_crypt(&ctx->cmac_ctx->dev);
if (ret != 0)
{
ret = MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
}
cryptodev_free_session(&ctx->cmac_ctx->dev);
cryptodev_free(&ctx->cmac_ctx->dev);
return ret;

View file

@ -46,7 +46,12 @@ int mbedtls_poly1305_starts(FAR mbedtls_poly1305_context *ctx,
ctx->session.mac = CRYPTO_POLY1305;
ctx->session.mackey = (caddr_t)key;
ctx->session.mackeylen = 32;
return cryptodev_get_session(ctx);
if (cryptodev_get_session(ctx) != 0)
{
return MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_poly1305_update(FAR mbedtls_poly1305_context *ctx,
@ -57,7 +62,12 @@ int mbedtls_poly1305_update(FAR mbedtls_poly1305_context *ctx,
ctx->crypt.flags |= COP_FLAG_UPDATE;
ctx->crypt.src = (caddr_t)input;
ctx->crypt.len = ilen;
return cryptodev_crypt(ctx);
if (cryptodev_crypt(ctx) != 0)
{
return MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_poly1305_finish(FAR mbedtls_poly1305_context *ctx,
@ -69,6 +79,11 @@ int mbedtls_poly1305_finish(FAR mbedtls_poly1305_context *ctx,
ctx->crypt.flags = 0;
ctx->crypt.mac = (caddr_t)mac;
ret = cryptodev_crypt(ctx);
if (ret != 0)
{
ret = MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA;
}
cryptodev_free_session(ctx);
return ret;
}

View file

@ -48,7 +48,12 @@ void mbedtls_sha1_free(FAR mbedtls_sha1_context *ctx)
int mbedtls_sha1_starts(FAR mbedtls_sha1_context *ctx)
{
ctx->session.mac = CRYPTO_SHA1;
return cryptodev_get_session(ctx);
if (cryptodev_get_session(ctx) != 0)
{
return MBEDTLS_ERR_SHA1_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_sha1_update(FAR mbedtls_sha1_context *ctx,
@ -59,7 +64,12 @@ int mbedtls_sha1_update(FAR mbedtls_sha1_context *ctx,
ctx->crypt.flags |= COP_FLAG_UPDATE;
ctx->crypt.src = (caddr_t)input;
ctx->crypt.len = ilen;
return cryptodev_crypt(ctx);
if (cryptodev_crypt(ctx) != 0)
{
return MBEDTLS_ERR_SHA1_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_sha1_finish(FAR mbedtls_sha1_context *ctx,
@ -71,6 +81,11 @@ int mbedtls_sha1_finish(FAR mbedtls_sha1_context *ctx,
ctx->crypt.flags = 0;
ctx->crypt.mac = (caddr_t)output;
ret = cryptodev_crypt(ctx);
if (ret != 0)
{
ret = MBEDTLS_ERR_SHA1_BAD_INPUT_DATA;
}
cryptodev_free_session(ctx);
return ret;
}

View file

@ -47,6 +47,11 @@ void mbedtls_sha256_free(FAR mbedtls_sha256_context *ctx)
int mbedtls_sha256_starts(FAR mbedtls_sha256_context *ctx, int is224)
{
if (is224 != 0 && is224 != 1)
{
return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA;
}
if (is224)
{
ctx->session.mac = CRYPTO_SHA2_224;
@ -56,7 +61,12 @@ int mbedtls_sha256_starts(FAR mbedtls_sha256_context *ctx, int is224)
ctx->session.mac = CRYPTO_SHA2_256;
}
return cryptodev_get_session(ctx);
if (cryptodev_get_session(ctx) != 0)
{
return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_sha256_update(FAR mbedtls_sha256_context *ctx,
@ -67,7 +77,12 @@ int mbedtls_sha256_update(FAR mbedtls_sha256_context *ctx,
ctx->crypt.flags |= COP_FLAG_UPDATE;
ctx->crypt.src = (caddr_t)input;
ctx->crypt.len = ilen;
return cryptodev_crypt(ctx);
if (cryptodev_crypt(ctx) != 0)
{
return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_sha256_finish(FAR mbedtls_sha256_context *ctx,
@ -79,6 +94,11 @@ int mbedtls_sha256_finish(FAR mbedtls_sha256_context *ctx,
ctx->crypt.flags = 0;
ctx->crypt.mac = (caddr_t)output;
ret = cryptodev_crypt(ctx);
if (ret != 0)
{
ret = MBEDTLS_ERR_SHA256_BAD_INPUT_DATA;
}
cryptodev_free_session(ctx);
return ret;
}

View file

@ -47,6 +47,11 @@ void mbedtls_sha512_free(FAR mbedtls_sha512_context *ctx)
int mbedtls_sha512_starts(FAR mbedtls_sha512_context *ctx, int is384)
{
if (is384 != 0 && is384 != 1)
{
return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA;
}
if (is384)
{
ctx->session.mac = CRYPTO_SHA2_384;
@ -56,7 +61,12 @@ int mbedtls_sha512_starts(FAR mbedtls_sha512_context *ctx, int is384)
ctx->session.mac = CRYPTO_SHA2_512;
}
return cryptodev_get_session(ctx);
if (cryptodev_get_session(ctx) != 0)
{
return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_sha512_update(FAR mbedtls_sha512_context *ctx,
@ -67,7 +77,12 @@ int mbedtls_sha512_update(FAR mbedtls_sha512_context *ctx,
ctx->crypt.flags |= COP_FLAG_UPDATE;
ctx->crypt.src = (caddr_t)input;
ctx->crypt.len = ilen;
return cryptodev_crypt(ctx);
if (cryptodev_crypt(ctx) != 0)
{
return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA;
}
return 0;
}
int mbedtls_sha512_finish(FAR mbedtls_sha512_context *ctx,
@ -79,6 +94,11 @@ int mbedtls_sha512_finish(FAR mbedtls_sha512_context *ctx,
ctx->crypt.flags = 0;
ctx->crypt.mac = (caddr_t)output;
ret = cryptodev_crypt(ctx);
if (ret != 0)
{
ret = MBEDTLS_ERR_SHA512_BAD_INPUT_DATA;
}
cryptodev_free_session(ctx);
return ret;
}