Changeset 89


Ignore:
Timestamp:
05/30/09 13:26:31 (12 years ago)
Author:
smurzch2
Message:

Add code for videoaccess d2 nano using AES.

To have it working, just add the AES key in the [reader] config.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Distribution/doc/oscam-server.txt

    r83 r89  
    9494                zunaechst erstmal gueltig und werden nicht gemapped.
    9595BoxID         = boxid für NDS
     96AESKey        = AES Key für Viaccess
  • trunk/globals.h

    r83 r89  
    352352  CAIDTAB   ctab;
    353353  ulong     boxid;
     354  uchar     aes_key[16];
    354355  ulong     sidtabok;   // positiv services
    355356  ulong     sidtabno;   // negative services
  • trunk/oscam-config.c

    r86 r89  
    968968  if (!strcmp(token, "caid")) chk_caidtab(value, &rdr->ctab);
    969969  if (!strcmp(token, "boxid")) rdr->boxid=a2i(value,4);
     970  if (!strcmp(token, "aeskey"))
     971  {
     972    if (key_atob(value, rdr->aes_key))
     973    {
     974      fprintf(stderr, "Configuration reader: Error in AES Key\n");
     975      exit(1);
     976    }
     977  }
    970978  if (!strcmp(token, "detect"))
    971979    for (i=0; RDR_CD_TXT[i]; i++)
  • trunk/reader-viaccess.c

    r85 r89  
    230230  reader[ridx].nprov=i;
    231231  cs_ri_log("providers: %d (%s)", reader[ridx].nprov, buf+1);
     232
     233  /* init the maybe existing aes key */
     234  aes_set_key(reader[ridx].aes_key);
     235
    232236  cs_log("ready for requests");
    233237  memset(&last_geo, 0, sizeof(last_geo));
     
    246250  ulong provid;
    247251  int rc=0;
    248   if(ecm88Data[0]==0xd2 && ecm88Data[1]==0x02)
     252  int hasD2 = 0;
     253
     254  if(ecm88Data[0]==0xd2)
    249255  {
    250     // so what do we do with this TNTSAT / TNtop crap !!
    251     ecm88Data+=4;
    252     ecm88Len-=4;
     256      // FIXME: use the d2 arguments
     257      int len = ecm88Data[1] + 2;
     258      ecm88Data += len;
     259      ecm88Len -= len;
     260      hasD2 = 1;
    253261  }
    254262
     
    319327    }
    320328  }
     329
     330  if (hasD2) {
     331    aes_decrypt(er->cw, 16);
     332  }
     333
    321334  return(rc?1:0);
    322335}
Note: See TracChangeset for help on using the changeset viewer.