日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32 基础系列教程 50 – MbedTls

發布時間:2025/4/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 基础系列教程 50 – MbedTls 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

????? mbed TLS(以前稱為PolarSSL)是TLS和SSL協議的實現,并且需要相應的加密算法和支持代碼。這是雙重許可Apache許可證?2.0版(與GPLv2許可也可)。網站上指出,mbed TLS的目標是“易于理解,使用,集成和擴展,核心SSL?C編程語言編寫,并實現SSL模塊,基本加密功能并提供各種實用功能。與OpenSSL和TLS的其他實現不同,mbed TLS設計為適合小型嵌入式設備,最小完整的TLS堆棧需要60KB的程序空間和64KB的RAM。它也是高度模塊化的:每個組件,如加密函數,可以獨立于框架的其余部分使用。因為mbedTLS是用C編程語言編寫的,沒有外部依賴,也就是說,無論是嵌入式還是桌面軟件版的編程,只要你用的到AES,RSA等加密算法,你都可以直接拿過來源碼放進你的工程中,進行編譯管理,不用帶著DLL,或者必須安裝一些不必要的庫,并且算法是標準庫,所以你懂得。并且開源。

STM32CUBE里已經集成了MBEDTLS, MBEDTLS是ARM公司的開源加密庫,遵守APACHE協議,大家可以隨便使用MBEDTLS到開源和閉源項目上。其次,除了ECC,MBEDTLS還支持AES系列對稱加密,支持基于AES的NONCE生成,支持SHA系列摘要算法等,可以應用在各種加密場景。

?

示例詳解

基于硬件平臺: 正點源子的stm32f4 探索者開發板,MCU 的型號是?STM32F4ZET6, 使用stm32cubemx 工具自動產生的配置工程,使用KEIL5編譯代碼。本示例所用的開發板及部分原理圖:

?

  • 關于CUBEMX工具及KEIL工具的操作將不再細講,如果還有不熟悉的可以查看之前的教程文檔。下面直接介紹工程配置:
  • ?

  • 系統時鐘樹
  • ?

  • 串口配置(用于程序調試)
  • ?

  • RCC配置
  • SYS配置
  • RNG配置(非必需),MbedTls庫要用到隨機數,剛好在本實例用到的MCU有RNG處理器,我們這里為MbedTls選擇硬件RNG,當然如果MCU不支持的話,這里可以不用管,在MbedTls配置時選用 軟件RNG即可。

  • Rtc配置(非必需),MbedTls庫用到時有時候需要時間支持,當然也可以在配置時不定義MBEDTLS_HAVE_TIME或用戶在實現time函數時來個空實現。本例我們將定義MbedTls庫的MBEDTLS_HAVE_TIME特性,并利用RTC來實現時間獲取。
  • ?

  • MbedTls庫配置(也可以用KEIL MDK自帶的庫,操作方式類似于第48,49講中的CJSON和Jansson庫的使用)
  • 特性支持》

    模塊(本例會演示SHA1算法,所以要高啟對應用支持)》

    ?

  • 引腳配置,用到引腳極少
  • 堆棧配置(堆要大些):
  • ?

  • 工程代碼
  • 找到mbedtls.c文件,按下圖所示在對應區域加入代碼(演示EC非對稱加密公鑰導入):
  • ?

  • 在main.c 中main函數中USER CODE BEGIN Includes、USER CODE0, USER CODE1、USER CODE 2, USER CODE 4 區域加入如下圖所示代碼:
  • ?

    c) 編譯工程,調試程序, (注:在使用探索者F4調試時,下載或仿真調試時先不要PC串口工具連接上開發板的USB_232接口,有可能導致程序運行不了--boot0引腳電平不對,可以先跑起來再在PC串口工具上連接相應端口!!,可按下面的具體操作步驟來操作—>>? )

    ?

    串口已打開,程序全速運行(F5或單擊全速運行圖標)相看運行結果:

    ?

    這個時候可以在串口中看到如下程序運行結果(成功打印出JSON數據并成功解析):

    為了驗證算法執行結果是否正確,我們可以到在線hash計算網站上驗證一下吉果,瀏覽器開打 http://www.kjson.com/encrypt/hash/?fm=map 輸入文本“HeLLo ZhangShiSan!!”查看結果與我們程序中串口輸出的一致!!

    到此本次的基于MbedTls庫的簡單演示操作就完成了,本實例演示了非對稱加密ECC算法的公鑰導入操作,對稱加密算法 AES 的加密碼與解密,HASH算法,sha1,sha256/224的使用,MbedTls庫還支持非常對的加密算法如RAS等,有興趣的同學或有實際應用案例的同學可以好好研究與利用一下。

    OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,會有不定期技術干貨推出!!

    ?

    文中源碼資料下載,在公眾號里給十三發消息:

    下載|STM32基礎系列教程50

    ?

    關注十三公眾號

    ?

    總結

    以上是生活随笔為你收集整理的STM32 基础系列教程 50 – MbedTls的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。