• Home
  • Raw
  • Download

Lines Matching refs:ctx

90   BIO_B64_CTX *ctx;  in b64_new()  local
92 ctx = OPENSSL_malloc(sizeof(*ctx)); in b64_new()
93 if (ctx == NULL) { in b64_new()
97 memset(ctx, 0, sizeof(*ctx)); in b64_new()
99 ctx->cont = 1; in b64_new()
100 ctx->start = 1; in b64_new()
103 bio->ptr = (char *)ctx; in b64_new()
120 BIO_B64_CTX *ctx; in b64_read() local
126 ctx = (BIO_B64_CTX *) b->ptr; in b64_read()
128 if (ctx == NULL || b->next_bio == NULL) { in b64_read()
134 if (ctx->encode != B64_DECODE) { in b64_read()
135 ctx->encode = B64_DECODE; in b64_read()
136 ctx->buf_len = 0; in b64_read()
137 ctx->buf_off = 0; in b64_read()
138 ctx->tmp_len = 0; in b64_read()
139 EVP_DecodeInit(&ctx->base64); in b64_read()
143 if (ctx->buf_len > 0) { in b64_read()
144 assert(ctx->buf_len >= ctx->buf_off); in b64_read()
145 i = ctx->buf_len - ctx->buf_off; in b64_read()
149 assert(ctx->buf_off + i < (int)sizeof(ctx->buf)); in b64_read()
150 memcpy(out, &ctx->buf[ctx->buf_off], i); in b64_read()
154 ctx->buf_off += i; in b64_read()
155 if (ctx->buf_len == ctx->buf_off) { in b64_read()
156 ctx->buf_len = 0; in b64_read()
157 ctx->buf_off = 0; in b64_read()
166 if (ctx->cont <= 0) { in b64_read()
170 i = BIO_read(b->next_bio, &(ctx->tmp[ctx->tmp_len]), in b64_read()
171 B64_BLOCK_SIZE - ctx->tmp_len); in b64_read()
178 ctx->cont = i; in b64_read()
180 if (ctx->tmp_len == 0) { in b64_read()
191 i += ctx->tmp_len; in b64_read()
192 ctx->tmp_len = i; in b64_read()
196 if (ctx->start && (BIO_test_flags(b, BIO_FLAGS_BASE64_NO_NL))) { in b64_read()
198 ctx->tmp_len = 0; in b64_read()
199 } else if (ctx->start) { in b64_read()
200 q = p = (uint8_t *)ctx->tmp; in b64_read()
209 if (ctx->tmp_nl) { in b64_read()
211 ctx->tmp_nl = 0; in b64_read()
215 k = EVP_DecodeUpdate(&(ctx->base64), (uint8_t *)ctx->buf, &num, p, in b64_read()
218 if (k <= 0 && num == 0 && ctx->start) { in b64_read()
219 EVP_DecodeInit(&ctx->base64); in b64_read()
221 if (p != (uint8_t *)&(ctx->tmp[0])) { in b64_read()
222 i -= (p - (uint8_t *)&(ctx->tmp[0])); in b64_read()
224 ctx->tmp[x] = p[x]; in b64_read()
227 EVP_DecodeInit(&ctx->base64); in b64_read()
228 ctx->start = 0; in b64_read()
238 if (p == (uint8_t *)&(ctx->tmp[0])) { in b64_read()
241 ctx->tmp_nl = 1; in b64_read()
242 ctx->tmp_len = 0; in b64_read()
247 ctx->tmp[ii] = p[ii]; in b64_read()
249 ctx->tmp_len = n; in b64_read()
254 ctx->tmp_len = 0; in b64_read()
256 } else if (i < B64_BLOCK_SIZE && ctx->cont > 0) { in b64_read()
266 z = EVP_DecodeBlock((uint8_t *)ctx->buf, (uint8_t *)ctx->tmp, jj); in b64_read()
268 if (ctx->tmp[jj - 1] == '=') { in b64_read()
270 if (ctx->tmp[jj - 2] == '=') { in b64_read()
277 memmove(ctx->tmp, &ctx->tmp[jj], i - jj); in b64_read()
278 ctx->tmp_len = i - jj; in b64_read()
280 ctx->buf_len = 0; in b64_read()
282 ctx->buf_len = z; in b64_read()
286 i = EVP_DecodeUpdate(&(ctx->base64), (uint8_t *)ctx->buf, in b64_read()
287 &ctx->buf_len, (uint8_t *)ctx->tmp, i); in b64_read()
288 ctx->tmp_len = 0; in b64_read()
290 ctx->buf_off = 0; in b64_read()
293 ctx->buf_len = 0; in b64_read()
297 if (ctx->buf_len <= outl) { in b64_read()
298 i = ctx->buf_len; in b64_read()
303 memcpy(out, ctx->buf, i); in b64_read()
305 ctx->buf_off = i; in b64_read()
306 if (ctx->buf_off == ctx->buf_len) { in b64_read()
307 ctx->buf_len = 0; in b64_read()
308 ctx->buf_off = 0; in b64_read()
320 BIO_B64_CTX *ctx; in b64_write() local
322 ctx = (BIO_B64_CTX *)b->ptr; in b64_write()
325 if (ctx->encode != B64_ENCODE) { in b64_write()
326 ctx->encode = B64_ENCODE; in b64_write()
327 ctx->buf_len = 0; in b64_write()
328 ctx->buf_off = 0; in b64_write()
329 ctx->tmp_len = 0; in b64_write()
330 EVP_EncodeInit(&(ctx->base64)); in b64_write()
333 assert(ctx->buf_off < (int)sizeof(ctx->buf)); in b64_write()
334 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
335 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
337 n = ctx->buf_len - ctx->buf_off; in b64_write()
339 i = BIO_write(b->next_bio, &(ctx->buf[ctx->buf_off]), n); in b64_write()
345 ctx->buf_off += i; in b64_write()
346 assert(ctx->buf_off <= (int)sizeof(ctx->buf)); in b64_write()
347 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
352 ctx->buf_off = 0; in b64_write()
353 ctx->buf_len = 0; in b64_write()
363 if (ctx->tmp_len > 0) { in b64_write()
364 assert(ctx->tmp_len <= 3); in b64_write()
365 n = 3 - ctx->tmp_len; in b64_write()
370 memcpy(&(ctx->tmp[ctx->tmp_len]), in, n); in b64_write()
371 ctx->tmp_len += n; in b64_write()
373 if (ctx->tmp_len < 3) { in b64_write()
376 ctx->buf_len = EVP_EncodeBlock((uint8_t *)ctx->buf, (uint8_t *)ctx->tmp, in b64_write()
377 ctx->tmp_len); in b64_write()
378 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
379 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
383 ctx->tmp_len = 0; in b64_write()
386 memcpy(ctx->tmp, in, n); in b64_write()
387 ctx->tmp_len = n; in b64_write()
392 ctx->buf_len = in b64_write()
393 EVP_EncodeBlock((uint8_t *)ctx->buf, (const uint8_t *)in, n); in b64_write()
394 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
395 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
399 EVP_EncodeUpdate(&(ctx->base64), (uint8_t *)ctx->buf, &ctx->buf_len, in b64_write()
401 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
402 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
408 ctx->buf_off = 0; in b64_write()
409 n = ctx->buf_len; in b64_write()
412 i = BIO_write(b->next_bio, &(ctx->buf[ctx->buf_off]), n); in b64_write()
419 ctx->buf_off += i; in b64_write()
420 assert(ctx->buf_off <= (int)sizeof(ctx->buf)); in b64_write()
421 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
423 ctx->buf_len = 0; in b64_write()
424 ctx->buf_off = 0; in b64_write()
430 BIO_B64_CTX *ctx; in b64_ctrl() local
434 ctx = (BIO_B64_CTX *)b->ptr; in b64_ctrl()
438 ctx->cont = 1; in b64_ctrl()
439 ctx->start = 1; in b64_ctrl()
440 ctx->encode = B64_NONE; in b64_ctrl()
445 if (ctx->cont <= 0) { in b64_ctrl()
453 assert(ctx->buf_len >= ctx->buf_off); in b64_ctrl()
454 ret = ctx->buf_len - ctx->buf_off; in b64_ctrl()
455 if ((ret == 0) && (ctx->encode != B64_NONE) && (ctx->base64.num != 0)) { in b64_ctrl()
463 assert(ctx->buf_len >= ctx->buf_off); in b64_ctrl()
464 ret = ctx->buf_len - ctx->buf_off; in b64_ctrl()
473 while (ctx->buf_len != ctx->buf_off) { in b64_ctrl()
480 if (ctx->tmp_len != 0) { in b64_ctrl()
481 ctx->buf_len = EVP_EncodeBlock((uint8_t *)ctx->buf, in b64_ctrl()
482 (uint8_t *)ctx->tmp, ctx->tmp_len); in b64_ctrl()
483 ctx->buf_off = 0; in b64_ctrl()
484 ctx->tmp_len = 0; in b64_ctrl()
487 } else if (ctx->encode != B64_NONE && ctx->base64.num != 0) { in b64_ctrl()
488 ctx->buf_off = 0; in b64_ctrl()
489 EVP_EncodeFinal(&(ctx->base64), (uint8_t *)ctx->buf, &(ctx->buf_len)); in b64_ctrl()