Changeset 2264


Ignore:
Timestamp:
Dec 27, 2010, 2:57:02 PM (11 years ago)
Author:
Matthäus Wander
Message:

T310:

  • added key handling
  • added sample
  • finished first running version
Location:
trunk
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/T-310/T310.cs

    r2247 r2264  
    4242        private Random rand = new Random();
    4343
    44         // Schlüssel bit Array
    45         private bool[] s1_bit = new bool[120];
    46         private bool[] s2_bit = new bool[120];
    47 
    4844        #endregion
    4945
     
    5753        }
    5854
    59         [PropertyInfo(Direction.InputData, "Key", "Enter key as binary data", null)]
    60         public byte[] Key
     55        [PropertyInfo(Direction.InputData, "Key", "Enter key as binary data", null, false, false, QuickWatchFormat.Hex, null)]
     56        public byte[] InputKey
    6157        {
    6258            get;
     
    7167        }
    7268
     69        [PropertyInfo(Direction.OutputData, "Key", "The key being used in binary", null)]
     70        public byte[] OutputKey
     71        {
     72            get;
     73            set;
     74        }
     75
    7376        #endregion
    7477
     
    9699        public void Execute()
    97100        {
     101            bool[] s1_bit, s2_bit;
     102            byte[] keyBinary;
     103
    98104            ProgressChanged(0, 1);
    99105
    100             // TODO: convert key to bool array
     106            if (InputKey != null && InputKey.Length > 0)
     107            {
     108                keyBinary = InputKey;
     109            }
     110            else
     111            {
     112                GuiLogMessage("No input key given, generating new one", NotificationLevel.Debug);
     113                keyBinary = generateKey();
     114            }
     115
     116            if (!KeyCheck(keyBinary, out s1_bit, out s2_bit))
     117            {
     118                GuiLogMessage("Invalid key", NotificationLevel.Error);
     119                return;
     120            }
     121
     122            OutputKey = keyBinary;
     123            OnPropertyChanged("OutputKey");
     124
    101125            if (settings.Mode == ModeEnum.Encrypt)
    102126            {
    103                 encrypt(InputData);
     127                encrypt(InputData, ref s1_bit, ref s2_bit);
    104128            }
    105129            else
    106130            {
    107                 decrypt(InputData);
     131                decrypt(InputData, ref s1_bit, ref s2_bit);
    108132            }
    109133
     
    111135        }
    112136
    113         private void encrypt(byte[] by_array_eingabe)
     137        /* Schlüsselkarte erzeugen */
     138        private byte[] generateKey()
     139        {
     140            byte[] keyBinary = new byte[30];
     141            uint ui_Keycheck;
     142
     143            do
     144            {
     145                keyBinary[0] = (byte)rand.Next(255);
     146                keyBinary[1] = (byte)rand.Next(255);
     147                keyBinary[2] = (byte)rand.Next(255);
     148                ui_Keycheck = (uint) keyBinary[2];
     149                ui_Keycheck <<= 8;
     150                ui_Keycheck += (uint) keyBinary[1];
     151                ui_Keycheck <<= 8;
     152                ui_Keycheck += (uint) keyBinary[0];
     153            } while (!KeyParity(ui_Keycheck));
     154            do
     155            {
     156                keyBinary[3] = (byte)rand.Next(255);
     157                keyBinary[4] = (byte)rand.Next(255);
     158                keyBinary[5] = (byte)rand.Next(255);
     159                ui_Keycheck = (uint)keyBinary[5];
     160                ui_Keycheck <<= 8;
     161                ui_Keycheck += (uint)keyBinary[4];
     162                ui_Keycheck <<= 8;
     163                ui_Keycheck += (uint)keyBinary[3];
     164            } while (!KeyParity(ui_Keycheck));
     165            do
     166            {
     167                keyBinary[6] = (byte)rand.Next(255);
     168                keyBinary[7] = (byte)rand.Next(255);
     169                keyBinary[8] = (byte)rand.Next(255);
     170                ui_Keycheck = (uint)keyBinary[8];
     171                ui_Keycheck <<= 8;
     172                ui_Keycheck += (uint)keyBinary[7];
     173                ui_Keycheck <<= 8;
     174                ui_Keycheck += (uint)keyBinary[6];
     175            } while (!KeyParity(ui_Keycheck));
     176            do
     177            {
     178                keyBinary[9] = (byte)rand.Next(255);
     179                keyBinary[10] = (byte)rand.Next(255);
     180                keyBinary[11] = (byte)rand.Next(255);
     181                ui_Keycheck = (uint)keyBinary[11];
     182                ui_Keycheck <<= 8;
     183                ui_Keycheck += (uint)keyBinary[10];
     184                ui_Keycheck <<= 8;
     185                ui_Keycheck += (uint)keyBinary[9];
     186            } while (!KeyParity(ui_Keycheck));
     187            do
     188            {
     189                keyBinary[12] = (byte)rand.Next(255);
     190                keyBinary[13] = (byte)rand.Next(255);
     191                keyBinary[14] = (byte)rand.Next(255);
     192                ui_Keycheck = (uint)keyBinary[14];
     193                ui_Keycheck <<= 8;
     194                ui_Keycheck += (uint)keyBinary[13];
     195                ui_Keycheck <<= 8;
     196                ui_Keycheck += (uint)keyBinary[12];
     197            } while (!KeyParity(ui_Keycheck));
     198
     199            do
     200            {
     201                keyBinary[15] = (byte)rand.Next(255);
     202                keyBinary[16] = (byte)rand.Next(255);
     203                keyBinary[17] = (byte)rand.Next(255);
     204                ui_Keycheck = (uint)keyBinary[17];
     205                ui_Keycheck <<= 8;
     206                ui_Keycheck += (uint)keyBinary[16];
     207                ui_Keycheck <<= 8;
     208                ui_Keycheck += (uint)keyBinary[15];
     209            } while (!KeyParity(ui_Keycheck));
     210            do
     211            {
     212                keyBinary[18] = (byte)rand.Next(255);
     213                keyBinary[19] = (byte)rand.Next(255);
     214                keyBinary[20] = (byte)rand.Next(255);
     215                ui_Keycheck = (uint)keyBinary[20];
     216                ui_Keycheck <<= 8;
     217                ui_Keycheck += (uint)keyBinary[19];
     218                ui_Keycheck <<= 8;
     219                ui_Keycheck += (uint)keyBinary[18];
     220            } while (!KeyParity(ui_Keycheck));
     221            do
     222            {
     223                keyBinary[21] = (byte)rand.Next(255);
     224                keyBinary[22] = (byte)rand.Next(255);
     225                keyBinary[23] = (byte)rand.Next(255);
     226                ui_Keycheck = (uint)keyBinary[23];
     227                ui_Keycheck <<= 8;
     228                ui_Keycheck += (uint)keyBinary[22];
     229                ui_Keycheck <<= 8;
     230                ui_Keycheck += (uint)keyBinary[21];
     231            } while (!KeyParity(ui_Keycheck));
     232            do
     233            {
     234                keyBinary[24] = (byte)rand.Next(255);
     235                keyBinary[25] = (byte)rand.Next(255);
     236                keyBinary[26] = (byte)rand.Next(255);
     237                ui_Keycheck = (uint)keyBinary[26];
     238                ui_Keycheck <<= 8;
     239                ui_Keycheck += (uint)keyBinary[25];
     240                ui_Keycheck <<= 8;
     241                ui_Keycheck += (uint)keyBinary[24];
     242            } while (!KeyParity(ui_Keycheck));
     243            do
     244            {
     245                keyBinary[27] = (byte)rand.Next(255);
     246                keyBinary[28] = (byte)rand.Next(255);
     247                keyBinary[29] = (byte)rand.Next(255);
     248                ui_Keycheck = (uint)keyBinary[29];
     249                ui_Keycheck <<= 8;
     250                ui_Keycheck += (uint)keyBinary[28];
     251                ui_Keycheck <<= 8;
     252                ui_Keycheck += (uint)keyBinary[27];
     253            } while (!KeyParity(ui_Keycheck));
     254
     255            return keyBinary;
     256
     257//            string s_Kenngruppe = "";
     258//            for (byte b_FsKg = 0; b_FsKg < 5; ++b_FsKg)
     259//            {
     260//                byte b_FsRand = 0;
     261//                do
     262//                {
     263//                    b_FsRand = (byte)(0x1f & (byte)rand_myZufall.Next());
     264//                } while (b_FsRand > 0x18);
     265//                s_Kenngruppe += (char)(0x61 + b_FsRand);
     266//            }
     267//            mTB_Kenngruppe.Text = s_Kenngruppe;
     268        }
     269
     270        private bool KeyCheck(byte[] keyBinary, out bool[] s1_bit, out bool[] s2_bit)
     271        {
     272            s1_bit = new bool[120];
     273            s2_bit = new bool[120];
     274
     275            uint[] key1Quinary = new uint[5];
     276            uint[] key2Quinary = new uint[5];
     277
     278            uint i_Keycheck = (uint) keyBinary[2];
     279            i_Keycheck <<= 8;
     280            i_Keycheck += (uint) keyBinary[1];
     281            i_Keycheck <<= 8;
     282            i_Keycheck += (uint) keyBinary[0];
     283            if (!KeyParity(i_Keycheck)) return false;
     284            key1Quinary[0] = i_Keycheck;
     285            // anzahl der 1 "H" ungerade!
     286            i_Keycheck = (uint) keyBinary[5];
     287            i_Keycheck <<= 8;
     288            i_Keycheck += (uint) keyBinary[4];
     289            i_Keycheck <<= 8;
     290            i_Keycheck += (uint) keyBinary[3];
     291            if (!KeyParity(i_Keycheck)) return false;
     292            // anzahl der 1 "H" ungerade!
     293            key1Quinary[1] = i_Keycheck;
     294            i_Keycheck = (uint) keyBinary[8];
     295            i_Keycheck <<= 8;
     296            i_Keycheck += (uint) keyBinary[7];
     297            i_Keycheck <<= 8;
     298            i_Keycheck += (uint) keyBinary[6];
     299            if (!KeyParity(i_Keycheck)) return false;
     300            // anzahl der 1 "H" ungerade!
     301            key1Quinary[2] = i_Keycheck;
     302            i_Keycheck = (uint) keyBinary[11];
     303            i_Keycheck <<= 8;
     304            i_Keycheck += (uint) keyBinary[10];
     305            i_Keycheck <<= 8;
     306            i_Keycheck += (uint) keyBinary[9];
     307            if (!KeyParity(i_Keycheck)) return false;
     308            // anzahl der 1 "H" ungerade!
     309            key1Quinary[3] = i_Keycheck;
     310            i_Keycheck = (uint) keyBinary[14];
     311            i_Keycheck <<= 8;
     312            i_Keycheck += (uint) keyBinary[13];
     313            i_Keycheck <<= 8;
     314            i_Keycheck += (uint) keyBinary[12];
     315            if (!KeyParity(i_Keycheck)) return false;
     316            // anzahl der 1 "H" ungerade!
     317            key1Quinary[4] = i_Keycheck;
     318            S_fuellen(ref s1_bit, key1Quinary[0], 1, 1);
     319            S_fuellen(ref s1_bit, key1Quinary[1], 1, 2);
     320            S_fuellen(ref s1_bit, key1Quinary[2], 1, 3);
     321            S_fuellen(ref s1_bit, key1Quinary[3], 1, 4);
     322            S_fuellen(ref s1_bit, key1Quinary[4], 1, 5);
     323            i_Keycheck = (uint) keyBinary[17];
     324            i_Keycheck <<= 8;
     325            i_Keycheck += (uint) keyBinary[16];
     326            i_Keycheck <<= 8;
     327            i_Keycheck += (uint) keyBinary[15];
     328            if (!KeyParity(i_Keycheck)) return false;
     329            // anzahl der 1 "H" ungerade!
     330            key2Quinary[0] = i_Keycheck;
     331            i_Keycheck = (uint) keyBinary[20];
     332            i_Keycheck <<= 8;
     333            i_Keycheck += (uint) keyBinary[19];
     334            i_Keycheck <<= 8;
     335            i_Keycheck += (uint) keyBinary[18];
     336            if (!KeyParity(i_Keycheck)) return false;
     337            // anzahl der 1 "H" ungerade!
     338            key2Quinary[1] = i_Keycheck;
     339            i_Keycheck = (uint) keyBinary[23];
     340            i_Keycheck <<= 8;
     341            i_Keycheck += (uint) keyBinary[22];
     342            i_Keycheck <<= 8;
     343            i_Keycheck += (uint) keyBinary[21];
     344            if (!KeyParity(i_Keycheck)) return false;
     345            // anzahl der 1 "H" ungerade!
     346            key2Quinary[2] = i_Keycheck;
     347            i_Keycheck = (uint) keyBinary[26];
     348            i_Keycheck <<= 8;
     349            i_Keycheck += (uint) keyBinary[25];
     350            i_Keycheck <<= 8;
     351            i_Keycheck += (uint) keyBinary[24];
     352            if (!KeyParity(i_Keycheck)) return false;
     353            // anzahl der 1 "H" ungerade!
     354            key2Quinary[3] = i_Keycheck;
     355            i_Keycheck = (uint) keyBinary[29];
     356            i_Keycheck <<= 8;
     357            i_Keycheck += (uint) keyBinary[28];
     358            i_Keycheck <<= 8;
     359            i_Keycheck += (uint) keyBinary[27];
     360            if (!KeyParity(i_Keycheck)) return false;
     361            // anzahl der 1 "H" ungerade!
     362            key2Quinary[4] = i_Keycheck;
     363            S_fuellen(ref s2_bit, key2Quinary[0], 1, 1);
     364            S_fuellen(ref s2_bit, key2Quinary[1], 1, 2);
     365            S_fuellen(ref s2_bit, key2Quinary[2], 1, 3);
     366            S_fuellen(ref s2_bit, key2Quinary[3], 1, 4);
     367            S_fuellen(ref s2_bit, key2Quinary[4], 1, 5);
     368//            if (mTB_Kenngruppe.Text.Length < 5) return false;
     369//            for (byte b_text = 0; b_text < 5; ++b_text)
     370//                if ((mTB_Kenngruppe.Text[b_text] > 0x7a) || (mTB_Kenngruppe.Text[b_text] < 0x61))
     371//                {                                     // wenn kleiner 'A' oder größer 'Z'
     372//                    mTB_Kenngruppe.Clear();
     373//                    return false;
     374//                }
     375            return true;
     376        }
     377
     378        /* Key1-5, 6-10 ... ungerade */
     379        private bool KeyParity(uint i_TeilKey)
     380        {
     381            int i_shiftRegister = 1;                         // Maske
     382            bool bo_MaskSum = false;                         // speichern des Zwischenergebnisses
     383
     384            for (byte b_count = 0; b_count < 24; ++b_count)  // die 24 bit des Schlüssels
     385            {
     386                if ((i_TeilKey & i_shiftRegister) > 0)      //Schlüsselbit AND Maske
     387                {
     388                    if (bo_MaskSum)                         // war das erbnis schon true?  ( XOR Funktion einmal anders )
     389                        bo_MaskSum = false;
     390                    else
     391                        bo_MaskSum = true;
     392                }
     393                i_shiftRegister <<= 1;                       // schieben der Maske in die entsprechende Position
     394            }
     395            return bo_MaskSum;
     396        }
     397
     398        /* S1 und S2 Bitfeld füllen */
     399        private void S_fuellen(ref bool[] keyBits, uint ui_Teilschluessel, byte b_Snummer, byte b_Teilnr)
     400        {
     401            byte b_index;
     402            int i_temp;
     403            uint ui_schiebe = 1;
     404
     405            for (b_index = 0; b_index < 24; ++b_index)
     406            {
     407                i_temp = (b_Teilnr - 1) * 24 + b_index;
     408                keyBits[i_temp] = (ui_Teilschluessel & ui_schiebe) > 0 ? true : false;
     409                ui_schiebe <<= 1;
     410            }
     411        }
     412
     413        private void encrypt(byte[] by_array_eingabe, ref bool[] s1_bit, ref bool[] s2_bit)
    114414        {
    115415            using (MemoryStream streamAusgabe = new MemoryStream())
     
    153453                    System.Threading.Thread.Sleep(10);
    154454                    b_temp = (byte)((0xf8 & by_array_eingabe[int_zaehler]) >> 3);                   // byte No. 1
    155                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));  // bit 7 ... 3
     455                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));  // bit 7 ... 3
    156456
    157457                    b_temp = (byte)((0x07 & by_array_eingabe[int_zaehler]) << 2);                    // bit 2 ... 0
     
    159459                    if (int_zaehler == by_array_eingabe.Length) int_zaehler = by_array_eingabe.Length - 1;
    160460                    b_temp |= (byte)(by_array_eingabe[int_zaehler] >> 6);                   // bit 7, 6
    161                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     461                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    162462
    163463                    b_temp = (byte)((0x3e & by_array_eingabe[int_zaehler]) >> 1);
    164                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     464                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    165465
    166466                    b_temp = (byte)((0x01 & by_array_eingabe[int_zaehler]) << 4);
     
    168468                    if (int_zaehler == by_array_eingabe.Length) int_zaehler = by_array_eingabe.Length - 1;
    169469                    b_temp |= (byte)((0xf0 & by_array_eingabe[int_zaehler]) >> 4);
    170                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     470                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    171471
    172472                    b_temp = (byte)((0x0f & by_array_eingabe[int_zaehler]) << 1);
     
    174474                    if (int_zaehler == by_array_eingabe.Length) int_zaehler = by_array_eingabe.Length - 1;
    175475                    b_temp |= (byte)(by_array_eingabe[int_zaehler] >> 7);
    176                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     476                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    177477
    178478                    b_temp = (byte)((0x7c & by_array_eingabe[int_zaehler]) >> 2);
    179                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     479                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    180480
    181481                    b_temp = (byte)((0x03 & by_array_eingabe[int_zaehler]) << 3);
     
    183483                    if (int_zaehler == by_array_eingabe.Length) int_zaehler = by_array_eingabe.Length - 1;
    184484                    b_temp |= (byte)((0xe0 & by_array_eingabe[int_zaehler]) >> 5);
    185                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     485                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    186486
    187487                    b_temp = (byte)(0x1f & by_array_eingabe[int_zaehler]);
    188                     streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), b_temp));
     488                    streamAusgabe.WriteByte(verschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), b_temp));
    189489                    ++int_zaehler;                                              // byte 6 erhöhe für schleif
    190490                    // Warten auf Anzeigenaktualisierung
     
    199499        }
    200500
    201         private void decrypt(byte[] by_array_eingabe)
     501        private void decrypt(byte[] by_array_eingabe, ref bool[] s1_bit, ref bool[] s2_bit)
    202502        {
    203503            using (MemoryStream streamAusgabe = new MemoryStream())
     
    206506                ulong ul_syncronfolge = 0ul;
    207507
    208                 if (!((by_array_eingabe[0] == 0x19) & (by_array_eingabe[1] == 0x19) & (by_array_eingabe[2] == 0x19) & (by_array_eingabe[3] == 0x19) & (by_array_eingabe[20] == 0x0f) & (by_array_eingabe[21] == 0x0f) & (by_array_eingabe[22] == 0x0f) & (by_array_eingabe[23] == 0x0f)))
    209                 {
    210                     GuiLogMessage("Synchronfolge falsch", NotificationLevel.Error);
     508                if (by_array_eingabe.Length < 24 ||
     509                !((by_array_eingabe[0] == 0x19) & (by_array_eingabe[1] == 0x19) & (by_array_eingabe[2] == 0x19) & (by_array_eingabe[3] == 0x19) & (by_array_eingabe[20] == 0x0f) & (by_array_eingabe[21] == 0x0f) & (by_array_eingabe[22] == 0x0f) & (by_array_eingabe[23] == 0x0f)))
     510                {
     511                    GuiLogMessage("Can't decrypt, invalid input sequence", NotificationLevel.Error);
    211512
    212513//                    pB_c.Visible = false;
     
    231532                if (ul_syncronfolge != Syncronfolge(ul_startfolge))
    232533                {
    233                     GuiLogMessage("Synchronfolge falsch", NotificationLevel.Error);
     534                    GuiLogMessage("Can't decrypt, invalid input sequence", NotificationLevel.Error);
    234535
    235536//                    pB_c.Visible = false;
     
    251552                while (int_ent < by_array_eingabe.Length - 1)
    252553                {
    253                     b_temp0 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     554                    b_temp0 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    254555                    ++int_ent;
    255                     b_temp1 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     556                    b_temp1 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    256557                    ++int_ent;
    257                     b_temp2 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     558                    b_temp2 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    258559                    ++int_ent;
    259                     b_temp3 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     560                    b_temp3 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    260561                    ++int_ent;
    261                     b_temp4 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     562                    b_temp4 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    262563                    ++int_ent;
    263                     b_temp5 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     564                    b_temp5 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    264565                    ++int_ent;
    265                     b_temp6 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     566                    b_temp6 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    266567                    ++int_ent;
    267                     b_temp7 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge), by_array_eingabe[int_ent]);
     568                    b_temp7 = entschluesseln(Wurm(ref bo_U_Vektor, ref ul_syncronfolge, ref s1_bit, ref s2_bit), by_array_eingabe[int_ent]);
    268569                    ++int_ent;
    269570
     
    440741
    441742        /* Schlüsselgenerator ablauf, Schrittkette, Automat, Batch, im Start-Stopp Betrieb */
    442         private uint Wurm(ref bool[] bo_U_Vektor, ref ulong ul_syncronfolge)
     743        private uint Wurm(ref bool[] bo_U_Vektor, ref ulong ul_syncronfolge, ref bool[] s1_bit, ref bool[] s2_bit)
    443744        {
    444745            byte b_fsBit = 0;
  • trunk/CrypPlugins/T-310/T310Settings.cs

    r2247 r2264  
    4141        #region TaskPane Settings
    4242
    43         /// <summary>
    44         /// HOWTO: This is an example for a setting entity shown in the settings pane on the right of the CT2 main window.
    45         /// This example setting uses a number field input, but there are many more input types available, see ControlType enumeration.
    46         /// </summary>
    4743        [TaskPane("Mode", "Encrypt or decrypt", null, 1, false, ControlType.ComboBox, new string[] { "Encrypt", "Decrypt" })]
    4844        public ModeEnum Mode
Note: See TracChangeset for help on using the changeset viewer.