sir,
I had made some modifiactions to the
programs(client/server programs) that are given in the
"opensslxxx/demos/ssl" directory.
Still iam getting errors while executing those
programs.
Here iam mentioning the client & server programs and
errors that iam getting.
-------------------------------------------------------
Client program( as in /demos/ssl)
-------------------------------------------------------
#include <stdio.h>
#include <memory.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <openssl/crypto.h>
#include <openssl/asn1.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
#define CHK_NULL(x) if ((x)==NULL) exit (1)
#define
CHK_ERR(err,s)if((err)==-1){perror(s);exit(1);}
#define CHK_SSL(err) if ((err)==-1) {
ERR_print_errors_fp(stderr); exit(2); }
void main ()
{
int err;
int sd;
struct sockaddr_in sa,ca;
SSL_CTX* ctx;
SSL* ssl;
X509* server_cert;
char* str;
const char* rcipher;
char buf [4096];
SSL_METHOD *meth;
SSLeay_add_ssl_algorithms();
meth = SSLv2_client_method();
SSL_load_error_strings();
ctx = SSL_CTX_new (meth);
CHK_NULL(ctx);
CHK_SSL(err);
sd = socket (AF_INET, SOCK_STREAM, 0);
CHK_ERR(sd, "socket");
memset (&sa, '\0', sizeof(ca));
ca.sin_family = AF_INET;
ca.sin_addr.s_addr = inet_addr ("192.168.1.30");
ca.sin_port = htons (6560);
err = bind ( sd,(struct sockaddr*)&ca, sizeof(ca));
CHK_ERR(err,"bind");
memset (&sa, '\0', sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = inet_addr("192.168.1.19");
/*server IP */
sa.sin_port = htons(6560); /* Server Port number */
err = connect(sd, (struct sockaddr*)
&sa,sizeof(sa));
CHK_ERR(err,
"connect");
ssl = SSL_new (ctx); CHK_NULL(ssl);
SSL_set_fd (ssl, sd);
err = SSL_connect (ssl); CHK_SSL(err);
err = SSL_write (ssl, "Hello!", strlen("Hello!"));
CHK_SSL(err);
err = SSL_read (ssl, buf, sizeof(buf)-1);
CHK_SSL(err);
buf[err] = '\0';
printf ("Got %d chars:'%s'\n", err, buf);
SSL_shutdown (ssl);
close (sd);
SSL_free (ssl);
SSL_CTX_free (ctx);
}
-------------------------------------------------------
Server Program
-------------------------------------------------------
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <memory.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <openssl/rsa.h>
#include <openssl/crypto.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/err.h>
#define CHK_NULL(x) if ((x)==NULL) exit (1)
#define
CHK_ERR(err,s)if((err)==-1){perror(s);exit(1);}
#define CHK_SSL(err) if ((err)==-1) {
ERR_print_errors_fp(stderr); exit(2);
}
void main ()
{
int err;
int listen_sd;
int sd;
struct sockaddr_in sa_serv;
struct sockaddr_in sa_cli;
size_t client_len;
SSL_CTX* ctx;
SSL* ssl;
char* str;
char buf [4096];
SSL_METHOD *meth;
SSL_load_error_strings();
SSLeay_add_ssl_algorithms();
meth = SSLv23_server_method();
ctx = SSL_CTX_new (meth);
listen_sd = socket (AF_INET, SOCK_STREAM, 0);
CHK_ERR(listen_sd, "socket");
memset (&sa_serv, '\0', sizeof(sa_serv));
sa_serv.sin_family = AF_INET;
sa_serv.sin_addr.s_addr = inet_addr("192.168.1.19");
sa_serv.sin_port = htons (6560);
err = bind(listen_sd, (struct sockaddr*)
&sa_serv,sizeof(sa_serv));
CHK_ERR(err, "bind");
/* Receive a TCP connection. */
err = listen (listen_sd, 5);
CHK_ERR(err, "listen");
client_len = sizeof(sa_cli);
sd = accept (listen_sd, (struct sockaddr*) &sa_cli,
&client_len);
CHK_ERR(sd, "accept");
close (listen_sd);
printf ("Connection from %lx, port %x\n",
sa_cli.sin_addr.s_addr, sa_cli.sin_port);
ssl = SSL_new (ctx);
CHK_NULL(ssl);
SSL_set_fd (ssl, sd);
err = SSL_accept (ssl);
CHK_SSL(err);
err = SSL_read (ssl, buf, sizeof(buf));
CHK_SSL(err);
buf[err] = '\0';
printf ("Got %d chars:'%s'\n", err, buf);
err = SSL_write (ssl, "I hear you.", strlen("I hear
you."));
CHK_SSL(err);
close (sd);
SSL_free (ssl);
SSL_CTX_free (ctx);
}
-------------------------------------------------------
Errors those iam getting
-------------------------------------------------------
1426:error:0D06B078:asn1 encoding routines:ASN1_ get
_object :header too long:asn1_lib.c:139:
1501:error:0D09F006:asn1 encoding routines:d2i_X509:
bad get asn1 object call :x_x509.c:101:address=
135057040 offset = 0
1501:error:1407E00B:SSL routines:SSL2_SET_CERTIFICATE:
X509 lib:s2_clnt.c:906:(I think this is the main
error)
-------------------------------------------------------
Shall you suggest me how to eliminate those errors.
Thanks for your consideration
---RaajKrissna
--- "Barnes, Michael L." <[EMAIL PROTECTED]> wrote:
> Look at the demos under openssl-xxx/demos/ssl there
> is cli.cpp and
> inetd.cpp (they are really c programs, dunno why
> they end in cpp,
> I just renamed them).
>
> If I remember correctly, they compiled fine for me
> by using on
> my system:
>
> gcc -c -I/usr/local/ssl/include cli.c
> gcc -o cli cli.o -L/usr/local/ssl/lib -lcrypto -lssl
>
> and so on, but be sure to substitute /usr/local/ssl/
> for
> wherever your includes and libs are.
>
> Good luck.
>
> Mike
>
> > -----Original Message-----
> > From: Raaj Krissna [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, May 17, 2000 7:50 AM
> > To: [EMAIL PROTECTED]
> > Subject: RE: Unable To Install The OPENSSL
> Properly On Linux
> > Systems And
> > Getting The Errors While Running The
> Programs(Client/Server Programs)
> >
> >
>
__________________________________________________
Do You Yahoo!?
Send instant messages & get email alerts with Yahoo! Messenger.
http://im.yahoo.com/
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]