I plan to build my own crypto library. The project will be primarily for me to learn (and if useful for no other purpose, that is fine). In the past I have implemented a few hashes, and AES quite a few times while learning about it, but those projects were solely for me to learn, not for any field use. With this one I'd like it to be useful outside of myself if at all possible, and potentially use it in my own programs.
Now, I understand that using/implementing your own crypto is usually a bad idea (if not always), so I figure the answer to this is probably "just don't". However what makes sense in my head is: if all the tests work, the implementations should be valid. So I guess what I mean to ask is, does matching all the test vectors mean my implementations are valid mathematically? Is implementing mathematics correctly not enough because there are other things I need to plan ahead for? I know pretty much nothing about side-channel attacks, so I don't know if that has to do with the primitives in use or the system using them.
I wouldn't consider it normally, but C doesn't have a lot of crypto "toolkits" available, and the most popular one (libtomcrypt) appears to be made as a hobby project too (might be wrong on that notion).