cryptnox-sdk-esp32 1.0.0
ESP32 SDK for Cryptnox Hardware Wallet
Loading...
Searching...
No Matches
esp32_crypto_provider.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: LGPL-3.0-or-later
3 * Copyright (c) 2026 Cryptnox SA
4 */
5
29
30#ifndef ESP32_CRYPTO_PROVIDER_H
31#define ESP32_CRYPTO_PROVIDER_H
32
33#include "CW_CryptoProvider.h"
34#include "CW_Defs.h"
35
62class ESP32CryptoProvider : public CW_CryptoProvider {
63public:
76 bool sha256(const uint8_t* data, size_t len, uint8_t* out) override;
77
90 bool sha512(const uint8_t* data, size_t len, uint8_t* out) override;
91
111 uint16_t aesCbcEncrypt(const uint8_t* in, uint16_t len, uint8_t* out,
112 const uint8_t* key, uint8_t keyLen,
113 uint8_t* iv, bool bitPadding) override;
114
133 uint16_t aesCbcDecrypt(uint8_t* in, uint16_t len, uint8_t* out,
134 const uint8_t* key, uint8_t keyLen,
135 uint8_t* iv, bool bitPadding) override;
136
152 bool ecdh(const uint8_t* pubKey, const uint8_t* privKey,
153 uint8_t* secret, CW_Curve curve) override;
154
171 bool makeKey(uint8_t* pubKey, uint8_t* privKey,
172 CW_Curve curve) override;
173
190 bool random(uint8_t* dest, unsigned size) override;
191
208 bool ecdsaVerify(const uint8_t* pubKey64, const uint8_t* hash,
209 size_t hashLen, const uint8_t* sig,
210 CW_Curve curve) override;
211
214};
215
216#endif /* ESP32_CRYPTO_PROVIDER_H */
CW_CryptoProvider backed by mbedTLS and the ESP32 hardware TRNG.
bool ecdh(const uint8_t *pubKey, const uint8_t *privKey, uint8_t *secret, CW_Curve curve) override
Compute an ECDH shared secret.
bool makeKey(uint8_t *pubKey, uint8_t *privKey, CW_Curve curve) override
Generate an ephemeral EC key pair.
bool random(uint8_t *dest, unsigned size) override
Fill a buffer with cryptographically random bytes.
~ESP32CryptoProvider() override
Default destructor.
bool ecdsaVerify(const uint8_t *pubKey64, const uint8_t *hash, size_t hashLen, const uint8_t *sig, CW_Curve curve) override
Verify an ECDSA signature.
uint16_t aesCbcDecrypt(uint8_t *in, uint16_t len, uint8_t *out, const uint8_t *key, uint8_t keyLen, uint8_t *iv, bool bitPadding) override
Decrypt a buffer with AES-CBC.
bool sha512(const uint8_t *data, size_t len, uint8_t *out) override
Compute SHA-512 over a contiguous buffer.
bool sha256(const uint8_t *data, size_t len, uint8_t *out) override
Compute SHA-256 over a contiguous buffer.
uint16_t aesCbcEncrypt(const uint8_t *in, uint16_t len, uint8_t *out, const uint8_t *key, uint8_t keyLen, uint8_t *iv, bool bitPadding) override
Encrypt a buffer with AES-CBC.