OPENSSL_assert(bl <= sizeof ctx->buf);
OPENSSL_assert(bl <= (int)sizeof(ctx->buf));
int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl,	     const unsigned char *in, int inl)	{	int i,j,bl;	OPENSSL_assert(inl > 0);	if(ctx->buf_len == 0 && (inl&(ctx->block_mask)) == 0)		{		if(ctx->cipher->do_cipher(ctx,out,in,inl))			{			*outl=inl;			return 1;			}		else			{			*outl=0;			return 0;			}		}	i=ctx->buf_len;	bl=ctx->cipher->block_size;	OPENSSL_assert(bl <= sizeof ctx->buf);	if (i != 0)		{		if (i+inl < bl)			{			memcpy(&(ctx->buf[i]),in,inl);			ctx->buf_len+=inl;			*outl=0;			return 1;			}		else			{			j=bl-i;			memcpy(&(ctx->buf[i]),in,j);			if(!ctx->cipher->do_cipher(ctx,out,ctx->buf,bl)) return 0;			inl-=j;			in+=j;			out+=bl;			*outl=bl;			}		}	else		*outl = 0;	i=inl&(bl-1);	inl-=i;	if (inl > 0)		{		if(!ctx->cipher->do_cipher(ctx,out,in,inl)) return 0;		*outl+=inl;		}	if (i != 0)		memcpy(ctx->buf,&(in[inl]),i);	ctx->buf_len=i;	return 1;	}