Import of old SSLeay release: SSLeay 0.9.1b (unreleased)
[openssl.git] / crypto / comp / comp_lib.c
diff --git a/crypto/comp/comp_lib.c b/crypto/comp/comp_lib.c
new file mode 100644 (file)
index 0000000..8ce0695
--- /dev/null
@@ -0,0 +1,85 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "objects.h"
+#include "comp.h"
+
+COMP_CTX *COMP_CTX_new(meth)
+COMP_METHOD *meth;
+       {
+       COMP_CTX *ret;
+
+       if ((ret=(COMP_CTX *)Malloc(sizeof(COMP_CTX))) == NULL)
+               {
+               /* ZZZZZZZZZZZZZZZZ */
+               return(NULL);
+               }
+       memset(ret,0,sizeof(COMP_CTX));
+       ret->meth=meth;
+       if ((ret->meth->init != NULL) && !ret->meth->init(ret))
+               {
+               Free(ret);
+               ret=NULL;
+               }
+#if 0
+       else
+               CRYPTO_new_ex_data(rsa_meth,(char *)ret,&ret->ex_data);
+#endif
+       return(ret);
+       }
+
+void COMP_CTX_free(ctx)
+COMP_CTX *ctx;
+       {
+       /* CRYPTO_free_ex_data(rsa_meth,(char *)ctx,&ctx->ex_data); */
+
+       if (ctx->meth->finish != NULL)
+               ctx->meth->finish(ctx);
+
+       Free(ctx);
+       }
+
+int COMP_compress_block(ctx,out,olen,in,ilen)
+COMP_CTX *ctx;
+unsigned char *out;
+int olen;
+unsigned char *in;
+int ilen;
+       {
+       int ret;
+       if (ctx->meth->compress == NULL)
+               {
+               /* ZZZZZZZZZZZZZZZZZ */
+               return(-1);
+               }
+       ret=ctx->meth->compress(ctx,out,olen,in,ilen);
+       if (ret > 0)
+               {
+               ctx->compress_in+=ilen;
+               ctx->compress_out+=ret;
+               }
+       return(ret);
+       }
+
+int COMP_expand_block(ctx,out,olen,in,ilen)
+COMP_CTX *ctx;
+unsigned char *out;
+int olen;
+unsigned char *in;
+int ilen;
+       {
+       int ret;
+
+       if (ctx->meth->expand == NULL)
+               {
+               /* ZZZZZZZZZZZZZZZZZ */
+               return(-1);
+               }
+       ret=ctx->meth->expand(ctx,out,olen,in,ilen);
+       if (ret > 0)
+               {
+               ctx->expand_in+=ilen;
+               ctx->expand_out+=ret;
+               }
+       return(ret);
+       }