summaryrefslogtreecommitdiffstats
path: root/src/lib/crypto/crc32/crc.c
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-05-09 14:43:27 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-05-09 14:43:27 +0000
commitd156945493e623a5a9cbcb260b12b92aad9df8b8 (patch)
treeec3cfa954cf44d8f4fbcf824b932adff096254c1 /src/lib/crypto/crc32/crc.c
parentf02fe214c3029625e31746f943b0d703a30d6955 (diff)
downloadkrb5-d156945493e623a5a9cbcb260b12b92aad9df8b8.tar.gz
krb5-d156945493e623a5a9cbcb260b12b92aad9df8b8.tar.xz
krb5-d156945493e623a5a9cbcb260b12b92aad9df8b8.zip
update to new cksum interface
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@800 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/crypto/crc32/crc.c')
-rw-r--r--src/lib/crypto/crc32/crc.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/lib/crypto/crc32/crc.c b/src/lib/crypto/crc32/crc.c
index 4444b093e..0ce7589ba 100644
--- a/src/lib/crypto/crc32/crc.c
+++ b/src/lib/crypto/crc32/crc.c
@@ -89,23 +89,26 @@ static u_long const crc_table[256] = {
};
static krb5_error_code
-crc32_sum_func(in, out, seed, in_length, seed_length, outcksum)
+crc32_sum_func(in, in_length, seed, seed_length, outcksum)
krb5_pointer in;
-krb5_pointer out;
-krb5_pointer seed;
size_t in_length;
+krb5_pointer seed;
size_t seed_length;
krb5_checksum *outcksum;
{
- register u_char *data = (u_char *)in;
+ register u_char *data;
register u_long c = 0;
register int idx;
int i;
- outcksum->contents = (krb5_octet *)malloc(4);
- if (!outcksum->contents)
- return ENOMEM;
-
+ data = (u_char *)seed;
+ for (i=0; i<seed_length;i++) {
+ idx = (data[i] ^ c);
+ idx &= 0xff;
+ c >>= 8;
+ c ^= crc_table[idx];
+ }
+ data = (u_char *)in;
for (i=0; i<in_length;i++) {
idx = (data[i] ^ c);
idx &= 0xff;