В библиотеке openssl есть практически все виды шифрования, хэширования, подписания и т.д. и т.п.
Исходники библиотеки openssl на языке С (естественно).