Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Advanced Embedded Cryptography Masterclass: Real-World Secure Storage & End-to-End Communication with STM32
Welcome
Tools and Resources Needed
Overview of the NUCLEO-F411 Development Board (1:48)
Security Fundamentals
Common Security Standards (2:19)
Some Security Best Practices (2:06)
The 6 Key Principles of Security (3:09)
The Interplay of the Security Fundamental Principles (2:31)
The Attack Surface (3:34)
Understanding Defense in Depth (1:40)
Setting Up
Downloading CubeIDE (2:34)
Getting the right Package and Setting Up the Project Tree (21:19)
Installing CubeIDE (2:38)
Testing the Project Setup (15:54)
Getting the Required Documentation (7:41)
Developing some System Drivers for Implementing Real World Examples
Important information about this section
Programming: Enabling the Floating Point Unit (18:00)
Programming: Developing the UART Driver-Analyzing the Documentation (11:35)
Programming: Developing the UART Driver- Listing out the Steps (4:00)
Programming: Developing the UART Driver- Implementing the Init. Function (22:13)
Programming: Developing the UART Driver- Implementing the Write Function (5:39)
Programming: Developing the UART Driver- Testing (6:39)
Programming: Developing the System Timebase- Analyzing the Documentation (8:28)
Programming: Developing the System Timebase- Implementing the Init. Function (9:52)
Programming: Developing the System Timebase- Implementing other Functions (12:15)
Programmming: Developing the System Timebase-Testing (5:34)
Programming: Developing the System BSP- Listing out the Required Functions (7:55)
Programming: Developing the System BSP- Implementing the LED Driver (5:01)
Programming: Developing the System BSP- Implementing the Push Button Driver (4:00)
Programming: Developing the System BSP- Testing (3:35)
Programming: Developing the System ADC Driver-Analyzing the Documentation (5:21)
Programming: Developing the System ADC Driver- Listing out the Steps (5:27)
Programming: Developing the System ADC Driver- Implementing the Init. Function (13:21)
Programming: Developing the System ADC Driver- Implementing the ADC Read Function (14:05)
Programming : Analyzing the Documentation for the SPI Driver (7:34)
Programming : Intializing the GPIO Pins for SPI (11:00)
Programming : Implementaing Structures for Configruation Parameters (15:29)
Programming : Configuring the Parameters (15:41)
Programming : Writing the SPI Initialization function (14:55)
Programming : Writing the SPI Transmit Function (Pt.1) (9:27)
Programming : Writing the SPI Transmit Function (Pt.2) (10:26)
Programming : Transmitting 16-bit Data (17:54)
Programming : Transmitting 8-bit Data (6:46)
Programming : Receiving Data (11:05)
Programming : Testing the SPI Driver (15:47)
Configuring the STM32 Cryptogrqphic Library
Getting the STM32 Cryptographic Library (1:31)
Programming: Implementing the CMOX Low Level File (7:16)
Programming: Analyzing the Files of the Library (4:00)
Programming: Integrating the STM32 Cryptographic Library (7:36)
The Advanced Encryption Standard(AES)
Programming: Working with AES-CBC: Initializing the Buffers (5:37)
Programming: Listing Out the Steps (3:32)
Programming: Encrypting Data with the AES-CBC Algorithm(Pt.1) (8:03)
Programming: Encrypting Data with the AES-CBC Algorithm(Pt.2) (3:46)
Programming: Comparing the Expected Ciphertext to the Computed Ciphertext (4:04)
Programming: Decrypting Data with the AES-CBC Algorithm (4:56)
Programming: Testing the Implementing (5:30)
Working with Sensor Data
Programming: Declaring the Buffers (7:46)
Programming: Decomposing and Recombining ADC Values (4:50)
Programming: Listing Out the Steps (3:19)
Programming: Completing the System (20:42)
AES-256
Programming: Working with the AES-256 Algorithm (4:24)
PKCS#7 Padding
Understaning PKCS#7 Padding (8:03)
Programming: The Need for Padding (3:25)
Programming: Implementing the Padding Functions (9:28)
Programming: Applying PKCS#7 Padding (20:29)
The Determininstic Random Bit Generator(DRBG)
Programming: Contructing the DRBG Context (7:12)
Programming: Declaring the Input Parameters (4:38)
Programming: Generating Random Data with the DRBG (10:03)
Programming: Implementing the Key and IV Generating Function for the AES Algorithm (8:09)
Programming: Testing the System with Key and IV Generated by the DRBG (5:52)
Introduction to Embedded Systems Storage Media
Important Information bout this Section
Introduction to Storage Media (3:43)
Comparison of Different Storage Media (2:26)
Introduction to File Systems
Introduction to File Systems (3:03)
Considerations of File Systems for Embedded Systems (2:34)
Implementing File Systems on Embedded Devices (4:54)
File System Allocation Algorithms (3:20)
Strategies for Minimizing Fragmentation on File Systems (2:51)
File Allocation Table (FAT)
Understanding the FAT File System (4:15)
Variants of the FAT File System (1:34)
The FatFs File System for Embedded Devices
Overview of the FatFs File System (4:14)
The FatFs Architecture (3:24)
Common FatFs APIs (5:01)
The Generic Low Level Driver (2:37)
Programming : Integerating the FatFs Middleware (Pt.1) (19:39)
Programming : Integerating the FatFs Middleware (Pt.2) (3:15)
Secure Digital (SD) Card Drivers
Overview of Secure Digital(SD) Cards (4:14)
The SD Card Data Transfer Protocol (2:28)
Understanding the SD Protocol Command Structure (4:56)
The SD Protocol Response Types and CRC (2:44)
Categories of SD Cards based on Size (2:06)
Developing the Bare-Metal SD Card Driver
Programming : Listing out the required functions (4:24)
Programming : Implementing the SD SPI Initialization function (7:28)
Programming : Configuring the Slave Select Pin (6:50)
Programming : Analyzing the Disk I/O Layer (10:45)
Programming : Implementing the Timeout Callback (10:20)
Programming : Implementing the Slave Select and DeSelect functions (2:37)
Programming : Transmitting Bytes to the SD Card (5:32)
Programming : Receiving Bytes from the SD Card (3:54)
Programming : Defining the SD Commands (7:08)
Programming : Implementing the PowerOn function (17:12)
Programming : Waiting for the SD Card to be Ready (4:13)
Programming : Receiving Data Blocks (4:36)
Programming : Transmitting Data Blocks (11:27)
Programming : Implementing the Send Command function (9:37)
SD Card Driver Disk I/O Functions
Programming : Implementing the DiskIO Initialization function(Pt.1) (18:27)
Programming : Implementing the DiskIO Initialization function(Pt.2) (14:07)
Programming : Implementing the DiskIO Read function (11:16)
Programming : Implementing the DiskIO Write function (10:25)
Programming : Analyzing the SDC Protocol Documentation (9:09)
Programming : Implementing the DiskIO Control function (Pt.1) (13:23)
Programming : Implementing the DiskIO Control function (Pt.2) (8:31)
The FatFs Layer
Programming : Implementing the Target I/O file (16:33)
Programming : Linking the SD Card Layer to FatFs (10:32)
Developing File System Applications
Programming : Initializing the SD Card and FatFs (9:11)
Programming : Mounting the Drive (10:25)
Programming : Getting the Capacity and Free Size (13:09)
Programming : Writing to Files and Reading from Files (15:30)
Programming : Writing to Files and Reading from Files using f_read/write (13:18)
Teach online with
Programming : Writing the SPI Transmit Function (Pt.1)
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock