Jim Starkey wrote: > Speaking of libraries, one of the little gems I left behind is a very > nice, very easy to use crypto library called TransformLib. Each > transform has a method to get the (max) number of bytes remaining and > another to fetch the next <n> bytes. The transforms are designed to be > daisy chained, so a hex representation of the SHA-1 has of a file has a > hex transform calling the SHA transform calling the file transform.
Cool stuff, Jim, thanks for making us aware of this library! Off the top of my head, I can't think of any work we are currently working on for the Cirrus milestone that would need the library, but that said, I am sure a crypto lib will come in handy in the future, so we'll definitely keep it in mind. :) Cheers and thanks again! Jay > The transforms currently available are: > > * File transform -- reads a character or binary file > * String transform -- handles a byte array > * SHA transform -- SHA-1 hash > * DES transform -- for one way communication with the NSA > (encodes/decodes) > * RSA transform -- the obvious > * Hex transform -- translates to and from hex > * Base64 transaction -- transaction to and from base 64 > * Stuff for encoding and decoding BER representation for the RSA stuff > > plus a couple of templates for gluing together chains of transforms. > > The documentation is in storage/falcon/Transform.h in the mysql tree. > Some the code is in the Falcon tree. Things that weren't required for > the Falcon build are in the internal MySql Netfrastructure tree. > > The crypto code behind the library mostly ported from LibTomCrypt. The > license is "LibTomCrypt is public domain. As should all quality software > be." > > The transform code in Falcon is standard MySQL licensage. The stuff in > the Netfrastructure tree is tbd. > > It needs an AES transform, but I didn't need it for anything, so I never > got around to it. _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

