Forráskód Böngészése

Merge branch 'feature/update_mbedtls_config_approach' into 'master'

Modify esp_config include approach

See merge request espressif/esp-idf!5382
Angus Gratton 6 éve
szülő
commit
596209de69

+ 44 - 0
components/mbedtls/port/esp32/aes.c

@@ -408,6 +408,50 @@ int esp_aes_crypt_ctr( esp_aes_context *ctx,
     return 0;
 }
 
+/*
+ * AES-OFB (Output Feedback Mode) buffer encryption/decryption
+ */
+int esp_aes_crypt_ofb( esp_aes_context *ctx,
+                           size_t length,
+                           size_t *iv_off,
+                           unsigned char iv[16],
+                           const unsigned char *input,
+                           unsigned char *output )
+{
+    int ret = 0;
+    size_t n;
+
+    if ( ctx == NULL || iv_off == NULL || iv == NULL ||
+        input == NULL || output == NULL ) {
+            return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+    }
+
+    n = *iv_off;
+
+    if( n > 15 ) {
+        return( MBEDTLS_ERR_AES_BAD_INPUT_DATA );
+    }
+
+    esp_aes_acquire_hardware();
+
+    esp_aes_setkey_hardware(ctx, ESP_AES_ENCRYPT);
+
+    while( length-- ) {
+        if( n == 0 ) {
+            esp_aes_block( iv, iv );
+        }
+        *output++ =  *input++ ^ iv[n];
+
+        n = ( n + 1 ) & 0x0F;
+    }
+
+    *iv_off = n;
+
+    esp_aes_release_hardware();
+
+    return( ret );
+}
+
 /* Below XTS implementation is copied aes.c of mbedtls library. 
  * When MBEDTLS_AES_ALT is defined mbedtls expects alternate
  * definition of XTS functions to be available. Even if this 

+ 3 - 0
components/mbedtls/port/include/aes_alt.h

@@ -47,6 +47,9 @@ typedef esp_aes_context mbedtls_aes_context;
 #if defined(MBEDTLS_CIPHER_MODE_CTR)
 #define mbedtls_aes_crypt_ctr       esp_aes_crypt_ctr
 #endif
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+#define mbedtls_aes_crypt_ofb       esp_aes_crypt_ofb
+#endif
 #if defined(MBEDTLS_CIPHER_MODE_XTS)
 typedef esp_aes_xts_context mbedtls_aes_xts_context;
 #define mbedtls_aes_xts_init            esp_aes_xts_init

+ 25 - 0
components/mbedtls/port/include/esp32/aes.h

@@ -281,6 +281,31 @@ int esp_aes_xts_setkey_enc( esp_aes_xts_context *ctx,
                                 const unsigned char *key,
                                 unsigned int keybits );
 
+/**
+ * \brief       This function performs an AES-OFB (Output Feedback Mode)
+ *              encryption or decryption operation.
+ *
+ * \param ctx      The AES context to use for encryption or decryption.
+ *                 It must be initialized and bound to a key.
+ * \param length   The length of the input data.
+ * \param iv_off   The offset in IV (updated after use).
+ *                 It must point to a valid \c size_t.
+ * \param iv       The initialization vector (updated after use).
+ *                 It must be a readable and writeable buffer of \c 16 Bytes.
+ * \param input    The buffer holding the input data.
+ *                 It must be readable and of size \p length Bytes.
+ * \param output   The buffer holding the output data.
+ *                 It must be writeable and of size \p length Bytes.
+ *
+ * \return         \c 0 on success.
+ */
+int esp_aes_crypt_ofb( esp_aes_context *ctx,
+                       size_t length,
+                       size_t *iv_off,
+                       unsigned char iv[16],
+                       const unsigned char *input,
+                       unsigned char *output );
+
 /**
  * \brief          This function prepares an XTS context for decryption and
  *                 sets the decryption key.

+ 0 - 9
components/mbedtls/port/include/mbedtls/config.h

@@ -1,9 +0,0 @@
-/* This shim header is added so that any application code
-   which includes "mbedtls/config.h" directly gets the correct
-   config. */
-#pragma once
-#if !defined(MBEDTLS_CONFIG_FILE)
-#include_next "mbedtls/config.h"
-#else
-#include MBEDTLS_CONFIG_FILE
-#endif

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 147 - 485
components/mbedtls/port/include/mbedtls/esp_config.h


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott