* RFID: pull antenna down when emulating * Rfid: fixed HID emulation by adding zero pulse every 4 bits * Rfid: HID emulation fixed with DSP based FSK oscillator. * Rfid: receive 125KHz clock for emulation timer from antenna and comparator * Rfid: commented unused variable * Firmware: rollback changes in f6. * Add F7 target based on F6. * F7/F6: update cube projects, apply changes to the targets, update linker scripts with correct RAM start values. * FuriHal: RFID init routine. * Scripts: update OTP tool for v11 board Co-authored-by: Aleksandr Kutuzov <alleteam@gmail.com>
		
			
				
	
	
		
			148 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
  ******************************************************************************
 | 
						|
  * @file    aes.c
 | 
						|
  * @brief   This file provides code for the configuration
 | 
						|
  *          of the AES instances.
 | 
						|
  ******************************************************************************
 | 
						|
  * @attention
 | 
						|
  *
 | 
						|
  * <h2><center>© Copyright (c) 2021 STMicroelectronics.
 | 
						|
  * All rights reserved.</center></h2>
 | 
						|
  *
 | 
						|
  * This software component is licensed by ST under Ultimate Liberty license
 | 
						|
  * SLA0044, the "License"; You may not use this file except in compliance with
 | 
						|
  * the License. You may obtain a copy of the License at:
 | 
						|
  *                             www.st.com/SLA0044
 | 
						|
  *
 | 
						|
  ******************************************************************************
 | 
						|
  */
 | 
						|
 | 
						|
/* Includes ------------------------------------------------------------------*/
 | 
						|
#include "aes.h"
 | 
						|
 | 
						|
/* USER CODE BEGIN 0 */
 | 
						|
 | 
						|
/* USER CODE END 0 */
 | 
						|
 | 
						|
CRYP_HandleTypeDef hcryp1;
 | 
						|
__ALIGN_BEGIN static const uint32_t pKeyAES1[4] __ALIGN_END = {
 | 
						|
                            0x00000000,0x00000000,0x00000000,0x00000000};
 | 
						|
CRYP_HandleTypeDef hcryp2;
 | 
						|
__ALIGN_BEGIN static const uint32_t pKeyAES2[4] __ALIGN_END = {
 | 
						|
                            0x00000000,0x00000000,0x00000000,0x00000000};
 | 
						|
 | 
						|
/* AES1 init function */
 | 
						|
void MX_AES1_Init(void)
 | 
						|
{
 | 
						|
 | 
						|
  /* USER CODE BEGIN AES1_Init 0 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_Init 0 */
 | 
						|
 | 
						|
  /* USER CODE BEGIN AES1_Init 1 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_Init 1 */
 | 
						|
  hcryp1.Instance = AES1;
 | 
						|
  hcryp1.Init.DataType = CRYP_DATATYPE_32B;
 | 
						|
  hcryp1.Init.KeySize = CRYP_KEYSIZE_128B;
 | 
						|
  hcryp1.Init.pKey = (uint32_t *)pKeyAES1;
 | 
						|
  hcryp1.Init.Algorithm = CRYP_AES_ECB;
 | 
						|
  hcryp1.Init.DataWidthUnit = CRYP_DATAWIDTHUNIT_WORD;
 | 
						|
  hcryp1.Init.KeyIVConfigSkip = CRYP_KEYIVCONFIG_ALWAYS;
 | 
						|
  if (HAL_CRYP_Init(&hcryp1) != HAL_OK)
 | 
						|
  {
 | 
						|
    Error_Handler();
 | 
						|
  }
 | 
						|
  /* USER CODE BEGIN AES1_Init 2 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_Init 2 */
 | 
						|
 | 
						|
}
 | 
						|
/* AES2 init function */
 | 
						|
void MX_AES2_Init(void)
 | 
						|
{
 | 
						|
 | 
						|
  /* USER CODE BEGIN AES2_Init 0 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_Init 0 */
 | 
						|
 | 
						|
  /* USER CODE BEGIN AES2_Init 1 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_Init 1 */
 | 
						|
  hcryp2.Instance = AES2;
 | 
						|
  hcryp2.Init.DataType = CRYP_DATATYPE_32B;
 | 
						|
  hcryp2.Init.KeySize = CRYP_KEYSIZE_128B;
 | 
						|
  hcryp2.Init.pKey = (uint32_t *)pKeyAES2;
 | 
						|
  hcryp2.Init.Algorithm = CRYP_AES_ECB;
 | 
						|
  hcryp2.Init.DataWidthUnit = CRYP_DATAWIDTHUNIT_WORD;
 | 
						|
  hcryp2.Init.KeyIVConfigSkip = CRYP_KEYIVCONFIG_ALWAYS;
 | 
						|
  if (HAL_CRYP_Init(&hcryp2) != HAL_OK)
 | 
						|
  {
 | 
						|
    Error_Handler();
 | 
						|
  }
 | 
						|
  /* USER CODE BEGIN AES2_Init 2 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_Init 2 */
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
void HAL_CRYP_MspInit(CRYP_HandleTypeDef* crypHandle)
 | 
						|
{
 | 
						|
 | 
						|
  if(crypHandle->Instance==AES1)
 | 
						|
  {
 | 
						|
  /* USER CODE BEGIN AES1_MspInit 0 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_MspInit 0 */
 | 
						|
    /* AES1 clock enable */
 | 
						|
    __HAL_RCC_AES1_CLK_ENABLE();
 | 
						|
  /* USER CODE BEGIN AES1_MspInit 1 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_MspInit 1 */
 | 
						|
  }
 | 
						|
  else if(crypHandle->Instance==AES2)
 | 
						|
  {
 | 
						|
  /* USER CODE BEGIN AES2_MspInit 0 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_MspInit 0 */
 | 
						|
    /* AES2 clock enable */
 | 
						|
    __HAL_RCC_AES2_CLK_ENABLE();
 | 
						|
  /* USER CODE BEGIN AES2_MspInit 1 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_MspInit 1 */
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
void HAL_CRYP_MspDeInit(CRYP_HandleTypeDef* crypHandle)
 | 
						|
{
 | 
						|
 | 
						|
  if(crypHandle->Instance==AES1)
 | 
						|
  {
 | 
						|
  /* USER CODE BEGIN AES1_MspDeInit 0 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_MspDeInit 0 */
 | 
						|
    /* Peripheral clock disable */
 | 
						|
    __HAL_RCC_AES1_CLK_DISABLE();
 | 
						|
  /* USER CODE BEGIN AES1_MspDeInit 1 */
 | 
						|
 | 
						|
  /* USER CODE END AES1_MspDeInit 1 */
 | 
						|
  }
 | 
						|
  else if(crypHandle->Instance==AES2)
 | 
						|
  {
 | 
						|
  /* USER CODE BEGIN AES2_MspDeInit 0 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_MspDeInit 0 */
 | 
						|
    /* Peripheral clock disable */
 | 
						|
    __HAL_RCC_AES2_CLK_DISABLE();
 | 
						|
  /* USER CODE BEGIN AES2_MspDeInit 1 */
 | 
						|
 | 
						|
  /* USER CODE END AES2_MspDeInit 1 */
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
/* USER CODE BEGIN 1 */
 | 
						|
 | 
						|
/* USER CODE END 1 */
 | 
						|
 | 
						|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 |