On Thu, Apr 19, 2018 at 11:42:11AM +0800, Herbert Xu wrote:
> On Wed, Apr 11, 2018 at 08:28:32PM +0200, Jan Glauber wrote:
> >
> > @@ -1362,7 +1373,17 @@ static int test_comp(struct crypto_comp *tfm,
> >                     goto out;
> >             }
> >  
> > -           if (dlen != ctemplate[i].outlen) {
> > +           ilen = dlen;
> > +           dlen = COMP_BUF_SIZE;
> > +           ret = crypto_comp_decompress(tfm, output,
> > +                                        ilen, decomp_output, &dlen);
> > +           if (ret) {
> > +                   pr_err("alg: comp: compression failed: decompress: on 
> > test %d for %s failed: ret=%d\n",
> > +                          i + 1, algo, -ret);
> > +                   goto out;
> > +           }
> > +
> > +           if (dlen != ctemplate[i].inlen) {
> >                     printk(KERN_ERR "alg: comp: Compression test %d "
> >                            "failed for %s: output len = %d\n", i + 1, algo,
> >                            dlen);
> 
> Your patch is fine as it is.
> 
> But I just thought I'd mention that if anyone wants to we should
> really change this to use a different tfm, e.g., always use the
> generic algorithm to perform the decompression.  This way if there
> were multiple implementations we can at least test them against
> the generic one.
> 
> Otherwise you could end up with a buggy implementation that works
> against itself but still generates incorrect output.

Nice idea. Would a crypto_alloc_cipher("deflate", ...) pick the generic
implementation or how can we select it?

--Jan

Reply via email to