slink at schokola
Oct 28, 2010, 5:34 AM
Post #1 of 1
[patch] vmod_digest (message digests and encoders for VCL)
I have now finished a first version of vmod_digest. From the .rst file:
--- 8< ---
Common use cases:
The digest module makes message digest (hashing) functions available
for use from VCLs. As a side-product, it also provides various string
The provided functions are named according to the scheme given in the
--- 8< ---
I'd appreciate reviews, constructive criticism and suggestions for improvements.
* Byte order for sha256 and md5 is little endian. I wanted to verify the
implementation on a SPARC machine but had to realize that at this point
varnish does not at all work on this platform, probably due to memory
alignment errors. I will try to find time to look into this, make varnish
work on SPARC and check the implementation as a side effect.
I can't give a time frame for this.
* I've added a base64 encoder and also modified the base64 decoder by phk to
return the correct length of the decoded byte stream.
base64_encode went into libvarnishapi because I thought it would be a good
idea to have it next to base64_decode
* the crc32 code is phk's implementation originally used for hashing of cache
objects in Varnish, md5 is from FreeBSD
At this point, only vmod_digests uses crc32 and md5, but should other
components need those as well, it should be easy to move the code (into
something like libvmd)
* All of the VCC glue code is generated by a simplistic python script which
evolved from vcc.py. I wanted to retain vcc.py, so this script generates
imput to vcc.py.
* The patch contains my first ever rst file. Any improvements welcome.