Hello,

I've been trying to use OCF in one of my projects, but I run into a nasty
problem I can't seem to solve. I setup a session and call the crypto_dispatch()
function, after which a kernel BUG() occurs in one of the linux crypto.h
functions. There's problably something I forgot or did not properly initialize,
I hope anybody can give me a hint on how to debug and solve this.
                                                                                
                                        
The following is an extract of my code involving the crypto library:            
                                        


        zut = kmalloc(sizeof *zut, GFP_ATOMIC);
        memset(zut, 0, sizeof(*zut));

        memset(&ci, 0, sizeof(ci));
        ci.cri_alg  = CRYPTO_ARC4;
        ci.cri_klen = sizeof(zut->key);
        ci.cri_key  = zut->key;
        r = crypto_newsession(&sid, &ci, 0);
        printk("crypto_newsession r=%d sid=%llu\n", r, sid);
        if(r != 0) {
                printk("crypto_newsession failed %d\n", r);
                return;
        }

        co = crypto_getreq(1);
        printk("co=%p\n", co);
        co->crp_sid = sid;
        co->crp_ilen = sizeof(zut->text);
        co->crp_olen = sizeof(zut->text);
        co->crp_callback = hop_done;
        co->crp_flags = 0;
        co->crp_buf = zut->text;
        co->crp_opaque = (void *)zut;

        co->crp_desc->crd_skip = 0;
        co->crp_desc->crd_len = 32;
        co->crp_desc->crd_inject = zut->iv;
        co->crp_desc->crd_flags = CRD_F_ENCRYPT;
        co->crp_desc->crd_alg = CRYPTO_ARC4;

        r = crypto_dispatch(co);
        printk("dispatching to %llu, r=%d\n", co->crp_sid, r);


                                                                                
                                        
The call to crypto_dispatch results in a kernel BUG message:                    
                                        
                                                                                
                                        
  kernel BUG at include/linux/crypto.h:364!                                     
                                        
  ...                                                                           
                                        
  [<c00e2bcc>] (__bug+0x0/0x58) from [<bf21d350>] (swcr_process+0xb18/0xc84 
[cryptosoft])                               
  [<bf21c838>] (swcr_process+0x0/0xc84 [cryptosoft]) from [<bf118170>] 
(crypto_invoke+0x17c/0x1a8 [ocf])                
  [<bf117ff4>] (crypto_invoke+0x0/0x1a8 [ocf]) from [<bf11776c>] 
(crypto_dispatch+0x154/0x2c8 [ocf])                    
  [<bf117618>] (crypto_dispatch+0x0/0x2c8 [ocf]) from [<bf11f604>] 
(ebt_crypt_target+0x3a0/0x434 [ebt_crypt])           
                                                                                
                                        
The snippet from crypto.h:                                                      
                                        
                                                                                
                                        
  358: static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,       
                                        
  359:                                            struct scatterlist *dst,      
                                        
  360:                                            struct scatterlist *src,      
                                        
  361:                                            unsigned int nbytes, u8 *iv)  
                                        
  362: {                                                                        
                                        
  363:         BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);      
                                        
  364:         BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);         
                                        
  365:         return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, 
iv);                                        
  366: }                                                                        
                                        
                                                                                
                           

Any hints ?

Thank you very much for your time,

Ico
-- 
:wq
^X^Cy^K^X^C^C^C^C
-
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to