public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Steve Strublic <SStrublic@hypercom.com>
Cc: andrew@lunn.ch, ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] No zlib crc32 support?
Date: Thu, 11 Dec 2003 00:38:00 -0000	[thread overview]
Message-ID: <20031211003822.GC3680@lunn.ch> (raw)
In-Reply-To: <OF682E2317.AF2D88BE-ON07256DF8.0057F011-07256DF8.005919FA@hypercom.com>

On Wed, Dec 10, 2003 at 09:09:53AM -0700, Steve Strublic wrote:
> 
> Andrew,
> 

>> "One of the crc32()functions actually implemented a different
>> variation on the crc32() algorithm which was incompatible with all
>> the other crc32 algorithms. Plus some "user" code may want to yet
>> again implement its own crc32 algorithm."

> This concerns me as a developer.  I would hope that there would be
> one supported CRC-32 algorithm; the one that is commonly accepted by
> the general community, the one provided by zlib.  It sounds like
> what you're saying is that cyg_crc32() is to be that single
> algorithm.

There appears to be no commenly accepted crc32 algorithm. Instead
there are at least two that i know off. There is cyg_crc32 which is
what zlib uses and is also the same crc that Ethernet frames uses and
probably other protocols.

There is another well known one, cyg_posix_crc32 which is what the
POSIX standards have specified. This is used by programs like cksum.

There are other 32 bit algorithms, such as Adler, but i don't think
this is actually a Cyclic Redundancy Check but some other algorithm.
 
There are no standardized function names for these algorithms. 802.3
just specifies the algorithm, not its name. POSIX is the same as far
as i know.

> I have a setup where I generate binaries on a Linux machine.  These
> binaries are compressed/encrypted and then the output run through
> CRC-32, and uploaded to the platform running eCos.  The platform
> then validates the encrypted binary by generating a CRC-32 value.
> Obviously, the values must match.  This is where my concern over
> cyg_crc32() comes from.
 
What you should really do if first specify what algorithm you want to
use. This could be the ethernet CRC, POSIX CRC , hmac or anything
else. Then find an implementation on both platforms. Doing it this way
around guarantees it will work. Assuming a none standardized function
name works the same on different platforms is dangerous.

> As long as eCosCentric will guarantee that the output from
> cyg_crc32() is and will remain 100% compatible with zlib's crc32(),
> that works for me.

The maintainers have no intention of changing these functions unless
somebody can prove they are broken, which i think it very unlikely.

         Andrew

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

  parent reply	other threads:[~2003-12-11  0:38 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-10 16:14 Steve Strublic
2003-12-10 16:20 ` Gary Thomas
2003-12-11  0:38 ` Andrew Lunn [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-12-15 17:56 Steve Strublic
2003-12-15 19:52 ` Nick Garnett
2003-12-12 22:35 Steve Strublic
2003-12-15  8:33 ` Andrew Lunn
2003-12-10 16:22 Steve Strublic
2003-12-09 21:08 Steve Strublic
2003-12-09 21:27 ` Gary Thomas
2003-12-10  8:39 ` Andrew Lunn
2003-12-09 20:29 Steve Strublic
2003-12-09 20:45 ` Gary Thomas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031211003822.GC3680@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=SStrublic@hypercom.com \
    --cc=ecos-discuss@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).