X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fgeneric%2Ffiles%2Fcrypto%2Focf%2Fpasemi%2Fpasemi.c;fp=target%2Flinux%2Fgeneric%2Ffiles%2Fcrypto%2Focf%2Fpasemi%2Fpasemi.c;h=1b4333cddeee95b3682543a93bc473dc21094d02;hb=5777054153d8f5c7b145c3e15a1a2bd3e9ca9cdb;hp=e259dd390aff79b831364fa3e5c616d83b5b09af;hpb=f545ef48fcf49bd29b9df89f570d48853589d2d0;p=openwrt%2Fsvn-archive%2Farchive.git diff --git a/target/linux/generic/files/crypto/ocf/pasemi/pasemi.c b/target/linux/generic/files/crypto/ocf/pasemi/pasemi.c index e259dd390a..1b4333cdde 100644 --- a/target/linux/generic/files/crypto/ocf/pasemi/pasemi.c +++ b/target/linux/generic/files/crypto/ocf/pasemi/pasemi.c @@ -18,10 +18,8 @@ */ #include -#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) -#include -#else -#include +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED) +#include #endif #include #include @@ -240,11 +238,6 @@ pasemi_newsession(device_t dev, u_int32_t *sidp, struct cryptoini *cri) if (encini) { ses->ccmd = ccmd; - - /* get an IV */ - /* XXX may read fewer than requested */ - get_random_bytes(ses->civ, sizeof(ses->civ)); - ses->keysz = (encini->cri_klen - 63) / 64; memcpy(ses->key, encini->cri_key, (ses->keysz + 1) * 8); @@ -451,6 +444,8 @@ pasemi_process(device_t dev, struct cryptop *crp, int hint) if (enccrd->crd_flags & CRD_F_ENCRYPT) { if (enccrd->crd_flags & CRD_F_IV_EXPLICIT) memcpy(ivp, enccrd->crd_iv, ivsize); + else + read_random(ivp, ivsize); /* If IV is not present in the buffer already, it has to be copied there */ if ((enccrd->crd_flags & CRD_F_IV_PRESENT) == 0) crypto_copyback(crp->crp_flags, crp->crp_buf,