libcrypto: wrap more parts of the BIO_ api and add unit tests

db4
Björn Lindqvist 2013-09-13 13:52:27 +02:00 committed by John Benediktsson
parent ed34163e54
commit 5492b8e46b
2 changed files with 47 additions and 30 deletions

View File

@ -0,0 +1,24 @@
USING:
byte-arrays
kernel
openssl.libcrypto
sequences
splitting
strings
tools.test ;
IN: openssl.libcrypto.tests
[ t ] [ "factorcode.org:80" BIO_new_connect bio_st? ] unit-test
[ 1 ] [
"factorcode.org:80" BIO_new_connect BIO_C_DO_STATE_MACHINE 0 f BIO_ctrl
] unit-test
[ "HTTP/1.1 200 Document follows" ] [
"factorcode.org:80" BIO_new_connect
[ BIO_C_DO_STATE_MACHINE 0 f BIO_ctrl drop ]
[
[ "GET / HTTP/1.1\r\nHost: factorcode.org\r\n\r\n" BIO_puts drop ]
[ 1024 <byte-array> dup swapd 1023 BIO_read drop ] bi
] bi >string "\r\n" split first
] unit-test

View File

@ -30,32 +30,23 @@ STRUCT: bio-method
{ destroy void* }
{ callback-ctrl void* } ;
STRUCT: bio
{ method void* }
{ callback void* }
{ cb-arg void* }
{ init int }
{ shutdown int }
{ flags int }
{ retry-reason int }
{ num int }
{ ptr void* }
{ next-bio void* }
{ prev-bio void* }
{ references int }
{ num-read ulong }
{ num-write ulong }
{ crypto-ex-data-stack void* }
{ crypto-ex-data-dummy int } ;
CONSTANT: BIO_NOCLOSE 0x00
CONSTANT: BIO_CLOSE 0x01
CONSTANT: RSA_3 0x3
CONSTANT: RSA_F4 0x10001
CONSTANT: BIO_C_SET_SSL 109
CONSTANT: BIO_C_GET_SSL 110
CONSTANT: BIO_C_SET_CONNECT 100
CONSTANT: BIO_C_DO_STATE_MACHINE 101
CONSTANT: BIO_C_SET_NBIO 102
CONSTANT: BIO_C_SET_PROXY_PARAM 103
CONSTANT: BIO_C_SET_FD 104
CONSTANT: BIO_C_GET_FD 105
CONSTANT: BIO_C_SET_FILE_PTR 106
CONSTANT: BIO_C_GET_FILE_PTR 107
CONSTANT: BIO_C_SET_FILENAME 108
CONSTANT: BIO_C_SET_SSL 109
CONSTANT: BIO_C_GET_SSL 110
LIBRARY: libcrypto
@ -90,25 +81,27 @@ STRUCT: bio_st
{ init int }
{ shutdown int }
{ flags int }
{ retry_reason int }
{ retry-reason int }
{ num int }
{ ptr void* }
{ next_bio bio_st* }
{ prev_bio bio_st* }
{ next-bio bio_st* }
{ prev-bio bio_st* }
{ references int }
{ num_read ulong }
{ num_write ulong }
{ ex_data CRYPTO_EX_DATA } ;
{ num-read ulong }
{ num-write ulong }
{ ex-data CRYPTO_EX_DATA } ;
TYPEDEF: bio_st BIO
FUNCTION: bio* BIO_new_file ( c-string filename, c-string mode ) ;
FUNCTION: BIO* BIO_new_file ( c-string filename, c-string mode ) ;
FUNCTION: int BIO_printf ( bio* bio, c-string format ) ;
FUNCTION: int BIO_printf ( BIO* bio, c-string format ) ;
FUNCTION: long BIO_ctrl ( void* bio, int cmd, long larg, void* parg ) ;
FUNCTION: BIO* BIO_new_socket ( int fd, int close-flag ) ;
FUNCTION: BIO* BIO_new_connect ( c-string name ) ;
FUNCTION: void* BIO_new ( void* method ) ;
FUNCTION: int BIO_set ( void* bio, void* method ) ;
@ -117,13 +110,13 @@ FUNCTION: int BIO_free ( void* bio ) ;
FUNCTION: void* BIO_push ( void* bio, void* append ) ;
FUNCTION: int BIO_read ( void* b, void* buf, int len ) ;
FUNCTION: int BIO_read ( BIO* bio, void* buf, int len ) ;
FUNCTION: int BIO_gets ( void* b, c-string buf, int size ) ;
FUNCTION: int BIO_write ( void* b, void* buf, int len ) ;
FUNCTION: int BIO_puts ( void* bp, c-string buf ) ;
FUNCTION: int BIO_puts ( BIO* bio, c-string buf ) ;
FUNCTION: ulong ERR_get_error ( ) ;