After some attempts I modified the general structure of the project. In
summary:
int main()
{
Signature Keys;
Keys.KeyGen();
Menu Start; //object with options for creating/filling files
Start.FileGen();
}
//FileGen() save file and calls CalcHash();CalcHash() calls
SignHash();SignHash() calls LoadPrivate(), gets the private key and finally
signs the digest calculated.
class Signature //in signature.h
{public:
string Digest;
string DigSignature;
constructor
destructor
static void KeyGen();
void SavePrivate(string,RSA::PrivateKey);
void LoadPrivate();
void CalcHash(string);
void SignHash();
};
//I will define also SavePublic() , LoadPublic() and VerifySignature()
(when signing process will work)
static AutoSeededRandomPool rng;
void Signature::KeyGen()
{
static RSA::PrivateKey PV;
PV.GenerateRandomWithKeySize(rng,1536);
static RSA;;PublicKey PU;
// validation code
string saving;
saving = "//path";
Signature Saving;
Saving.SavePV(saving, PV);
}
void Signature::SavePV(const string saving, RSA::PrivateKey PV)
{
ByteQueue queue;
PV.Save(queue);
Save(saving, queue);
}
Now I'm in troubles because SavePV doesn't compile and I don't know why. I
think that I pass the parameters in a wrong way...... I need some
advices....
Il giorno domenica 15 luglio 2012 16:13:48 UTC+2, David Irvine ha scritto:
>
> No worries.
>
> If you want the same keys though you could create a static method to
> return the generated key. As it stands you will be regenerating the key
> every time (I tink, at least if you always run GenerateKeys method which
> will overwrite the contents of the static keys). It's maybe best to create
> keys and pass them into your object (const) if you want to use them as I
> think you do. That way you can control which keys are in use by the object
> and recreate additional objects when you work with multiple keys.
>
> You will, perhaps then find it easier to create checking objects etc. with
> the same key pair.
>
> Best Regards
> David Irvine
>
>
>
>
> On Sun, Jul 15, 2012 at 1:37 PM, Michele <[email protected]>wrote:
>
>> Done!! Now item 4) of my first post works fine.
>>
>> Here is a part of my Signature.cpp :
>>
>> static CryptoPP::AutoSeededRandomPool rng; //this fixed rng
>> troblues as David Irvine suggested
>>
>> void Signature::SignHash() //method declared in my
>> Signature.h file
>> {
>> [...]
>> static RSA::PrivateKey RSAprivate;
>> RSAprivate.GenerateRandomWithKeySize(rng,1536);
>>
>> static RSA::PublicKey RSApublic;
>> //keys created inside the method as Fraser suggested
>>
>> //and not declared inside the class as Ingo Naumann suggested
>> [...]
>> }
>> I'm not sure that the key pair is generated only once ( as I want). I'm
>> going to verify that key pair is not re-generated every time i call the
>> method , because I have to sign every file with the same RSAprivate.
>>
>> Thanks Everybody!!
>> Now I'm going to work on item 5) of my first post: perform the integrity
>> check of files (created/hashed/signed). I think that, because of I declared
>> my key pair as local static variables, I must implement a method
>> Signature::IntegrityCheck() inside my Signature.cpp, because outside of it
>> the keys will not be visible.......
>>
>> Il giorno sabato 14 luglio 2012 21:44:24 UTC+2, Michele ha scritto:
>>
>>> Ok David, now i'm deleting RNG from class members. I'm not sure that
>>> I've understand your example but i will try...
>>>
>>> Il giorno sabato 14 luglio 2012 19:08:07 UTC+2, David Irvine ha scritto:
>>>>
>>>> It seems you may not be using the RNG correctly. It's generally
>>>> preferred to have on per thread at least (or a global if you like). i.e.
>>>> in test.cpp you will see how this was done. In your case I am not sure you
>>>> should have a class member RNG used as you have. This can cause all sorts
>>>> of issues with threading and protection of the os provided generator etc.
>>>>
>>>> static OFB_Mode<AES>::Encryption s_globalRNG;
>>>>
>>>> RandomNumberGenerator & GlobalRNG()
>>>> {
>>>> return s_globalRNG;
>>>> }
>>>>
>>>> See the docs here
>>>> http://www.cryptopp.com/**wiki/RandomNumberGenerator<http://www.cryptopp.com/wiki/RandomNumberGenerator>
>>>>
>>>> Best Regards
>>>> David Irvine
>>>>
>>>>
>>>> On Sat, Jul 14, 2012 at 5:53 PM, Michele
>>>> <[email protected]>wrote:
>>>>
>>>>> RSA::PrivateKey RSAprivate;
>>>>> string DigitalSIgn;
>>>>>
>>>>
>>>> --
>> You received this message because you are subscribed to the "Crypto++
>> Users" Google Group.
>> To unsubscribe, send an email to
>> [email protected].
>> More information about Crypto++ and this group is available at
>> http://www.cryptopp.com.
>>
>
>
--
You received this message because you are subscribed to the "Crypto++ Users"
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at
http://www.cryptopp.com.