Ignore:
Timestamp:
Jul 19, 2010, 5:52:04 PM (12 years ago)
Author:
schomburg
Message:

fixed some bugs
enhanced the GUI
file input possible now

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/PKCS1/Library/KuehnSignature.cs

    r1738 r1742  
    1818        }
    1919
    20         public override void GenerateSignature()
     20        public override bool GenerateSignature()
    2121        {
    22             this.m_KeyLength = RSAKeyManager.getInstance().RsaKeySize; // Länge des RSA Modulus
     22            this.m_KeyLength = RSAKeyManager.Instance.RsaKeySize; // Länge des RSA Modulus
    2323
    2424            // drei Leerzeichen an Msg anhängen
     
    4646
    4747            // byte array der kompletten Signatur, wird zuerst mit 'FF' gefüllt und dann nachher Datenblock an den Anfang kopiert
    48             //byte[] S = new byte[128]; // 1024 bit
    4948            byte[] S = new byte[this.m_KeyLength / 8];
    5049            for (int i = A.Length; i < S.Length; i++)
     
    5958            int countLoops = 0;
    6059
    61             //this.SendGuiLogMsg("Signature tests started", NotificationLevel.Info);
     60            this.SendGuiLogMsg("Signature Generation started", NotificationLevel.Info);
    6261            byte[] hashDigest = new byte[0]; // Hashwert wird in dieser var gespeichert
    6362            BigInteger T = new BigInteger("0"); // hilfsvar
    64             //byte[] resultArray = new byte[128]; // damit verglichen werden kann in byte array kopieren
    6563            byte[] resultArray = new byte[this.m_KeyLength/8];
    6664
     
    8179                isEqual = MathFunctions.compareByteArray(ref resultArray, ref S, significantByteLength); // byte arrays vergleichen, wird in meinen Tests nicht erreicht
    8280                if (!isEqual)
    83                 {                   
    84                     //BigInteger bLast3Bytes = new BigInteger(new byte[] { bMessage[iMsgLength - 3], bMessage[iMsgLength - 2], bMessage[iMsgLength - 1] });
    85                     //bLast3Bytes = bLast3Bytes.Add(BigInteger.One);
    86                     //Array.Copy(bLast3Bytes.ToByteArray(), 0, bMessage, bMessage.Length - 3, 3);                   
     81                {                                       
    8782                    int value1 = bMessage[iMsgLength - 1];                                       
    8883                    if (++value1 >= 256)
     
    10398                    countLoops++;
    10499                }
    105             }           
    106             Datablock.getInstance().Message = bMessage;
    107             byte[] returnByteArray = new byte[this.m_KeyLength/8];
    108             Array.Copy(finalSignature.ToByteArray(), 0, returnByteArray, returnByteArray.Length - finalSignature.ToByteArray().Length, finalSignature.ToByteArray().Length);
     100            }
     101            if (countLoops != limit)
     102            {
     103                Datablock.getInstance().Message = bMessage;
     104                byte[] returnByteArray = new byte[this.m_KeyLength / 8];
     105                Array.Copy(finalSignature.ToByteArray(), 0, returnByteArray, returnByteArray.Length - finalSignature.ToByteArray().Length, finalSignature.ToByteArray().Length);
    109106
    110             this.m_Signature = returnByteArray;
    111             this.m_bSigGenerated = true;
    112             this.OnRaiseSigGenEvent(SignatureType.Kuehn);
     107                this.m_Signature = returnByteArray;
     108                this.m_bSigGenerated = true;
     109                this.OnRaiseSigGenEvent(SignatureType.Kuehn);
     110                return true;
     111            }
     112            else
     113            {
     114                this.m_bSigGenerated = false;               
     115            }
     116            return false;
    113117        }
    114118
Note: See TracChangeset for help on using the changeset viewer.