History log of /src/sys/opencrypto/deflate.c |
Revision | | Date | Author | Comments |
1.23 |
| 17-May-2017 |
knakahara | opencrypto: cleanup debug messages.
|
1.22 |
| 26-Mar-2015 |
prlw1 | branches: 1.22.8; Trivial printf format changes and typo fix
|
1.21 |
| 03-Jul-2011 |
mrg | branches: 1.21.12; 1.21.30; avoid some uninitialised warning issues GCC 4.5 complains about.
|
1.20 |
| 09-Mar-2011 |
drochner | -start to make the GZIP code similar to DEFLATE: make error handling work the same way, grow output buffer exponentially and kill reallocation of metadata -minor cleanup, make definitions private which are implementation details of deflate.gzip
|
1.19 |
| 24-Feb-2011 |
drochner | small modifications in dealing with the unknown result size of compression/ decompression: -seperate the IPCOMP specific rule that compression must not grow the data from general compression semantics: Introduce a special name CRYPTO_DEFLATE_COMP_NOGROW/comp_algo_deflate_nogrow to describe the IPCOMP semantics and use it there. (being here, fix the check so that equal size is considered failure as well as required by RFC2393) Customers of CRYPTO_DEFLATE_COMP/comp_algo_deflate now always get deflated data back, even if they are not smaller than the original. -allow to pass a "size hint" to the DEFLATE decompression function which is used for the initial buffer allocation. Due to the changes done there, additional allocations and extra copies are avoided if the initial allocation is sufficient. Set the size hint to MCLBYTES (=2k) in IPCOMP which should be good for many use cases.
|
1.18 |
| 18-Feb-2011 |
drochner | redo result buffer allocation, to avoid dynamic allocations: -use exponentially growing buffer sizes instead of just linear extension -drop the dynamic allocation of buffer metadata introduced in rev.1.8 -- if the initial array is not sufficient something is wrong -apply some (arbitrary, heuristic) limit so that compressed data which extract into insane amounts of constant data don't kill the system This addresses PR kern/36864 by Wolfgang Stukenbrock. Some tuning might be useful, but hopefully this is an improvement already.
|
1.17 |
| 18-Feb-2011 |
drochner | address the obvious byteorder and alignment problems in gzip size/crc tail, should fix PR kern/44210 by Wolfgang Stukenbrock being here, fix a bug in crc calculation of decompressed data, and actually verify the crc
|
1.16 |
| 17-Feb-2011 |
drochner | The decompressor in sys/net/zlib.c has a bug: It returns Z_BUF_ERROR after a successful decompression in rare cases. A necessary but not sufficient condition seems to be that the decompressed data end exactly at the end of an allocated output buffer. (I can reproduce this reliably with a userland program built against kernel zlib. Userland libz is much newer and not affected.) Since kernel zlib is based on an old version and heavily modified, I don't dare to touch it. So catch this case in the wrapper. Being here, reorder deflate/inflate error handling and add comments to make understandable what is tested and why.
|
1.15 |
| 16-Feb-2011 |
drochner | -avoid allocation of an extra result buffer and data copy in case the DEFLATE complssion/decompression result is within a single buffer already -simplify bookkeeping of allocated buffers (and don't waste the last member of the metadata array) from Wolfgang Stukenbrock per PR kern/36865 (with some cleanup of error handling by me) The Gzip compression case can be improved too, but for now I've applied the buffer bookkeeping changes.
tested with IP4 IPCOMP
|
1.14 |
| 10-Feb-2011 |
drochner | whan compressing, set the Z_FINISH flag to zlib to tell that the data chunk is the final one, which makes that zlib issues the proper termination marker (KAME IPSEC does this, but doesn't check eagerly in the receive path, so the missing termination didn't cause problems so far) closes my PR kern/44539 being here, replace the Z_PARTIAL_FLUSH flag which is marked deprecated by zlib by Z_SYNC_FLUSH in the decompression path (tested with IPv4 IPCOMP on i386)
|
1.13 |
| 25-Mar-2009 |
darran | branches: 1.13.4; 1.13.6; 1.13.8; Fixes PR kern/41069 and PR kern/41070.
Extends the Opencrypto API to allow the destination buffer size to be specified when its not the same size as the input buffer (i.e. for operations like compress and decompress). The crypto_op and crypt_n_op structures gain a u_int dst_len field. The session_op structure gains a comp_alg field to specify a compression algorithm. Moved four ioctls to new ids; CIOCGSESSION, CIOCNGSESSION, CIOCCRYPT, and CIOCNCRYPTM. Added four backward compatible ioctls; OCIOCGSESSION, OCIOCNGSESSION, OCIOCCRYPT, and OCIOCNCRYPTM.
Backward compatibility is maintained in ocryptodev.h and ocryptodev.c which implement the original ioctls and set dst_len and comp_alg to 0.
Adds user-space access to compression features.
Adds software gzip support (CRYPTO_GZIP_COMP).
Adds the fast version of crc32 from zlib to libkern. This should be generally useful and provide a place to start normalizing the various crc32 routines in the kernel. The crc32 routine is used in this patch to support GZIP.
With input and support from tls@NetBSD.org.
|
1.12 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.11 |
| 05-May-2008 |
ad | branches: 1.11.8; 1.11.10; 1.11.14; 1.11.18; Back out previous. It broke the build.
|
1.10 |
| 04-May-2008 |
ad | Move zlib out of net/ and into kern/. It would probably be better to use the reachover Makefiles and libz, but this is already here and it works.
|
1.9 |
| 22-Sep-2007 |
degroote | branches: 1.9.24; Fix a stupid bogus bcopy -> memcpy conversion. I will write it 1000 times : when I convert bcopy to memcpy, don't forget to swap first and secund args.
|
1.8 |
| 21-May-2007 |
degroote | branches: 1.8.6; 1.8.8; Use dynamic array instead of an static array to decompress. It lets us to decompress any data, whatever is the radio decompressed data / compressed data.
It fixes the last issues with fast_ipsec and ipcomp.
While here, bzero -> memset, bcopy -> memcpy, FREE -> free
Reviewed a long time ago by sam@
|
1.7 |
| 16-Nov-2006 |
christos | branches: 1.7.2; 1.7.8; 1.7.10; 1.7.16; __unused removal on arguments; approved by core.
|
1.6 |
| 12-Oct-2006 |
christos | - sprinkle __unused on function decls. - fix a couple of unused bugs - no more -Wno-unused for i386
|
1.5 |
| 17-Mar-2006 |
christos | branches: 1.5.8; 1.5.10; don't use MALLOC with a non-constant size; use malloc instead.
|
1.4 |
| 11-Dec-2005 |
christos | branches: 1.4.4; 1.4.6; 1.4.8; 1.4.10; 1.4.12; merge ktrace-lwp.
|
1.3 |
| 26-Feb-2005 |
perry | branches: 1.3.4; nuke trailing whitespace
|
1.2 |
| 27-Aug-2003 |
thorpej | branches: 1.2.4; 1.2.10; 1.2.12; Tidy up the namespace of this a little.
|
1.1 |
| 25-Jul-2003 |
jonathan | Commit initial NetBSD port of the OpenCrypto Framework (OCF). This code is derived from Sam Leffler's FreeBSD port of OCF, which is in turn a port of Angelos Keromytis's OpenBSD work. Credit to Sam and Angelos, any blame for the NetBSD port to me.
|
1.2.12.1 |
| 19-Mar-2005 |
yamt | sync with head. xen and whitespace. xen part is not finished.
|
1.2.10.1 |
| 29-Apr-2005 |
kent | sync with -current
|
1.2.4.5 |
| 04-Mar-2005 |
skrll | Sync with HEAD.
Hi Perry!
|
1.2.4.4 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.2.4.3 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.2.4.2 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.2.4.1 |
| 27-Aug-2003 |
skrll | file deflate.c was added on branch ktrace-lwp on 2004-08-03 10:56:25 +0000
|
1.3.4.3 |
| 27-Oct-2007 |
yamt | sync with head.
|
1.3.4.2 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.3.4.1 |
| 21-Jun-2006 |
yamt | sync with head.
|
1.4.12.1 |
| 28-Mar-2006 |
tron | Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
|
1.4.10.1 |
| 19-Apr-2006 |
elad | sync with head.
|
1.4.8.1 |
| 01-Apr-2006 |
yamt | sync with head.
|
1.4.6.1 |
| 22-Apr-2006 |
simonb | Sync with head.
|
1.4.4.1 |
| 09-Sep-2006 |
rpaulo | sync with head
|
1.5.10.2 |
| 10-Dec-2006 |
yamt | sync with head.
|
1.5.10.1 |
| 22-Oct-2006 |
yamt | sync with head
|
1.5.8.1 |
| 18-Nov-2006 |
ad | Sync with head.
|
1.7.16.2 |
| 30-Sep-2007 |
wrstuden | Catch up on netbsd-4 as of a few days ago.
|
1.7.16.1 |
| 04-Jun-2007 |
wrstuden | Update to today's netbsd-4.
|
1.7.10.1 |
| 11-Jul-2007 |
mjf | Sync with head.
|
1.7.8.2 |
| 09-Oct-2007 |
ad | Sync with head.
|
1.7.8.1 |
| 08-Jun-2007 |
ad | Sync with head.
|
1.7.2.2 |
| 25-Sep-2007 |
xtraeme | Pull up following revision(s) (requested by degroote in ticket #897): sys/opencrypto/deflate.c: revision 1.9
Fix a stupid bogus bcopy -> memcpy conversion. I will write it 1000 times : when I convert bcopy to memcpy, don't forget to swap first and secund args.
|
1.7.2.1 |
| 24-May-2007 |
pavel | Pull up following revision(s) (requested by degroote in ticket #667): sys/netinet/tcp_input.c: revision 1.260 sys/netinet/tcp_output.c: revision 1.154 sys/netinet/tcp_subr.c: revision 1.210 sys/netinet6/icmp6.c: revision 1.129 sys/netinet6/in6_proto.c: revision 1.70 sys/netinet6/ip6_forward.c: revision 1.54 sys/netinet6/ip6_input.c: revision 1.94 sys/netinet6/ip6_output.c: revision 1.114 sys/netinet6/raw_ip6.c: revision 1.81 sys/netipsec/ipcomp_var.h: revision 1.4 sys/netipsec/ipsec.c: revision 1.26 via patch,1.31-1.32 sys/netipsec/ipsec6.h: revision 1.5 sys/netipsec/ipsec_input.c: revision 1.14 sys/netipsec/ipsec_netbsd.c: revision 1.18,1.26 sys/netipsec/ipsec_output.c: revision 1.21 via patch sys/netipsec/key.c: revision 1.33,1.44 sys/netipsec/xform_ipcomp.c: revision 1.9 sys/netipsec/xform_ipip.c: revision 1.15 sys/opencrypto/deflate.c: revision 1.8 Commit my SoC work Add ipv6 support for fast_ipsec Note that currently, packet with extensions headers are not correctly supported Change the ipcomp logic
Add sysctl tree to modify the fast_ipsec options related to ipv6. Similar to the sysctl kame interface.
Choose the good default policy, depending of the adress family of the desired policy
Increase the refcount for the default ipv6 policy so nobody can reclaim it
Always compute the sp index even if we don't have any sp in spd. It will let us to choose the right default policy (based on the adress family requested). While here, fix an error message
Use dynamic array instead of an static array to decompress. It lets us to decompress any data, whatever is the radio decompressed data / compressed data. It fixes the last issues with fast_ipsec and ipcomp. While here, bzero -> memset, bcopy -> memcpy, FREE -> free Reviewed a long time ago by sam@
|
1.8.8.1 |
| 06-Nov-2007 |
matt | sync with HEAD
|
1.8.6.1 |
| 02-Oct-2007 |
joerg | Sync with HEAD.
|
1.9.24.1 |
| 04-May-2009 |
yamt | sync with head.
|
1.11.18.1 |
| 20-May-2011 |
matt | bring matt-nb5-mips64 up to date with netbsd-5-1-RELEASE (except compat).
|
1.11.14.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.11.10.1 |
| 03-May-2009 |
snj | Pull up following revision(s) (requested by tls in ticket #611): sys/lib/libkern/Makefile: patch sys/lib/libkern/crc32.c: revision 1.1 sys/lib/libkern/crc32.h: revision 1.1 sys/lib/libkern/libkern.h: revision 1.89 sys/lib/libkern/arch/i386/Makefile.inc: revision 1.28 sys/net/zlib.h: revision 1.14 via patch sys/opencrypto/crypto.c: revision 1.33 sys/opencrypto/cryptodev.c: revision 1.46 sys/opencrypto/cryptodev.h: revision 1.16 sys/opencrypto/cryptosoft.c: revision 1.24 sys/opencrypto/cryptosoft.h: revision 1.6 sys/opencrypto/deflate.h: revision 1.6 sys/opencrypto/cryptosoft_xform.c: revision 1.12 sys/opencrypto/deflate.c: revision 1.13 sys/opencrypto/files.opencrypto: revision 1.20 sys/opencrypto/ocryptodev.c: revision 1.1 sys/opencrypto/ocryptodev.h: revision 1.1 sys/opencrypto/xform.c: revision 1.18 sys/opencrypto/xform.h: revision 1.10 Fixes PR kern/41069 and PR kern/41070.
Extends the Opencrypto API to allow the destination buffer size to be specified when its not the same size as the input buffer (i.e. for operations like compress and decompress). The crypto_op and crypt_n_op structures gain a u_int dst_len field. The session_op structure gains a comp_alg field to specify a compression algorithm. Moved four ioctls to new ids; CIOCGSESSION, CIOCNGSESSION, CIOCCRYPT, and CIOCNCRYPTM. Added four backward compatible ioctls; OCIOCGSESSION, OCIOCNGSESSION, OCIOCCRYPT, and OCIOCNCRYPTM.
Backward compatibility is maintained in ocryptodev.h and ocryptodev.c which implement the original ioctls and set dst_len and comp_alg to 0.
Adds user-space access to compression features.
Adds software gzip support (CRYPTO_GZIP_COMP).
Adds the fast version of crc32 from zlib to libkern. This should be generally useful and provide a place to start normalizing the various crc32 routines in the kernel. The crc32 routine is used in this patch to support GZIP.
With input and support from tls@NetBSD.org.
|
1.11.8.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.13.8.2 |
| 05-Mar-2011 |
bouyer | Sync with HEAD
|
1.13.8.1 |
| 17-Feb-2011 |
bouyer | Sync with HEAD
|
1.13.6.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.13.4.2 |
| 21-Apr-2011 |
rmind | sync with head
|
1.13.4.1 |
| 05-Mar-2011 |
rmind | sync with head
|
1.21.30.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.21.30.1 |
| 06-Apr-2015 |
skrll | Sync with HEAD
|
1.21.12.1 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.22.8.1 |
| 19-May-2017 |
pgoyette | Resolve conflicts from previous merge (all resulting from $NetBSD keywork expansion)
|