You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ut...@apache.org on 2021/02/17 13:45:20 UTC

[mynewt-core] branch master updated (e53ca22 -> 164ecd5)

This is an automated email from the ASF dual-hosted git repository.

utzig pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git.


    from e53ca22  trng: kinetis: seed RNGA with SIM->UIDL
     new a28ab7e  crypto: k64f: rename to kinetis
     new dfd1cbc  kinetis: crypto: add initial LTC support
     new 164ecd5  bsp: frdm-k82f: enable CRYPTO acceleration

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 hw/bsp/frdm-k64f/pkg.yml                           |   2 +-
 hw/bsp/frdm-k64f/src/hal_bsp.c                     |   4 +-
 hw/bsp/frdm-k82f/pkg.yml                           |   3 +
 hw/bsp/frdm-k82f/src/hal_bsp.c                     |  15 +++
 hw/bsp/frdm-k82f/syscfg.yml                        |   2 +
 .../include/crypto_kinetis/crypto_kinetis.h}       |   8 +-
 .../crypto/{crypto_k64f => crypto_kinetis}/pkg.yml |   4 +-
 .../src/crypto_kinetis.c}                          | 141 ++++++++++++++++++---
 .../src/crypto_kinetis_cau.c}                      |   2 +-
 .../{crypto_k64f => crypto_kinetis}/syscfg.yml     |  10 ++
 10 files changed, 163 insertions(+), 28 deletions(-)
 rename hw/drivers/crypto/{crypto_k64f/include/crypto_k64f/crypto_k64f.h => crypto_kinetis/include/crypto_kinetis/crypto_kinetis.h} (85%)
 rename hw/drivers/crypto/{crypto_k64f => crypto_kinetis}/pkg.yml (91%)
 rename hw/drivers/crypto/{crypto_k64f/src/crypto_k64f.c => crypto_kinetis/src/crypto_kinetis.c} (50%)
 rename hw/drivers/crypto/{crypto_k64f/src/crypto_k64f_cau.c => crypto_kinetis/src/crypto_kinetis_cau.c} (98%)
 rename hw/drivers/crypto/{crypto_k64f => crypto_kinetis}/syscfg.yml (76%)


[mynewt-core] 02/03: kinetis: crypto: add initial LTC support

Posted by ut...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit dfd1cbc27c0cc6d354d8feaa46bb5d7093d7ad53
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Wed Feb 10 08:34:01 2021 -0300

    kinetis: crypto: add initial LTC support
    
    Signed-off-by: Fabio Utzig <ut...@apache.org>
---
 .../crypto/crypto_kinetis/src/crypto_kinetis.c     | 109 ++++++++++++++++++++-
 hw/drivers/crypto/crypto_kinetis/syscfg.yml        |  10 ++
 2 files changed, 117 insertions(+), 2 deletions(-)

diff --git a/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c b/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c
index 8261f5f..a4fba3e 100644
--- a/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c
+++ b/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c
@@ -17,6 +17,7 @@
  * under the License.
  */
 
+#include <stdint.h>
 #include <string.h>
 #include "mcu/cmsis_nvic.h"
 #include <os/mynewt.h>
@@ -24,6 +25,15 @@
 #include "crypto/crypto.h"
 #include "crypto_kinetis/crypto_kinetis.h"
 
+#if MYNEWT_VAL(KINETIS_CRYPTO_USE_CAU)
+#define USE_CAU 1
+#elif MYNEWT_VAL(KINETIS_CRYPTO_USE_LTC)
+#define USE_LTC 1
+#include "fsl_ltc.h"
+#else
+#error "Unsupported CRYPTO HW"
+#endif
+
 static struct os_mutex gmtx;
 
 static inline uint8_t
@@ -39,6 +49,7 @@ ROUNDS_PER_KEYLEN(uint16_t keylen)
     }
 }
 
+#if USE_CAU
 /*
  * These routines are exported by NXP's provided CAU and mmCAU software
  * library.
@@ -107,6 +118,78 @@ kinetis_crypto_cau_aes_nr(cau_aes_func_t aes_func, const uint8_t *key,
     return i;
 }
 
+#else /* USE_LTC */
+
+static uint32_t
+kinetis_crypto_ltc_aes_encrypt(uint16_t mode, const uint8_t *key,
+        int keylen, uint8_t *iv, const uint8_t *inbuf, uint8_t *outbuf,
+        size_t len)
+{
+    status_t ret = 0;
+    uint32_t keysize = keylen / 8;
+
+    switch (mode) {
+    case CRYPTO_MODE_ECB:
+        ret = LTC_AES_EncryptEcb(LTC0, inbuf, outbuf, len, key, keysize);
+        if (ret == 0) {
+            return len;
+        }
+        break;
+    case CRYPTO_MODE_CTR:
+        ret = LTC_AES_CryptCtr(LTC0, inbuf, outbuf, len, iv, key, keysize, NULL, NULL);
+        if (ret == 0) {
+            return len;
+        }
+        break;
+    case CRYPTO_MODE_CBC:
+        ret = LTC_AES_EncryptCbc(LTC0, inbuf, outbuf, len, iv, key, keysize);
+        if (ret == 0) {
+            memcpy(iv, &outbuf[len-AES_BLOCK_LEN], AES_BLOCK_LEN);
+            return len;
+        }
+        break;
+    }
+
+    return 0;
+}
+
+static uint32_t
+kinetis_crypto_ltc_aes_decrypt(uint16_t mode, const uint8_t *key,
+        int keylen, uint8_t *iv, const uint8_t *inbuf, uint8_t *outbuf,
+        size_t len)
+{
+    status_t ret = 0;
+    uint16_t keysize = keylen / 8;
+    uint8_t iv_save[AES_BLOCK_LEN];
+
+    switch (mode) {
+    case CRYPTO_MODE_ECB:
+        ret = LTC_AES_DecryptEcb(LTC0, inbuf, outbuf, len, key, keysize, kLTC_EncryptKey);
+        if (ret == 0) {
+            return len;
+        }
+        break;
+    case CRYPTO_MODE_CTR:
+        ret = LTC_AES_CryptCtr(LTC0, inbuf, outbuf, len, iv, key, keysize, NULL, NULL);
+        if (ret == 0) {
+            return len;
+        }
+        break;
+    case CRYPTO_MODE_CBC:
+        memcpy(iv_save, &inbuf[len-AES_BLOCK_LEN], AES_BLOCK_LEN);
+        ret = LTC_AES_DecryptCbc(LTC0, inbuf, outbuf, len, iv, key, keysize, kLTC_EncryptKey);
+        if (ret == 0) {
+            memcpy(iv, iv_save, AES_BLOCK_LEN);
+            return len;
+        }
+        break;
+    }
+
+    return 0;
+}
+
+#endif
+
 static bool
 kinetis_crypto_has_support(struct crypto_dev *crypto, uint8_t op,
         uint16_t algo, uint16_t mode, uint16_t keylen)
@@ -117,11 +200,19 @@ kinetis_crypto_has_support(struct crypto_dev *crypto, uint8_t op,
         return false;
     }
 
-    if (mode != CRYPTO_MODE_ECB) {
+#if USE_CAU
+    if ((mode & CRYPTO_MODE_ECB) == 0) {
+#else
+    if ((mode & (CRYPTO_MODE_ECB | CRYPTO_MODE_CBC | CRYPTO_MODE_CTR)) == 0) {
+#endif
         return false;
     }
 
+#if USE_CAU
     if (!CRYPTO_VALID_AES_KEYLEN(keylen)) {
+#else
+    if (!ltc_check_key_size(keylen / 8)) {
+#endif
         return false;
     }
 
@@ -139,8 +230,13 @@ kinetis_crypto_encrypt(struct crypto_dev *crypto, uint16_t algo, uint16_t mode,
         return 0;
     }
 
+#if USE_CAU
     return kinetis_crypto_cau_aes_nr(cau_aes_encrypt, key, keylen, inbuf,
             outbuf, len);
+#else
+    return kinetis_crypto_ltc_aes_encrypt(mode, key, keylen, iv, inbuf,
+            outbuf, len);
+#endif
 }
 
 static uint32_t
@@ -154,8 +250,13 @@ kinetis_crypto_decrypt(struct crypto_dev *crypto, uint16_t algo, uint16_t mode,
         return 0;
     }
 
+#if USE_CAU
     return kinetis_crypto_cau_aes_nr(cau_aes_decrypt, key, keylen, inbuf,
             outbuf, len);
+#else
+    return kinetis_crypto_ltc_aes_decrypt(mode, key, keylen, iv, inbuf,
+            outbuf, len);
+#endif
 }
 
 static int
@@ -167,7 +268,11 @@ kinetis_crypto_dev_open(struct os_dev *dev, uint32_t wait, void *arg)
     assert(crypto);
 
     if (!(dev->od_flags & OS_DEV_F_STATUS_OPEN)) {
-        /* XXX need to do something here? */
+#if USE_LTC
+        LTC_Init(LTC0);
+        /* Enable differential power analysis resistance */
+        LTC_SetDpaMaskSeed(LTC0, SIM->UIDL);
+#endif
     }
 
     return OS_OK;
diff --git a/hw/drivers/crypto/crypto_kinetis/syscfg.yml b/hw/drivers/crypto/crypto_kinetis/syscfg.yml
index 8e5bb8d..adf5cdd 100644
--- a/hw/drivers/crypto/crypto_kinetis/syscfg.yml
+++ b/hw/drivers/crypto/crypto_kinetis/syscfg.yml
@@ -18,6 +18,16 @@
 #
 
 syscfg.defs:
+    KINETIS_CRYPTO_USE_CAU:
+        description: "This MCU has mmCAU HW (default)"
+        value: 1
+        restrictions:
+          - '!KINETIS_CRYPTO_USE_LTC'
+    KINETIS_CRYPTO_USE_LTC:
+        description: "This MCU has LTC HW"
+        value: 0
+        restrictions:
+          - '!KINETIS_CRYPTO_USE_CAU'
     CRYPTO_HW_AES_CBC:
         description: "This HW does not support AES-CBC mode."
         value: 0


[mynewt-core] 03/03: bsp: frdm-k82f: enable CRYPTO acceleration

Posted by ut...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit 164ecd5a1aee5a3581c80656c03cfa3d3945f4b5
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Wed Feb 10 08:35:42 2021 -0300

    bsp: frdm-k82f: enable CRYPTO acceleration
    
    Signed-off-by: Fabio Utzig <ut...@apache.org>
---
 hw/bsp/frdm-k82f/pkg.yml       |  3 +++
 hw/bsp/frdm-k82f/src/hal_bsp.c | 15 +++++++++++++++
 hw/bsp/frdm-k82f/syscfg.yml    |  2 ++
 3 files changed, 20 insertions(+)

diff --git a/hw/bsp/frdm-k82f/pkg.yml b/hw/bsp/frdm-k82f/pkg.yml
index e8caa1e..56101c6 100644
--- a/hw/bsp/frdm-k82f/pkg.yml
+++ b/hw/bsp/frdm-k82f/pkg.yml
@@ -60,6 +60,9 @@ pkg.deps.UART_3:
 pkg.deps.UART_4:
     - "@apache-mynewt-core/hw/drivers/uart/uart_hal"
 
+pkg.deps.CRYPTO:
+    - "@apache-mynewt-core/hw/drivers/crypto/crypto_kinetis"
+
 pkg.deps.ENC_FLASH_DEV:
     - "@apache-mynewt-core/hw/drivers/flash/enc_flash/ef_crypto"
 
diff --git a/hw/bsp/frdm-k82f/src/hal_bsp.c b/hw/bsp/frdm-k82f/src/hal_bsp.c
index 4460a15..2837598 100644
--- a/hw/bsp/frdm-k82f/src/hal_bsp.c
+++ b/hw/bsp/frdm-k82f/src/hal_bsp.c
@@ -39,6 +39,10 @@
 #include "trng/trng.h"
 #include "trng_kinetis/trng_kinetis.h"
 #endif
+#if MYNEWT_VAL(CRYPTO)
+#include "crypto/crypto.h"
+#include "crypto_kinetis/crypto_kinetis.h"
+#endif
 #if MYNEWT_VAL(UART_0) || MYNEWT_VAL(UART_1) || MYNEWT_VAL(UART_2) || \
     MYNEWT_VAL(UART_3) || MYNEWT_VAL(UART_4)
 #include "uart/uart.h"
@@ -114,6 +118,10 @@ static struct hash_dev os_bsp_hash;
 static struct trng_dev os_bsp_trng;
 #endif
 
+#if MYNEWT_VAL(CRYPTO)
+static struct crypto_dev os_bsp_crypto;
+#endif
+
 /*
  * What memory to include in coredump.
  */
@@ -251,6 +259,13 @@ hal_bsp_init(void)
     assert(rc == 0);
 #endif
 
+#if MYNEWT_VAL(CRYPTO)
+    rc = os_dev_create(&os_bsp_crypto.dev, "crypto",
+                       OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
+                       kinetis_crypto_dev_init, NULL);
+    assert(rc == 0);
+#endif
+
 #if MYNEWT_VAL(UART_0)
     rc = os_dev_create((struct os_dev *) &os_bsp_uart0, "uart0",
                        OS_DEV_INIT_PRIMARY, 0, uart_hal_init, NULL);
diff --git a/hw/bsp/frdm-k82f/syscfg.yml b/hw/bsp/frdm-k82f/syscfg.yml
index a1f4b43..58130d6 100644
--- a/hw/bsp/frdm-k82f/syscfg.yml
+++ b/hw/bsp/frdm-k82f/syscfg.yml
@@ -78,3 +78,5 @@ syscfg.vals:
 
     KINETIS_TRNG_USE_RNGA: 0
     KINETIS_TRNG_USE_TRNG: 1
+    KINETIS_CRYPTO_USE_CAU: 0
+    KINETIS_CRYPTO_USE_LTC: 1


[mynewt-core] 01/03: crypto: k64f: rename to kinetis

Posted by ut...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

utzig pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git

commit a28ab7ea5d0ab64e2164c2f38ca25d2d1a2fa35e
Author: Fabio Utzig <ut...@apache.org>
AuthorDate: Tue Feb 9 10:11:19 2021 -0300

    crypto: k64f: rename to kinetis
    
    Make it clear this driver should work on other Kinetis family members as
    well; the k64f uses a mmCAU which is one of the possible, and oldest, of
    the acceleration units in those parts.
    
    Signed-off-by: Fabio Utzig <ut...@apache.org>
---
 hw/bsp/frdm-k64f/pkg.yml                           |  2 +-
 hw/bsp/frdm-k64f/src/hal_bsp.c                     |  4 +--
 .../include/crypto_kinetis/crypto_kinetis.h}       |  8 +++---
 .../crypto/{crypto_k64f => crypto_kinetis}/pkg.yml |  4 +--
 .../src/crypto_kinetis.c}                          | 32 +++++++++++-----------
 .../src/crypto_kinetis_cau.c}                      |  2 +-
 .../{crypto_k64f => crypto_kinetis}/syscfg.yml     |  0
 7 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/hw/bsp/frdm-k64f/pkg.yml b/hw/bsp/frdm-k64f/pkg.yml
index c1d234d..a6df39e 100644
--- a/hw/bsp/frdm-k64f/pkg.yml
+++ b/hw/bsp/frdm-k64f/pkg.yml
@@ -67,7 +67,7 @@ pkg.deps.TRNG:
     - "@apache-mynewt-core/hw/drivers/trng/trng_kinetis"
 
 pkg.deps.CRYPTO:
-    - "@apache-mynewt-core/hw/drivers/crypto/crypto_k64f"
+    - "@apache-mynewt-core/hw/drivers/crypto/crypto_kinetis"
 
 pkg.deps.ENC_FLASH_DEV:
     - "@apache-mynewt-core/hw/drivers/flash/enc_flash/ef_crypto"
diff --git a/hw/bsp/frdm-k64f/src/hal_bsp.c b/hw/bsp/frdm-k64f/src/hal_bsp.c
index 84c5a97..a55a8e2 100644
--- a/hw/bsp/frdm-k64f/src/hal_bsp.c
+++ b/hw/bsp/frdm-k64f/src/hal_bsp.c
@@ -34,7 +34,7 @@
 #endif
 #if MYNEWT_VAL(CRYPTO)
 #include "crypto/crypto.h"
-#include "crypto_k64f/crypto_k64f.h"
+#include "crypto_kinetis/crypto_kinetis.h"
 #endif
 #if MYNEWT_VAL(ENC_FLASH_DEV)
 #include <ef_crypto/ef_crypto.h>
@@ -217,7 +217,7 @@ hal_bsp_init(void)
 #if MYNEWT_VAL(CRYPTO)
     rc = os_dev_create(&os_bsp_crypto.dev, "crypto",
                        OS_DEV_INIT_KERNEL, OS_DEV_INIT_PRIO_DEFAULT,
-                       k64f_crypto_dev_init, NULL);
+                       kinetis_crypto_dev_init, NULL);
     assert(rc == 0);
 #endif
 
diff --git a/hw/drivers/crypto/crypto_k64f/include/crypto_k64f/crypto_k64f.h b/hw/drivers/crypto/crypto_kinetis/include/crypto_kinetis/crypto_kinetis.h
similarity index 85%
rename from hw/drivers/crypto/crypto_k64f/include/crypto_k64f/crypto_k64f.h
rename to hw/drivers/crypto/crypto_kinetis/include/crypto_kinetis/crypto_kinetis.h
index 7442c8d..fde36cf 100644
--- a/hw/drivers/crypto/crypto_k64f/include/crypto_k64f/crypto_k64f.h
+++ b/hw/drivers/crypto/crypto_kinetis/include/crypto_kinetis/crypto_kinetis.h
@@ -17,8 +17,8 @@
  * under the License.
  */
 
-#ifndef __CRYPTO_K64F_H__
-#define __CRYPTO_K64F_H__
+#ifndef __CRYPTO_KINETIS_H__
+#define __CRYPTO_KINETIS_H__
 
 #include "crypto/crypto.h"
 
@@ -26,10 +26,10 @@
 extern "C" {
 #endif
 
-int k64f_crypto_dev_init(struct os_dev *dev, void *arg);
+int kinetis_crypto_dev_init(struct os_dev *dev, void *arg);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __CRYPTO_K64F_H__ */
+#endif /* __CRYPTO_KINETIS_H__ */
diff --git a/hw/drivers/crypto/crypto_k64f/pkg.yml b/hw/drivers/crypto/crypto_kinetis/pkg.yml
similarity index 91%
rename from hw/drivers/crypto/crypto_k64f/pkg.yml
rename to hw/drivers/crypto/crypto_kinetis/pkg.yml
index cbfd2f5..0180382 100644
--- a/hw/drivers/crypto/crypto_k64f/pkg.yml
+++ b/hw/drivers/crypto/crypto_kinetis/pkg.yml
@@ -17,8 +17,8 @@
 # under the License.
 #
 
-pkg.name: hw/drivers/crypto/crypto_k64f
-pkg.description: Crypto driver for NXP K64F
+pkg.name: hw/drivers/crypto/crypto_kinetis
+pkg.description: Crypto driver for NXP Kinetis Family
 pkg.author: "Apache Mynewt <de...@mynewt.apache.org>"
 pkg.homepage: "http://mynewt.apache.org/"
 pkg.keywords:
diff --git a/hw/drivers/crypto/crypto_k64f/src/crypto_k64f.c b/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c
similarity index 78%
rename from hw/drivers/crypto/crypto_k64f/src/crypto_k64f.c
rename to hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c
index ec1799f..8261f5f 100644
--- a/hw/drivers/crypto/crypto_k64f/src/crypto_k64f.c
+++ b/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis.c
@@ -22,7 +22,7 @@
 #include <os/mynewt.h>
 
 #include "crypto/crypto.h"
-#include "crypto_k64f/crypto_k64f.h"
+#include "crypto_kinetis/crypto_kinetis.h"
 
 static struct os_mutex gmtx;
 
@@ -71,7 +71,7 @@ typedef void (* cau_aes_func_t)(const unsigned char *in,
         unsigned char *out);
 
 static uint32_t
-k64f_crypto_cau_aes_nr(cau_aes_func_t aes_func, const uint8_t *key,
+kinetis_crypto_cau_aes_nr(cau_aes_func_t aes_func, const uint8_t *key,
         int keylen, const uint8_t *inbuf, uint8_t *outbuf, size_t len)
 {
     uint32_t i;
@@ -108,8 +108,8 @@ k64f_crypto_cau_aes_nr(cau_aes_func_t aes_func, const uint8_t *key,
 }
 
 static bool
-k64f_crypto_has_support(struct crypto_dev *crypto, uint8_t op, uint16_t algo,
-        uint16_t mode, uint16_t keylen)
+kinetis_crypto_has_support(struct crypto_dev *crypto, uint8_t op,
+        uint16_t algo, uint16_t mode, uint16_t keylen)
 {
     (void)op;
 
@@ -129,37 +129,37 @@ k64f_crypto_has_support(struct crypto_dev *crypto, uint8_t op, uint16_t algo,
 }
 
 static uint32_t
-k64f_crypto_encrypt(struct crypto_dev *crypto, uint16_t algo, uint16_t mode,
+kinetis_crypto_encrypt(struct crypto_dev *crypto, uint16_t algo, uint16_t mode,
         const uint8_t *key, uint16_t keylen, uint8_t *iv, const uint8_t *inbuf,
         uint8_t *outbuf, uint32_t len)
 {
     (void)iv;
 
-    if (!k64f_crypto_has_support(crypto, CRYPTO_OP_ENCRYPT, algo, mode, keylen)) {
+    if (!kinetis_crypto_has_support(crypto, CRYPTO_OP_ENCRYPT, algo, mode, keylen)) {
         return 0;
     }
 
-    return k64f_crypto_cau_aes_nr(cau_aes_encrypt, key, keylen, inbuf,
+    return kinetis_crypto_cau_aes_nr(cau_aes_encrypt, key, keylen, inbuf,
             outbuf, len);
 }
 
 static uint32_t
-k64f_crypto_decrypt(struct crypto_dev *crypto, uint16_t algo, uint16_t mode,
+kinetis_crypto_decrypt(struct crypto_dev *crypto, uint16_t algo, uint16_t mode,
         const uint8_t *key, uint16_t keylen, uint8_t *iv, const uint8_t *inbuf,
         uint8_t *outbuf, uint32_t len)
 {
     (void)iv;
 
-    if (!k64f_crypto_has_support(crypto, CRYPTO_OP_ENCRYPT, algo, mode, keylen)) {
+    if (!kinetis_crypto_has_support(crypto, CRYPTO_OP_ENCRYPT, algo, mode, keylen)) {
         return 0;
     }
 
-    return k64f_crypto_cau_aes_nr(cau_aes_decrypt, key, keylen, inbuf,
+    return kinetis_crypto_cau_aes_nr(cau_aes_decrypt, key, keylen, inbuf,
             outbuf, len);
 }
 
 static int
-k64f_crypto_dev_open(struct os_dev *dev, uint32_t wait, void *arg)
+kinetis_crypto_dev_open(struct os_dev *dev, uint32_t wait, void *arg)
 {
     struct crypto_dev *crypto;
 
@@ -174,20 +174,20 @@ k64f_crypto_dev_open(struct os_dev *dev, uint32_t wait, void *arg)
 }
 
 int
-k64f_crypto_dev_init(struct os_dev *dev, void *arg)
+kinetis_crypto_dev_init(struct os_dev *dev, void *arg)
 {
     struct crypto_dev *crypto;
 
     crypto = (struct crypto_dev *)dev;
     assert(crypto);
 
-    OS_DEV_SETHANDLERS(dev, k64f_crypto_dev_open, NULL);
+    OS_DEV_SETHANDLERS(dev, kinetis_crypto_dev_open, NULL);
 
     assert(os_mutex_init(&gmtx) == 0);
 
-    crypto->interface.encrypt = k64f_crypto_encrypt;
-    crypto->interface.decrypt = k64f_crypto_decrypt;
-    crypto->interface.has_support = k64f_crypto_has_support;
+    crypto->interface.encrypt = kinetis_crypto_encrypt;
+    crypto->interface.decrypt = kinetis_crypto_decrypt;
+    crypto->interface.has_support = kinetis_crypto_has_support;
 
     return 0;
 }
diff --git a/hw/drivers/crypto/crypto_k64f/src/crypto_k64f_cau.c b/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis_cau.c
similarity index 98%
rename from hw/drivers/crypto/crypto_k64f/src/crypto_k64f_cau.c
rename to hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis_cau.c
index 41014af..e3124da 100644
--- a/hw/drivers/crypto/crypto_k64f/src/crypto_k64f_cau.c
+++ b/hw/drivers/crypto/crypto_kinetis/src/crypto_kinetis_cau.c
@@ -18,7 +18,7 @@
  */
 
 #include <stdint.h>
-#include "crypto_k64f/crypto_k64f.h"
+#include "crypto_kinetis/crypto_kinetis.h"
 
 /*
  * CAU interface
diff --git a/hw/drivers/crypto/crypto_k64f/syscfg.yml b/hw/drivers/crypto/crypto_kinetis/syscfg.yml
similarity index 100%
rename from hw/drivers/crypto/crypto_k64f/syscfg.yml
rename to hw/drivers/crypto/crypto_kinetis/syscfg.yml