Использование криптографического ускорителя с uclinux и внешней библиотекой
В настоящее время я пытаюсь найти лучшую методологию для интеграции модуля криптографического ускорения, присутствующего в моем MCU, чтобы воспользоваться преимуществами повышения производительности не только в моих пользовательских приложениях, но также и во внешней библиотеке SSL/TLS, которую мне нужно будет использовать.
На моей платформе работает устройство Freescale Kinetis (ARM Cortex-M4) с дистрибутивом uCLinux. В настоящее время мне удалось запустить mbed-TLS (Polar SSL) в пространстве пользователя. У меня также есть возможность запустить CyASSL от WolfSSL. Сейчас я смотрю на лучшую стратегию для запуска периферийного устройства "Картографический блок ускорения" (MMCAU) на процессоре вместе с моим приложением. Сам код не должен быть слишком сложным для интеграции, так как Freescale предоставляет библиотеку с C-обертками вокруг кода, оптимизированного для сборки. Сложность заключается в том, что промежуточное ПО позволяет использовать криптоблок в пользовательских приложениях и библиотеках.
Одна из возможностей - переписать модуль криптографического ядра linux (cryptodev), чтобы использовать MMCAU в моих пользовательских приложениях (это будет иметь преимущество для доступа к MMCAU из нескольких пользовательских приложений, в то время как моя платформа не поддерживает общие библиотеки). Однако я не уверен, что это лучшая стратегия. Кроме того, mbed-TLS, по-видимому, не обеспечивает поддержку родного криптографического драйвера linux.
Здесь предлагаются другие альтернативы ( http://cryptodev-linux.org/), но, поскольку я не настоящий специалист по Linux, я не совсем уверен, что будет лучшим решением в моем случае.
Хотелось бы получить совет о том, какую стратегию лучше использовать, чтобы получить наиболее гибкое решение, при этом получая выгоду от улучшенной производительности аппаратного шифрования.
1 ответ
Вы смогли решить это? Библиотека wolfSSL поддерживает аппаратное ускорение в FreeScale Kinetis, включая MMCAU. Вы можете использовать MMCAU, определив FREESCALE_MMCAU
в вашем проекте. Это было прежде всего проверено с FreeScale MQX, но все еще может быть использовано с другими операционными системами. Это более старая запись в блоге (не содержит обновленной ссылки на страницу golfub wolfSSL), но содержит некоторую информацию, которая может оказаться полезной.