summaryrefslogtreecommitdiffstats
path: root/moon-abe/cpabe-0.11/dec.c
diff options
context:
space:
mode:
Diffstat (limited to 'moon-abe/cpabe-0.11/dec.c')
-rw-r--r--moon-abe/cpabe-0.11/dec.c173
1 files changed, 0 insertions, 173 deletions
diff --git a/moon-abe/cpabe-0.11/dec.c b/moon-abe/cpabe-0.11/dec.c
deleted file mode 100644
index 218be2aa..00000000
--- a/moon-abe/cpabe-0.11/dec.c
+++ /dev/null
@@ -1,173 +0,0 @@
-#include <assert.h>
-#include <string.h>
-#include <unistd.h>
-#include <glib.h>
-#include <pbc.h>
-#include <pbc_random.h>
-
-#include "bswabe.h"
-#include "common.h"
-
-
-char* usage =
-"Usage: cpabe-dec [OPTION ...] PUB_KEY PRIV_KEY FILE\n"
-"\n"
-"Decrypt FILE using private key PRIV_KEY and assuming public key\n"
-"PUB_KEY. If the name of FILE is X.cpabe, the decrypted file will\n"
-"be written as X and FILE will be removed. Otherwise the file will be\n"
-"decrypted in place. Use of the -o option overrides this\n"
-"behavior.\n"
-"\n"
-"Mandatory arguments to long options are mandatory for short options too.\n\n"
-" -h, --help print this message\n\n"
-" -v, --version print version information\n\n"
-" -k, --keep-input-file don't delete original file\n\n"
-" -o, --output FILE write output to FILE\n\n"
-" -d, --deterministic use deterministic \"random\" numbers\n"
-" (only for debugging)\n\n"
-/* " -s, --no-opt-sat pick an arbitrary way of satisfying the policy\n" */
-/* " (only for performance comparison)\n\n" */
-/* " -n, --naive-dec use slower decryption algorithm\n" */
-/* " (only for performance comparison)\n\n" */
-/* " -f, --flatten use slightly different decryption algorithm\n" */
-/* " (may result in higher or lower performance)\n\n" */
-/* " -r, --report-ops report numbers of group operations\n" */
-/* " (only for performance evaluation)\n\n" */
-"";
-
-/* enum { */
-/* DEC_NAIVE, */
-/* DEC_FLATTEN, */
-/* DEC_MERGE, */
-/* } dec_strategy = DEC_MERGE; */
-
-char* pub_file = 0;
-char* prv_file = 0;
-char* in_file = 0;
-char* out_file = 0;
-/* int no_opt_sat = 0; */
-/* int report_ops = 0; */
-int keep = 0;
-
-/* int num_pairings = 0; */
-/* int num_exps = 0; */
-/* int num_muls = 0; */
-
-void
-parse_args( int argc, char** argv )
-{
- int i;
-
- for( i = 1; i < argc; i++ )
- if( !strcmp(argv[i], "-h") || !strcmp(argv[i], "--help") )
- {
- printf("%s", usage);
- exit(0);
- }
- else if( !strcmp(argv[i], "-v") || !strcmp(argv[i], "--version") )
- {
- printf(CPABE_VERSION, "-dec");
- exit(0);
- }
- else if( !strcmp(argv[i], "-k") || !strcmp(argv[i], "--keep-input-file") )
- {
- keep = 1;
- }
- else if( !strcmp(argv[i], "-o") || !strcmp(argv[i], "--output") )
- {
- if( ++i >= argc )
- die(usage);
- else
- out_file = argv[i];
- }
- else if( !strcmp(argv[i], "-d") || !strcmp(argv[i], "--deterministic") )
- {
- pbc_random_set_deterministic(0);
- }
-/* else if( !strcmp(argv[i], "-s") || !strcmp(argv[i], "--no-opt-sat") ) */
-/* { */
-/* no_opt_sat = 1; */
-/* } */
-/* else if( !strcmp(argv[i], "-n") || !strcmp(argv[i], "--naive-dec") ) */
-/* { */
-/* dec_strategy = DEC_NAIVE; */
-/* } */
-/* else if( !strcmp(argv[i], "-f") || !strcmp(argv[i], "--flatten") ) */
-/* { */
-/* dec_strategy = DEC_FLATTEN; */
-/* } */
-/* else if( !strcmp(argv[i], "-r") || !strcmp(argv[i], "--report-ops") ) */
-/* { */
-/* report_ops = 1; */
-/* } */
- else if( !pub_file )
- {
- pub_file = argv[i];
- }
- else if( !prv_file )
- {
- prv_file = argv[i];
- }
- else if( !in_file )
- {
- in_file = argv[i];
- }
- else
- die(usage);
-
- if( !pub_file || !prv_file || !in_file )
- die(usage);
-
- if( !out_file )
- {
- if( strlen(in_file) > 6 &&
- !strcmp(in_file + strlen(in_file) - 6, ".cpabe") )
- out_file = g_strndup(in_file, strlen(in_file) - 6);
- else
- out_file = strdup(in_file);
- }
-
- if( keep && !strcmp(in_file, out_file) )
- die("cannot keep input file when decrypting file in place (try -o)\n");
-}
-
-int
-main( int argc, char** argv )
-{
- bswabe_pub_t* pub;
- bswabe_prv_t* prv;
- int file_len;
- GByteArray* aes_buf;
- GByteArray* plt;
- GByteArray* cph_buf;
- bswabe_cph_t* cph;
- element_t m;
-
- parse_args(argc, argv);
-
- pub = bswabe_pub_unserialize(suck_file(pub_file), 1);
- prv = bswabe_prv_unserialize(pub, suck_file(prv_file), 1);
-
- read_cpabe_file(in_file, &cph_buf, &file_len, &aes_buf);
-
- cph = bswabe_cph_unserialize(pub, cph_buf, 1);
- if( !bswabe_dec(pub, prv, cph, m) )
- die("%s", bswabe_error());
- bswabe_cph_free(cph);
- plt = aes_128_cbc_decrypt(aes_buf, m);
- g_byte_array_set_size(plt, file_len);
- g_byte_array_free(aes_buf, 1);
-
- spit_file(out_file, plt, 1);
-
- if( !keep )
- unlink(in_file);
-
- /* report ops if necessary */
-/* if( report_ops ) */
-/* printf("pairings: %5d\n" */
-/* "exponentiations: %5d\n" */
-/* "multiplications: %5d\n", num_pairings, num_exps, num_muls); */
-
- return 0;
-}