• Home
  • Raw
  • Download

Lines Matching refs:ctx

92   BIO_B64_CTX *ctx;  in b64_new()  local
94 ctx = OPENSSL_malloc(sizeof(*ctx)); in b64_new()
95 if (ctx == NULL) { in b64_new()
99 OPENSSL_memset(ctx, 0, sizeof(*ctx)); in b64_new()
101 ctx->cont = 1; in b64_new()
102 ctx->start = 1; in b64_new()
105 bio->ptr = (char *)ctx; in b64_new()
122 BIO_B64_CTX *ctx; in b64_read() local
128 ctx = (BIO_B64_CTX *) b->ptr; in b64_read()
130 if (ctx == NULL || b->next_bio == NULL) { in b64_read()
136 if (ctx->encode != B64_DECODE) { in b64_read()
137 ctx->encode = B64_DECODE; in b64_read()
138 ctx->buf_len = 0; in b64_read()
139 ctx->buf_off = 0; in b64_read()
140 ctx->tmp_len = 0; in b64_read()
141 EVP_DecodeInit(&ctx->base64); in b64_read()
145 if (ctx->buf_len > 0) { in b64_read()
146 assert(ctx->buf_len >= ctx->buf_off); in b64_read()
147 i = ctx->buf_len - ctx->buf_off; in b64_read()
151 assert(ctx->buf_off + i < (int)sizeof(ctx->buf)); in b64_read()
152 OPENSSL_memcpy(out, &ctx->buf[ctx->buf_off], i); in b64_read()
156 ctx->buf_off += i; in b64_read()
157 if (ctx->buf_len == ctx->buf_off) { in b64_read()
158 ctx->buf_len = 0; in b64_read()
159 ctx->buf_off = 0; in b64_read()
168 if (ctx->cont <= 0) { in b64_read()
172 i = BIO_read(b->next_bio, &(ctx->tmp[ctx->tmp_len]), in b64_read()
173 B64_BLOCK_SIZE - ctx->tmp_len); in b64_read()
180 ctx->cont = i; in b64_read()
182 if (ctx->tmp_len == 0) { in b64_read()
193 i += ctx->tmp_len; in b64_read()
194 ctx->tmp_len = i; in b64_read()
198 if (ctx->start && (BIO_test_flags(b, BIO_FLAGS_BASE64_NO_NL))) { in b64_read()
200 ctx->tmp_len = 0; in b64_read()
201 } else if (ctx->start) { in b64_read()
202 q = p = (uint8_t *)ctx->tmp; in b64_read()
211 if (ctx->tmp_nl) { in b64_read()
213 ctx->tmp_nl = 0; in b64_read()
217 k = EVP_DecodeUpdate(&(ctx->base64), (uint8_t *)ctx->buf, &num, p, in b64_read()
220 if (k <= 0 && num == 0 && ctx->start) { in b64_read()
221 EVP_DecodeInit(&ctx->base64); in b64_read()
223 if (p != (uint8_t *)&(ctx->tmp[0])) { in b64_read()
224 i -= (p - (uint8_t *)&(ctx->tmp[0])); in b64_read()
226 ctx->tmp[x] = p[x]; in b64_read()
229 EVP_DecodeInit(&ctx->base64); in b64_read()
230 ctx->start = 0; in b64_read()
240 if (p == (uint8_t *)&(ctx->tmp[0])) { in b64_read()
243 ctx->tmp_nl = 1; in b64_read()
244 ctx->tmp_len = 0; in b64_read()
249 ctx->tmp[ii] = p[ii]; in b64_read()
251 ctx->tmp_len = n; in b64_read()
256 ctx->tmp_len = 0; in b64_read()
258 } else if (i < B64_BLOCK_SIZE && ctx->cont > 0) { in b64_read()
268 z = EVP_DecodeBlock((uint8_t *)ctx->buf, (uint8_t *)ctx->tmp, jj); in b64_read()
270 if (ctx->tmp[jj - 1] == '=') { in b64_read()
272 if (ctx->tmp[jj - 2] == '=') { in b64_read()
279 OPENSSL_memmove(ctx->tmp, &ctx->tmp[jj], i - jj); in b64_read()
280 ctx->tmp_len = i - jj; in b64_read()
282 ctx->buf_len = 0; in b64_read()
284 ctx->buf_len = z; in b64_read()
288 i = EVP_DecodeUpdate(&(ctx->base64), (uint8_t *)ctx->buf, in b64_read()
289 &ctx->buf_len, (uint8_t *)ctx->tmp, i); in b64_read()
290 ctx->tmp_len = 0; in b64_read()
292 ctx->buf_off = 0; in b64_read()
295 ctx->buf_len = 0; in b64_read()
299 if (ctx->buf_len <= outl) { in b64_read()
300 i = ctx->buf_len; in b64_read()
305 OPENSSL_memcpy(out, ctx->buf, i); in b64_read()
307 ctx->buf_off = i; in b64_read()
308 if (ctx->buf_off == ctx->buf_len) { in b64_read()
309 ctx->buf_len = 0; in b64_read()
310 ctx->buf_off = 0; in b64_read()
322 BIO_B64_CTX *ctx; in b64_write() local
324 ctx = (BIO_B64_CTX *)b->ptr; in b64_write()
327 if (ctx->encode != B64_ENCODE) { in b64_write()
328 ctx->encode = B64_ENCODE; in b64_write()
329 ctx->buf_len = 0; in b64_write()
330 ctx->buf_off = 0; in b64_write()
331 ctx->tmp_len = 0; in b64_write()
332 EVP_EncodeInit(&(ctx->base64)); in b64_write()
335 assert(ctx->buf_off < (int)sizeof(ctx->buf)); in b64_write()
336 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
337 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
339 n = ctx->buf_len - ctx->buf_off; in b64_write()
341 i = BIO_write(b->next_bio, &(ctx->buf[ctx->buf_off]), n); in b64_write()
347 ctx->buf_off += i; in b64_write()
348 assert(ctx->buf_off <= (int)sizeof(ctx->buf)); in b64_write()
349 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
354 ctx->buf_off = 0; in b64_write()
355 ctx->buf_len = 0; in b64_write()
365 if (ctx->tmp_len > 0) { in b64_write()
366 assert(ctx->tmp_len <= 3); in b64_write()
367 n = 3 - ctx->tmp_len; in b64_write()
372 OPENSSL_memcpy(&(ctx->tmp[ctx->tmp_len]), in, n); in b64_write()
373 ctx->tmp_len += n; in b64_write()
375 if (ctx->tmp_len < 3) { in b64_write()
378 ctx->buf_len = EVP_EncodeBlock((uint8_t *)ctx->buf, (uint8_t *)ctx->tmp, in b64_write()
379 ctx->tmp_len); in b64_write()
380 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
381 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
385 ctx->tmp_len = 0; in b64_write()
388 OPENSSL_memcpy(ctx->tmp, in, n); in b64_write()
389 ctx->tmp_len = n; in b64_write()
394 ctx->buf_len = in b64_write()
395 EVP_EncodeBlock((uint8_t *)ctx->buf, (const uint8_t *)in, n); in b64_write()
396 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
397 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
401 EVP_EncodeUpdate(&(ctx->base64), (uint8_t *)ctx->buf, &ctx->buf_len, in b64_write()
403 assert(ctx->buf_len <= (int)sizeof(ctx->buf)); in b64_write()
404 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
410 ctx->buf_off = 0; in b64_write()
411 n = ctx->buf_len; in b64_write()
414 i = BIO_write(b->next_bio, &(ctx->buf[ctx->buf_off]), n); in b64_write()
421 ctx->buf_off += i; in b64_write()
422 assert(ctx->buf_off <= (int)sizeof(ctx->buf)); in b64_write()
423 assert(ctx->buf_len >= ctx->buf_off); in b64_write()
425 ctx->buf_len = 0; in b64_write()
426 ctx->buf_off = 0; in b64_write()
432 BIO_B64_CTX *ctx; in b64_ctrl() local
436 ctx = (BIO_B64_CTX *)b->ptr; in b64_ctrl()
440 ctx->cont = 1; in b64_ctrl()
441 ctx->start = 1; in b64_ctrl()
442 ctx->encode = B64_NONE; in b64_ctrl()
447 if (ctx->cont <= 0) { in b64_ctrl()
455 assert(ctx->buf_len >= ctx->buf_off); in b64_ctrl()
456 ret = ctx->buf_len - ctx->buf_off; in b64_ctrl()
457 if ((ret == 0) && (ctx->encode != B64_NONE) && (ctx->base64.data_used != 0)) { in b64_ctrl()
465 assert(ctx->buf_len >= ctx->buf_off); in b64_ctrl()
466 ret = ctx->buf_len - ctx->buf_off; in b64_ctrl()
475 while (ctx->buf_len != ctx->buf_off) { in b64_ctrl()
482 if (ctx->tmp_len != 0) { in b64_ctrl()
483 ctx->buf_len = EVP_EncodeBlock((uint8_t *)ctx->buf, in b64_ctrl()
484 (uint8_t *)ctx->tmp, ctx->tmp_len); in b64_ctrl()
485 ctx->buf_off = 0; in b64_ctrl()
486 ctx->tmp_len = 0; in b64_ctrl()
489 } else if (ctx->encode != B64_NONE && ctx->base64.data_used != 0) { in b64_ctrl()
490 ctx->buf_off = 0; in b64_ctrl()
491 EVP_EncodeFinal(&(ctx->base64), (uint8_t *)ctx->buf, &(ctx->buf_len)); in b64_ctrl()