openssl обеспечивает очень низкоуровневый интерфейс C (raw char pointers, malloc/free, raw structs вместо классов) в своих библиотечных функциях шифрования/дешифрования.
Существует ли определенная причина безопасности openssl реализуется и поддерживается как исходный C, несмотря на то, что он заявлен как библиотека C++?
OpenSSL не претендует на роль библиотеки C++. И он реализован на C, а не C++, так что он доступен для большего количества платформ и языков программирования. Большинство кросс-платформенных библиотек написаны на C по той же причине, хотя некоторые из них предоставляют C++ обертку для удобства. У OpenSSL нет такой обертки, поэтому вам придется искать стороннюю оболочку. Это не вопрос безопасности, а простота использования. Большинство платформ/языков имеют положения для использования/доступа к библиотекам C. То же самое не относится к библиотекам C++.