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]

Reply via email to