cancel
Showing results for 
Search instead for 
Did you mean: 

Using CHCHA20 crypto functions (STM32 CryptoLib 3.1.5)

GCalin
Associate

Hello everyone,

I was wondering the proper way to use the STM32_CHACHA_20_Encrypt() and STM32_CHACHA_20_Decrypt() functions available on the ST CryptoLib. I run the standard demo code on a STM32F072C8 MCU and it apparently run correctly, returning PASSED on the Buffercmp() that compares the function outputs to the expected const arrays declared statically.

Then I wrote a small code snipped, to encrypt a 'Test' buffer and decrypts it in sequence:

---------------------

 Plaintext[0] = 'T';

 Plaintext[1] = 'e';

 Plaintext[2] = 's';

 Plaintext[3] = 'T';

 // Encrypt

 status = STM32_CHACHA_20_Encrypt( (uint8_t *) Plaintext, 4, Key, IV, sizeof(IV), OutputMessage, &OutputMessageLength);

 // Copy encrypted output into Plaintext buffer

 for(idx=0;idx<4;idx++) Plaintext[idx] = OutputMessage[idx];

 // Decrypt

 status = STM32_CHACHA_20_Decrypt( (uint8_t *) Plaintext, 4, Key, IV, sizeof(IV), OutputMessage, &OutputMessageLength);

 // Copy deencrypted output back into Plaintext buffer

 for(idx=0;idx<4;idx++) Plaintext[idx] = OutputMessage[idx];

--------------------------------------------

The code returns and encrypted buffer of 0x85 0xCE 0x85 0x64, but when I try to decrypt it, it does not work as expected, returning 0x1A 0x63 0x71 0x6D.

Does anyone have experience using these functions of the CryptoLib?

Gabriel

0 REPLIES 0