git fetch git://<a href="http://github.com/SoftwareMaven/otp.git" target="_blank">github.com/SoftwareMaven/otp.git</a>  streaming_crypto_functions<div><br></div><div><span style="font-family:Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;font-size:11px;line-height:15px"><pre style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;line-height:1.4em;white-space:pre-wrap;word-wrap:break-word;width:48em">

Add true streaming AES (CTR) encryption and streaming HMAC operations

The current crypto module implementations require all of the data
being encrypted or authenticated to be in memory at one time. When
trying to encrypt or authenticate a large file (on order of GBs),
this is problematic.

The implementation of AES CTR uses the same underlying implementation
as aes_ctr_[en|de]crypt, but hands the state back to the client
after every operation.

The HMAC implementation differs from the previous implementations of
sha_mac and md5_mac. The old implementations did not utilize the
OpenSSL HMAC implementation. In order to ensure that I didn't
implement something incorrectly, I chose to use the OpenSSL HMAC
implementation directly, since it handles streaming as well. This
has the added side benefit of allowing other hash functions to be
used as desired (for instances, I added support for ripemd160
hashing).

While I haven't done this, it seems like the existing md5_mac and
sha_mac functions could either be depricated or redefined in terms
of the new hmac_ functions.</pre></span><div><br></div><br>-- <br><b><span style="font-size:large">Travis Jensen</span></b><div><b></b><span style="font-size:large"><b><br></b></span>Read the Software Maven @ <a href="http://softwaremaven.innerbrane.com/" target="_blank">http://softwaremaven.innerbrane.com/</a><br>


Read my LinkedIn profile @ <a href="http://www.linkedin.com/in/travisjensen" target="_blank">http://www.linkedin.com/in/travisjensen</a><br>Read my Twitter mumblings @ <a href="http://twitter.com/SoftwareMaven" target="_blank">http://twitter.com/SoftwareMaven</a><br>


Send me email @ <a href="mailto:travis.jensen@gmail.com" target="_blank">travis.jensen@gmail.com</a><div><br></div><div><i>*What kind of guy calls himself the Software Maven???*</i></div></div><br>
</div>