Ignore:
Timestamp:
01/16/19 13:44:21 (2 years ago)
Author:
Shane Alcock <salcock@…>
Branches:
develop
Children:
40c87be, 41f03b7, 8a6910b, 90709c5
Parents:
9aa5d7d (diff), ab3ddbe (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'rc-4.0.6'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/traceanon/traceanon.cc

    r8e11beb rab3ddbe  
    4646};
    4747
    48 bool enc_source = false;
    49 bool enc_dest   = false;
     48bool enc_source_opt = false;
     49bool enc_dest_opt   = false;
    5050enum enc_type_t enc_type = ENC_NONE;
    51 char *key = NULL;
     51char *enc_key = NULL;
    5252
    5353int level = -1;
    5454trace_option_compresstype_t compress_type = TRACE_OPTION_COMPRESSTYPE_NONE;
    5555
    56 struct libtrace_t *trace = NULL;
     56struct libtrace_t *inptrace = NULL;
    5757
    5858static void cleanup_signal(int signal)
     
    6060        (void)signal;
    6161        // trace_pstop isn't really signal safe because its got lots of locks in it
    62         trace_pstop(trace);
     62        trace_pstop(inptrace);
    6363}
    6464
     
    182182        ip6 = trace_get_ip6(packet);
    183183
    184         if (ipptr && (enc_source || enc_dest)) {
    185                 encrypt_ips(anon, ipptr,enc_source,enc_dest);
     184        if (ipptr && (enc_source_opt || enc_dest_opt)) {
     185                encrypt_ips(anon, ipptr,enc_source_opt,enc_dest_opt);
    186186                ipptr->ip_sum = 0;
    187         } else if (ip6 && (enc_source || enc_dest)) {
    188                 encrypt_ipv6(anon, ip6, enc_source, enc_dest);
     187        } else if (ip6 && (enc_source_opt || enc_dest_opt)) {
     188                encrypt_ipv6(anon, ip6, enc_source_opt, enc_dest_opt);
    189189        }
    190190
     
    197197
    198198        udp = trace_get_udp(packet);
    199         if (udp && (enc_source || enc_dest)) {
     199        if (udp && (enc_source_opt || enc_dest_opt)) {
    200200                udp->check = 0;
    201201        }
    202202
    203203        tcp = trace_get_tcp(packet);
    204         if (tcp && (enc_source || enc_dest)) {
     204        if (tcp && (enc_source_opt || enc_dest_opt)) {
    205205                tcp->check = 0;
    206206        }
    207207
    208208        icmp6 = trace_get_icmp6(packet);
    209         if (icmp6 && (enc_source || enc_dest)) {
     209        if (icmp6 && (enc_source_opt || enc_dest_opt)) {
    210210                icmp6->checksum = 0;
    211211        }
     
    221221{
    222222        if (enc_type == ENC_PREFIX_SUBSTITUTION) {
    223                 PrefixSub *sub = new PrefixSub(key, NULL);
     223                PrefixSub *sub = new PrefixSub(enc_key, NULL);
    224224                return sub;
    225225        }
    226226
    227227        if (enc_type == ENC_CRYPTOPAN) {
    228                 if (strlen(key) < 32) {
     228                if (strlen(enc_key) < 32) {
    229229                        fprintf(stderr, "ERROR: Key must be at least 32 "
    230230                        "characters long for CryptoPan anonymisation.\n");
     
    232232                }
    233233#ifdef HAVE_LIBCRYPTO               
    234                 CryptoAnon *anon = new CryptoAnon((uint8_t *)key,
    235                         (uint8_t)strlen(key), 20);
     234                CryptoAnon *anon = new CryptoAnon((uint8_t *)enc_key,
     235                        (uint8_t)strlen(enc_key), 20);
    236236                return anon;
    237237#else
     
    357357                        case 'Z': compress_type_str=optarg; break;         
    358358                        case 'z': level = atoi(optarg); break;
    359                         case 's': enc_source=true; break;
    360                         case 'd': enc_dest  =true; break;
     359                        case 's': enc_source_opt=true; break;
     360                        case 'd': enc_dest_opt  =true; break;
    361361                        case 'c':
    362                                   if (key!=NULL) {
     362                                  if (enc_key!=NULL) {
    363363                                          fprintf(stderr,"You can only have one encryption type and one key\n");
    364364                                          usage(argv[0]);
    365365                                  }
    366                                   key=strdup(optarg);
     366                                  enc_key=strdup(optarg);
    367367                                  enc_type = ENC_CRYPTOPAN;
    368368                                  break;
    369369                        case 'F': {
    370                                   if(key != NULL) {
     370                                  if(enc_key != NULL) {
    371371                                    fprintf(stderr,"You can only have one encryption type and one key\n");
    372372                                    usage(argv[0]);
     
    377377                                    return 1;
    378378                                  }
    379                                   key = (char *) malloc(sizeof(char *) * 32);
    380                                   if(fread(key,1,32,infile) != 32) {
     379                                  enc_key = (char *) malloc(sizeof(char *) * 32);
     380                                  if(fread(enc_key,1,32,infile) != 32) {
    381381                                    if(ferror(infile)) {
    382382                                      perror("Failed while reading cryptopan keyfile");
     
    391391                                  break;
    392392                        case 'p':
    393                                   if (key!=NULL) {
     393                                  if (enc_key!=NULL) {
    394394                                          fprintf(stderr,"You can only have one encryption type and one key\n");
    395395                                          usage(argv[0]);
    396396                                  }
    397                                   key=strdup(optarg);
     397                                  enc_key=strdup(optarg);
    398398                                  enc_type = ENC_PREFIX_SUBSTITUTION;
    399399                                  break;
     
    442442
    443443        /* open input uri */
    444         trace = trace_create(argv[optind]);
    445         if (trace_is_err(trace)) {
    446                 trace_perror(trace,"trace_create");
     444        inptrace = trace_create(argv[optind]);
     445        if (trace_is_err(inptrace)) {
     446                trace_perror(inptrace,"trace_create");
    447447                exitcode = 1;
    448448                goto exitanon;
     
    463463         * special case to have.
    464464         */
    465         trace_set_combiner(trace, &combiner_ordered, (libtrace_generic_t){0});
     465        trace_set_combiner(inptrace, &combiner_ordered, (libtrace_generic_t){0});
    466466
    467467        pktcbs = trace_create_callback_set();
     
    475475        trace_set_starting_cb(repcbs, init_output);
    476476
    477         trace_set_perpkt_threads(trace, maxthreads);
     477        trace_set_perpkt_threads(inptrace, maxthreads);
    478478
    479479        if (filterstring) {
     
    481481        }
    482482
    483         if (filter && trace_config(trace, TRACE_OPTION_FILTER, filter) == -1)
     483        if (filter && trace_config(inptrace, TRACE_OPTION_FILTER, filter) == -1)
    484484        {
    485                 trace_perror(trace, "Configuring input filter");
     485                trace_perror(inptrace, "Configuring input filter");
    486486                exitcode = 1;
    487487                goto exitanon;
    488488        }
    489489
    490         if (trace_pstart(trace, output, pktcbs, repcbs)==-1) {
    491                 trace_perror(trace,"trace_start");
     490        if (trace_pstart(inptrace, output, pktcbs, repcbs)==-1) {
     491                trace_perror(inptrace,"trace_start");
    492492                exitcode = 1;
    493493                goto exitanon;
     
    502502
    503503        // Wait for the trace to finish
    504         trace_join(trace);
     504        trace_join(inptrace);
    505505
    506506exitanon:
     
    509509        if (repcbs)
    510510                trace_destroy_callback_set(repcbs);
    511         if (trace)
    512                 trace_destroy(trace);
     511        if (inptrace)
     512                trace_destroy(inptrace);
    513513        return exitcode;
    514514}
Note: See TracChangeset for help on using the changeset viewer.