C. Michael Pilato wrote on Mon, Apr 02, 2012 at 16:10:43 -0400:
> On 04/02/2012 03:40 PM, Greg Stein wrote:
> > On Mon, Apr 2, 2012 at 15:10,  <cmpil...@apache.org> wrote:
> >> Author: cmpilato
> >> Date: Mon Apr  2 19:10:26 2012
> >> New Revision: 1308470
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1308470&view=rev
> >> Log:
> >> Finish up the initial password encryption and decryption routines, and
> >> stare in amazement as the tests now pass.  For me.  On my box.
> >>
> >> * subversion/libsvn_subr/crypto.c
> >>  (svn_crypto__encrypt_password): Per our plan, prepend the prefix to
> >>    the password and pad up to the specified block size before
> >>    encrypting.  Lose a seemingly unfounded assertion (that the size
> >>    of the input will match that of the output).
> > 
> > What were you seeing? The encryption result *should* match the amount
> > of data we passed. N blocks of input data for N blocks of output data.
> > If they don't match, then something *is* wrong, as noted in the
> > assertion's comment.
> 
> I saw 16 bytes go in, and 48 come out.  And then I saw that when I removed
> the assertion and completed the encryption and decryption functions, my
> round-robin tests passed.  :-)
> 
> Out of curiosity, why must the input block size match the output block size?
>  I mean, it sounds great and all, but wouldn't that make the whole "let's
> calculate the maximum possible result size" step sorta superfluous?
> 
> Or maybe that's what's going on here:  the docstring for
> apr_crypto_block_encrypt() sez "If out is NULL, outlen will contain the
> maximum size of the buffer needed to hold the data".  Not the exact size --
> just a good, safe, maximum size.  Maybe the implementation is being
> extremely conservative?

Maybe the implementation is prepending the IV to the ciphertext?

Reply via email to