Branch data Line data Source code
1 : : #include <stdio.h>
2 : : #include <stdlib.h>
3 : : #include <string.h>
4 : : #include <openssl/objects.h>
5 : : #include <openssl/comp.h>
6 : :
7 : 0 : COMP_CTX *COMP_CTX_new(COMP_METHOD *meth)
8 : : {
9 : : COMP_CTX *ret;
10 : :
11 [ # # ]: 0 : if ((ret=(COMP_CTX *)OPENSSL_malloc(sizeof(COMP_CTX))) == NULL)
12 : : {
13 : : /* ZZZZZZZZZZZZZZZZ */
14 : : return(NULL);
15 : : }
16 : : memset(ret,0,sizeof(COMP_CTX));
17 : 0 : ret->meth=meth;
18 [ # # ][ # # ]: 0 : if ((ret->meth->init != NULL) && !ret->meth->init(ret))
19 : : {
20 : 0 : OPENSSL_free(ret);
21 : 0 : ret=NULL;
22 : : }
23 : 0 : return(ret);
24 : : }
25 : :
26 : 0 : void COMP_CTX_free(COMP_CTX *ctx)
27 : : {
28 [ # # ]: 0 : if(ctx == NULL)
29 : 0 : return;
30 : :
31 [ # # ]: 0 : if (ctx->meth->finish != NULL)
32 : 0 : ctx->meth->finish(ctx);
33 : :
34 : 0 : OPENSSL_free(ctx);
35 : : }
36 : :
37 : 0 : int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen,
38 : : unsigned char *in, int ilen)
39 : : {
40 : : int ret;
41 [ # # ]: 0 : if (ctx->meth->compress == NULL)
42 : : {
43 : : /* ZZZZZZZZZZZZZZZZZ */
44 : : return(-1);
45 : : }
46 : 0 : ret=ctx->meth->compress(ctx,out,olen,in,ilen);
47 [ # # ]: 0 : if (ret > 0)
48 : : {
49 : 0 : ctx->compress_in+=ilen;
50 : 0 : ctx->compress_out+=ret;
51 : : }
52 : 0 : return(ret);
53 : : }
54 : :
55 : 0 : int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen,
56 : : unsigned char *in, int ilen)
57 : : {
58 : : int ret;
59 : :
60 [ # # ]: 0 : if (ctx->meth->expand == NULL)
61 : : {
62 : : /* ZZZZZZZZZZZZZZZZZ */
63 : : return(-1);
64 : : }
65 : 0 : ret=ctx->meth->expand(ctx,out,olen,in,ilen);
66 [ # # ]: 0 : if (ret > 0)
67 : : {
68 : 0 : ctx->expand_in+=ilen;
69 : 0 : ctx->expand_out+=ret;
70 : : }
71 : 0 : return(ret);
72 : : }
|