funzipuno.hpp

Ir a la documentación de este archivo.
00001 
00022 #if !defined(FUNZIPUNO_H)
00023 #define FUNZIPUNO_H
00024 
00025 
00026 #include <limits.h>
00027 #include <stdio.h>
00028 #include <zlib.h>
00029 #include <assert.h>
00030 
00031 static const uint32_t crc_32_tab[] =
00032         { /* Polinomio para CRC */
00033                 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
00034                 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
00035                 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
00036                 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
00037                 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
00038                 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
00039                 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
00040                 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
00041                 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
00042                 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
00043                 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
00044                 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
00045                 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
00046                 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
00047                 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
00048                 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
00049                 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
00050                 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
00051                 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
00052                 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
00053                 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
00054                 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
00055                 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
00056                 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
00057                 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
00058                 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
00059                 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
00060                 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
00061                 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
00062                 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
00063                 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
00064                 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
00065                 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
00066                 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
00067                 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
00068                 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
00069                 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
00070                 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
00071                 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
00072                 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
00073                 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
00074                 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
00075                 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
00076         };
00077 
00078 /* Definiciones para encabezados PKZIP */
00079 #define ZIPMAG 0x4b50           /* dos bytes iniciales  */
00080 #define LOCREM 0x0403           /* siguientes 2 bytes en firma zip */
00081 #define LOCSIG 0x04034b50L      /* firma completa */
00082 #define LOCFLG 4                /* desplazamiento del byte de banderas */
00083 #define CRPFLG 1               /*  bit de entrada encriptada */
00084 #define EXTFLG 8               /*  bit de encabezado extendido */
00085 #define LOCHOW 6                /* desplazamiento del método de compresión */
00086 #define LOCTIM 8                /* fecha de modificación (para desencriptar) */
00087 #define LOCCRC 12               /* desplazamiento del CRC */
00088 #define LOCSIZ 16               /* desplazamiento del tamaño comprimido */
00089 #define LOCLEN 20               /* desplazamiento de longitud deescomprimido */
00090 #define LOCFIL 24               /* desplazamiento del nombre del archivo */
00091 #define LOCEXT 26               /* desplazamiento del campo extra */
00092 #define LOCHDR 28               /* tamaño del encabezado loca, incluye LOCREM*/
00093 #define EXTHDR 16               /* tamaño del encabezado extendido con firma */
00094 
00095 /* Macros para tomar valores del encabezados de 2 y 4 bytes */
00096 #define SH(p) ((ush)(uch)((p)[0]) | ((ush)(uch)((p)[1]) << 8))
00097 #define LG(p) ((ulg)(SH(p)) | ((ulg)(SH((p)+2)) << 16))
00098 
00099 typedef unsigned char   uch;
00100 typedef unsigned short  ush;
00101 typedef unsigned long   ulg;
00102 typedef size_t  extent;
00103 
00104 #define Z_STORED 0  // Otro método de almacenamiento que complementa Z_DEFLATED
00105 
00106 
00107 
00113 unsigned long updcrc(unsigned char *s, unsigned long n);
00114 
00115 
00119 void err(int n, char *m);
00120 
00121 
00125 void unzipUno(FILE *in, char *nombre, FILE *out);
00126 
00127 #endif

Generado el Wed Jan 6 06:58:22 2010 para Mt77 por  doxygen 1.5.4