Changeset 1742


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

fixed some bugs
enhanced the GUI
file input possible now

Location:
trunk/PKCS1
Files:
24 edited

Legend:

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

    r1738 r1742  
    2222            {
    2323                //TODO zulässigen Wertebereich weiter einschraenken?
    24                 if ((int)value > 0 && (int)value < RSAKeyManager.getInstance().RsaKeySize)
     24                if ((int)value > 0 && (int)value < RSAKeyManager.Instance.RsaKeySize)
    2525                {
    2626                    this.m_dataBlockStartPos = (int)value;
     
    3737        }
    3838
    39         public override void GenerateSignature()
     39        public override bool GenerateSignature()
    4040        {
    4141            this.SendGuiLogMsg("Message Generation started", NotificationLevel.Info);
    4242
    43             this.m_KeyLength = RSAKeyManager.getInstance().RsaKeySize;
     43            this.m_KeyLength = RSAKeyManager.Instance.RsaKeySize;
    4444
    4545            int hashDigestLength = Hashfunction.getDigestSize() * 8; // weil Size in Byte zurückgegeben wird
     
    7878            BigInteger startPos = BigInteger.ValueOf(this.m_dataBlockStartPos);
    7979            BigInteger endPos = startPos.Add(datablockLength);
    80             BigInteger sigLengthDivThree = sigLengthWithoutZeros.Divide(BigInteger.Three); // TODO muss Ganzzahl sein
     80            BigInteger sigLengthDivThree = sigLengthWithoutZeros.Divide(BigInteger.Three);
    8181           
    8282            BigInteger testbeta = endPos.Subtract(BigInteger.Two.Multiply(sigLengthDivThree)).Subtract(datablockLength); // sollte 34 seinbei keylength 3072
     
    9797            this.m_bSigGenerated = true;
    9898            this.OnRaiseSigGenEvent(SignatureType.Bleichenbacher);
     99            return true;
    99100        }
    100101
  • 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
  • trunk/PKCS1/Library/RSAKeyManager.cs

    r1650 r1742  
    1414    {
    1515        #region Singleton
    16         // Singleton
    17         //
    18         private static RSAKeyManager instance = null;
    1916
    20         public static RSAKeyManager getInstance()
     17        private static RSAKeyManager m_Instance = null;
     18        public static RSAKeyManager Instance
    2119        {
    22             if (instance == null) { instance = new RSAKeyManager(); }
    23             return instance;
     20            get
     21            {
     22                if (m_Instance == null)
     23                {
     24                    m_Instance = new RSAKeyManager();
     25                }
     26                return m_Instance;
     27            }
    2428        }
    2529
     
    2731        {
    2832        }
    29         //
    30         // end Singleton
     33
    3134        #endregion
    3235
     
    4043        {
    4144            set
    42             { 
     45            {
    4346                this.m_RsaKeySize = (int)value;
    4447                OnRaiseKeyGenerated(ParameterChangeType.ModulusSize);
    45             } // TODO validieren; welche Werte zulässig?
     48            }
    4649            get { return this.m_RsaKeySize; }
    4750        }
     
    100103        public AsymmetricKeyParameter getPubKey()
    101104        {
    102             return this.keyPair.Public;
     105             return this.keyPair.Public;
    103106        }
    104107
     
    111114        public BigInteger getModulusToBigInt()
    112115        {           
    113             RsaKeyParameters pubkeyParam = (RsaKeyParameters)RSAKeyManager.getInstance().getPubKey();           
     116            RsaKeyParameters pubkeyParam = (RsaKeyParameters)RSAKeyManager.Instance.getPubKey();           
    114117            return pubkeyParam.Modulus;
    115118        }
    116 
    117119    }
    118120}
  • trunk/PKCS1/Library/RSASignature.cs

    r1738 r1742  
    3232        }       
    3333
    34         public override void GenerateSignature()
     34        public override bool GenerateSignature()
    3535        {
    36             if (RSAKeyManager.getInstance().isKeyGenerated())
     36            if (RSAKeyManager.Instance.isKeyGenerated())
    3737            {
    3838                // RSA Schlüssellänge setzen für Methode in Oberklasse
    39                 this.m_KeyLength = RSAKeyManager.getInstance().RsaKeySize;
     39                this.m_KeyLength = RSAKeyManager.Instance.RsaKeySize;
    4040
    4141                IAsymmetricBlockCipher signerPkcs1Enc = new Pkcs1Encoding(new RsaEngine());
    42                 signerPkcs1Enc.Init(true, RSAKeyManager.getInstance().getPrivKey());
     42                signerPkcs1Enc.Init(true, RSAKeyManager.Instance.getPrivKey());
    4343                byte[] output = signerPkcs1Enc.ProcessBlock(this.getCompleteHw(), 0, this.getCompleteHw().Length);
    4444 
    4545                this.m_bSigGenerated = true;
    4646                this.m_Signature = output;
    47                 this.OnRaiseSigGenEvent(SignatureType.Pkcs1);               
     47                this.OnRaiseSigGenEvent(SignatureType.Pkcs1);
     48                return true;
    4849            }
     50            return false;
    4951        }
    5052
  • trunk/PKCS1/Library/RSAValidator.cs

    r1738 r1742  
    2121        private bool verifySig(ISigner verifier, byte[] message, byte[] signature)
    2222        {           
    23             verifier.Init(false, RSAKeyManager.getInstance().getPubKey());           
    24             byte[] messageInBytes = message;
    25             verifier.BlockUpdate(messageInBytes, 0, messageInBytes.Length); // update bekommt klartextnachricht als param           
     23            verifier.Init(false, RSAKeyManager.Instance.getPubKey());           
     24            verifier.BlockUpdate(message, 0, message.Length); // update bekommt klartextnachricht als param
    2625            return verifier.VerifySignature(signature); // input ist verschlüsselte Nachricht
    2726        }
     
    3029        {
    3130            IAsymmetricBlockCipher eng = new Pkcs1Encoding(new RsaEngine());
    32             //IAsymmetricBlockCipher eng = new RsaEngine();
    33             eng.Init(false, RSAKeyManager.getInstance().getPubKey());
     31            eng.Init(false, RSAKeyManager.Instance.getPubKey());
    3432
    3533            try
    3634            {
    37                 //byte[] messageInBytes = Encoding.ASCII.GetBytes(message);
    3835                byte[] data = eng.ProcessBlock(signature, 0, signature.Length);
    3936                funcIdent = this.extractHashFunction(Encoding.ASCII.GetString(Hex.Encode(data)));
     
    4138                if (null != funcIdent)
    4239                {
    43                     string signerIdent = funcIdent.diplayName + "withRSA";
    44                     ISigner verifier = SignerUtilities.GetSigner(signerIdent);
     40                    ISigner verifier = SignerUtilities.GetSigner(funcIdent.diplayName + "withRSA");
    4541                    return this.verifySig(verifier, message, signature);
    4642                }
     
    5046                return false;
    5147            }
    52 
    5348            return false;
    5449        }
     
    9893        {
    9994            BigInteger signatureBigInt = new BigInteger(1,signature);
    100             byte[] messageInBytes = message; 
    101 
    102             RsaKeyParameters pubkeyParam = (RsaKeyParameters)RSAKeyManager.getInstance().getPubKey();
    103             BigInteger exponent = pubkeyParam.Exponent;
    104             BigInteger modulus = pubkeyParam.Modulus;
    105 
    106             byte[] sigDecrypted = (signatureBigInt.ModPow(exponent, modulus)).ToByteArray();
     95            RsaKeyParameters pubkeyParam = (RsaKeyParameters)RSAKeyManager.Instance.getPubKey();
     96
     97            byte[] sigDecrypted = (signatureBigInt.ModPow(pubkeyParam.Exponent, pubkeyParam.Modulus)).ToByteArray();
    10798            byte[] block = this.DerEncode(sigDecrypted); // hiernach steht DERIdent und hash am anfang des arrays, danach garbage
    10899
     
    112103            if(funcIdent == HashFunctionHandler.SHA1)
    113104            {
    114                 return this.verifySigWithoutPad(block, messageInBytes, HashFunctionHandler.SHA1, 20);
     105                return this.verifySigWithoutPad(block, message, HashFunctionHandler.SHA1, 20);
    115106            }
    116107
     
    118109            if(funcIdent == HashFunctionHandler.SHA256)
    119110            {
    120                 return this.verifySigWithoutPad(block, messageInBytes, HashFunctionHandler.SHA256, 32);
     111                return this.verifySigWithoutPad(block, message, HashFunctionHandler.SHA256, 32);
    121112            }
    122113
     
    124115            if(funcIdent == HashFunctionHandler.SHA384)
    125116            {
    126                 return this.verifySigWithoutPad(block, messageInBytes, HashFunctionHandler.SHA384, 48);
     117                return this.verifySigWithoutPad(block, message, HashFunctionHandler.SHA384, 48);
    127118            }
    128119
     
    130121            if(funcIdent == HashFunctionHandler.SHA512)
    131122            {
    132                 return this.verifySigWithoutPad(block, messageInBytes, HashFunctionHandler.SHA512, 64);
     123                return this.verifySigWithoutPad(block, message, HashFunctionHandler.SHA512, 64);
    133124            }
    134125
     
    136127            if(funcIdent == HashFunctionHandler.MD2)
    137128            {
    138                 return this.verifySigWithoutPad(block, messageInBytes, HashFunctionHandler.MD2, 16);
     129                return this.verifySigWithoutPad(block, message, HashFunctionHandler.MD2, 16);
    139130            }
    140131
     
    142133            if(funcIdent == HashFunctionHandler.MD5)
    143134            {
    144                 return this.verifySigWithoutPad(block, messageInBytes, HashFunctionHandler.MD5, 16);
     135                return this.verifySigWithoutPad(block, message, HashFunctionHandler.MD5, 16);
    145136            }
    146137
     
    167158            bool bEqual = false;
    168159
    169             string test1 = Encoding.ASCII.GetString(Hex.Encode(input1));
    170             string test2 = Encoding.ASCII.GetString(Hex.Encode(input2));
    171 
    172160            if (input1.Length == input2.Length)
    173161            {
     
    226214
    227215        #endregion // verify Signatures
    228 
    229 
    230216    }
    231217}
  • trunk/PKCS1/Library/Signature.cs

    r1650 r1742  
    7979        {
    8080            BigInteger SigInBigInt = new BigInteger(1,this.GetSignature());
    81             BigInteger returnBigInt = SigInBigInt.ModPow(RSAKeyManager.getInstance().getPubKeyToBigInt(), RSAKeyManager.getInstance().getModulusToBigInt());
     81            BigInteger returnBigInt = SigInBigInt.ModPow(RSAKeyManager.Instance.getPubKeyToBigInt(), RSAKeyManager.Instance.getModulusToBigInt());
    8282            byte[] returnByteArray = new byte[ this.m_KeyLength/8 ]; // KeyLength is in bit
    8383            Array.Copy(returnBigInt.ToByteArray(), 0, returnByteArray, returnByteArray.Length - returnBigInt.ToByteArray().Length, returnBigInt.ToByteArray().Length);
     
    8585        }
    8686
    87         public abstract void GenerateSignature();
     87        public abstract bool GenerateSignature();
    8888
    8989    }
  • trunk/PKCS1/PKCS1.csproj

    r1738 r1742  
    169169      <DependentUpon>StartControl.xaml</DependentUpon>
    170170    </Compile>
     171    <Compile Include="WpfResources\ErrorsToMessageConverter.cs" />
     172    <Compile Include="WpfResources\NumberValidationRule.cs" />
    171173    <Compile Include="WpfVisualization\Navigation\Navigation.xaml.cs">
    172174      <DependentUpon>Navigation.xaml</DependentUpon>
  • trunk/PKCS1/WpfControls/Components/DatablockControl.xaml

    r1650 r1742  
    2626                        </Grid.RowDefinitions>                       
    2727                            <!-- Text aus Datei laden -->
    28                             <RadioButton Grid.Row="0" IsEnabled="False" Margin="5,5,5,5" Name="rbTextfromFile" VerticalAlignment="Top" HorizontalAlignment="Left" Checked="rbTextfromFile_Checked">Text aus Datei laden</RadioButton>
    29                             <TextBox Grid.Row="1" IsEnabled="False" Height="20" MinWidth="170" Margin="5,0,5,5" Name="tbInputFile" VerticalAlignment="Top" HorizontalAlignment="Left" />
    30                             <Button Grid.Row="1" IsEnabled="False" Height="20" Margin="5,0,5,5" Name="button1" VerticalAlignment="Top" HorizontalAlignment="Right">Datei öffnen</Button>
    31                             <!-- Text eingeben -->
     28                            <RadioButton Grid.Row="0" Margin="5,5,5,5" Name="rbTextfromFile" VerticalAlignment="Top" HorizontalAlignment="Left" Checked="rbTextfromFile_Checked">Text aus Datei laden</RadioButton>
     29                        <Grid Grid.Row="1">
     30                            <Grid.ColumnDefinitions>
     31                                <ColumnDefinition Width="auto" />
     32                                <ColumnDefinition Width="*" />
     33                            </Grid.ColumnDefinitions>
     34                            <TextBox Grid.Column="0" Height="20" MinWidth="270" Margin="5,0,5,5" IsReadOnly="True" Name="tbInputFile" VerticalAlignment="Top" HorizontalAlignment="Left" />
     35                            <Button Grid.Column="1" Height="20" Margin="5,0,5,5" Name="bOpenFile" VerticalAlignment="Top" HorizontalAlignment="Left" Click="bOpenFile_Click">Datei öffnen</Button>
     36                        </Grid>
     37                        <!-- Text eingeben -->
    3238                            <RadioButton Grid.Row="2" Margin="5,5,5,5" Name="rbTextFromBox" HorizontalAlignment="Left" Checked="rbTextFromBox_Checked">Text eingeben</RadioButton>
    33                             <TextBox Grid.Row="3" MinHeight="85" MaxWidth="400" Margin="5,0,5,5" Name="tbInputText" TextWrapping="Wrap" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" KeyUp="tbInputText_KeyUp" >Hier bitte den zu verschluesselnden Text eingeben.</TextBox>
     39                            <TextBox Grid.Row="3" MinHeight="85" MaxWidth="400" Margin="5,0,5,5" Name="tbInputText" TextWrapping="Wrap" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">Hier bitte den zu signierenden Text eingeben.</TextBox>
    3440                     </Grid>
    3541                </Grid>
     
    4349                    </Grid.RowDefinitions>
    4450                        <!-- Choose Hashfunction -->
    45                         <Label Grid.Row="0" HorizontalAlignment="Right" Margin="5,0,5,0" Name="lblChooseHash" VerticalAlignment="Top" Width="115">Hashfunktion wählen</Label>
    46                         <ComboBox Grid.Row="1" Height="20" HorizontalAlignment="Right" Margin="5,0,5,5" Name="cbHashFunc" VerticalAlignment="Top" Width="115" IsEditable="False" SelectionChanged="cbHashFunc_SelectionChanged"/>
    47                         <Button Grid.Row="2" Height="25" HorizontalAlignment="Right" Margin="5,5,5,5" Name="bGenerate" VerticalAlignment="Bottom" MinWidth="100" Click="bGenerate_Click">Datenblock generieren</Button>
     51                        <Label Grid.Row="0" HorizontalAlignment="Right" Margin="5,0,5,0" Name="lblChooseHash" VerticalAlignment="Top" Width="125">Hashfunktion wählen</Label>
     52                        <ComboBox Grid.Row="1" Height="20" HorizontalAlignment="Right" Margin="5,0,5,5" Name="cbHashFunc" VerticalAlignment="Top" Width="125" IsEditable="False" SelectionChanged="cbHashFunc_SelectionChanged"/>
     53                        <Button Grid.Row="2" Height="25" HorizontalAlignment="Right" Margin="5,5,5,5" Name="bGenerate" VerticalAlignment="Bottom" MinWidth="110" Click="bGenerate_Click">Datenblock generieren</Button>
    4854                </Grid>
    4955            </Grid>
     
    6268                    <Label Grid.Row="0" Margin="0,5,0,0" Name="lblHashIdent">Hashfunktion Identifier</Label>
    6369                    <Label Grid.Row="0" Margin="150,5,0,0" Name="lblHashIdentLength"></Label>
    64                     <TextBox Grid.Row="1" Height="35" Margin="5,0,5,0" Name="tbHashIdent" TextWrapping="Wrap" MaxWidth="450" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" TextChanged="tbHashIdent_TextChanged"/>               
     70                    <TextBox Grid.Row="1" Height="35" Margin="5,0,5,0" Name="tbHashIdent" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" TextChanged="tbHashIdent_TextChanged"/>               
    6571                    <Label Grid.Row="2" Margin="0,5,0,0" Name="lblHashDigest">Hashwert</Label>
    6672                    <Label Grid.Row="2" Margin="150,5,0,0" Name="lblHashDigestLength"></Label>
    67                     <TextBox Grid.Row="3" Height="35" Margin="5,0,5,0" Name="tbHashDigest" TextWrapping="Wrap" MaxWidth="450" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" TextChanged="tbHashDigest_TextChanged"/>               
     73                    <TextBox Grid.Row="3" Height="35" Margin="5,0,5,0" Name="tbHashDigest" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" TextChanged="tbHashDigest_TextChanged"/>               
    6874            </Grid>
    6975        </GroupBox>
  • trunk/PKCS1/WpfControls/Components/DatablockControl.xaml.cs

    r1738 r1742  
    1414using System.Windows.Shapes;
    1515using System.Security.Cryptography;
     16using System.IO;
    1617using PKCS1;
    1718using PKCS1.Library;
    18 using Org.BouncyCastle.Asn1.Pkcs;
    19 using Org.BouncyCastle.Asn1;
     19using Microsoft.Win32;
    2020
    2121
     
    2626    /// </summary>
    2727    public partial class DatablockControl : UserControl
    28     {     
     28    {
     29        private string fileName = String.Empty;
     30
    2931        public DatablockControl()
    3032        {
     
    5557            if (ParameterChangeType.Message == type)
    5658            {
    57                 this.tbInputText.Text =  Encoding.ASCII.GetString(Datablock.getInstance().Message);
     59                if (true == this.tbInputText.IsEnabled)
     60                {
     61                    this.tbInputText.Text = Encoding.ASCII.GetString(Datablock.getInstance().Message);
     62                }
    5863                this.tbHashDigest.Text = Datablock.getInstance().GetHashDigestToHexString();
    5964            }
     
    8691        private void bGenerate_Click(object sender, RoutedEventArgs e)
    8792        {
    88             //TODO komplett implementieren. Abfrage ob Textinput null ist
    89             string textToHash = "";
     93            byte[] byteToHash;
    9094
    9195            if (this.rbTextFromBox.IsChecked == true)
    9296            {
    93                 textToHash = this.tbInputText.Text;
     97                byteToHash = Encoding.ASCII.GetBytes(this.tbInputText.Text);
    9498            }
    9599            else if (this.rbTextfromFile.IsChecked == true)
    96100            {
    97                 // TODO hier den Text aus dem File lesen
    98                 textToHash = "muss noch implementiert werden!";
     101                FileStream fs = new FileStream(this.fileName, FileMode.Open, FileAccess.Read);
     102                byteToHash = new byte[fs.Length];
     103                fs.Read(byteToHash,0,System.Convert.ToInt32(fs.Length));               
     104                fs.Close();
    99105            }
    100106            else
    101107            {
    102                 //TODO else abändern? weglassen?
    103                 textToHash = "konnte Text nicht lesen";
     108                byteToHash = Encoding.ASCII.GetBytes("Fehler!");
    104109            }
    105110
    106111            // Text setzen, Hash wird automatisch generiert, da in Datablock das Event getriggert wird und hier im Handling Hashgenerierung auslöst
    107             Datablock.getInstance().Message =  Encoding.ASCII.GetBytes(textToHash);
    108             // Hash generieren und abfragen
    109             //this.tbHashDigest.Text = Datablock.getInstance().GetHashDigestToHexString();
     112            Datablock.getInstance().Message = byteToHash;
    110113            OnRaiseDataBlockGenerated(ParameterChangeType.DataBlock);
    111         }
    112 
    113         private void tbInputText_KeyUp(object sender, KeyEventArgs e)
    114         {
    115             //TODO: Hier Inhalt der Textbox auf null prüfen und ggf Ausführen Button sperren
    116             //siehe InputSingleControl.xaml.cs in Primes
    117114        }
    118115
     
    136133        {
    137134            this.tbInputFile.IsEnabled = true;
     135            this.bOpenFile.IsEnabled = true;
    138136            this.tbInputText.IsEnabled = false;
    139137        }
     
    142140        {
    143141            this.tbInputFile.IsEnabled = false;
     142            this.bOpenFile.IsEnabled = false;
    144143            this.tbInputText.IsEnabled = true;
     144        }
     145
     146        private void bOpenFile_Click(object sender, RoutedEventArgs e)
     147        {
     148            OpenFileDialog dlg = new OpenFileDialog();
     149            dlg.DefaultExt = ".*";
     150
     151            Nullable<bool> result = dlg.ShowDialog();
     152            if (result == true)
     153            {
     154                this.fileName = dlg.FileName;
     155                this.tbInputFile.Text = this.fileName;
     156            }
    145157        }
    146158    }
  • trunk/PKCS1/WpfControls/Components/SigGenBleichenbControl.xaml

    r1650 r1742  
    4444                        <RowDefinition Height="*" />                       
    4545                    </Grid.RowDefinitions>
    46                     <GroupBox Grid.Row="0" Header="Struktur" Name="gbStruct" Height="40" Width="190" HorizontalAlignment="Right" VerticalAlignment="Top">
     46                    <GroupBox Grid.Row="0" Header="Struktur" Name="gbStruct" Height="47" Width="200" HorizontalAlignment="Right" VerticalAlignment="Top">
    4747                        <Grid>
    4848                            <Grid.ColumnDefinitions>
     
    8080                <Label Grid.Row="0" Margin="0,0,0,0" Name="lblClearText">Unverschlüsselt</Label>
    8181                <Label Grid.Row="0" Margin="150,0,0,0" Name="lblSignatureLength"></Label>
    82                 <RichTextBox Grid.Row="1" Name="rtbResult" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="rtbResult_TextChanged"></RichTextBox>
     82                <RichTextBox Grid.Row="1" Name="rtbResult" MaxWidth="450" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="rtbResult_TextChanged"></RichTextBox>
    8383                <Label Grid.Row="2" Margin="0,0,0,0" Name="lblCipherText">Verschlüsselt</Label>
    8484                <Label Grid.Row="2" Margin="150,0,0,0" Name="lblEncryptedSignatureLength"></Label>
    85                 <TextBox Grid.Row="3" Name="tbResultEncrypted" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultEncrypted_TextChanged"></TextBox>
     85                <TextBox Grid.Row="3" Name="tbResultEncrypted" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultEncrypted_TextChanged"></TextBox>
    8686            </Grid>
    8787        </GroupBox>
  • trunk/PKCS1/WpfControls/Components/SigGenBleichenbControl.xaml.cs

    r1650 r1742  
    2727        {
    2828            InitializeComponent();
    29             RSAKeyManager.getInstance().RaiseKeyGeneratedEvent += handleCustomEvent; // listen
     29            RSAKeyManager.Instance.RaiseKeyGeneratedEvent += handleCustomEvent; // listen
    3030            this.handleCustomEvent(ParameterChangeType.RsaKey);
    3131            this.loadComboDataBlocPos(24);
     
    3434        private void handleCustomEvent(ParameterChangeType type)
    3535        {           
    36 
    37             this.lblPublicKeyRes.Content = RSAKeyManager.getInstance().PubExponent.ToString();
    38             this.lblRsaKeySizeRes.Content = RSAKeyManager.getInstance().RsaKeySize.ToString();           
     36            this.lblPublicKeyRes.Content = RSAKeyManager.Instance.PubExponent.ToString();
     37            this.lblRsaKeySizeRes.Content = RSAKeyManager.Instance.RsaKeySize.ToString();           
    3938            this.loadComboDataBlocPos(24);
    4039        }
     
    6059
    6160            int lengthDatablock = Datablock.getInstance().HashFunctionIdent.DERIdent.Length * 4 + Datablock.getInstance().HashFunctionIdent.digestLength + 8;
    62             int end = RSAKeyManager.getInstance().RsaKeySize - lengthDatablock - start;
     61            int end = RSAKeyManager.Instance.RsaKeySize - lengthDatablock - start;
    6362
    6463            for( int i=start; i<= end; i+=8)
  • trunk/PKCS1/WpfControls/Components/SigGenControl.xaml

    r1650 r1742  
    4444                    </Grid.RowDefinitions>
    4545                   
    46                     <GroupBox Grid.Row="0" Header="Struktur" Name="gbStruct" Height="40" Width="165" HorizontalAlignment="Right" VerticalAlignment="Top">
     46                    <GroupBox Grid.Row="0" Header="Struktur" Name="gbStruct" Height="47" Width="175" HorizontalAlignment="Right" VerticalAlignment="Top">
    4747                        <Grid>
    4848                            <Grid.ColumnDefinitions>
     
    7878                <Label Grid.Row="0" Margin="0,0,0,0" Name="lblClearText">Unverschlüsselt</Label>
    7979                <Label Grid.Row="0" Margin="150,0,0,0" Name="lblSignatureLength"></Label>
    80                 <RichTextBox Grid.Row="1" Name="rtbResult" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="rtbResult_TextChanged"></RichTextBox>
     80                <RichTextBox Grid.Row="1" Name="rtbResult" MaxWidth="450" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="rtbResult_TextChanged"></RichTextBox>
    8181                <Label Grid.Row="2" Margin="0,0,0,0" Name="lblCipherText">Verschlüsselt</Label>
    8282                <Label Grid.Row="2" Margin="150,0,0,0" Name="lblEncryptedSignatureLength"></Label>
    83                 <TextBox Grid.Row="3" Name="tbResultEncrypted" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultEncrypted_TextChanged"></TextBox>
     83                <TextBox Grid.Row="3" Name="tbResultEncrypted" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultEncrypted_TextChanged"></TextBox>
    8484            </Grid>
    8585        </GroupBox>           
  • trunk/PKCS1/WpfControls/Components/SigGenControl.xaml.cs

    r1650 r1742  
    2929            InitializeComponent();
    3030            // zeile muss weg; Signatur muss sich bei RSAKeyManager anmelden
    31             RSAKeyManager.getInstance().RaiseKeyGeneratedEvent += handleCustomEvent; // bei KeyGen-Listener anmelden
     31            RSAKeyManager.Instance.RaiseKeyGeneratedEvent += handleCustomEvent; // bei KeyGen-Listener anmelden
    3232            this.handleCustomEvent(ParameterChangeType.RsaKey);
    3333        }
     
    3737            //this.tbResult.Text = String.Empty;
    3838            this.tbResultEncrypted.Text = String.Empty;
    39             this.lblPublicKeyRes.Content = RSAKeyManager.getInstance().PubExponent.ToString();
    40             this.lblRsaKeySizeRes.Content = RSAKeyManager.getInstance().RsaKeySize.ToString();
     39            this.lblPublicKeyRes.Content = RSAKeyManager.Instance.PubExponent.ToString();
     40            this.lblRsaKeySizeRes.Content = RSAKeyManager.Instance.RsaKeySize.ToString();
    4141        }
    4242
  • trunk/PKCS1/WpfControls/Components/SigGenKuehnControl.xaml

    r1650 r1742  
    55    <Grid>
    66        <Grid.RowDefinitions>
     7            <RowDefinition Height="auto" />
    78            <RowDefinition Height="auto" />
    89            <RowDefinition Height="*" />
     
    2425                    </Grid.RowDefinitions>
    2526                    <Label Grid.Row="0" Name="lblRsaKeySize" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top">RSA-Schlüsselgröße (in Bit):</Label>
    26                     <!--<ComboBox Grid.Row="1" Name="cbRsaKeySize" Margin="5,5,5,5" HorizontalAlignment="Left" MinWidth="80" SelectionChanged="cbRsaKeySize_SelectionChanged" />-->
    2727                    <Label Grid.Row="1" Name="lblPublicKey" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top">Öffentlicher Schlüssel:</Label>
    28                     <!--<Label Grid.Row="2" Name="lblPosDataBlock" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top">Position des Datenblocks:</Label>-->
    2928                </Grid>
    3029                <!-- middle -->
     
    3534                        <RowDefinition Height="*" />
    3635                    </Grid.RowDefinitions>
    37                     <!--<Label Grid.Row="0" Name="lblPrivateKey" Margin="5,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Top">privater Schlüssel</Label>-->
    38                     <TextBox Grid.Row="0" Name="tbRsaKeySize" IsReadOnly="True" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></TextBox>
    39                     <TextBox Grid.Row="1" Name="tbPublicKey" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></TextBox>
    40                     <!--<TextBox Grid.Row="2" Name="tbPosDataBlock" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></TextBox>-->
     36                    <Label Grid.Row="0" Name="lblRsaKeySizeRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></Label>
     37                    <Label Grid.Row="1" Name="lblPublicKeyRes" Margin="5,0,5,5" HorizontalAlignment="Left" VerticalAlignment="Top" MinWidth="50" MaxWidth="150"></Label>
    4138                </Grid>
    4239                <!-- right -->
     
    4643                        <RowDefinition Height="*" />
    4744                    </Grid.RowDefinitions>
    48                     <GroupBox Grid.Row="0" Header="Struktur" Name="gbStruct" Height="40" Width="170" HorizontalAlignment="Right" VerticalAlignment="Top">
     45                    <GroupBox Grid.Row="0" Header="Struktur" Name="gbStruct" Height="47" Width="200" HorizontalAlignment="Right" VerticalAlignment="Top">
    4946                        <Grid>
    5047                            <Grid.ColumnDefinitions>
     48                                <ColumnDefinition Width="auto" />
    5149                                <ColumnDefinition Width="auto" />
    5250                                <ColumnDefinition Width="auto" />
     
    5856                            <Label Grid.Column="0">'00'</Label>
    5957                            <Label Grid.Column="1">'01'</Label>
    60                             <Label Grid.Column="2">PS</Label>
     58                            <Label Grid.Column="2" Foreground="Green">PS</Label>
    6159                            <Label Grid.Column="3">'00'</Label>
    62                             <Label Grid.Column="4">HW</Label>
    63                             <Label Grid.Column="5">GG</Label>
     60                            <Label Grid.Column="4" Foreground="Blue">HI</Label>
     61                            <Label Grid.Column="5" Foreground="Red">HW</Label>
     62                            <Label Grid.Column="6">GG</Label>
    6463                        </Grid>
    6564                    </GroupBox>
     
    6968        </GroupBox>
    7069
     70        <!-- Error -->
     71        <TextBlock Grid.Row="1" Foreground="Red" FontWeight="Bold" FontSize="10" Name="tbError"></TextBlock>
     72       
    7173        <!-- Result -->
    72         <GroupBox Header="Generierte Signatur" Name="gbSigRes" Grid.Row="1" Margin="0,15,0,0">
     74        <GroupBox Header="Generierte Signatur" Name="gbSigRes" Grid.Row="2" Margin="0,15,0,0">
    7375            <Grid>
    7476                <Grid.RowDefinitions >
     
    8082                <Label Grid.Row="0" Margin="0,0,0,0" Name="lblClearText">Unverschlüsselt</Label>
    8183                <Label Grid.Row="0" Margin="150,0,0,0" Name="lblSignatureLength"></Label>
    82                 <!--<TextBox Grid.Row="1" Name="tbResult" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResult_TextChanged"></TextBox>-->
    83                 <RichTextBox Grid.Row="1" Name="rtbResult" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="rtbResult_TextChanged"></RichTextBox>
     84                <RichTextBox Grid.Row="1" Name="rtbResult" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" MaxWidth="450" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" TextChanged="rtbResult_TextChanged"></RichTextBox>
    8485                <Label Grid.Row="2" Margin="0,0,0,0" Name="lblCipherText">Verschlüsselt</Label>
    8586                <Label Grid.Row="2" Margin="150,0,0,0" Name="lblEncryptedSignatureLength"></Label>
    86                 <TextBox Grid.Row="3" Name="tbResultEncrypted" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultEncrypted_TextChanged"></TextBox>
     87                <TextBox Grid.Row="3" Name="tbResultEncrypted" TextWrapping="Wrap" MinHeight="80" IsReadOnly="True" Margin="5,5,5,5" MaxWidth="450" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" TextChanged="tbResultEncrypted_TextChanged"></TextBox>
    8788            </Grid>
    8889        </GroupBox>
  • trunk/PKCS1/WpfControls/Components/SigGenKuehnControl.xaml.cs

    r1650 r1742  
    2626        {
    2727            InitializeComponent();
     28            RSAKeyManager.Instance.RaiseKeyGeneratedEvent += handleCustomEvent; // listen
     29            this.handleCustomEvent(ParameterChangeType.RsaKey);
     30        }
     31
     32        private void handleCustomEvent(ParameterChangeType type)
     33        {
     34            this.lblPublicKeyRes.Content = RSAKeyManager.Instance.PubExponent.ToString();
     35            this.lblRsaKeySizeRes.Content = RSAKeyManager.Instance.RsaKeySize.ToString();
    2836        }
    2937
     
    3442            this.m_signature = (KuehnSignature)SignatureHandler.getInstance().getKuehnSig();
    3543
    36             this.m_signature.GenerateSignature();
    37             UserControlHelper.loadRtbColoredSig(this.rtbResult, this.m_signature.GetSignatureDecToHexString());
    38             this.tbResultEncrypted.Text = this.m_signature.GetSignatureToHexString();
    39 
    40             SignatureHandler.getInstance().setKuehnSig(this.m_signature);
     44            if (this.m_signature.GenerateSignature())
     45            {
     46                UserControlHelper.loadRtbColoredSig(this.rtbResult, this.m_signature.GetSignatureDecToHexString());
     47                this.tbResultEncrypted.Text = this.m_signature.GetSignatureToHexString();
     48                SignatureHandler.getInstance().setKuehnSig(this.m_signature);
     49            }
     50            else
     51            {
     52                this.tbError.Text = "Es ist ein Fehler aufgetreten. Signatur konnte nicht erstellt werden.";
     53            }
    4154
    4255            Cursor = Cursors.Arrow;
     
    4457
    4558        private void tbResultEncrypted_TextChanged(object sender, TextChangedEventArgs e)
    46         {
    47 
     59        {           
     60            this.lblEncryptedSignatureLength.Content = "(Länge: " + this.tbResultEncrypted.Text.Length * 4 + " bit)";
    4861        }
    4962
    5063        private void rtbResult_TextChanged(object sender, TextChangedEventArgs e)
    5164        {
    52 
     65            this.lblSignatureLength.Content = "(Länge: " + UserControlHelper.GetRtbTextLength(this.rtbResult) * 4 + " bit)";
    5366        }
    5467    }
  • trunk/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml

    r1650 r1742  
    1 <UserControl x:Class="PKCS1.WpfControls.RsaKeyGen.RsaKeyGenControl"
     1<UserControl x:Class="PKCS1.WpfControls.RsaKeyGen.RsaKeyGenControl" x:Name="This"
    22    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    33    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     4    xmlns:my="clr-namespace:PKCS1.WpfResources"
     5    xmlns:lib="clr-namespace:PKCS1.Library"
    46    HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
     7    <UserControl.Resources>
     8        <my:ErrorsToMessageConverter x:Key="eToMConverter" />
     9    </UserControl.Resources>
    510    <ScrollViewer  VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
    6     <Grid>       
    7         <Grid.RowDefinitions>
     11        <Grid>
     12            <Grid.RowDefinitions>
    813            <RowDefinition Height="auto" />
    914            <RowDefinition Height="auto" />
     
    3439                            <RowDefinition Height="auto" />
    3540                        </Grid.RowDefinitions>
    36                         <TextBox Grid.Row="0" Name="tbInputPubKey" Margin="5,0,5,5" MinWidth="50" TextChanged="tbInputPubKey_TextChanged"></TextBox>
    37                         <TextBox Grid.Row="1" Name="tbInputMod" Margin="5,0,5,5" MinWidth="50" TextChanged="tbInputMod_TextChanged"></TextBox>
     41                            <TextBox Grid.Row="0" Name="tbInputPubKey"  Margin="5,0,5,5" MinWidth="50">
     42                                    <TextBox.Text>
     43                                    <Binding Source="{x:Static lib:RSAKeyManager.Instance}" Path="PubExponent" UpdateSourceTrigger="PropertyChanged">
     44                                        <Binding.ValidationRules>
     45                                            <my:NumberValidationRule UpperBound="20" LowerBound="0" />
     46                                        </Binding.ValidationRules>
     47                                    </Binding>
     48                                </TextBox.Text>                                 
     49                            </TextBox>                           
     50                            <TextBox Grid.Row="1" Name="tbInputMod" Margin="5,0,5,5" MinWidth="50">
     51                                <TextBox.Text>
     52                                    <Binding Source="{x:Static lib:RSAKeyManager.Instance}" Path="RsaKeySize" UpdateSourceTrigger="PropertyChanged">
     53                                        <Binding.ValidationRules>
     54                                            <my:NumberValidationRule UpperBound="4097" LowerBound="1023" />
     55                                        </Binding.ValidationRules>
     56                                    </Binding>
     57                                </TextBox.Text>
     58                            </TextBox>
    3859                    </Grid>
    3960                    <Grid Grid.Column="2">
     
    5879                        <ColumnDefinition Width="auto" />
    5980                    </Grid.ColumnDefinitions>
    60                     <Label Grid.Column="1" Name="lblResultGen" MinWidth="50"></Label>
    61                     <Button Grid.Column="2" Name="btnGenRsaKey" Click="btnGenRsaKey_Click" Height="25" MinWidth="100" VerticalAlignment="Bottom" HorizontalContentAlignment="Right">Schlüssel generieren</Button>
     81                        <TextBlock Grid.Column="0"  Foreground="Red" FontWeight="Bold" FontSize="10"
     82                                Text="{Binding ElementName=tbInputPubKey,
     83                                Path=(Validation.Errors),
     84                                Converter={StaticResource eToMConverter}}" />
     85                        <TextBlock Grid.Column="0"  Foreground="Red" FontWeight="Bold" FontSize="10"
     86                                Text="{Binding ElementName=tbInputMod,
     87                                Path=(Validation.Errors),
     88                                Converter={StaticResource eToMConverter}}" />
     89                        <Button Grid.Column="2" Name="btnGenRsaKey" Click="btnGenRsaKey_Click" Height="25" MinWidth="100" VerticalAlignment="Bottom" HorizontalContentAlignment="Right">Schlüssel generieren</Button>
    6290                </Grid>
    6391            </Grid>
     
    73101                <Label Grid.Row="0">Privater Schlüssel</Label>
    74102                <Label Grid.Row="0" Margin="150,0,0,0" Name="lblPrivKeyLength"></Label>
    75                 <TextBox Grid.Row="1" Name="tbResultPrivKey" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultPrivKey_TextChanged"></TextBox>
     103                <TextBox Grid.Row="1" Name="tbResultPrivKey" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultPrivKey_TextChanged"></TextBox>
    76104                <Label Grid.Row="2">Modulus</Label>
    77105                <Label Grid.Row="2" Margin="150,0,0,0" Name="lblModulusLength"></Label>
    78                 <TextBox Grid.Row="3" Name="tbResultModulus" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultModulus_TextChanged"></TextBox>
     106                <TextBox Grid.Row="3" Name="tbResultModulus" IsReadOnly="True" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" Margin="5,0,5,5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" TextChanged="tbResultModulus_TextChanged"></TextBox>
    79107            </Grid>           
    80108        </GroupBox>
  • trunk/PKCS1/WpfControls/RsaKeyGen/RsaKeyGenControl.xaml.cs

    r1650 r1742  
    1212using System.Windows.Navigation;
    1313using System.Windows.Shapes;
    14 using Org.BouncyCastle.Math;
    15 using Org.BouncyCastle.Security;
    16 using Org.BouncyCastle.Crypto;
    17 using Org.BouncyCastle.Crypto.Generators;
    18 using Org.BouncyCastle.Crypto.Parameters;
    19 using Org.BouncyCastle.Crypto.Engines;
    2014using PKCS1.Library;
     15using PKCS1.WpfResources;
    2116
    2217
     
    2823    public partial class RsaKeyGenControl : UserControl, IPkcs1UserControl
    2924    {
    30         //private AsymmetricCipherKeyPair keyPair = null;
    31 
    3225        public RsaKeyGenControl()
    3326        {
    34             InitializeComponent();
    35             Init();
     27            InitializeComponent();         
    3628        }
    3729
     
    4032        public void Dispose()
    4133        {
    42             //throw new NotImplementedException();
    4334        }
    4435
    4536        public void Init()
    4637        {
    47             this.tbInputPubKey.Text = RSAKeyManager.getInstance().PubExponent.ToString();
    48             this.tbInputMod.Text = RSAKeyManager.getInstance().RsaKeySize.ToString();
    4938        }
    5039
    5140        public void SetTab(int i)
    5241        {
    53             //throw new NotImplementedException();
    5442        }
    5543
     
    5846        private void btnGenRsaKey_Click(object sender, RoutedEventArgs e)
    5947        {
    60             //RSAKeyManager.getInstance().RsaKeySize = Convert.ToInt32(this.tbInputMod.Text);
    61             //RSAKeyManager.getInstance().PubExponent = Convert.ToInt32(this.tbInputPubKey.Text);
    6248            Cursor = Cursors.Wait;
    63             RSAKeyManager.getInstance().RsaKeySize = Convert.ToInt32(this.tbInputMod.Text);
    64             RSAKeyManager.getInstance().genRsaKeyPair(25);
     49            RSAKeyManager.Instance.genRsaKeyPair(25);
    6550            Cursor = Cursors.Arrow;
    6651
    67             if( RSAKeyManager.getInstance().isKeyGenerated() )
     52            if( RSAKeyManager.Instance.isKeyGenerated() )
    6853            {
    69                 this.tbResultModulus.Text = RSAKeyManager.getInstance().getModulusToBigInt().ToString(16);
    70                 this.tbResultPrivKey.Text = RSAKeyManager.getInstance().getPrivKeyToBigInt().ToString(16);
     54                this.tbResultModulus.Text = RSAKeyManager.Instance.getModulusToBigInt().ToString(16);
     55                this.tbResultPrivKey.Text = RSAKeyManager.Instance.getPrivKeyToBigInt().ToString(16);
    7156            }
    7257        }
     
    8065        {
    8166            this.lblModulusLength.Content = "(Länge: " + this.tbResultModulus.Text.Length * 4 + " bit)";
    82         }
    83 
    84         private void tbInputPubKey_TextChanged(object sender, TextChangedEventArgs e)
    85         {           
    86             RSAKeyManager.getInstance().PubExponent = Convert.ToInt32(this.tbInputPubKey.Text);
    87         }
    88 
    89         private void tbInputMod_TextChanged(object sender, TextChangedEventArgs e)
    90         {
    91             //RSAKeyManager.getInstance().RsaKeySize = Convert.ToInt32(this.tbInputMod.Text);
    9267        }
    9368
  • trunk/PKCS1/WpfControls/SigGen/SigGenPkcs1Control.xaml.cs

    r1650 r1742  
    3131        {
    3232            InitializeComponent();
    33             RSAKeyManager.getInstance().RaiseKeyGeneratedEvent += handleKeyGenerated;
     33            RSAKeyManager.Instance.RaiseKeyGeneratedEvent += handleKeyGenerated;
    3434            Datablockcontrol.RaiseDataBlockGenerated += handleKeyGenerated;
    3535
    36             if (RSAKeyManager.getInstance().isKeyGenerated())
     36            if (RSAKeyManager.Instance.isKeyGenerated())
    3737            {
    3838                this.tabGenSignature.IsEnabled = true;
  • trunk/PKCS1/WpfControls/SigGenFake/SigGenFakeBleichenbControl.xaml

    r1650 r1742  
    1313    <DockPanel>
    1414        <Grid>
    15             <TabControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectionChanged="TabControl_SelectionChanged" Margin="0,5,0,0">
     15            <TabControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,5,0,0">
    1616                <comp:HelpTabItem Header="Datenblock generieren" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" x:Name="tabGenDatablock" HelpButtonClick="TabItem_HelpButtonClick">
    1717                    <ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
  • trunk/PKCS1/WpfControls/SigGenFake/SigGenFakeBleichenbControl.xaml.cs

    r1650 r1742  
    2727        {
    2828            InitializeComponent();
    29             RSAKeyManager.getInstance().RaiseKeyGeneratedEvent += handleKeyGenerated;
     29            RSAKeyManager.Instance.RaiseKeyGeneratedEvent += handleKeyGenerated;
    3030            Datablockcontrol2.RaiseDataBlockGenerated += handleKeyGenerated;
    3131
    32             if (RSAKeyManager.getInstance().isKeyGenerated())
     32            if (RSAKeyManager.Instance.isKeyGenerated())
    3333            {
    3434                this.tabGenSignature.IsEnabled = true;
     
    7676        #endregion
    7777
    78         private void TabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    79         {
    80 
    81         }
    82 
    8378        private void TabItem_HelpButtonClick(object sender, RoutedEventArgs e)
    8479        {
  • trunk/PKCS1/WpfControls/SigGenFake/SigGenFakeShortControl.xaml.cs

    r1650 r1742  
    1212using System.Windows.Navigation;
    1313using System.Windows.Shapes;
     14using PKCS1.Library;
    1415
    1516namespace PKCS1.WpfControls.SigGenFake
     
    2021    public partial class SigGenFakeShortControl : UserControl, IPkcs1UserControl
    2122    {
     23        private bool isKeyGen = false;
     24        private bool isDatablockGen = false;
     25
    2226        public SigGenFakeShortControl()
    2327        {
    2428            InitializeComponent();
     29            RSAKeyManager.Instance.RaiseKeyGeneratedEvent += handleKeyGenerated;
     30            DatablockControl3.RaiseDataBlockGenerated += handleKeyGenerated;
     31
     32            if (RSAKeyManager.Instance.isKeyGenerated())
     33            {
     34                this.tabGenSignature.IsEnabled = true;
     35            }
     36            else
     37            {
     38                this.tabGenSignature.IsEnabled = false;
     39            }
     40        }
     41
     42        private void handleKeyGenerated(ParameterChangeType type)
     43        {
     44            if (type == ParameterChangeType.RsaKey)
     45            {
     46                this.isKeyGen = true;
     47            }
     48            else if (type == ParameterChangeType.DataBlock)
     49            {
     50                this.isDatablockGen = true;
     51            }
     52
     53            if (this.isKeyGen == true && this.isDatablockGen == true)
     54            {
     55                this.tabGenSignature.IsEnabled = true;
     56            }
    2557        }
    2658
  • trunk/PKCS1/WpfControls/SigVal/SigValControl.xaml

    r1650 r1742  
    6666                </Grid.RowDefinitions>
    6767                <Label Grid.Row="0">Verschlüsselte Signatur</Label>
    68                 <TextBox Grid.Row="1" Name="tbSignatureEnc" TextWrapping="Wrap" MaxWidth="400" MinHeight="80"  IsReadOnly="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,5,5,5" />
     68                <TextBox Grid.Row="1" Name="tbSignatureEnc" TextWrapping="Wrap" MaxWidth="450" MinHeight="80"  IsReadOnly="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,5,5,5" />
    6969                <Label Grid.Row="2">Unverschlüsselte Signatur</Label>
    70                 <TextBox Grid.Row="3" Name="tbSignatureDec" TextWrapping="Wrap" MaxWidth="400" MinHeight="80" IsReadOnly="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,5,5,5" />
     70                <TextBox Grid.Row="3" Name="tbSignatureDec" TextWrapping="Wrap" MaxWidth="450" MinHeight="80" IsReadOnly="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5,5,5,5" />
    7171            </Grid>
    7272            </GroupBox>           
  • trunk/PKCS1/WpfControls/SigVal/SigValControl.xaml.cs

    r1650 r1742  
    4242        public void Init()
    4343        {
    44             //TODO: doppeltes anmelden anders lösen?
     44            //TODO: dreifaches anmelden anders lösen?
    4545            SignatureHandler.getInstance().getSignature().RaiseSigGenEvent += handleSigGenEvent;
    4646            SignatureHandler.getInstance().getBleichenbSig().RaiseSigGenEvent += handleSigGenEvent;
Note: See TracChangeset for help on using the changeset viewer.