[rohc] IPR... again...
"West, Mark" <mark.a.west@roke.co.uk> Tue, 02 September 2003 13:33 UTC
Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id JAA23089 for <rohc-archive@odin.ietf.org>; Tue, 2 Sep 2003 09:33:57 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19uBHo-0000fG-OU for rohc-archive@odin.ietf.org; Tue, 02 Sep 2003 09:33:33 -0400
Received: (from exim@localhost) by www1.ietf.org (8.12.8/8.12.8/Submit) id h82DXW5j002550 for rohc-archive@odin.ietf.org; Tue, 2 Sep 2003 09:33:32 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19u9nG-0004CA-41 for rohc-web-archive@optimus.ietf.org; Tue, 02 Sep 2003 07:57:54 -0400
Received: from optimus.ietf.org (ietf.org [132.151.1.19] (may be forged)) by ietf.org (8.9.1a/8.9.1a) with ESMTP id HAA14086 for <rohc-web-archive@ietf.org>; Tue, 2 Sep 2003 07:57:49 -0400 (EDT)
Received: from localhost.localdomain ([127.0.0.1] helo=www1.ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19u6FD-0000cL-Og; Tue, 02 Sep 2003 04:10:31 -0400
Received: from odin.ietf.org ([132.151.1.176] helo=ietf.org) by optimus.ietf.org with esmtp (Exim 4.20) id 19u1tW-0006VE-V1 for rohc@optimus.ietf.org; Mon, 01 Sep 2003 23:31:50 -0400
Received: from ietf-mx (ietf-mx.ietf.org [132.151.6.1]) by ietf.org (8.9.1a/8.9.1a) with ESMTP id XAA11694 for <rohc@ietf.org>; Mon, 1 Sep 2003 23:31:44 -0400 (EDT)
Received: from ietf-mx ([132.151.6.1]) by ietf-mx with esmtp (Exim 4.12) id 19u1tT-00059N-00 for rohc@ietf.org; Mon, 01 Sep 2003 23:31:47 -0400
Received: from rsys001a.roke.co.uk ([193.118.192.110]) by ietf-mx with esmtp (Exim 4.12) id 19taFz-0003e6-00 for rohc@ietf.org; Sun, 31 Aug 2003 18:01:11 -0400
Received: by rsys001a.roke.co.uk with Internet Mail Service (5.5.2653.19) id <QY19X0HB>; Sun, 31 Aug 2003 23:00:34 +0100
Received: from localhost (orion.roke.co.uk [193.118.192.66]) by rsys002a.roke.co.uk with SMTP (Microsoft Exchange Internet Mail Service Version 5.5.2653.13) id Q9Z6Z0FH; Sun, 31 Aug 2003 23:00:31 +0100
From: "West, Mark" <mark.a.west@roke.co.uk>
To: rohc@ietf.org
Date: Sun, 31 Aug 2003 23:00:30 +0100
Message-ID: <Pine.WNT.4.56.0308312241130.1348@maw-laptop.roke.co.uk>
X-X-Sender: maw1@maw-laptop.roke.co.uk
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"
Subject: [rohc] IPR... again...
Sender: rohc-admin@ietf.org
Errors-To: rohc-admin@ietf.org
X-BeenThere: rohc@ietf.org
X-Mailman-Version: 2.0.12
Precedence: bulk
List-Unsubscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=unsubscribe>
List-Id: Robust Header Compression <rohc.ietf.org>
List-Post: <mailto:rohc@ietf.org>
List-Help: <mailto:rohc-request@ietf.org?subject=help>
List-Subscribe: <https://www1.ietf.org/mailman/listinfo/rohc>, <mailto:rohc-request@ietf.org?subject=subscribe>
Hi all, Gosh... guess what..? It seems that the IPR situation hasn't been resolved yet... Ok, well, here's one suggestion: let's ignore context repair (which, it has to be said, probably counts as novel) and just use the CRC to verify correct decompression in its most basic form... You want a reason? Oh, ok! Here are some 'quotes' from 'zlib' (you'll note that this was written in '95/'96 and, who'd've thunk it, contains a CRC over the uncompressed data...): /* gzio.c -- IO on .gz files * Copyright (C) 1995-1996 Jean-loup Gailly. * For conditions of distribution and use, see copyright notice in zlib.h */ <snip> typedef struct gz_stream { z_stream stream; int z_err; /* error code for last stream operation */ int z_eof; /* set if end of input file */ FILE *file; /* .gz file */ Byte *inbuf; /* input buffer */ Byte *outbuf; /* output buffer */ uLong crc; /* crc32 of uncompressed data */ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This might be relevant... char *msg; /* error message */ char *path; /* path name for debugging only */ int transparent; /* 1 if input file is not a .gz file */ char mode; /* 'w' or 'r' */ } gz_stream; <snip> if (s->z_err == Z_STREAM_END) { /* Check CRC and original size */ s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); start = s->stream.next_out; if (getLong(s) != s->crc || getLong(s) != s->stream.total_out) { s->z_err = Z_DATA_ERROR; } else { /* Check for concatenated .gz files: */ check_header(s); if (s->z_err == Z_OK) { inflateReset(&(s->stream)); s->crc = crc32(0L, Z_NULL, 0); } } } Now, I know I'm *really* slow on the uptake, but isn't this a CRC over the uncompressed data to verify decompression..?! Oh, and before anyone points out the fact: yes, I do know that IPR is claimed on computing the static / dynamic part of the CRC. Hmmmm... sounds like an implementation issue to me. Ok -- let's try this: everyone raise your right hand & repeat after me: "I do solemnly swear that I shall not stoop to any nasty implementation enhancements like caching the static part of the CRC computation without first consulting my tame patent attorney." There, that should fix it..? Comments..?! ;-/ Mark. _______________________________________________ Rohc mailing list Rohc@ietf.org https://www1.ietf.org/mailman/listinfo/rohc
- [rohc] IPR... again... West, Mark
- Re: [rohc] IPR... again... Alan Kennington
- RE: [rohc] IPR... again... West, Mark
- Re: [rohc] IPR... again... Alan Kennington