static zuluValue_t _get_key_from_wallet( const zuluKey_t * key ) { zuluValue_t value ; lxqt_wallet_t w ; lxqt_wallet_key_values_t key_value ; lxqt_wallet_error r ; /* * make sure these are NULL terminated */ char wallet_name[ sizeof( key->wallet_name ) ] ; char application_name[ sizeof( key->wallet_name ) ] ; memcpy( wallet_name,key->wallet_name,sizeof( key->wallet_name ) ) ; memcpy( application_name,key->application_name,sizeof( key->application_name ) ) ; *( wallet_name + sizeof( key->wallet_name ) - 1 ) = '\0' ; *( application_name + sizeof( key->application_name ) - 1 ) = '\0' ; memset( &value,'\0',sizeof( zuluValue_t ) ) ; if( key->wallet_key_length > sizeof( key->wallet_key ) || key->key_0_length > sizeof( key->key_0 ) || key->key_1_length > sizeof( key->key_1 ) ){ return value ; }else{ r = lxqt_wallet_open( &w,key->wallet_key,key->wallet_key_length,wallet_name,application_name ) ; if( r == lxqt_wallet_no_error ){ if( lxqt_wallet_read_key_value( w,key->key_0,key->key_0_length,&key_value ) ){ if( key_value.key_value_size <= sizeof( value.value ) ){ value.key_found = 1 ; value.value_length = key_value.key_value_size ; memcpy( value.value,key_value.key_value,key_value.key_value_size ) ; } }else if( lxqt_wallet_read_key_value( w,key->key_1,key->key_1_length,&key_value ) ){ if( key_value.key_value_size <= sizeof( value.value ) ){ value.key_found = 1 ; value.value_length = key_value.key_value_size ; memcpy( value.value,key_value.key_value,key_value.key_value_size ) ; } } lxqt_wallet_close( &w ) ; } return value ; } }
QByteArray LXQt::Wallet::internalWallet::readValue( const QString& key ) { lxqt_wallet_key_values_t key_value ; if( lxqt_wallet_read_key_value( m_wallet,key.toLatin1().constData(),key.size() + 1,&key_value ) ){ return QByteArray( key_value.key_value,key_value.key_value_size ) ; }else{ return QByteArray() ; } }