提交 7b6055d1 编写于 作者: B Ben Laurie

Handle the common case first (where input size is a multiple of block size).

Worth around 5% for encrypt. Slows down decrypt slightly, but I expect to
regain that later.
上级 f31b1250
......@@ -162,8 +162,25 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
i=ctx->buf_len;
bl=ctx->cipher->block_size;
if ((inl == 0) && (i != bl))
{
*outl=0;
return 1;
}
if(i == 0 && (inl&(bl-1)) == 0)
{
if(ctx->cipher->do_cipher(ctx,out,in,inl))
{
*outl=inl;
return 1;
}
else
{
*outl=0;
return 0;
}
}
*outl=0;
if ((inl == 0) && (i != bl)) return 1;
if (i != 0)
{
if (i+inl < bl)
......@@ -183,7 +200,6 @@ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,
*outl+=bl;
}
}
// i=inl%bl; /* how much is left */
i=inl&(bl-1);
inl-=i;
if (inl > 0)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册