Lines Matching refs:ctx

67     struct trad_pkware *ctx;  in zip_source_pkware()  local
79 if ((ctx=(struct trad_pkware *)malloc(sizeof(*ctx))) == NULL) { in zip_source_pkware()
84 ctx->e[0] = ctx->e[1] = 0; in zip_source_pkware()
86 ctx->key[0] = KEY0; in zip_source_pkware()
87 ctx->key[1] = KEY1; in zip_source_pkware()
88 ctx->key[2] = KEY2; in zip_source_pkware()
89 decrypt(ctx, NULL, (const zip_uint8_t *)password, strlen(password), 1); in zip_source_pkware()
91 if ((s2=zip_source_layered(za, src, pkware_decrypt, ctx)) == NULL) { in zip_source_pkware()
92 pkware_free(ctx); in zip_source_pkware()
102 decrypt(struct trad_pkware *ctx, zip_uint8_t *out, const zip_uint8_t *in, in decrypt() argument
114 tmp = (zip_uint16_t)(ctx->key[2] | 2); in decrypt()
124 ctx->key[0] = (zip_uint32_t)crc32(ctx->key[0] ^ 0xffffffffUL, &b, 1) ^ 0xffffffffUL; in decrypt()
125 ctx->key[1] = (ctx->key[1] + (ctx->key[0] & 0xff)) * 134775813 + 1; in decrypt()
126 b = ctx->key[1] >> 24; in decrypt()
127 ctx->key[2] = (zip_uint32_t)crc32(ctx->key[2] ^ 0xffffffffUL, &b, 1) ^ 0xffffffffUL; in decrypt()
134 decrypt_header(struct zip_source *src, struct trad_pkware *ctx) in decrypt_header() argument
142 zip_source_error(src, ctx->e, ctx->e+1); in decrypt_header()
147 ctx->e[0] = ZIP_ER_EOF; in decrypt_header()
148 ctx->e[1] = 0; in decrypt_header()
152 decrypt(ctx, header, header, HEADERLEN, 0); in decrypt_header()
163 ctx->e[0] = ZIP_ER_WRONGPASSWD; in decrypt_header()
164 ctx->e[1] = 0; in decrypt_header()
177 struct trad_pkware *ctx; in pkware_decrypt() local
180 ctx = (struct trad_pkware *)ud; in pkware_decrypt()
184 if (decrypt_header(src, ctx) < 0) in pkware_decrypt()
214 memcpy(data, ctx->e, sizeof(int)*2); in pkware_decrypt()
218 pkware_free(ctx); in pkware_decrypt()
222 ctx->e[0] = ZIP_ER_INVAL; in pkware_decrypt()
223 ctx->e[1] = 0; in pkware_decrypt()
231 pkware_free(struct trad_pkware *ctx) in pkware_free() argument
233 free(ctx); in pkware_free()