This was just a fun side project to kill some boredom. My goal was to implement it entirely from the RFC, which I mostly succeeded in doing.
This was a while ago now, but if I remember correctly the only exception to this was the bytes for something in the RFC appeared to be backwards the best I could tell. I believe I sorted that out by just messing with random stuff until it worked.
Not exactly professional I know, but neither was this project, so whatever. It still works.. I think.