summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/comp/c_rle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/comp/c_rle.c')
-rw-r--r--src/lib/libcrypto/comp/c_rle.c55
1 files changed, 0 insertions, 55 deletions
diff --git a/src/lib/libcrypto/comp/c_rle.c b/src/lib/libcrypto/comp/c_rle.c
deleted file mode 100644
index 7004c35029..0000000000
--- a/src/lib/libcrypto/comp/c_rle.c
+++ /dev/null
@@ -1,55 +0,0 @@
1/* $OpenBSD: c_rle.c,v 1.8 2014/11/03 16:58:28 tedu Exp $ */
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5#include <openssl/objects.h>
6#include <openssl/comp.h>
7
8static int rle_compress_block(COMP_CTX *ctx, unsigned char *out,
9 unsigned int olen, unsigned char *in, unsigned int ilen);
10static int rle_expand_block(COMP_CTX *ctx, unsigned char *out,
11 unsigned int olen, unsigned char *in, unsigned int ilen);
12
13static COMP_METHOD rle_method = {
14 .type = NID_rle_compression,
15 .name = LN_rle_compression,
16 .compress = rle_compress_block,
17 .expand = rle_expand_block
18};
19
20COMP_METHOD *
21COMP_rle(void)
22{
23 return (&rle_method);
24}
25
26static int
27rle_compress_block(COMP_CTX *ctx, unsigned char *out, unsigned int olen,
28 unsigned char *in, unsigned int ilen)
29{
30
31 if (ilen == 0 || olen < (ilen - 1)) {
32 return (-1);
33 }
34
35 *(out++) = 0;
36 memcpy(out, in, ilen);
37 return (ilen + 1);
38}
39
40static int
41rle_expand_block(COMP_CTX *ctx, unsigned char *out, unsigned int olen,
42 unsigned char *in, unsigned int ilen)
43{
44 int i;
45
46 if (olen < (ilen - 1)) {
47 return (-1);
48 }
49
50 i= *(in++);
51 if (i == 0) {
52 memcpy(out, in, ilen - 1);
53 }
54 return (ilen - 1);
55}