Files
harbour-core/harbour/contrib/hbssl/tests/test.prg
Viktor Szakats cc375dfc00 2009-07-22 11:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/xhb/xhbfunc.c
    + Added HB_F_EOF() xhb compatibility function.

  * contrib/hbssl/Makefile
  - contrib/hbssl/sslx509.c
  + contrib/hbssl/x509.c
  - contrib/hbssl/sslrand.c
  + contrib/hbssl/rand.c
  - contrib/hbssl/sslbio.c
  + contrib/hbssl/bio.c
  - contrib/hbssl/sslerr.c
  + contrib/hbssl/err.c
    * Renamed a few source files.
    * SSL_RAND_*() functions renamed to RAND_*() to have
      the exact same name as in OpenSSL.
  * contrib/hbssl/tests/test.prg

  * contrib/hbssl/Makefile
  * contrib/hbssl/bio.c
  + contrib/hbssl/tests/bio.prg
  * contrib/hbssl/hbssl.ch
    + Added lots of new BIO functions:
      BIO_NEW()
      BIO_SET()
      BIO_CLEAR_FLAGS()
      BIO_SET_FLAGS()
      BIO_GET_FLAGS()
      BIO_TEST_FLAGS()
      BIO_SET_FD()
      BIO_GET_FD()
      BIO_GET_RETRY_REASON()
      BIO_SET_RETRY_SPECIAL()
      BIO_SET_RETRY_READ()
      BIO_SET_RETRY_WRITE()
      BIO_SHOULD_READ()
      BIO_SHOULD_WRITE()
      BIO_SHOULD_IO_SPECIAL()
      BIO_RETRY_TYPE()
      BIO_SHOULD_RETRY()
      BIO_CTRL_PENDING()
      BIO_CTRL_WPENDING()
      BIO_FLUSH()
      BIO_SEEK()
      BIO_TELL()
      BIO_RESET()
      BIO_EOF()
      BIO_SET_CLOSE()
      BIO_GET_CLOSE()
      BIO_NEW_FILE()
      BIO_NEW_MEM_BUF()
      BIO_READ()
      BIO_GETS()
      BIO_WRITE()
      BIO_PUTS()
      BIO_VFREE()
      BIO_FREE_ALL()
      BIO_NEW_CONNECT()
      BIO_NEW_ACCEPT()
      BIO_SET_CONN_HOSTNAME()
      BIO_SET_CONN_PORT()
      BIO_SET_CONN_INT_PORT()
      BIO_SET_CONN_IP()
      BIO_GET_CONN_HOSTNAME()
      BIO_GET_CONN_PORT()
      BIO_GET_CONN_IP()
      BIO_GET_CONN_INT_PORT()
      BIO_SET_NBIO()
      BIO_DO_CONNECT()
      ERR_LOAD_BIO_STRINGS()
2009-07-22 09:48:44 +00:00

107 lines
3.0 KiB
Plaintext

/*
* $Id$
*/
/*
* Copyright 2009 Viktor Szakats (harbour.01 syenar.hu)
* www - http://www.harbour-project.org
*/
#include "simpleio.ch"
#include "hbssl.ch"
PROCEDURE Main()
LOCAL ssl_ctx
LOCAL ssl
LOCAL bio
LOCAL cipher
LOCAL socket
LOCAL buffer
LOCAL bits
LOCAL tmp
//
hb_inetInit()
? "-------"
socket := hb_inetCreate()
? "INETTIMEOUT", hb_inetTimeout( socket, 500 )
? "INETCONN", hb_inetConnect( "www.fortify.net", 80, socket )
? "INETERR", hb_inetErrorCode( socket )
? "INETFD", hb_inetFD( socket )
? "INETSEND", hb_inetSend( socket, "GET / http/1.1" + hb_inetCRLF() + "Host: " + "www.syenar.hu" + hb_inetCRLF() + hb_inetCRLF() )
? "INETERR", hb_inetErrorCode( socket )
buffer := Space( 1024 )
? "INETRECVALL", hb_inetRecvAll( socket, @buffer, Len( buffer ) )
? "BUFFER", ">" + AllTrim( buffer ) + "<"
? "INETCLOSE", hb_inetClose( socket )
? "-------"
socket := hb_inetCreate()
? hb_inetTimeout( socket, 2500 )
? hb_inetConnect( "www.fortify.net", 443, socket )
? hb_inetErrorCode( socket )
//
SSL_INIT()
? SSLEAY_VERSION()
? SSLEAY_VERSION( HB_SSLEAY_VERSION )
? SSLEAY_VERSION( HB_SSLEAY_CFLAGS )
? SSLEAY_VERSION( HB_SSLEAY_BUILT_ON )
? SSLEAY_VERSION( HB_SSLEAY_PLATFORM )
? SSLEAY_VERSION( HB_SSLEAY_DIR )
? "RAND_SEED", RAND_seed( "some entropy" )
? "SSL_CTX_NEW", ssl_ctx := SSL_CTX_NEW()
? "SSL_NEW", ssl := SSL_NEW( ssl_ctx )
? "SSL_VERSION", SSL_VERSION( ssl )
? "SSL_GET_VERSION", SSL_GET_VERSION( ssl )
? "INET FD", hb_inetFD( socket )
? "SSL_SET_FD", SSL_SET_FD( ssl, hb_inetFD( socket ) )
? "SSL_CONNECT", tmp := SSL_CONNECT( ssl )
? "SSL_GET_ERROR", SSL_GET_ERROR( ssl, tmp )
tmp := SSL_get_ciphers( ssl )
FOR EACH cipher IN tmp
? "SSL_CIPHER_GET_NAME" , SSL_CIPHER_GET_NAME( cipher )
? "SSL_CIPHER_GET_VERSION", SSL_CIPHER_GET_VERSION( cipher )
? "SSL_CIPHER_GET_BITS" , SSL_CIPHER_GET_BITS( cipher, @bits ), bits
? "SSL_CIPHER_DESCRIPTION", ">" + SSL_CIPHER_DESCRIPTION( cipher ) + "<"
? "- - - - - - - - - - - - - - -"
NEXT
? "SSL_GET_CIPHER_BITS" , SSL_GET_CIPHER_BITS( ssl, @bits ), bits
? "SSL_GET_CIPHER_LIST" , SSL_GET_CIPHER_LIST( ssl )
? "SSL_GET_CIPHER_NAME" , SSL_GET_CIPHER_NAME( ssl )
? "SSL_GET_CIPHER_VERSION" , SSL_GET_CIPHER_VERSION( ssl )
? "SSL_GET_CURRENT_CIPHER", cipher := SSL_GET_CURRENT_CIPHER( ssl )
? "SSL_CIPHER_GET_NAME" , SSL_CIPHER_GET_NAME( cipher )
? "SSL_CIPHER_GET_VERSION", SSL_CIPHER_GET_VERSION( cipher )
? "SSL_CIPHER_GET_BITS" , SSL_CIPHER_GET_BITS( cipher, @bits ), bits
? "SSL_CIPHER_DESCRIPTION", SSL_CIPHER_DESCRIPTION( cipher )
? "SSL_WRITE", tmp := SSL_WRITE( ssl, "GET / http/1.1" + hb_inetCRLF() + "Host: " + "www.fortify.net" + hb_inetCRLF() + hb_inetCRLF() )
? "SSL_GET_ERROR", SSL_GET_ERROR( ssl, tmp )
buffer := Space( 1024 )
? "SSL_READ", tmp := SSL_READ( ssl, @buffer )
? "SSL_GET_ERROR", SSL_GET_ERROR( ssl, tmp )
? buffer
? hb_inetClose( socket )
RETURN