diff options
Diffstat (limited to 'moon-abe/cpabe-0.11/enc.c')
-rw-r--r-- | moon-abe/cpabe-0.11/enc.c | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/moon-abe/cpabe-0.11/enc.c b/moon-abe/cpabe-0.11/enc.c deleted file mode 100644 index 8e605255..00000000 --- a/moon-abe/cpabe-0.11/enc.c +++ /dev/null @@ -1,131 +0,0 @@ -#include <string.h> -#include <unistd.h> -#include <glib.h> -#include <pbc.h> -#include <pbc_random.h> - -#include "bswabe.h" -#include "common.h" -#include "policy_lang.h" -#include <sys/time.h> -#include <sys/resource.h> - -char* usage = -"Usage: cpabe-enc [OPTION ...] PUB_KEY FILE [POLICY]\n" -"\n" -"Encrypt FILE under the decryption policy POLICY using public key\n" -"PUB_KEY. The encrypted file will be written to FILE.cpabe unless\n" -"the -o option is used. The original file will be removed. If POLICY\n" -"is not specified, the policy will be read from stdin.\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 resulting key to FILE\n\n" -" -d, --deterministic use deterministic \"random\" numbers\n" -" (only for debugging)\n\n" -""; - -char* pub_file = 0; -char* in_file = 0; -char* out_file = 0; -int keep = 0; - -char* policy = 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, "-enc"); - 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( !pub_file ) - { - pub_file = argv[i]; - } - else if( !in_file ) - { - in_file = argv[i]; - } - else if( !policy ) - { - policy = parse_policy_lang(argv[i]); - } - else - die(usage); - - if( !pub_file || !in_file ) - die(usage); - - if( !out_file ) - out_file = g_strdup_printf("%s.cpabe", in_file); - - if( !policy ) - policy = parse_policy_lang(suck_stdin()); -} - -int -main( int argc, char** argv ) -{ - bswabe_pub_t* pub; - bswabe_cph_t* cph; - int file_len; - GByteArray* plt; - GByteArray* cph_buf; - GByteArray* aes_buf; - element_t m; - - parse_args(argc, argv); - - pub = bswabe_pub_unserialize(suck_file(pub_file), 1); - - if( !(cph = bswabe_enc(pub, m, policy)) ) - die("%s", bswabe_error()); - - cph_buf = bswabe_cph_serialize(cph); - - free(policy); - bswabe_cph_free(cph); - - plt = suck_file(in_file); - file_len = plt->len; - aes_buf = aes_128_cbc_encrypt(plt, m); - g_byte_array_free(plt, 1); - element_clear(m); - - write_cpabe_file(out_file, cph_buf, file_len, aes_buf); - - g_byte_array_free(cph_buf, 1); - g_byte_array_free(aes_buf, 1); - - if( !keep ) - unlink(in_file); - - return 0; -} |