 6459f149be
			
		
	
	6459f149be
	
	
	
		
			
			git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2015 ec53bebd-3082-4978-b11e-865c3cabbd6b
		
			
				
	
	
		
			39 lines
		
	
	
		
			569 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			569 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "krb5_locl.h"
 | |
| 
 | |
| RCSID("$Id$");
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include "crc.h"
 | |
| 
 | |
| static u_long table[256];
 | |
| 
 | |
| #define CRC_GEN 0xEDB88320L
 | |
| 
 | |
| void
 | |
| crc_init_table(void)
 | |
| {
 | |
|     unsigned long crc, poly;
 | |
|     int     i, j;
 | |
|     
 | |
|     poly = CRC_GEN;
 | |
|     for (i = 0; i < 256; i++) {
 | |
| 	crc = i;
 | |
| 	for (j = 8; j > 0; j--) {
 | |
| 	    if (crc & 1) {
 | |
| 		crc = (crc >> 1) ^ poly;
 | |
| 	    } else {
 | |
| 		crc >>= 1;
 | |
| 	    }
 | |
| 	}
 | |
| 	table[i] = crc;
 | |
|     }
 | |
| }
 | |
| 
 | |
| u_int32_t
 | |
| crc_update (char *p, size_t len, u_int32_t res)
 | |
| {
 | |
|     while (len--)
 | |
| 	res = table[(res ^ *p++) & 0xFF] ^ (res >> 8);
 | |
|     return res & 0xFFFFFFFF;
 | |
| }
 |