Hello! I am really new with programming with OpenSSL, and I have the following problem. I hope somebody can help me. I am working with OpenSSL version 0.9.5a, under windows 98. I am using the borland c++ compiler version 5.5. I have taken the example sign.c from the demo directory, and I have changed some function calls (different numbers of parameters), afterwards I have compiled and have the exe generated. But it just won't work, it appears the following error: 4294662763:error:0906B072:PEM routines:PEM_get_EVP_CIPHER_INFO:unsupported encryption:.\crypto\pem\pem_lib.c:506: Can anybody tell me, what does this error means, and how can I correct the programm so that it does work properly? Here is how the program looks like //--------------------------------------------------------------------------- # include <stdio.h> # include <string.h> # include <stdlib.h> # include <openssl/rsa.h> # include <openssl/evp.h> # include <openssl/objects.h> # include <openssl/x509.h> # include <openssl/err.h> # include <openssl/pem.h> # include <openssl/ssl.h> void main() { int err; int sig_len; unsigned char sig_buf [4096]; /* I have generated this certificate using OpenSSL */ static char certfile[] = "certificado.pem"; static char keyfile[] = "privada.pem"; static char data[] = "This is the signed data"; EVP_MD_CTX md_ctx; EVP_PKEY *pkey; FILE *fp; X509 *x509; /* Just load the crypto library error strings, * SSL_load_error_strings() loads the crypto AND the SSL ones */ /* SSL_load_error_strings();*/ ERR_load_crypto_strings(); /* Read private key */ fp = fopen (keyfile, "r"); if (fp == NULL) exit (1); pkey = PEM_read_PrivateKey(fp, NULL,NULL,NULL); /* I have detected, that the error appears here. I think pkey takes the value NULL, but I do not know why ! */ if (pkey == NULL) { ERR_print_errors_fp (stderr); exit (1); } fclose(fp); /* Do the signature */ EVP_SignInit(&md_ctx, EVP_md5()); EVP_SignUpdate(&md_ctx, data, strlen(data)); sig_len = sizeof(sig_buf); err = EVP_SignFinal(&md_ctx,sig_buf,&sig_len,pkey); if (err != 1) { ERR_print_errors_fp (stderr); exit (1); } EVP_PKEY_free (pkey); /* Read public key */ fp = fopen (certfile, "r"); if (fp == NULL) exit (1); x509 = (X509 *)PEM_ASN1_read ((char *(*)())d2i_X509,PEM_STRING_X509,fp, NULL,NULL,NULL); if (x509 == NULL) { ERR_print_errors_fp (stderr); exit (1); } fclose (fp); /* Get public key - eay*/ pkey=X509_extract_key(x509); if (pkey == NULL) { ERR_print_errors_fp (stderr); exit (1); } /* Verify the signature */ EVP_VerifyInit (&md_ctx, EVP_md5()); EVP_VerifyUpdate (&md_ctx, data, strlen((char*)data)); err = EVP_VerifyFinal (&md_ctx, sig_buf,sig_len,pkey); if (err != 1) { ERR_print_errors_fp (stderr); exit (1); } EVP_PKEY_free (pkey); printf("Signature verified!\n"); } //--------------------------------------------------------------------------- I also get the following warning while compiling Warning W8075 signatures.c 60: Suspicious pointer conversion in function main And this correspondes to the following line: sig_len = sizeof(sig_buf); Well, I hope you could help me, thanks in advance Mariana _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]