2008-09-18 01:27 davidm * Makefile, README, README.sglinux, patches/linux-2.6.26-natt.patch, patches/linux-2.6.26-ocf.patch, patches/openssl-0.9.8g.patch, patches/openssl-0.9.8i.patch: Updates for a new OCF release with openssl-0.9.8i and linux-2.6.26 support. 2008-09-18 00:19 davidm * Config.in, Kconfig, Makefile, ep80579/Makefile, ep80579/environment.mk, ep80579/icp_asym.c, ep80579/icp_common.c, ep80579/icp_ocf.h, ep80579/icp_sym.c, ep80579/linux_2.6_kernel_space.mk: A new driver from Intel for their Intel QuickAssist enabled EP80579 Integrated Processor Product Line. Adrian Hoban Brad Vrabete 2008-07-25 01:01 gerg * ocf-compat.h: From linux-2.6.26 onwards there is now a linux/fdtable.h include that contains the file_fdtable() definition. 2008-07-05 01:20 davidm * Makefile, patches/linux-2.6.25-natt.patch, patches/linux-2.6.25-ocf.patch: A new ocf-linux release and some patches to send to the OS guys. 2008-07-03 21:21 davidm * crypto.c: Clean up a some possible deadlock/busy wait issues with locking/sleeping. This has greatly improved openswan 2.6.14 reliability ;-) Make more of our state available in /sys for debugging. 2008-06-23 20:38 davidm * Config.in, Kconfig: Some settings should be bool's John Gumb 2008-05-28 03:43 philipc * ixp4xx/ixp4xx.c: Revert previous checkin since the callbacks are meant to complete the crypto request. Before reverting this, CONFIG_DEBUG_SLAB gives: slab error in verify_redzone_free(): cache `ixp4xx_q': double free detected when trying to ssh to the device. 2008-04-27 19:31 davidm * ixp4xx/ixp4xx.c: We were not completing a crypto request under some error conditions. 2008-04-02 01:51 davidm * talitos/talitos.c: This patch is for crypto/ocf/talitos for use on linux 2.6.23. It is applied to the ocf-linux-20071215 release. Signed-off-by: Lee Nipper 2008-02-29 00:43 davidm * crypto.c, ocf-compat.h, ixp4xx/ixp4xx.c: freshen up the 2.4 support, some recent OCF changes and openswan changes are not that old-os friendly. Force OCF to select HW/SW, otherwise it may get stuck on the first device. This change means we will favour HW over SW, but we will use both as required. Passing in a crid of 0 to crypto_newsession effectively meant we were stuck on the first device registered with OCF, not good. This only applied to ipsec, cryptodev already did the right thing. 2008-01-31 07:37 gerg * hifn/hifn7751.c: The linux-2.6.24 modules build fails if the pci ID table doesn't have a NULL entry at the end. So add one. 2008-01-29 09:16 gerg * cryptosoft.c, ocf-compat.h: Added some compatability macros for scatterlist changes from 2.6.24 onwards. 2007-12-16 07:31 davidm * Makefile: missed an openssl patch name change 2007-12-16 07:27 davidm * Makefile, README, README.sglinux, patches/linux-2.6.23-ocf.patch, patches/openssl-0.9.8e.patch, patches/openssl-0.9.8g.patch, patches/ssl.patch: updates for a new ocf release and associated bits 2007-12-16 06:36 davidm * crypto.c: Be very careful what you do while potentially in an driver unload state or we will call through NULL pointers. Reported by Nawang Chhetan . 2007-12-14 22:32 davidm * cryptodev.c: Add in an unlock_ioctl when available to help SMP systems a lot. Otherwise all ioctls get a BKL :-( Problem found by Egor N. Martovetsky 2007-12-14 18:29 davidm * cryptosoft.c: reformat the alg table to make it easier to read. 2007-12-14 18:29 davidm * crypto.c: Fix more driver locking/sleeping bugs report by Nawang Chhetan 2007-12-12 21:36 davidm * Config.in, Kconfig, Makefile, pasemi/Makefile, pasemi/pasemi.c, pasemi/pasemi_fnu.h: Here I'm including my PA Semi driver patch to OCF. Please consider it for inclusion into next OCF release. Egor N. Martovetsky 2007-12-05 00:37 davidm * patches/: linux-2.4.35-ocf.patch, linux-2.6.22-ocf.patch: More correct count setting if we get a signal Adrian Hoban 2007-12-05 00:02 davidm * random.c: OCF has a static array for holding random data. The random number generator I have can write directly into physically contiguous memory. Static memory comes from the heap and isn't physically contiguous. I could use kmalloc'd memory and then copy into the OCF static buf but I'd like to avoid a memory copy. The following patch (Physically_Contig_Rand.patch) allows me to avoid a memory copy and should not impact the other OCF drivers: Adrian Hoban 2007-12-05 00:01 davidm * Kconfig: Fix a typo in the Kconfig 2007-11-23 19:15 davidm * talitos/talitos_dev.h: fix the DPRINTF macro so that it actually compiles. 2007-11-22 19:41 davidm * ocf-compat.h, talitos/talitos.c, talitos/talitos_dev.h: Various updates to get talitos compiling and work on real-world (ie ubuntu) kernels. 2007-11-08 02:21 davidm * crypto.c: keep and eye on us being completely blocked. If we have Q's to process, but all the requests are blocked, sleep. We do not want to busy loop until a driver unblocks as it uses valuable CPU resources that could be doing something much more important ;-) 2007-11-07 19:04 davidm * hifn/hifn7751.c: hifn driver was failing to unblock itself under some "out of resources" conditions. It would return ERESTART to signal it was full but never call crypto_unblock to start things moving again. 2007-11-06 02:09 davidm * hifn/hifn7751.c: Remove some bogus trace left in the driver for the overflow (too busy) case. 2007-10-12 21:10 gerg * crypto.c, ixp4xx/ixp4xx.c: Fix up use of kmem_cache_create() - it takes one less argument in 2.6.23 onwards. 2007-10-03 02:41 gerg * ixp4xx/Makefile: The directory locations for includes in CSR-2.4 is different. Need to modify the CFLAGS accordingly if using CSR-2.4. 2007-09-22 00:39 philipc * ixp4xx/Makefile: linux 2.4 make dep was failing. This is a quick fix to get it building, need to double check this. 2007-09-19 00:13 mmccreat * Config.in: Add config option CONFIG_OCF_IXP4XX_SHA1_MD5, that enables SHA1 and MD5 hashing to be done by the IXP4xx crypto accelerator (although it is much slower than using cryptosoft). 2007-09-18 21:45 mmccreat * Makefile, random.c: - Force the inclusion of autoconf.h, which contains #defines for CONFIG_xxx options for OCF. - Removing additional -D option, now that we are including the CONFIG_xxx #defines. 2007-09-18 21:44 mmccreat * Kconfig: Add config option CONFIG_OCF_IXP4XX_SHA1_MD5, that enables SHA1 and MD5 hashing to be done by the IXP4xx crypto accelerator (although it is much slower than using cryptosoft). 2007-09-18 21:37 mmccreat * cryptodev.h: The CRYPTO_MAX_DATA_LEN limit should be 0xFFFF ie 64K - 1. 2007-09-18 21:19 mmccreat * ixp4xx/ixp4xx.c: - Rework the code so that the correct IXP function, ixCryptoAccHashPerform(), is used to calculate SHA1 and MD5 hashes. NB: The performance of using the IXP4xx hardware is really, really poor compared to using cryptosoft (and the kernel crypto). - Only support SHA1 and MD5 hashing if the CONFIG_OCF_IXP4XX_SHA1_MD5 is enabled. 2007-08-30 21:42 davidm * Makefile: do not archive build files in the crypto-tools archive 2007-08-22 19:19 mmccreat * cryptodev.c: Fix up the checking for key lengths, when the key can be of unlimited size. 2007-08-16 01:50 davidm * Makefile: Better 2.4 compat for "make dep" now working with fastdep. 2007-07-28 08:25 davidm * Makefile, README, README.sglinux, patches/crypto-tools.patch, patches/linux-2.4.29-ocf.patch, patches/linux-2.4.35-ocf.patch, patches/linux-2.6.11-ocf.patch, patches/linux-2.6.22-ocf.patch, patches/ssl.patch: Update all the patches and put the patch making target back into the Makefile. 2007-07-28 08:25 davidm * hifn/hifn7751.c: fix an unused variable warning when HARVESTING is disabled 2007-07-27 21:33 davidm * hifn/hifn7751.c, ixp4xx/ixp4xx.c, safe/safe.c, talitos/talitos.c: Remove all the random code if OCF does not have radom harvesting enabled. 2007-07-26 00:36 davidm * Kconfig, hifn/hifnHIPP.c, hifn/hifnHIPPvar.h: Changes to get the hifn HIPP stub driver to build. 2007-07-25 21:25 davidm * Makefile, hifn/Makefile, hifn/hifnHIPP.c, hifn/hifnHIPPreg.h, hifn/hifnHIPPvar.h, ixp4xx/Makefile, ocfnull/Makefile, safe/Makefile, talitos/Makefile: Bring in the hifnHIPP driver written by Xelerance. This is the super hifn chip with full protocol offload. Switch to much more traditional Makefile/subdir building. The Makefiles are nicer now, but still not beautiful, 2.6 and 2.4 capable builds result in a certain amount of uglyiness. 2007-07-24 21:46 davidm * cryptodev.c: Clean up all the driver id checking and session management so adding/removing drivers all continues to run cleanly. 2007-07-24 20:14 davidm * talitos/talitos.c: From: Ahsan Kabir less than .1% packet corruption was detected using the talitos driver. It turns out we don't need the cipher iv out len/ptr field to do ESP IPsec. Therefore we set the len field as 0, which tells the SEC not to do anything with this len/ptr field. Signed-off-by: Ahsan Kabir Signed-off-by: Kim Phillips 2007-07-24 08:25 davidm * cryptosoft.c, ocf-bench.c, hifn/hifn7751.c, ixp4xx/ixp4xx.c, safe/safe.c, talitos/talitos.c: Switch the remaining GFP_ATOMIC to the newer and not deprecated SLAB_ATOMIC 2007-07-23 22:16 mmccreat * ixp4xx/ixp4xx.c: Add missing ";" from end of dprintk() call! 2007-07-21 01:16 davidm * ocf-compat.h, rndtest.c, hifn/hifn7751.c, safe/safe.c: pci_register_driver is nothing like it is depending on the kernel, so we need a compat function to fix it up for all kernels before 2.6.10, and in different ways for older and not so older versions. 2007-07-20 21:54 davidm * safe/safe.c: Make the debug macro ';' safe so you do not get compiler warnings 2007-07-20 21:53 davidm * talitos/: talitos.c, talitos_dev.h, talitos_soft.h: update to the latest FreeBSD driver structure and fix up the code as required. 2007-07-20 03:07 davidm * rndtest.c: more headers needed to compile on 2.4 2007-07-20 03:00 davidm * cryptosoft.c: Put in the 2.4 stubs to support compression 2007-07-20 02:53 davidm * crypto.c, ocf-compat.h: move some more compat stuff into the compat header. 2007-07-20 02:47 davidm * talitos/talitos.c: support of_platform_driver for newer, ARCH=powerpc based kernels. Signed-off-by: Kim Phillips 2007-07-20 02:46 davidm * talitos/talitos.c: From: Ahsan Kabir When Talitos completes job both the channel and execution unit are capable of generating interrupts. Talitos used to take two interrupts per request - one for channel completion and the other for execution unit completion. This patch ensures that Talitos takes interrupt only for channel completion. Execution unit will generate interrupt only when there is error and the error interrupts for execution units are not masked. Signed-off-by: Ahsan Kabir Signed-off-by: Kim Phillips 2007-07-20 02:37 davidm * cryptodev.c: Unless the user specifies, select from both HW and SW. Clean up some debug to report the actual ioctl name. Compiler warning on newer compilers. 2007-07-20 02:35 davidm * cryptodev.h: moved dprintk to the compat code, seemed nicer in there. 2007-07-20 02:35 davidm * rndtest.c: Need to clean up some warnings etc, more includes 2007-07-20 02:34 davidm * ocf-compat.h, hifn/hifn7751.c, safe/safe.c: new shared IRQ flags for 2.6.22 and a safer version of the debug macro 2007-07-20 00:52 davidm * cryptosoft.c: Implement compression based on the code from the openswan guys. 2007-07-20 00:52 davidm * criov.c: Fix compiler warning on non-value returning void func. 2007-07-18 22:55 davidm * hifn/hifn7751.c, safe/safe.c: Use pci_register_driver rather than pci_module_init. pci_module_init has been dropped in 2.6.22 yet pci_register_driver has always existed and used to do some crazy hotplug junk. 2007-07-18 21:55 gerg * ixp4xx/ixp4xx.c: Added a missing ";" at the end of the ixp_kproces() prototype. It is IXP465 specific, only showed up when generateing for SG720. 2007-07-17 00:37 davidm * Makefile, cryptodev.c, random.c, rndtest.c, hifn/hifn7751.c, ocfnull/ocfnull.c, safe/safe.c: Fixup all the debug support for 2.4 kernels, clean up the entropy harvester to be far more robust. 2007-07-14 02:19 davidm * talitos/talitos.c: Old patch that had not been applied Kim Phillips 2007-07-14 01:12 davidm * Config.in, Kconfig, Makefile, cryptodev.c, cryptodev.h, random.c, syscall.h: Finally ditched all the syscall stuff. You can now enable/disable the random harvestor. Pulled in most of random.c from openswan project and fixed some obvious bugs (that were always there). 2007-07-13 21:59 davidm * ocf-compat.h: Better error printing and checking for drivers 2007-07-13 21:56 davidm * cryptosoft.c: Fix some incorrect debug (reporting wrong error type) 2007-07-13 21:55 davidm * hifn/hifn7751.c, safe/safe.c: Make the code more similar to Free-BSD by reverting to the same debug macros 2007-07-13 21:53 davidm * ocfnull/ocfnull.c: Fix up the null driver to work again in the new framework. 2007-07-06 23:54 mmccreat * cryptodev.c, cryptodev.h, cryptosoft.c: - Update OCF to work with new Crypto API introduced in 2.6.19 kerneli, and add macros so it work with older kernels. - Add support for SHA256, SHA384 and SHA512 HASH and HMAC algorithms. - Cryptosoft: Only register algorithms that the kernel has implementations for. 2007-07-03 19:52 davidm * Kconfig, README, README.sglinux, criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, ocf-bench.c, ocf-compat.h, random.c, rndtest.c, uio.h, hifn/hifn7751.c, hifn/hifn7751reg.h, hifn/hifn7751var.h, ixp4xx/ixp4xx.c, ocfnull/ocfnull.c, safe/safe.c, safe/safevar.h, talitos/talitos.c: Updated OCF to the lastest FreeBSD version. There was a lot of change in here, some of which will help FIP's, some which won't. Did lots of cleaning and diff reduction against the freebsd code. Still more cleaning to do. 2007-06-01 21:58 gerg * Config.in: Put the regular old Config.in back, needed for puclic releases. 2007-06-01 21:58 gerg * Kconfig: Change the CONFIG_OCF_IXP400 dependencies to be the same as they where in the Config.in file. 2007-05-28 21:40 gerg * Config.in, Kconfig: Switch all module configuration over to new style Kconfigs. 2007-05-24 18:49 davidm * cryptodev.c, random.c: Work around some problems on redhat systems with errno redefinition 2007-04-30 21:09 gerg * cryptosoft.c: The CRYPTO_TFM_MODE_ family of defines no longer exists from 2.6.21 onwards. As far as I can tell you don't need to pass it to the crypto_alloc_tfm() function anymore. So define it to be 0 if it doesn't exist. 2007-04-03 02:13 gerg * syscall.h: Added syscall macros for SH architecture. Just temporary, 'till Dave fixes the OCF code to not use syscalls from the modules :-) 2007-02-16 23:10 davidm * syscall.h: ensure the temprary 2.6 fix doesn't break 2.4 2007-02-07 22:23 gerg * cryptodev.c, random.c, syscall.h: Temporary fix for new 2.6 kernels no longer defining in-kernel system call functions. Define them locally for now until we fix properly. 2007-02-07 03:10 gerg * ixp4xx/ixp4xx.c: Changes to support the different INIT_WORK() mechanism from kernels 2.6.20 onwards. 2007-02-06 02:38 gerg * crypto.c: Cleaned up use of kmem_cache_t and use of SLAB_ATOMIC. 2006-12-05 20:50 cpascoe * hifn/hifn7751.c, safe/safe.c, talitos/talitos.c: Remove pt_regs from OCF interrupt handlers for 2.6.19+ 2006-12-02 03:36 gerg * criov.c, crypto.c, cryptodev.c, cryptosoft.c, ocf-bench.c, random.c, rndtest.c, hifn/hifn7751.c, ixp4xx/ixp4xx.c, ocfnull/ocfnull.c, safe/safe.c, talitos/talitos.c: Can no longer include linux/config.h as of 2.6.19 kernels. Need to conditionally include it based on AUTOCONF_INCLUDED not being defined. 2006-10-13 21:52 cpascoe * random.c: Remove another race condition that may result in us running more than one random thread if modules are reloaded during heavy system load. 2006-10-13 21:18 cpascoe * random.c: - Permit delivery of SIGKILL to the random thread. - Do not exit prematurely if poll() is interrupted. - Improve exit conditions so that we quit immediately, rather than loop infinitely, if the last RNG source is removed while we are trying to fill our buffer. 2006-10-03 20:28 cpascoe * crypto.c, crypto.c: AutoMerged > > Zero the empty half of "new driver" buffer, and not past the end of the old > buffer that we are about to free. 2006-10-03 20:28 cpascoe * crypto.c: Zero the empty half of "new driver" buffer, and not past the end of the old buffer that we are about to free. 2006-08-25 23:57 davidm * cryptosoft.c: Do not print errors for failed ALG requests unless debugging 2006-07-14 21:44 davidm * cryptodev.h: 2.6.11 and earlier did not have the files_fdtable macro. 2006-06-21 21:26 gerg * cryptodev.h, hifn/hifn7751.c, ocfnull/ocfnull.c, safe/safe.c, talitos/talitos.c: Fixed up more occurrances of MODULE_PARM() needing to be converted to module_param() (as of 2.6.17 and onwards). 2006-06-21 00:28 gerg * cryptosoft.c: Change use of MODULE_PARM to module_param() for 2.6.17+ kernels. 2006-06-20 22:13 gerg * crypto.c, cryptodev.c, cryptodev.h, ocf-bench.c, ixp4xx/ixp4xx.c: As of 2.6.17 and onwards module_param is used in place of MODULE_PARM. 2006-06-06 00:31 gerg * Makefile: Fix Makefile to find includes is using CSR-2.1. 2006-05-31 01:44 gerg * cryptodev.h: The vars "crypto_usercrypto", "crypto_userasymcrypto" are declared as extern in the header file, but static in the c file. I guessed that they should probably be truely static, so removed the extern declarations from the header. 2006-05-25 21:06 davidm * talitos/talitos.c: This fixes a situation that I never provably experienced, where a descriptor in memory may be reserved within the proper lock, and freed immediately after, only for a few cycles, right outside the lock. Kim Phillips 2006-05-15 19:49 davidm * criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, ocf-bench.c, random.c, rndtest.c, uio.h, ixp4xx/ixp4xx.c: Remove the "all rights reserved" from the Intel copyrights. 2006-05-12 21:19 davidm * Config.in, Kconfig, Makefile, cryptodev.c, ocf-bench.c, ocfnull/ocfnull.c: Add in a null OCF driver that does nothing at all, useful for measuring the cost of various parts of the ipsec stack. 2006-05-12 21:17 davidm * ixp4xx/ixp4xx.c: make sure we do not overwrite a correctly set error type. 2006-05-12 06:52 davidm * crypto.c: Fix a problem where a driver would return ERESTART (full) but then unblock itself before the upper layer had marked it as blocked. This caused the code to get stuck in crypto_proc and process no more requests. 2006-05-12 06:47 davidm * cryptosoft.c: Implement CRD_F_KEY_EXPLICIT for cryptosoft so keys can be changed on an active session. 2006-05-10 20:09 davidm * README, criov.c, crypto.c, cryptodev.h, cryptosoft.c, ocf-bench.c, random.c, rndtest.c, uio.h, hifn/hifn7751.c, ixp4xx/ixp4xx.c, safe/safe.c, safe/safevar.h: update email addresses and other house cleaning 2006-05-10 20:08 davidm * cryptodev.c: pull in better error checking from openswan modifications 2006-05-10 19:11 davidm * cryptosoft.c: Fix an unused variable warning when various options are disabled. 2006-05-10 19:10 davidm * cryptodev.h: Add support for 2.4 kernels for the new FD cloning operation 2006-05-09 19:48 davidm * hifn/hifn7751.c: remove the hifn 7855 support, this driver will never work with that chip. 2006-05-08 23:34 davidm * hifn/hifn7751var.h: Contiguous buffer support so that ocf-bench can run properly. 2006-05-05 23:21 davidm * hifn/hifn7751.c: Add in contiguous buffer support so that ocf-bench and run on the driver. 2006-05-05 23:14 davidm * ocf-bench.c: Our requests were out of order, need to do crypto then auth on encrypt requests. Some drivers enforce this. 2006-05-04 23:21 davidm * crypto.c: Do not run "newsession" with lock, since newsession may sleep on some targets. Handle the accounting so that things are not pulled from underneath us. 2006-05-04 23:20 davidm * cryptodev.c: Switch to a less optimal (marginally) solution for creating a new fd that appears to work in far more versions of the kernel including 64bit versions. 2006-05-04 18:54 davidm * ocf-bench.c: Turn off the IXP access lib benchmarking by default as most people don't have it. Paul Wouters 2006-04-01 08:23 davidm * Makefile: Remove more temp files when cleaning 2006-04-01 08:12 davidm * hifn/hifn7751reg.h: 7855 PCI id's as yet untested 2006-04-01 08:08 davidm * hifn/hifn7751.c: add PCI id's for the 7855 and AES support, card is untested still as it requires 128MB of PCI memory ! 2006-03-31 08:38 davidm * README.sglinux: small update to instructions with corrected patch name 2006-03-31 00:23 davidm * Config.in: Add the Talitos driver to the 2.4 config, even though it probably won't compile. 2006-03-30 07:48 davidm * Kconfig, Makefile, talitos/talitos.c, talitos/talitos_dev.h, talitos/talitos_soft.h: Please find attached the freescale SEC driver for OCF. It's been (most recently) tested on an SEC2.0 based MPC8541E (cryptographically identical to the MPC8555E) under 2.6.15.2, with openssl-0.9.8a and openswan-2.4.3 (2.4.5rc5 won't keep the security association up for me for some reason). Please feel free to add it to your next release of OCF-Linux :-) Kim Phillips 2006-03-20 19:34 davidm * safe/: safe.c, safevar.h: Safenet 1141 v1.0 chips have a DMA lockup error if you access the chip while DMA'ing. As a work around you need to limit your DMA to 256 byte chunks using scatter/gather descriptors. All the SG/SME products have v1.0 chips and would lockup with more than two outstanding packets at one time. Fix the KASSERT macro Add some more exhaustive initialisation. 2006-03-15 21:58 davidm * cryptodev.h, random.c: Switch random support to "ints" since that is what the kernel uses and not using the same thing is 64bit wise a bad idea. Fix FIP's code to ensure correct amount of data is passed in. Add work around for broken 64bit OS RNG support (disable it) General code cleanups. 2006-03-15 21:55 davidm * hifn/hifn7751.c: Fixes for 64bit OS's, make sure PCI address are within bus space, make sure we order writes to the bus so that chip functions correctly. Some small cleanups. 2006-03-15 21:48 davidm * hifn/hifn7751var.h: Remove unused field from structure 2006-03-15 21:47 davidm * safe/safe.c: Make the code more 64bit OS compatible, force PCI address space and so on. 2006-03-09 20:42 davidm * ixp4xx/ixp4xx.c: If we call ixpCryptoAccInit() and it fails, just assume that it has already been called. This allows our "rc" scripts to be openswan and freeswan compatible ore easily. 2006-02-28 23:21 davidm * README: generalise it a bit so rel-dates don't get in the way 2006-02-28 01:52 davidm * README, patches/ssh.patch, patches/ssl.patch: Updated the README and patches for a release 2006-02-25 09:21 davidm * README, README.sglinux: updates for a new release of OCF, ssl patches and so on. 2006-02-25 08:44 davidm * crypto.c: We were calling the "process"routines with interrupts disabled. I can see no good reason for this and it provokes badness warnings in 2.6 under some conditions. I am going to run with the Q's unlocked for processing, and hopefully it will allow the system to be more responsive. It hasn't affected ipsec throughput in any way. Userland throughput (multi threaded) may have improved significantly though, but it needs more testing. 2006-02-24 23:32 davidm * cryptodev.c: Whoa, set the segments with uninitted values can't be good. Clean out the rest of the old code that was accidently left in. 2006-02-22 01:02 davidm * cryptodev.c: Still not sure about this one, but this is working for all the cases I can see so far. If it gets weird, I am going to switch to a simple clone and chain the sessions rather than a new fcr per fd. 2006-02-20 22:12 davidm * cryptodev.c: Error handling case could free data that was not allocated Ronen Shitrit Marvell Semiconductor Israel Ltd 2006-02-20 21:57 davidm * cryptosoft.c: Proper SHA/MD5 (non hmac) implementation, remove some retrictions for hashes (which only applied to crypto) and fix over zealous error checking. Ronen Shitrit Marvell Semiconductor Israel Ltd 2006-02-09 21:15 davidm * cryptodev.c: The code wasn't quite right and needed some fixing for proper file accounting. 2006-01-24 20:08 davidm * crypto.c, cryptodev.c, hifn/hifn7751.c: We implement our own open in the CRIOGET ioctl now which does pretty much the same thing as the BSD version, rather than use an open system call which gets caught out by chroot. 2006-01-06 00:42 gerg * cryptosoft.c: Moved "{" block marker inside the set of "defined(CONFIG_CRYPTO_HMAC) || defined(CONFIG_CRYPTO_HMAC_MODULE)" code (in function swcr_process) so that it compiled if these where not defined. 2005-11-11 01:44 davidm * Makefile, README: cleanups for a general release of OCF 2005-11-11 01:18 davidm * patches/ssl.patch: Updated the ssl patch to the latest and greatest changed we have made. 2005-11-10 21:41 davidm * Makefile, ixp4xx/ixp4xx.c: Better debug for bad input. Have make clean do more cleaning and less talking. 2005-11-03 20:53 davidm * cryptosoft.c: clean up some compilation errors with various options on/off 2005-10-25 00:25 davidm * Makefile: Add a patch target that generates full kernel patches to add OCF into either a 2.4 or 2.6 kernel as a single patch. 2005-10-25 00:24 davidm * Kconfig: Make sure all OCF settings depend on OCF_OCF 2005-09-23 02:45 davidm * README, README.sglinux: new crypto-tools archive to keep the tools up to date 2005-09-23 02:08 davidm * Makefile, README, README.sglinux: updates for doing OCF releases 2005-09-23 01:59 davidm * patches/: ssh.patch, ssl.patch: updated the patches for the latest in fixes etc to ssh/ssl for a new OCF release before the openswan 2.4.1 merge. 2005-09-21 00:57 davidm * Makefile, cryptosoft.c, hifn/hifn7751.c, ixp4xx/ixp4xx.c: Fixes for building cleanly under 2.6 2005-09-13 23:11 davidm * ocf-bench.c: Add an exit function for cleaner 2.6 support. Patch from Ronen Shitrit 2005-07-30 00:23 davidm * cryptosoft.c: Add proper hooks for MD5/SHA and their HMAC countrparts processing from cryptodev. 2005-07-29 01:50 davidm * cryptodev.c: cryptodev did not support MD5 and SHA1, only the HMAC versions 2005-07-29 01:05 davidm * ixp4xx/ixp4xx.c: register for MD5, return 16 bytes for MD5 and 12 for MD5_HMAC, likewise for SHA1 (only 20 is not HMAC). 2005-07-28 21:52 davidm * ixp4xx/ixp4xx.c: First pass fix of userland MD5 processing. We now do as well as the safenet does, I think. 2005-07-27 06:23 davidm * cryptodev.c: udelay doesn't give up the current thread, thus the kernel will get locked if a process is killed but the hardware never completes the crypto request. 2005-07-22 02:07 davidm * crypto.c, cryptodev.h: Implement queuing limits for input/output and OCF requests. Implement 2.6 style work queues instead of the 2.4 task_queues. 2005-07-21 20:42 davidm * cryptodev.h, ocf-bench.c, ixp4xx/ixp4xx.c: Fix OCF to use work queues, add 2.4 version of work queues to cryptodev.h for use in ipsec and elsewhere. Problem and initial patch provided by David Vrabel . Cleaned up and 2.4 support added by me. 2005-07-21 19:08 davidm * random.c: Fix spinlock initialisation, problem reported by Andy @ windsorcarclub.co.uk. 2005-07-20 20:24 davidm * cryptodev.c: fix a silly spelling mistake 2005-07-08 00:56 gerg * Makefile: Only build ocf-bench when CONFIG_OCF_BENCH is acrually enabled. 2005-06-27 20:29 davidm * ixp4xx/ixp4xx.c: Ok, we need a simple implentation here or we go too slow for UDP tests. For now, if the Q is full just ditch the packet, someone has to do it. 2005-06-25 01:13 davidm * safe/safe.c: bytes swapping etc all seems wrong for safenet on BE, these fixes see both MD5 and SHA1 working with OpenSwan. 2005-06-22 23:10 davidm * random.c: clean up some ifdef code a little 2005-06-22 21:28 davidm * ixp4xx/ixp4xx.c: Make sure we do not call blocking functions from ISR callable routines. In this case we were calling ixCryptoAccCtxUnregister. Run all the random numbers through SHA1 process to ensure more uniform distribution of bits (NOTE: it is not more random in any way) 2005-06-21 00:11 davidm * ixp4xx/ixp4xx.c: do not process requests from the register callback, gets the AES code all messed up. Align caches on HW cache boundaries ot improve speed. More tracking or potential errors. 2005-06-15 01:55 davidm * ixp4xx/ixp4xx.c: technically ixCryptoAccCtxRegister cannot be called from IRQ context, so run it from the immediate BH. 2005-06-14 23:13 davidm * ocf-bench.c: Fix some compile warnings/errors 2005-06-14 20:52 davidm * Config.in, Kconfig, Makefile, ocf-bench.c: Add in kernel benchmark driver Support for building under CSR 1.4 and 2.0 is now complete 2005-06-14 20:51 davidm * crypto.c: Do not use immediate processing for SW drivers otherwise we hold a lock for too long. Instead force BATCH processing. Problem found by David Vrabel 2005-06-14 20:46 davidm * cryptodev.c: Fix up AES minimum key size Make some more variables static 2005-06-14 20:36 davidm * ixp4xx/ixp4xx.c: Use kernel caches as they are more efficient and faster to obtain. Fix some spelling Tune PKE to only use the space required. Turn off go fast options to reduce any speed-related cracking. Only zero data that needs to be zeroed (save some cycles) 2005-06-02 21:42 davidm * ixp4xx/ixp4xx.c: Added optimisations ideas from Intel the improve the PKE performance for 512 and 1024 bits operations. 2005-06-01 02:13 davidm * ixp4xx/ixp4xx.c: Looks like I found the ixp bug. Using OSAL buffer routines on non-OSAL buffers is a very very bad thing to do. Must double check all the API's I am using (ie., PKE) just to be sure. 2005-05-31 21:38 davidm * Config.in, Kconfig: Updated/Added the menu wrapper for the config options 2005-05-31 21:18 gerg * Config.in: Reworked the config.in so that each sub-module has its own Config.in. That way it is easier to make release trees with some modules left in. 2005-05-30 19:46 davidm * ixp4xx/ixp4xx.c: Not all the Pke code was appropriately ifdef'd 2005-05-28 01:49 davidm * cryptosoft.c: We were not injecting data in the right places nor calling the cipher code the best was under all situations. We are now good enought to do ESP/AH processing with 3DES and SHA1-HMAC. 2005-05-28 01:42 davidm * hifn/hifn7751.c: Non atomic kmallocs at IRQ time are bad and cause lockups 2005-05-21 08:31 davidm * README, README.sglinux: Some small updates to email and patches that no longer exist 2005-05-21 08:25 davidm * cryptosoft.c: better error message on failure, a lot of the error check we do sems to break apps like cryptotest, not sure who is right yet. 2005-05-21 00:55 davidm * criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, random.c, rndtest.c, uio.h, hifn/hifn7751.c, ixp4xx/ixp4xx.c, safe/safe.c, safe/safevar.h: Convert to CyberGuard email addresses for OCF files. 2005-05-21 00:28 davidm * crypto.c, cryptodev.c, cryptosoft.c, hifn/hifn7751.c, ixp4xx/ixp4xx.c, safe/safe.c: final round of naming changes, hifn driver also confirmed working in SG710 2005-05-20 23:50 davidm * cryptosoft.c, random.c, uio.h, ixp4xx/ixp4xx.c: more copyright/author updates etc for Intel 2005-05-20 23:48 davidm * criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, random.c, rndtest.c, uio.h, ixp4xx/ixp4xx.c, safe/safe.c, safe/safevar.h: updated copyrights to reflect Intels interest/investment in the project 2005-05-20 20:31 davidm * hifn/: hifn7751.c, hifn7751var.h: Most of a working SKB implementation now 2005-05-20 20:30 davidm * safe/: md5.c, md5.h, safe.c, sha1.c, sha1.h: Full AH/ESP processing now working, just added BSD sha/md5 routines as needed for now. 2005-05-20 20:30 davidm * random.c: use the new BSD rndtest code rather than the old GPL fips code 2005-05-20 20:28 davidm * Makefile, fips.c, fips.h, rndtest.c, rndtest.h: Get rid of the GPL version of the fips test and use a BSD licensed version so no one can get upset and cry derivative :-) 2005-05-20 08:19 davidm * ixp4xx/ixp4xx.c: High throughput improvements. Can now handle multiple simultaneous requests. 2005-05-20 00:55 davidm * ixp4xx/ixp4xx.c: works with openswan/OCF for ipsec receive. fixes ESP/AUTH processing (esp. HMAC) This driver needs a rework for kernel IPSEC as it's current packet at a time processing is not up to the task. 2005-05-20 00:53 davidm * cryptosoft.c: working ESP/AUTH code now impleneted. Can do RX processing for openswan KLIPS. Fixes numerous problems in skb processing Fixes broken HMAC code and IV processing 2005-05-14 01:44 davidm * cryptodev.c, ixp4xx/ixp4xx.c: Cleanup IXP key processing to guarantee only a single outstanding request rather than relying on the intel driver to get it right. Stops us losing requests. Tighten up the cryptodev response to "no answer" so that we don't take all the CPU. Only happens if there is a driver bug. 2005-05-14 00:07 davidm * Config.in, Kconfig, Makefile, crypto.c, fips.c, fips.h, random.c, ixp4xx/ixp4xx.c, tools/bench-ocf: PKE and RNG support running on the ixp driver, added PKE bench marking to script. Still some multi-thread problems in the PKE code. Added FIP RNG checking option to config and code. 2005-05-10 19:18 davidm * Makefile, ixp4xx/ixp4xx.c: Get the OCF stuff building for the 465 and CSR-2.0 2005-04-27 19:18 davidm * cryptodev.h, random.c, hifn/hifn7751.c, safe/safe.c: cleanup the random number interface some more 2005-04-27 00:57 davidm * cryptodev.h, cryptosoft.c, random.c, hifn/hifn7751.c, ixp4xx/ixp4xx.c, patches/linux-2.4.29-add_true_randomness.patch, patches/linux-2.6.11-add_true_randomness.patch, safe/safe.c, safe/safevar.h: Switch to a more "user" like random number handling. Drivers no longer poll for RNG data, we pull it as needed to fill /dev/random's entropy. Implement sk_buff handling within the OCF framework. fixup IV handling in cryptosoft. 2005-04-27 00:41 davidm * crypto.c: Fix a race condition with the starting of kernel threads. The threads were running before the pid assignment in the parent. 2005-03-24 23:57 davidm * Makefile: include crypto-tools.patch in the release file 2005-03-24 20:14 davidm * safe/safe.c: Fixup compile time warnings due to some left over BSDisms 2005-03-24 00:53 davidm * Makefile, README, README.sglinux, patches/linux-2.4.29-ocf.patch, patches/linux-2.6.11-ocf.patch, patches/ocf-linux-2.4.29.patch, patches/ocf-linux-2.6.11.patch: added cleaner patch names and a tarball target to aid releases 2005-03-24 00:28 davidm * patches/crypto-tools.patch, patches/linux-2.4.29-add_true_randomness.patch, patches/linux-2.6.11-add_true_randomness.patch, patches/ocf-linux-2.4.29.patch, patches/ocf-linux-2.6.11.patch, patches/ssh.patch, patches/ssl.patch, tools/bench-ocf: move all the release file patches into CVS for simplicity 2005-03-23 20:37 davidm * safe/safe.c: remove excessive debug from RNG routines so that you can turn on debug and live through it 2005-03-23 02:23 davidm * safe/safe.c: fix memory corruption for mod_exp and the safenet, we were copying back more than the space available. 2005-03-22 21:45 davidm * crypto.c, cryptodev.c, cryptodev.h, safe/safe.c: fixup a major sync issues with key processing (callback called before sleeping). Improve its performance while we are there with a CBIMM (callback immediate) option. 2005-03-19 00:33 davidm * random.c: A new randomness function for both 2.4 and 2.6 that replaces out previous old solution for the hifn driver with more generic code that works on both kernels. add_true_randomness(u_int32_t *buf, int nwords); 2005-03-18 21:01 davidm * Makefile, cryptodev.h, random.c, hifn/hifn7751.c, safe/safe.c: RNG support in both the safenet and the hifn plus the required kernel support. "hd /dev/random" runs much much faster now :-) 2005-03-17 23:29 toby * cryptodev.c: Make sure the CIOCASYMFEAT ioctl on /dev/crypto copies out the capable features. 2005-03-17 01:19 davidm * safe/: safe.c, safereg.h, safevar.h: hardware PK acceleration on the safenet (CRK_MOD_EXP only) 2005-03-16 04:28 davidm * criov.c, crypto.c, cryptodev.c, safe/safe.c: fixup the FBSD id stuff to compile :-) 2005-03-16 04:02 davidm * README, README.sglinux, TODO: Updated with versions, removed tabs, new kernel versions, web site etc 2005-03-16 03:45 davidm * criov.c, crypto.c, cryptodev.c, cryptodev.h: more license formatting and version id's to help keep in touch with FreeBSD 2005-03-16 03:16 davidm * safe/safe.c: up to date with FreeBSD versioning, no changes to merge 2005-03-16 03:15 davidm * safe/safe.c: include FreeBSD version info so I can track changes better 2005-03-16 03:11 davidm * hifn/: hifn7751.c, hifn7751reg.h, hifn7751var.h: incorporate latest updates from FreeBSD: | Update support for 795x parts: | o rework pll setup code to follow h/w specification | o add hint.hifn.X.pllconfig to specify reference clock setup | requirements; default is pci66 which means the clock is | derived from the PCI bus clock and the card resides in a | 66MHz slot | | Tested on 7955 and 7956 cards; support for 7954 cards not enabled | since we have no cards to test against. 2005-03-16 02:50 davidm * Config.in, Kconfig, README, crypto.c, cryptodev.c, cryptodev.h, hifn/hifn7751.c, hifn/hifn7751var.h, safe/safe.c, safe/safevar.h: cleanups to build and run on 2.6.11 and 2.4.29 for a public release included configs locally to reduce patch to kernel and required user effort. pci_dma_sync_single fix from Michele Baldessari , with modifications by me to work on all kernels. 2005-03-11 23:30 davidm * Makefile: fix up the compiling again, I had outstanding commits for this one :-) 2005-03-11 21:56 danield * Makefile: Get ocf modules building again. 2004-12-25 07:12 davidm * TODO: safenet is all good now AKAIK 2004-12-25 07:02 davidm * Makefile, crypto.c, cryptodev.c, cryptosoft.c, uio.h: 2.6 port of the OCF framework, tested on Xscale and compiled for x86 2004-12-10 02:41 davidm * hifn/hifn7751.c: Fix compilation as l_flags was not defined for LOCK in pci_remove 2004-12-06 19:15 davidm * hifn/hifn7751.c, safe/safe.c: * Put locking into hifn_remove to ensure interrupts are not running while we remove the driver Use del_timer_sync (need to ensure timer is not running on another CPU * when we delete it). Improvements suggested by Evgeniy Polyakov 2004-12-02 09:16 davidm * README, README.sglinux: * Fix up all tabs to be spaces * explain how to update the ocf support in the patch to the current version. 2004-12-02 09:11 davidm * README: * fix some spelling/grammar * add more info on the ssl.patch file and what it contains 2004-12-02 09:08 davidm * README.sglinux: give some more instructions on the shar archive and extracting the release. 2004-12-02 09:03 davidm * README.sglinux: how to include crypto-tools into 3.1.6 2004-12-02 08:48 davidm * README.sglinux: updated for a new crypto patch for openssl-0.9.7e 2004-12-02 08:04 davidm * README, README.sglinux: Clean up the README's to use the new SG Linux alpha and a specific 2.4.28 patch. 2004-12-01 23:11 davidm * Makefile, criov.c, crypto.c, cryptodev.c, cryptosoft.c, hifn/Makefile, hifn/hifn7751.c, ixp4xx/Makefile, ixp4xx/ixp4xx.c, safe/Makefile, safe/safe.c: Re-worked the Makefiles so that including the code into a standard non-SG kernel is really easy. Fixed a non-initialised bug that was introduce into cryptosoft.c with the additional error checking. 2004-12-01 01:54 davidm * TODO: updates based on things that have been fixed. 2004-12-01 01:53 davidm * safe/: safe.c, safevar.h: Cleanup some old hacks based on the much cleaner port of the hifn driver. 2004-12-01 01:53 davidm * cryptosoft.c: fix some crashes due to bad buffer sizes etc. 2004-11-27 09:16 davidm * crypto.c, cryptodev.c, ixp4xx/ixp4xx.c: Fixed some nasty problems that were stopping reliable behaviour: 1) we were not initialising some of our lists/wait queues, which meant they appears to have things in them when in fact they did not. This actually didn't seems to cause any problems but is extremely bogus. 2) While a process was waiting for the crypto engine, if itreceived a signal we would lose sync with the engine and end up allowing out-of-band actions that were invalid (ie., unregistering a context that was still active in a crypto operation). Of source the CryptACC should probably deal with this as well ;-) 2004-11-26 01:33 davidm * TODO: We should also hook in the random number generators to linux 2004-11-26 01:33 davidm * hifn/hifn7751.c: Changed all the accesses to DMS descriptors to not set the valid bit until after everything else was set. This got the driver running smoothly, along with a fixup to the pci_map_uio which wasn't settings lengths correctly. 2004-11-25 21:15 davidm * ixp4xx/ixp4xx.c: document why using a new context for each packet is actually a better idea than allocating one (actually two) per session. 2004-11-25 08:48 davidm * README, README.sglinux: updates from email with Intel to fix a few little things 2004-11-25 00:02 davidm * README, README.sglinux, safe/safe.c: Some cleanups of doc and so on for Intel/General use 2004-11-23 07:58 davidm * TODO: safenet is working on big endian machines now 2004-11-23 07:56 davidm * ixp4xx/: Makefile, ixp4xx.c: Reference the Intel library, cleanup the IV sizes and turn on AES. Fix Makefile for new config options. 2004-11-23 07:52 davidm * Makefile: Complete the changes of ixp to ixp4xx (IXP4xx) as appropriate 2004-11-23 00:33 davidm * Makefile, README, ixp4xx/Makefile: Changes all references to ixp to be ixp4xx at Intels request 2004-11-20 01:07 davidm * safe/: safe.c, safereg.h: fully working safenet on BE machines 2004-11-19 01:03 davidm * Makefile, hifn/Makefile, hifn/hifn7751.c, hifn/hifn7751reg.h, hifn/hifn7751var.h: hifn driver code complete and compiling, needs a test now ;-) 2004-11-18 21:45 davidm * hifn/: Makefile, hifn7751.c, hifn7751var.h: Makefile for building the hifn driver 2004-11-18 21:44 davidm * hifn/: hifn7751.c, hifn7751reg.h, hifn7751var.h: Checkin the orginal freebsd source for the hifn driver as a reference in the future. 2004-11-18 10:05 davidm * Makefile, README, TODO, criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, uio.h, ixp4xx/Makefile, ixp4xx/ixp4xx.c, safe/Makefile, safe/safe.c, safe/safevar.h: Clean up license and copyright info to be more acceptable (and present) Clean up debug and trace Fixup memory freeing etc on safenet Fix compiler warnings (some were bugs) 2004-11-17 02:23 davidm * safe/safe.c: working on Xscale (big endian) now but packet data is getting stuffed up due to endian problems (at least now we are talking to the chip correctly for BE). Good enough to test packet throughput, no good for testing scp. 2004-11-17 02:21 davidm * criov.c: Make sure public symbols are exported by including the correct header files 2004-11-17 02:15 davidm * crypto.c: even better cleanup of kernel threads on exit 2004-11-17 02:15 davidm * cryptosoft.c: return some trace to debug so it doesn't appear 2004-11-17 02:14 davidm * Makefile: Make sure all drivers get built, not just IXP 2004-11-16 21:31 davidm * crypto.c: Fix problem with reboots and driver not unloading cleanly, we were not handling signals correctly in the kernel threads, 2004-11-10 10:46 davidm * ixp4xx/ixp4xx.c: fix serious context leak, itturns out the context is still considered busy while it is calling the perform callback, so we cleanup on closing the session and on allocating the next context to work around this. 2004-11-10 05:26 davidm * crypto.c, cryptodev.c, ixp4xx/ixp4xx.c, safe/safe.c: cleaned out some debug, found MAX tunnels bug, traced it various other cleanups. 2004-11-10 04:02 davidm * cryptodev.c, cryptosoft.c, ixp4xx/ixp4xx.c, safe/Makefile, safe/safe.c: Fix up kmalloc usage to always zero resulting buffer everywhere (stops crashes in ixp) Add some function debug to ixp so you can see it working Fix safe driver to build and install in a real tree. 2004-11-10 02:27 davidm * Makefile, criov.c, crypto.c, cryptosoft.c, ixp4xx/Makefile, ixp4xx/ixp4xx.c: Compiling OCF modules for the IXP crypto, needs testing now 2004-11-09 19:16 davidm * criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, cryptosoft.h, uio.h, safe/safe.c, safe/safevar.h: The linux port of OCF with working safenet and software modules. Still some bugs with mutiple crypto threads using the safenet driver. 2004-11-09 18:49 davidm * Makefile, criov.c, crypto.c, cryptodev.c, cryptodev.h, cryptosoft.c, cryptosoft.h, uio.h, safe/Makefile, safe/safe.c, safe/safereg.h, safe/safevar.h: Check in the orginal free-bsd sources for the OCF support. This allows us to diff against it later to see if we botched anything major league.