/**
 * \brief Set callback for AES
 *
 * \param dev_inst Device structure pointer.
 * \param source Interrupt source.
 * \param callback callback function pointer.
 * \param irq_level interrupt level.
 */
void aes_set_callback(struct aes_dev_inst *const dev_inst,
		aes_interrupt_source_t source, aes_callback_t callback,
		uint8_t irq_level)
{
	aes_callback_pointer = callback;
	irq_register_handler((IRQn_Type)AESA_IRQn, irq_level);
	aes_enable_interrupt(dev_inst, source);
}
예제 #2
0
파일: aes.c 프로젝트: 119/bcm-wiced-sdk
/**
 * \brief Set callback for AES
 *
 * \param p_aes Base address of the AES instance.
 * \param source Interrupt source.
 * \param callback callback function pointer.
 * \param irq_level interrupt level.
 */
void aes_set_callback(Aes *const p_aes,
		aes_interrupt_source_t source, aes_callback_t callback,
		uint8_t irq_level)
{
	if (source == AES_INTERRUPT_DATA_READY) {
		aes_callback_pointer[0] = callback;
	} else if (source == AES_INTERRUPT_UNSPECIFIED_REGISTER_ACCESS) {
		aes_callback_pointer[1] = callback;
	}
	irq_register_handler((IRQn_Type)AES_IRQn, irq_level);
	aes_enable_interrupt(p_aes, source);
}
예제 #3
0
/**
 * \brief The main function.
 */
int main(void)
{
	uint8_t key;

	/* Initialize the SAM system */
	sysclk_init();
	board_init();

	/* Initialize the console  */
	configure_console();

	/* Output example information */
	printf("-- AES Example --\r\n");
	printf("-- %s\n\r", BOARD_NAME);
	printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__);

	/* Enable the AES module. */
	aes_get_config_defaults(&g_aes_cfg);
	aes_init(AES, &g_aes_cfg);
	aes_enable();

	/* Enable AES interrupt. */
	aes_enable_interrupt(AES, AES_INTERRUPT_DATA_READY);

	/* Display menu */
	display_menu();

	while (1) {
		scanf("%c", (char *)&key);

		switch (key) {
		case 'h':
			display_menu();
			break;

		case 'e':
			printf("GCM mode encryption test.\r\n");
			gcm_mode_encryption_test();
			break;

		case 'd':
			printf("GCM mode decryption test.\r\n");
			gcm_mode_decryption_test();
			break;

		default:
			break;
		}
	}
}