OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
crypto
comp
comp_lib.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
#include <
openssl/objects.h
>
5
#include <
openssl/comp.h
>
6
7
COMP_CTX
*
COMP_CTX_new
(
COMP_METHOD
*meth)
8
{
9
COMP_CTX
*ret;
10
11
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
ret->
meth
=meth;
18
if
((ret->
meth
->
init
!= NULL) && !ret->
meth
->
init
(ret))
19
{
20
OPENSSL_free
(ret);
21
ret=NULL;
22
}
23
return
(ret);
24
}
25
26
void
COMP_CTX_free
(
COMP_CTX
*ctx)
27
{
28
if
(ctx == NULL)
29
return
;
30
31
if
(ctx->
meth
->
finish
!= NULL)
32
ctx->
meth
->
finish
(ctx);
33
34
OPENSSL_free
(ctx);
35
}
36
37
int
COMP_compress_block
(
COMP_CTX
*ctx,
unsigned
char
*out,
int
olen,
38
unsigned
char
*in,
int
ilen)
39
{
40
int
ret;
41
if
(ctx->
meth
->
compress
== NULL)
42
{
43
/* ZZZZZZZZZZZZZZZZZ */
44
return
(-1);
45
}
46
ret=ctx->
meth
->
compress
(ctx,out,olen,in,ilen);
47
if
(ret > 0)
48
{
49
ctx->
compress_in
+=ilen;
50
ctx->
compress_out
+=ret;
51
}
52
return
(ret);
53
}
54
55
int
COMP_expand_block
(
COMP_CTX
*ctx,
unsigned
char
*out,
int
olen,
56
unsigned
char
*in,
int
ilen)
57
{
58
int
ret;
59
60
if
(ctx->
meth
->
expand
== NULL)
61
{
62
/* ZZZZZZZZZZZZZZZZZ */
63
return
(-1);
64
}
65
ret=ctx->
meth
->
expand
(ctx,out,olen,in,ilen);
66
if
(ret > 0)
67
{
68
ctx->
expand_in
+=ilen;
69
ctx->
expand_out
+=ret;
70
}
71
return
(ret);
72
}
Generated on Thu Jan 10 2013 09:53:35 for OpenSSL by
1.8.2