 Cryptolib ends on. So I propose first to launch just an example from the packages and see that it executed properly. Then I would propose to start from blank project and try to add the library, the header file and implement the basic code example. I think it's a basic use case but it's good to know how to do this. So let's switch to QBDO. So first I propose to launch an example on the L152. You will see that there is some atolic example for this one. So easy to import in STM32 QBDO. And unfortunately on the L4 there is not any atolic project. So I propose then we will port on another board and we will see how to integrate everything from the start. Okay, so first let's try to import a basic example that is available in the package. So if I am in the package and I say I want firmware crypto for the L1 project, let's take iOS CCM for example. And there is already a true studio version. So we can just import it. So if I basic have a look in the main.c. So there is some vector test defined. Encrypt iOS CCM, Encrypt iOS CCM decrypt. A buffer comparison. Remember you have to enable the CRC clock before using the CryptoLib. Then there is an encryption. If it's working fine, we check the content of the output message as expected. If it's not, we switch off the LED. And then we decrypt the messages. We check it's good. And if it's good at the end, we should have the LED which is switched on. So let's compile this. It's already cleaned. Prefer just to restart. Let's build it. Then we can debug it. So if I step over. Oh, sorry, there is optimization. So you can see some jump, I would say. So if I just continue. I can have a look on how my LED is on. So the algorithm is OK. So let's stop debugging. So let's have a look how to use. So here we've got a function that is already implemented on the L1. So I propose to put all this stuff on L4. So where is the header? Just to understand what we will have to do. If I open it, we just need to include crypto.h. And all the rest should be in line. OK, perfect. So I propose now we start a new project for the L4. So the board I selected is the L476ergy. So let's close this project for the moment. Project close. And let's create a new one. So it has board selector L476. That's crypto. OK, so we plan to use it with crypto. So we have to enable the CRC. This could be done, thanks. In the computing, just say, OK, I want to activate the CRC. Keep this in mind when you are using crypto for sure. And I think that's it for the pinout. Nothing else to be done. OK, so our project is ready. Before adding any code, I propose that we will add the library to the linker. So here we just go in the properties. Then we should go in accessible settings. Then you've got tool settings. We want you the version with floating point unit. So we declare no floating point unit and a software implementation. Then in the linker, we just need to specify here which library we want to take. So here I will just put the library pass who by default is already done. But you can use just update it with the good one. So STM32 cube extension. We are on a pure software one. The L4 middleware STM32 cryptographic include. OK, it was not include, sorry. So let's update it. It was lib. OK, so this one is a good library pass. OK, and now I will add the library name. So here it's a little bit, I would say, not tricky, but it's to know. If I open the folder where I store the library. So GCC1, I've got lib at the start, OK? So in this name, you have to remove this lib and just give without any extension. So I just copy this name with the name of the library I want to include. And I just put it there. OK, so remember to remove the lib that is before on the dot A at the end. OK, I think that is the main things. Now we will update the include pass because we will also do an includeCrypto.h. So for the include pass of the GCC here, we will add another one. So regarding the file system. So here in the cryptographic, we'll include the ink file. OK, it should be OK, this one. And here I put some absolute path, but the better things would be to do a copy of the library and all the middleware inside your project and then to put some relative pass. But here is to go quicker. So if I apply, I think everything is ready. So now I propose just to add this include macro in our code. So in my main.c, I will just add, I miss it. OK, just include Crypto.h. I propose to have a look in this file. So as you can see, you will be maybe surprised. OK, it's definition of what we should include it. So the different algorithms. OK, what I would like it to have a look in the config.h. And in this one, so you see it's codec, and you can see that it's defined for IR here. In fact, I include the path of the L4. And in the L4, it's defined by default in this configuration file for IR. So here we have to modify it and say that we are using GCC. So here we just put a command this one and define this one. OK, so now the configuration file is sure that we are for GCC and we don't face any issue. Perfect. You can find many details about this configuration on this Crypto.h in the reference model. So now I think we could try a first build just to check the status. It seems OK. So now I propose to put the code that was in the L1 project. So here I will just do some copy past. The interfaces is the same. So it's really an advantage of the Crypto live. If you need to do some migration from one family to another one, it was one happier interfaces. So here I will just take all this stuff. So the definition of test vectors of value expected. The output messages. OK, not the GPIO. And I will put this in my example. So like private variable. I will also declare those private functions. IR is the Crypto. Preferred. So this is the three functions that I will have to copy. So the prototype. OK. Then I will need the implementation of those three functions. So it will be at the end of this folder. Got it. RS Crypt. Then I've got the RS decryption and the buffer comparison just after. And the buffer comparison. I can copy them also. So usually at the end we've got user code to be put. OK. So here I put, I will say all the different functions. Now let's go in the main and just copy the algorithm from the main. So main Cisco click config. It's already down in my initialization of the lead. I want to go. The CSS enable should be in my code already. I will just do the encrypt. Check the status. Decrypt. Check the status. All right then. OK. So I go back in my main. Here my CSS is enabled here. Then just copy past all the code here. I think there is one missing point was the declaration of status. If I will remember here. This one have to be copied also here. So I propose to try to build. It seems to works. So now let's try to debug. Everything by default should be OK. Tapecurs is connected. Let's do a step by step. After encrypt status is OK. Buffer comparison is OK. Decryption authentication is OK. And it was working. OK. So just I would like to have a look in the different variable just to check what are the. So the output messages. Sorry. So here we've got a comparison between the ciphertext. OK. And here we do. Output messages. Decrypt data and check the authentication tag. Was decrypted. And has input. We've got the output message. So it was crushed here. So we can't test. But I would say we will turn on the green LED. So the look was OK. And the operation was successful. So. I finished my hands on the purpose here was to show you how to easily port from one platform to another. And with Crypto Lib is quite easy. I also want to show you how to create project from scratch and how you can just integrate the library. Which is quite simple when you've got these tips. Thanks for your attention.