You're absolutly right.
 
I have made my tests with a RSA public key generated by crypto++, and it worked, but now I use a public key generated by CA and of course my program fails because the key is now an ASN.1 BEREncode structure.
I've never looked at the key file because I thought that the problem was due to my program.
 
I have however some questions :
- Can crypto++ use ASN.1 structure key directly ? If yes, how can I do so?
- If not, do you know the ASN.1 structure of a RSA public key ?
- To sign a message with crypto++, should I first hash and next crypt it or is there a method to do it directly?  
 
Thanks.
Guillaume.
----- Original Message -----
Sent: Tuesday, July 15, 2003 3:13 PM
Subject: RE: RSA private key file problems

            Normally you will need to do more then just hex decode the key, as the key is just not one value but a small collection.  Crypto++ only really accepts loading of RSA keys in one of three ways, ASN.1(BERdecode), loading the individual numbers separately with sets, or name value pairs (This is new and I have not tried it).  Of these ASN.1 is the most common, and only it and the name values pairs can be easily marshaled to a file. 

 

            Do you know what format the key is in?  Until you know and have the code working with it, everything past forming the RSA object is not going to work.  You probably should read up on ASN.1 and RSA before proceeding.  You can find decent information at RSALabs.

 

            73,

                        Shawn

 

-----Original Message-----
From: Guillaume JOLIVET [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 15, 2003 8:50 AM
To: [EMAIL PROTECTED]
Subject: Re: RSA private key file problems

 

Thank you for your help, but does someone have any example for signing (RSA with MD5 or RSA with SHA1) a byte buffer using a private key file.

 

 

For the moment, I've got :

AutoSeededRandomPool rng;
   

// Buffer I want to sign

byte* bufferIWantToSign = new byte[16];

memcpy(bufferIWantToSign, "0123456789ABCDEF", 16);


// Private key file
FileSource privFile(<privateKeyFilePath>, true, new HexDecoder());

 

RSASSA_PKCS1v15_MD5_Signer priv(privFile);
  

// Signature length
long lSignedTextLength = priv.SignatureLength();

 

// Create signature buffer 
byte* abySignedBuffer = new byte[lSignedTextLength];

 

// Sign
priv.SignMessage(
      rng, 
      bufferIWantToSign, 
      16,
      abySignedBuffer);

Is this solution correct ? Does abySignedBuffer contain the result of the signature of bufferIWantToSign ? If no, how would you do it.

 

 

 

 

 

 

----- Original Message -----

From: "Shawn Masters" <[EMAIL PROTECTED]>

Sent: Tuesday, July 15, 2003 2:15 PM

Subject: RE: RSA private key file problems

 

I think the problem may be a little deeper then this.
RSASSA_PKCS1v15_MD5_Signer is not an encryptor, but a signer.  This means it
takes a private key and encrypts the MD5 of the data being signed.  The
PKCS1 defines how the resulting data is formed so it is secure (or atleast
more so then some simpler methods of using RSA) and readable by the
verifier.
To encrypt with RSA you will use a public key, and some symmetric
cipher.  Once you get to that point use debugging methods to look into the
values to make sure that you have loaded all of the correct numbers for the
algorithm chosen.

73,
Shawn

-----Original Message-----
From: Guillaume JOLIVET [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 15, 2003 6:37 AM
To:
[EMAIL PROTECTED]
Subject: RSA private key file problems

Hi all,

I would like to crypt data with a RSA with MD5 algorithm but I've got some
problems.
My private key file is a variable-size hexadecimal format file.

Here are my code lines :

FileSource privFile(<myKeyFilePath>, true, new HexDecoder());
RSASSA_PKCS1v15_MD5_Signer priv(privFile);


When I try to crypt, the program fails on the creation of the
RSASSA_PKCS1v15_MD5_Signer object.
I think that the FileSource object is not correct because of the key file
format, but I don't know what kind of object to use instead the HexDecoder
object.


Does somebody got any idea,

Thanks,
Guillaume.

Reply via email to