Custom crypto library in C
It's generally strongly recommended you use an existing library for your crypto, instead of trying to reimplement it.  One big advantage of a widely used existing library is that it's been improved over time to deal with new threats.  You may be aware of timing attacks as a current weakness, but these libraries have already solved those problems and many others, and fixed them.

OpenSSL is written in C, widely used and trusted, and could meet your needs.  Cryptlib is distributed under the Sleepycat license (sort of compatible with the GPL) and is also written in C, and has a paid support team.  GnuTLS is LGPL, if you really want GPL compatibility.