Hmmm,
is your app builded in a debug version (eg. active configuration -> Debug)? If so, I would expect that windows will automatically start VC++ with a debug session when your app crashes. In such a session you can determine the crash point in the call stack.


Good luck,
Sebastian


Layla wrote:
Hi Sebastian:
Thank you for your response. Actually I am not getting any specific error messages, but as I try running my application from the IDE (MS VC++ 6 studio) the program crashes: meaning that as soon as a function which uses the RSA object is encountered the program stops executing and a windows generated message is displayed where it says that an error has occured with the application.
Does that ring a bell?


*/Sebastian <[EMAIL PROTECTED]>/* wrote:

    Hi Layla,
    there a no special settings for RSA. What are your problems to run
    your app -
    please tell us the errors / abends you get to help us locating the
    cause(s).

    Sebastian


Layla wrote: > Angel, > Thank you sooo much for the function, I really appreciate it, but as > I've expected it didn't work. Which confirms that there's nothing wrong > with the functions, but rather something is perhaps wrong with my > configuration. Therefore, if anyone knows of any special settings > required for RSA please let me know. > I'm using windows XP pro. I have ensured that the .dll files are copied > to the system32 folder. Also I have no problem running symmetric EVP > crypto on this machine so I don't think there's anything wrong with my > OpenSSL installation. > I am able to compile and link but I just can't run! > > Suggestions? > > */Angel Martinez Gonzalez /* wrote: > > Hello: > > I send you a function that read RSA public and private key from a file: > > RSA *RecuperaClavesRSA(int type, char *pemfile) > { > FILE *fp; > RSA *key=NULL; > switch (type){ > case READPUB: > if((fp = fopen(pemfile,"r")) == NULL) { > fprintf(stderr,"Error: Public Key file doesn't exists.\n"); > exit(EXIT_FAILURE); > } > if((key = PEM_read_RSAPublicKey(fp,NULL,NULL,NULL)) == NULL) { > fprintf(stderr,"Error: problems while reading Public Key.\n"); > exit(EXIT_FAILURE); > } > fclose(fp); > printf("RSA size: %d", RSA_size(key)); > > return key; > break; > case READSEC: > if((fp = fopen(pemfile,"r")) == NULL) { > fprintf(stderr,"Error: Private Key file doesn't exists.\n"); > exit(EXIT_FAILURE); > } > if((key = PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL)) == NULL) { > fprintf(stderr,"Error: problmes while reading Private Key. > %d %s\n",type,pemfile); > exit(EXIT_FAILURE); > } > fclose(fp); > if(RSA_check_key(key) == -1) { > fprintf(stderr,"Error: Problems while reading RS A Private > Key in \ > '%s' file.\n",pemfile); > exit(EXIT_FAILURE); > } else if(RSA_check_key(key) == 0) { > fprintf(stderr,"Error: Bad RSA Private Key readed in '%s' \ > file.\n",pemfile); > exit(EXIT_FAILURE); > } > else > return key; > break; > } > return key; > } > If the parameter "type" is "READPUB" it read the public key from the > file "pemfile", and if this parameter is "READSEC", it read the > private key. > > Too, this function show RSA size correctly. > > I hope this function solve your problem. > > Regards. > > P.D.: Your name remember me a very famous song of Eric Clapton ... ;-) > > ----- Original Message ----- > *From:* Layla > *To:* openssl-users@openssl.org > *Sent:* Tuesday, May 10, 2005 3:55 PM > *Subject:* Re: Loading RSA keys from file. > > Hi Angel, > Thank you for your response. I have changed my code with > accordance to your suggestion but I'm still getting a runtime > error when attempting to read the key from its file. > So far I'm having trouble with 1- reading the key from file, and > 2- RSA_size() , this function generates a runtime error when > encountered as well. I can't think of anything since I'm > initializing my RSA object. > Suggestions ? > > */Angel Martinez Gonzalez /* wrote: > > Hello Layla: > > Maybe, your error disapear if you will change the following: > > apub = PEM_read_RSAPublicKey(f, NULL, NULL, NULL); > > Regards. > > ----- Original Message ----- > *From:* Layla > *To:* openssl-users@openssl.org > > *Sent:* Tuesday, May 10, 2005 9:30 AM > *Subject:* Loading RSA keys from file. > > I'm still not able to load the key from its file and I'm > still encountering an error when I use RSA_size(); a run > time error occured when I try to print the returned > size. I'm including a segment of my code after modification: > > ************************************************************ > RSA *apub; > FILE *f; > > > seed_prng(); // my function for seeding PRNG > > //Allocating apub > apub = RSA_new(); > > if ( apub == NULL) > //print error mesage > > //open key file > f= fopen ("a_rsa_public","r"); > if (f == NULL) > //print error message > > //Loading key > apub = PEM_read_RSAPublicKey(f, &apub, 0,0); //a run > time error occurs here > if (apub == NULL) > { > // print error message > return -1; > } > > /* if I try the following line after the allocation of > the RSA object I get a runtime error as well*/ > printf("RSA size: %d", RSA_size(apub); > ******************************************************************************* > I'm thankful for any help I can get. > > > */Sebastian /* wrote: > > Hmm, > take a look at routines like RSA_new() to create RSA > structures. As you coded > 'sizeof apub', this will return the size of a > _pointer_ - assuming a 32-bit > architecture you wi ll get round about four bytes ;-). > See: http://www.openssl.org/docs/crypto/RSA_new.html > > > > The runtime error is caused by calling RSA_size() > with a null pointer - > unfortnunfortunately RSA_size() doesn't like null > pointers. > See: http://www.openssl.org/docs/crypto/RSA_size.html > > > Good luck, > Sebastian > > > > Hi all, > > > > I'm trying to develop a C++ application to > encrypt and decrypt data > > using RSA public key cryptography scheme. I have > generated the > > public/private keys using OpenSSL command line > tool. The following C++ > > code should read a public key, encrypt data, read > private key and > > decrypt the data: > > > ******************************************************************** > > #include > > #include > > #include*> > #include > > #include > > > > > > int main() > > { > > char *message ="Hello World!"; > > RSA *apub; > > RSA *aprivate; > > FILE *f; > > int ret; > > unsigned char *buf; > > unsigned char *e_data; > > unsigned char *clear_text; > > > > > > //Get key > > f= fopen("a_rsa_public","rb"); > > if(f == NULL) > > { > > printf("\nError opening public key file"); > > return -1; > > } > > else > > printf("\n Public key file opened"); > > > > //load the key > > if ( fread(&apub,sizeof apub,1,f) != 1) > > { > > printf("\nError reading public key"); > > return -1; > > } > > else > > printf("\nPublic key read"); > > > > //close the key file > > fclose(f); > > > > buf = (unsigned char *) malloc(strlen(message)); > > memcpy(buf,message,strlen(message)); > > > > e_data = (unsigned char *) > malloc(RSA_size(apub)); // THIS is where i > > get a run time error > > > > //encrypt data > > RSA_public_encrypt(strlen(message),buf, e_data, > apub, > > RSA_PKCS1_OAEP_PADDING); > > > > //------------------decrypt > > //Get key > > f= fopen("a_rsa_private","rb"); > > if(f == NULL) > > { > > printf("\nError opening private key file"); > > return -1; > > } > > //load the key > > ret = fread(&aprivate,sizeof(aprivate),1,f); > > //close the key file > > fclose(f); > > > > //make sure we loaded ok > > if(ret != 1) > > { > > printf("\nError reading private key"); > > return -1; & gt; > } > > > > clear_text= (unsigned char *) > malloc(strlen(message)); > > RSA_private_decrypt(strlen((char*)e _data), > e_data, clear_text, > > aprivate, RSA_PKCS1_OAEP_PADDING); > > return 0; > > } > > > > > ******************************************************************************* > > At first I used to get a run time error in the > RSA_public_encrypt(...); > > and I figured caused I had e_data initialized as: > > e_data = (unsigned char *) malloc(strlen(message)*4); > > > > So instead I used : > > e_data = (unsigned char *) malloc(RSA_size(apub)); > > and now I'm getting a run time as this line is > encountered. > > > > I'm sure someone with experience would be able to > spot my mistake. > > > > I thank you all in advance for your help. > > > > & gt; > > > > > > > __________________________________________________ > > Do You Yahoo!? > > Tired of spam? Yahoo! Mail has the best spam > protection around > > http://mail.yahoo.com > > > ______________________________________________________________________ > OpenSSL Project http://www.openssl.org > User Support Mailing List openssl-users@openssl.org > Automated List Manager [EMAIL PROTECTED] > > Yahoo! Mail Mobile > Take Yahoo! Mail with you! > > Check email on your mobile phone. > > Yahoo! Mail Mobile > Take Yahoo! Mail with you! > > Check email on your mobile phone. > > Do you Yahoo!? > Read only the mail you want - Yahoo! Mail SpamG uard > . >

______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager [EMAIL PROTECTED]
*


* *

*Yahoo! Mail
Stay connected, organized, and protected. Take the tour <http://tour.mail.yahoo.com/mailtour.html>*

______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]

Reply via email to