Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Varnish: Dev

[patch] vmod_digest (message digests and encoders for VCL)

 

 

Varnish dev RSS feed   Index | Next | Previous | View Threaded


slink at schokola

Oct 28, 2010, 5:34 AM

Post #1 of 1 (302 views)
Permalink
[patch] vmod_digest (message digests and encoders for VCL)

Hi,

I have now finished a first version of vmod_digest. From the .rst file:


--- 8< ---

SYNOPSIS
========

import digest;

digest.DIGEST_ENCODER(STRING)

digest.encode_ENCODER(STRING)

Common use cases:

digest.sha256_hexlc(STRING)

digest.md5_hexlc(STRING)

digest.encode_base64(STRING)

DESCRIPTION
===========

The digest module makes message digest (hashing) functions available
for use from VCLs. As a side-product, it also provides various string
encoders.

The provided functions are named according to the scheme given in the
synopsis.

--- 8< ---


I'd appreciate reviews, constructive criticism and suggestions for improvements.


Implementation notes:

* 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.

Thanks, Nils
Attachments: vmod_digest.patch (58.1 KB)

Varnish dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.