Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions src/rp2_common/pico_mbedtls/pico_mbedtls.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@
#include "pico.h"
#include "pico/rand.h"
#include "mbedtls/sha256.h"
#include "mbedtls/version.h"

#if MBEDTLS_VERSION_MAJOR < 3
#define mbedtls_sha256_starts mbedtls_sha256_starts_ret
#define mbedtls_sha256_update mbedtls_sha256_update_ret
#define mbedtls_sha256_finish mbedtls_sha256_finish_ret
#endif

/* Function to feed mbedtls entropy. */
int mbedtls_hardware_poll(void *data __unused, unsigned char *output, size_t len, size_t *olen) {
Expand Down Expand Up @@ -38,17 +45,17 @@ void mbedtls_sha256_free(__unused mbedtls_sha256_context *ctx) {
pico_sha256_cleanup(ctx);
}

int mbedtls_sha256_starts_ret(mbedtls_sha256_context *ctx, int is224) {
int mbedtls_sha256_starts(mbedtls_sha256_context *ctx, int is224) {
hard_assert(!is224); // that's annoying
return pico_sha256_start_blocking(ctx, SHA256_BIG_ENDIAN, PICO_MBEDTLS_SHA256_ALT_USE_DMA);
}

int mbedtls_sha256_update_ret(mbedtls_sha256_context *ctx, const unsigned char *input, size_t ilen) {
int mbedtls_sha256_update(mbedtls_sha256_context *ctx, const unsigned char *input, size_t ilen) {
pico_sha256_update_blocking(ctx, input, ilen);
return 0;
}

int mbedtls_sha256_finish_ret( mbedtls_sha256_context *ctx, unsigned char output[32]) {
int mbedtls_sha256_finish( mbedtls_sha256_context *ctx, unsigned char output[32]) {
sha256_result_t result;
pico_sha256_finish(ctx, &result);
memcpy(output, result.bytes, 32);
Expand Down
Loading