2016-07-18 20:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* contrib/hbssl/hbssl.hbx
  * contrib/hbssl/pem.c
  * contrib/hbssl/x509.c
    + added new prg functions: PEM_READ_X509(), PEM_READ_X509_AUX() and
      X509_get_PubKey()

  * src/debug/dbgmenu.prg
    ! fixed wrong method name :ToggleBreakPoint() -> BreakPointToggle()
      Thanks to Viktor.

  * src/rtl/gtwin/gtwin.c
    * hardcoded some LEFT_ALT + <key> to return K_ALT_* value instead of
      national characters, i.e. in EL keyboard layout. Please test it.
      I cannot check it in my MS-Windows version.
This commit is contained in:
Przemysław Czerpak
2016-07-18 20:32:04 +02:00
parent 8465bce36b
commit 4cce9c8403
6 changed files with 184 additions and 19 deletions

View File

@@ -10,6 +10,22 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2016-07-18 20:32 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/pem.c
* contrib/hbssl/x509.c
+ added new prg functions: PEM_READ_X509(), PEM_READ_X509_AUX() and
X509_get_PubKey()
* src/debug/dbgmenu.prg
! fixed wrong method name :ToggleBreakPoint() -> BreakPointToggle()
Thanks to Viktor.
* src/rtl/gtwin/gtwin.c
* hardcoded some LEFT_ALT + <key> to return K_ALT_* value instead of
national characters, i.e. in EL keyboard layout. Please test it.
I cannot check it in my MS-Windows version.
2016-07-04 19:01 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c

View File

@@ -199,6 +199,8 @@ DYNAMIC PEM_READ_BIO_X509
DYNAMIC PEM_READ_BIO_X509_AUX
DYNAMIC PEM_READ_BIO_X509_CRL
DYNAMIC PEM_READ_BIO_X509_REQ
DYNAMIC PEM_READ_X509
DYNAMIC PEM_READ_X509_AUX
DYNAMIC RAND_add
DYNAMIC RAND_event
DYNAMIC RAND_screen
@@ -359,6 +361,7 @@ DYNAMIC SSL_want_write
DYNAMIC SSL_want_x509_lookup
DYNAMIC SSL_write
DYNAMIC X509_get_issuer_name
DYNAMIC X509_get_PubKey
DYNAMIC X509_get_subject_name
DYNAMIC X509_name_oneline

View File

@@ -90,7 +90,7 @@ HB_FUNC( ERR_LOAD_PEM_STRINGS )
typedef void * PEM_READ_BIO ( BIO * bp, void ** x, pem_password_cb * cb, void * u );
typedef void * PEM_WRITE_BIO ( BIO * bp, void ** x, pem_password_cb * cb, void * u );
static void hb_PEM_read_bio( PEM_READ_BIO * func )
static void hb_PEM_read_bio( PEM_READ_BIO * func, HB_BOOL fX509 )
{
BIO * bio;
@@ -106,17 +106,27 @@ static void hb_PEM_read_bio( PEM_READ_BIO * func )
if( bio )
{
PHB_ITEM pPassCallback = hb_param( 2, HB_IT_EVALITEM );
pem_password_cb * cb;
void * cargo, * result;
if( pPassCallback )
{
hb_retptr( ( *func )( bio, NULL, hb_ssl_pem_password_cb, pPassCallback ) );
cb = hb_ssl_pem_password_cb;
cargo = pPassCallback;
}
else
{
/* NOTE: Dropping 'const' qualifier. [vszakats] */
hb_retptr( ( *func )( bio, NULL, NULL, ( void * ) hb_parc( 2 ) ) );
cb = NULL;
cargo = ( void * ) hb_parc( 2 ); /* NOTE: Dropping 'const' qualifier. [vszakats] */
}
result = ( *func )( bio, NULL, cb, cargo );
if( fX509 && result )
hb_X509_ret( ( X509 * ) result, HB_TRUE );
else
hb_retptr( result );
if( ! hb_BIO_is( 1 ) )
BIO_free( bio );
}
@@ -124,20 +134,23 @@ static void hb_PEM_read_bio( PEM_READ_BIO * func )
hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}
HB_FUNC( PEM_READ_BIO_PRIVATEKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_PrivateKey ); }
HB_FUNC( PEM_READ_BIO_PUBKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_PUBKEY ); }
HB_FUNC( PEM_READ_BIO_RSAPRIVATEKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_RSAPrivateKey ); }
HB_FUNC( PEM_READ_BIO_RSAPUBLICKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_RSAPublicKey ); }
HB_FUNC( PEM_READ_BIO_RSA_PUBKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_RSA_PUBKEY ); }
HB_FUNC( PEM_READ_BIO_DSAPRIVATEKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DSAPrivateKey ); }
HB_FUNC( PEM_READ_BIO_DSA_PUBKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DSA_PUBKEY ); }
HB_FUNC( PEM_READ_BIO_DSAPARAMS ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DSAparams ); }
HB_FUNC( PEM_READ_BIO_DHPARAMS ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DHparams ); }
HB_FUNC( PEM_READ_BIO_X509 ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509 ); }
HB_FUNC( PEM_READ_BIO_X509_AUX ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_AUX ); }
HB_FUNC( PEM_READ_BIO_X509_REQ ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_REQ ); }
HB_FUNC( PEM_READ_BIO_X509_CRL ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_CRL ); }
HB_FUNC( PEM_READ_BIO_PKCS7 ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_PKCS7 ); }
HB_FUNC( PEM_READ_BIO_PRIVATEKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_PrivateKey , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_PUBKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_PUBKEY , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_RSAPRIVATEKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_RSAPrivateKey, HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_RSAPUBLICKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_RSAPublicKey , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_RSA_PUBKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_RSA_PUBKEY , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_DSAPRIVATEKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DSAPrivateKey, HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_DSA_PUBKEY ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DSA_PUBKEY , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_DSAPARAMS ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DSAparams , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_DHPARAMS ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_DHparams , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_X509 ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509 , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_X509_AUX ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_AUX , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_X509_REQ ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_REQ , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_X509_CRL ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_CRL , HB_FALSE ); }
HB_FUNC( PEM_READ_BIO_PKCS7 ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_PKCS7 , HB_FALSE ); }
HB_FUNC( PEM_READ_X509 ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509 , HB_TRUE ); }
HB_FUNC( PEM_READ_X509_AUX ) { hb_PEM_read_bio( ( PEM_READ_BIO * ) PEM_read_bio_X509_AUX , HB_TRUE ); }
#if 0

View File

@@ -145,3 +145,16 @@ HB_FUNC( X509_NAME_ONELINE )
hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
#endif
}
HB_FUNC( X509_GET_PUBKEY )
{
if( hb_X509_is( 1 ) )
{
X509 * x509 = hb_X509_par( 1 );
if( x509 )
hb_retptr( X509_get_pubkey( x509 ) );
}
else
hb_errRT_BASE( EG_ARG, 2010, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
}

View File

@@ -110,7 +110,7 @@ FUNCTION __dbgBuildMenu( oDebugger ) // Builds the debugger pulldown menu
MENU
MENUITEM " ~Watchpoint..." ACTION oDebugger:WatchPointAdd()
MENUITEM " ~Tracepoint..." ACTION oDebugger:TracePointAdd()
MENUITEM " ~Breakpoint F9 " ACTION oDebugger:ToggleBreakPoint()
MENUITEM " ~Breakpoint F9 " ACTION oDebugger:BreakPointToggle()
MENUITEM " ~Delete..." ACTION oDebugger:WatchPointDel()
ENDMENU

View File

@@ -1545,6 +1545,126 @@ static int hb_gt_win_ReadKey( PHB_GT pGT, int iEventMask )
iKey = HB_K_MENU;
break;
#endif
default:
if( ( dwState & ( LEFT_ALT_PRESSED | RIGHT_ALT_PRESSED |
LEFT_CTRL_PRESSED | RIGHT_CTRL_PRESSED ) ) == LEFT_ALT_PRESSED )
{
switch( wScan )
{
case 2:
iKey = '1';
break;
case 3:
iKey = '2';
break;
case 4:
iKey = '3';
break;
case 5:
iKey = '4';
break;
case 6:
iKey = '5';
break;
case 7:
iKey = '6';
break;
case 8:
iKey = '7';
break;
case 9:
iKey = '8';
break;
case 10:
iKey = '9';
break;
case 11:
iKey = '0';
break;
case 13:
iKey = '=';
break;
case 16:
iKey = 'Q';
break;
case 17:
iKey = 'W';
break;
case 18:
iKey = 'E';
break;
case 19:
iKey = 'R';
break;
case 20:
iKey = 'T';
break;
case 21:
iKey = 'Y';
break;
case 22:
iKey = 'U';
break;
case 23:
iKey = 'I';
break;
case 24:
iKey = 'O';
break;
case 25:
iKey = 'P';
break;
case 30:
iKey = 'A';
break;
case 31:
iKey = 'S';
break;
case 32:
iKey = 'D';
break;
case 33:
iKey = 'F';
break;
case 34:
iKey = 'G';
break;
case 35:
iKey = 'H';
break;
case 36:
iKey = 'J';
break;
case 37:
iKey = 'K';
break;
case 38:
iKey = 'L';
break;
case 44:
iKey = 'Z';
break;
case 45:
iKey = 'X';
break;
case 46:
iKey = 'C';
break;
case 47:
iKey = 'V';
break;
case 48:
iKey = 'B';
break;
case 49:
iKey = 'N';
break;
case 50:
iKey = 'M';
break;
}
}
break;
}
}
else if( wVKey == VK_MENU && ( dwState & NUMLOCK_ON ) != 0 )