Changeset 32464


Ignore:
Timestamp:
Jun 27, 2017, 12:22:35 AM (4 weeks ago)
Author:
brainslayer
Message:

relocate keys

Location:
src/router/httpd
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/router/httpd/httpd.h

    r32433 r32464  
    8888        int isregistered_real;
    8989#endif
    90         unsigned char key128[4][14];
    91         unsigned char key64[4][5];
    92 
    93 
    9490//persistent
    9591        int generate_key;
  • src/router/httpd/validate/webs.c

    r32459 r32464  
    8181
    8282        FILE *fp = popen(var, "rb");
    83         if(fp){
     83        if (fp) {
    8484                FILE *out = fopen("/tmp/.result", "wb");
    8585                while (!feof(fp))
     
    570570}
    571571
    572 extern void gen_key(webs_t wp, char *genstr, int weptype);
     572extern void gen_key(webs_t wp, char *genstr, int weptype, unsigned char key64[4][5], unsigned char key128[4][14]);
    573573
    574574void generate_wep_key_single(webs_t wp, char *prefix, char *passphrase, char *bit, char *tx)
     
    578578        char buf[256];
    579579        char var[80];
     580        unsigned char key128[4][14];
     581        unsigned char key64[4][5];
    580582
    581583        if (!prefix || !bit || !passphrase || !tx)
    582584                return;
    583585
    584         gen_key(wp, passphrase, atoi(bit));
     586        gen_key(wp, passphrase, atoi(bit), key64, key128);
    585587
    586588        wp->generate_key = 1;
     
    593595
    594596                for (i = 0; i < 5; i++)
    595                         sprintf(key1 + (i << 1), "%02X", wp->key64[0][i]);
     597                        sprintf(key1 + (i << 1), "%02X", key64[0][i]);
    596598                for (i = 0; i < 5; i++)
    597                         sprintf(key2 + (i << 1), "%02X", wp->key64[1][i]);
     599                        sprintf(key2 + (i << 1), "%02X", key64[1][i]);
    598600                for (i = 0; i < 5; i++)
    599                         sprintf(key3 + (i << 1), "%02X", wp->key64[2][i]);
     601                        sprintf(key3 + (i << 1), "%02X", key64[2][i]);
    600602                for (i = 0; i < 5; i++)
    601                         sprintf(key4 + (i << 1), "%02X", wp->key64[3][i]);
     603                        sprintf(key4 + (i << 1), "%02X", key64[3][i]);
    602604
    603605                snprintf(buf, sizeof(buf), "%s:%s:%s:%s:%s:%s", passphrase, key1, key2, key3, key4, tx);
     
    618620
    619621                for (i = 0; i < 13; i++)
    620                         sprintf(key1 + (i << 1), "%02X", wp->key128[0][i]);
     622                        sprintf(key1 + (i << 1), "%02X", key128[0][i]);
    621623                key1[26] = 0;
    622624
    623625                for (i = 0; i < 13; i++)
    624                         sprintf(key2 + (i << 1), "%02X", wp->key128[1][i]);
     626                        sprintf(key2 + (i << 1), "%02X", key128[1][i]);
    625627                key2[26] = 0;
    626628
    627629                for (i = 0; i < 13; i++)
    628                         sprintf(key3 + (i << 1), "%02X", wp->key128[2][i]);
     630                        sprintf(key3 + (i << 1), "%02X", key128[2][i]);
    629631                key3[26] = 0;
    630632
    631633                for (i = 0; i < 13; i++)
    632                         sprintf(key4 + (i << 1), "%02X", wp->key128[3][i]);
     634                        sprintf(key4 + (i << 1), "%02X", key128[3][i]);
    633635                key4[26] = 0;
    634636                // cprintf("passphrase[%s]\n", passphrase);
     
    41214123{
    41224124        int port = 0, vlan = 0, vlans[22], i;
    4123         char portid[32], portvlan[64], *portval, buff[32]= {0}, *c, *next, br0vlans[64], br1vlans[64], br2vlans[64];
     4125        char portid[32], portvlan[64], *portval, buff[32] = { 0 }, *c, *next, br0vlans[64], br1vlans[64], br2vlans[64];
    41244126
    41254127        strcpy(portvlan, "");
  • src/router/httpd/validate/wepkey.c

    r32436 r32464  
    3636}
    3737
    38 void gen_key(webs_t wp, char *genstr, int weptype)
     38void gen_key(webs_t wp, char *genstr, int weptype, unsigned char key64[4][5], unsigned char key128[4][14])
    3939{
    4040        unsigned int i, j;
     
    5757                strcpy(str, genstr);
    5858                wep128_passphase(str, key);
    59                 memcpy((unsigned char *)&wp->key128[0], (unsigned char *)&key[0], 13);
    60                 wp->key128[0][13] = 0;
     59                memcpy((unsigned char *)&key128[0], (unsigned char *)&key[0], 13);
     60                key128[0][13] = 0;
    6161                strcat(str, "#$%");
    6262                wep128_passphase(str, key);
    63                 memcpy((unsigned char *)&wp->key128[1], (unsigned char *)&key[1], 13);
    64                 wp->key128[1][13] = 0;
     63                memcpy((unsigned char *)&key128[1], (unsigned char *)&key[1], 13);
     64                key128[1][13] = 0;
    6565                strcat(str, "!@#");
    6666                wep128_passphase(str, key);
    67                 memcpy((unsigned char *)&wp->key128[2], (unsigned char *)&key[2], 13);
    68                 wp->key128[2][13] = 0;
     67                memcpy((unsigned char *)&key128[2], (unsigned char *)&key[2], 13);
     68                key128[2][13] = 0;
    6969                strcat(str, "%&^");
    7070                wep128_passphase(str, key);
    71                 memcpy((unsigned char *)&wp->key128[3], (unsigned char *)&key[3], 13);
    72                 wp->key128[3][13] = 0;
     71                memcpy((unsigned char *)&key128[3], (unsigned char *)&key[3], 13);
     72                key128[3][13] = 0;
    7373                // for(i = 0;i<13;i++)
    7474                // printf("[%x]\n",key128[i]);
     
    9999                                randNumber *= 0x343fd;
    100100                                randNumber += 0x269ec3;
    101                                 wp->key64[i][j] = (unsigned char)((randNumber >> 16) & 0x7fff);
     101                                key64[i][j] = (unsigned char)((randNumber >> 16) & 0x7fff);
    102102                        }
    103103                        // for (j=0; j<5; j++)
Note: See TracChangeset for help on using the changeset viewer.