pdf-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[pdf-devel] encryption filters


From: jemarch
Subject: [pdf-devel] encryption filters
Date: Mon, 27 Oct 2008 22:56:28 +0100
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/23.0.60 (i686-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)

Hi all.

For the moment Gerel is no longer able to dedicate time to the
encryption filters (task
http://www.gnupdf.org/flyspray/index.php?do=details&task_id=71&project=2)
so I just marked the task as orphaned in flyspray.

He kindly sent me a preliminary skeleton for the filters code. I
attach it here just in case anyone is interested in getting this task.

##
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: address@hidden
# target_branch: file:///home/gerel/PROJECTS/libgnupdf/trunk/
# testament_sha1: 1c4198e3a67957abde9b25c5b8fd80acdb7846fa
# timestamp: 2008-10-27 10:39:53 -0300
# base_revision_id: address@hidden
# 
# Begin patch
=== modified file 'src/Makefile.am'
--- src/Makefile.am     2008-10-05 15:08:05 +0000
+++ src/Makefile.am     2008-10-07 17:57:30 +0000
@@ -44,7 +44,8 @@
                      base/pdf-stm-filter.h base/pdf-stm-filter.c \
                      base/pdf-stm-f-null.h base/pdf-stm-f-null.c \
                      base/pdf-stm-f-ahex.h base/pdf-stm-f-ahex.c \
-                     base/pdf-stm-f-rl.h base/pdf-stm-f-rl.c
+                     base/pdf-stm-f-rl.h base/pdf-stm-f-rl.c \
+                     base/pdf-stm-f-crypt.h base/pdf-stm-f-crypt.c
 
 if ZLIB
   STM_MODULE_SOURCES += base/pdf-stm-f-flate.c base/pdf-stm-f-flate.h

=== added file 'src/base/pdf-stm-f-crypt.c'
--- src/base/pdf-stm-f-crypt.c  1970-01-01 00:00:00 +0000
+++ src/base/pdf-stm-f-crypt.c  2008-10-27 13:39:42 +0000
@@ -0,0 +1,115 @@
+/* -*- mode: C -*- Time-stamp: "2008-10-27 10:38:22 gerel"
+ *
+ *       File:         pdf-stm-f-crypt.c
+ *       Date:         Tue Jul 10 23:44:00 2007
+ *
+ *       GNU PDF Library - Crypt stream filter
+ *
+ */
+
+/* Copyright (C) 2007, 2008 Free Software Foundation, Inc. */
+
+/* This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+
+#include <pdf-stm-f-crypt.h>
+
+
+pdf_status_t
+pdf_stm_f_cryptdec_init (pdf_hash_t params, void **state)
+{
+  pdf_status_t ret;
+  pdf_stm_f_crypt_t filter_state;
+
+  filter_state = pdf_alloc (sizeof (struct pdf_stm_f_crypt_s));
+
+  if (state == NULL)
+    {
+      ret = PDF_EBADDATA;
+    }
+  else if (filter_state == NULL)
+    {
+      ret = PDF_ENOMEM;
+    }
+  else
+    {
+      /* Initialize fields */
+      //filter_state->blabla = blabla;
+      ret = PDF_OK;
+    }
+
+  return ret;
+}
+
+
+pdf_status_t
+pdf_stm_f_cryptdec_apply (pdf_hash_t params, void *state, pdf_stm_buffer_t in,
+                        pdf_stm_buffer_t out, pdf_bool_t finish_p)
+{
+  return PDF_OK;
+}
+
+pdf_status_t
+pdf_stm_f_cryptenc_init (pdf_hash_t params, void **state)
+{
+  pdf_status_t ret;
+  pdf_stm_f_crypt_t filter_state;
+
+  filter_state = pdf_alloc (sizeof (struct pdf_stm_f_crypt_s));
+
+  if (state == NULL)
+    {
+      ret = PDF_EBADDATA;
+    }
+  else if (filter_state == NULL)
+    {
+      ret = PDF_ENOMEM;
+    }
+  else
+    {
+      /* Initialize fields */
+      //filter_state->blabla = blabla;
+      ret = PDF_OK;
+    }
+
+  return ret;
+}
+
+pdf_status_t
+pdf_stm_f_cryptenc_apply (pdf_hash_t params, void *state, pdf_stm_buffer_t in,
+                        pdf_stm_buffer_t out, pdf_bool_t finish_p)
+{
+  return PDF_OK;
+}
+
+
+pdf_status_t
+pdf_stm_f_cryptdec_dealloc_state (void *state)
+{
+  pdf_dealloc (state);
+  return PDF_OK;
+}
+
+
+pdf_status_t
+pdf_stm_f_cryptenc_dealloc_state (void *state)
+{
+  pdf_dealloc (state);
+  return PDF_OK;
+}
+
+
+
+/* End of pdf_stm_f_crypt.c */

=== added file 'src/base/pdf-stm-f-crypt.h'
--- src/base/pdf-stm-f-crypt.h  1970-01-01 00:00:00 +0000
+++ src/base/pdf-stm-f-crypt.h  2008-10-07 17:57:30 +0000
@@ -0,0 +1,73 @@
+/* -*- mode: C -*- Time-stamp: "2008-10-07 14:54:39 gerel"
+ *
+ *       File:         pdf-stm-f-crypt.h
+ *       Date:         Sun Jul 15 21:57:35 2007
+ *
+ *       GNU PDF Library - Crypt stream filter
+ *
+ */
+
+/* Copyright (C) 2007, 2008 Free Software Foundation, Inc. */
+
+/* This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef PDF_STM_F_CRYPT_H
+#define PDF_STM_F_CRYPT_H
+
+#include <config.h>
+#include <pdf-types.h>
+#include <pdf-hash.h>
+#include <pdf-alloc.h>
+#include <pdf-stm-buffer.h>
+#include <stdio.h>
+
+
+struct pdf_stm_f_crypt_s
+{
+
+};
+
+typedef struct pdf_stm_f_crypt_s * pdf_stm_f_crypt_t;
+
+
+/* Filter API implementation */
+
+pdf_status_t pdf_stm_f_cryptdec_init (pdf_hash_t params,
+                                      void **state);
+
+pdf_status_t pdf_stm_f_cryptdec_apply (pdf_hash_t params,
+                                       void *state,
+                                       pdf_stm_buffer_t in,
+                                       pdf_stm_buffer_t out,
+                                       pdf_bool_t finish_p);
+
+pdf_status_t pdf_stm_f_cryptenc_init (pdf_hash_t params,
+                                      void **state);
+
+pdf_status_t pdf_stm_f_cryptenc_apply (pdf_hash_t params,
+                                       void *state,
+                                       pdf_stm_buffer_t in,
+                                       pdf_stm_buffer_t out,
+                                       pdf_bool_t finish_p);
+
+pdf_status_t pdf_stm_f_cryptdec_dealloc_state (void *state);
+pdf_status_t pdf_stm_f_cryptenc_dealloc_state (void *state);
+
+
+
+
+#endif /* pdf_stm_f_crypt.h */
+
+/* End of pdf_stm_f_crypt.h */

=== modified file 'src/base/pdf-stm-filter.c'
--- src/base/pdf-stm-filter.c   2008-10-12 19:28:11 +0000
+++ src/base/pdf-stm-filter.c   2008-10-27 13:39:42 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/10/12 18:34:54 jemarch"
+/* -*- mode: C -*- Time-stamp: "2008-10-27 10:27:54 gerel"
  *
  *       File:         pdf-stm-filter.c
  *       Date:         Thu Jun 12 22:13:31 2008
@@ -97,6 +97,7 @@
         new->impl.dealloc_state_fn = pdf_stm_f_rldec_dealloc_state;
         break;
       }
+
 #if defined(HAVE_LIBZ)
     case PDF_STM_FILTER_FLATE_ENC:
       {
@@ -113,6 +114,22 @@
         break;
       }
 #endif /* HAVE_LIBZ */
+
+    case PDF_STM_FILTER_CRYPT_ENC:
+      {
+        new->impl.init_fn = pdf_stm_f_cryptenc_init;
+        new->impl.apply_fn = pdf_stm_f_cryptenc_apply;
+        new->impl.dealloc_state_fn = pdf_stm_f_cryptenc_dealloc_state;
+        break;
+      }
+    case PDF_STM_FILTER_CRYPT_DEC:
+      {
+        new->impl.init_fn = pdf_stm_f_cryptdec_init;
+        new->impl.apply_fn = pdf_stm_f_cryptdec_apply;
+        new->impl.dealloc_state_fn = pdf_stm_f_cryptdec_dealloc_state;
+        break;
+      }
+
     default:
       {
         /* Shall not be reached, but makes the compiler happy */

=== modified file 'src/base/pdf-stm-filter.h'
--- src/base/pdf-stm-filter.h   2008-10-12 19:28:11 +0000
+++ src/base/pdf-stm-filter.h   2008-10-27 13:39:42 +0000
@@ -1,4 +1,4 @@
-/* -*- mode: C -*- Time-stamp: "08/10/12 18:33:23 jemarch"
+/* -*- mode: C -*- Time-stamp: "2008-10-27 10:29:03 gerel"
  *
  *       File:         pdf-stm-filter.h
  *       Date:         Thu Jun 12 22:05:06 2008
@@ -35,6 +35,7 @@
 #include <pdf-stm-f-null.h>
 #include <pdf-stm-f-ahex.h>
 #include <pdf-stm-f-rl.h>
+#include <pdf-stm-f-crypt.h>
 
 #if defined(HAVE_LIBZ)
 #  include <pdf-stm-f-flate.h>
@@ -51,7 +52,9 @@
   PDF_STM_FILTER_RL_ENC,
   PDF_STM_FILTER_RL_DEC,
   PDF_STM_FILTER_FLATE_ENC,
-  PDF_STM_FILTER_FLATE_DEC
+  PDF_STM_FILTER_FLATE_DEC,
+  PDF_STM_FILTER_CRYPT_ENC,
+  PDF_STM_FILTER_CRYPT_DEC
 
 };
 

# Begin bundle
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
RHvh/on0WEoqgaCv/F3JFOFCQxxGo3Q=

###




reply via email to

[Prev in Thread] Current Thread [Next in Thread]