Changeset 4610 for trunk/module-cccam.c
- Timestamp:
- 01/25/11 16:25:26 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/module-cccam.c
r4588 r4610 774 774 } 775 775 776 //int get_UA_ofs(uint16 caid) { 777 // int ofs = 0; 778 // switch (caid >> 8) { 779 // case 0x05: //VIACCESS: 780 // ofs = 1; 781 // break; 782 // case 0x4B: //TONGFANG: 783 // case 0x09: //VIDEOGUARD: 784 // case 0x0B: //CONAX: 785 // case 0x18: //NAGRA: 786 // ofs = 2; 787 // break; 788 // } 789 // return ofs; 790 //} 791 792 //int UA_len(uint8 *ua) { 793 // int i, len=0; 794 // for (i=0;i<8;i++) 795 // if (ua[i]) len++; 796 // return len; 797 //} 798 799 //void UA_left(uint8 *in, uint8 *out, int len) { 800 // int ofs = 0; 801 // int maxlen = 8; 802 // int orglen = len; 803 // while (len) { 804 // memset(out, 0, orglen); 805 // memcpy(out, in+ofs, len); 806 // if (out[0]) break; 807 // ofs++; 808 // maxlen--; 809 // if (len>maxlen) 810 // len=maxlen; 811 // } 812 //} 813 814 //void UA_right(uint8 *in, uint8 *out, int len) { 815 // int ofs = 0; 816 // while (len) { 817 // memcpy(out+ofs, in, len); 818 // len--; 819 // if (out[len]) break; 820 // ofs++; 821 // out[0]=0; 822 // } 823 //} 776 int get_UA_ofs(uint16 caid) { 777 int ofs = 0; 778 switch (caid >> 8) { 779 case 0x05: //VIACCESS: 780 case 0x0D: //CRYPTOWORKS: 781 ofs = 1; 782 break; 783 case 0x4B: //TONGFANG: 784 case 0x09: //VIDEOGUARD: 785 case 0x0B: //CONAX: 786 case 0x18: //NAGRA: 787 ofs = 2; 788 break; 789 } 790 return ofs; 791 } 792 793 int UA_len(uint8 *ua) { 794 int i, len=0; 795 for (i=0;i<8;i++) 796 if (ua[i]) len++; 797 return len; 798 } 799 800 void UA_left(uint8 *in, uint8 *out, int len) { 801 int ofs = 0; 802 int maxlen = 8; 803 int orglen = len; 804 while (len) { 805 memset(out, 0, orglen); 806 memcpy(out, in+ofs, len); 807 if (out[0]) break; 808 ofs++; 809 maxlen--; 810 if (len>maxlen) 811 len=maxlen; 812 } 813 } 814 815 void UA_right(uint8 *in, uint8 *out, int len) { 816 int ofs = 0; 817 while (len) { 818 memcpy(out+ofs, in, len); 819 len--; 820 if (out[len]) break; 821 ofs++; 822 out[0]=0; 823 } 824 } 824 825 825 826 /** … … 842 843 // //Place here your own adjustments! 843 844 //} 844 //UA_right(in, out, 8);845 845 hexserial_to_newcamd(in, out+2, caid); 846 UA_right(in, out, 8); 846 847 } 847 848 … … 850 851 **/ 851 852 void cc_UA_cccam2oscam(uint8 *in, uint8 *out, uint16 caid) { 853 uint8 tmp[8]; 852 854 memset(out, 0, 8); 855 memset(tmp, 0, 8); 853 856 //switch(caid>>8) { 854 857 // case 0x17: //IRDETO/Betacrypt: … … 863 866 // //Place here your own adjustments! 864 867 //} 865 //int ofs = get_UA_ofs(caid);866 //int len = 8-ofs;867 //UA_left(in, out+ofs, len);868 newcamd_to_hexserial( in+2, out, caid);868 int ofs = get_UA_ofs(caid); 869 int len = 8-ofs; 870 UA_left(in, tmp+ofs, len); 871 newcamd_to_hexserial(tmp+2, out, caid); 869 872 } 870 873 871 874 void cc_SA_oscam2cccam(uint8 *in, uint8 *out) { 872 // out[0] = in[3];873 // out[1] = in[2];874 // out[2] = in[1];875 // out[3] = in[0];876 875 memcpy(out, in, 4); 877 876 } 878 877 879 878 void cc_SA_cccam2oscam(uint8 *in, uint8 *out) { 880 // out[0] = in[3];881 // out[1] = in[2];882 // out[2] = in[1];883 // out[3] = in[0];884 879 memcpy(out, in, 4); 885 880 }
Note:
See TracChangeset
for help on using the changeset viewer.