changed for new libpcscxx interface version 3; refs #176

master
Marc Wäckerlin 11 years ago
parent d02ef2ff55
commit fbb3150285
  1. 19
      src/browser.hxx
  2. 28
      src/main.cxx
  3. 14
      src/pinentry.hxx
  4. 2
      src/qbrowserlib/downloadmanager.hxx
  5. 36
      src/qbrowserlib/log.cxx
  6. 56
      src/qbrowserlib/log.hxx
  7. 245
      src/smartcardauth.hxx
  8. 116
      src/swissbrowser_de.ts
  9. 116
      src/swissbrowser_en.ts
  10. 116
      src/swissbrowser_fr.ts
  11. 116
      src/swissbrowser_it.ts

@ -1,6 +1,12 @@
/*! @file /*! @file
@id $Id: browser.hxx 15 2010-06-03 14:17:27Z marc $ @id $Id: browser.hxx 15 2010-06-03 14:17:27Z marc $
This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/)
This product includes cryptographic software written by
Eric Young (eay@cryptsoft.com)
*/ */
// 1 2 3 4 5 6 7 8 // 1 2 3 4 5 6 7 8
// 45678901234567890123456789012345678901234567890123456789012345678901234567890 // 45678901234567890123456789012345678901234567890123456789012345678901234567890
@ -86,7 +92,9 @@ class Browser: public QMainWindow, protected Ui::Browser {
actionReload->setVisible(false); actionReload->setVisible(false);
show(); show();
try { try {
_networkManager.scAuth(new SmartCardAuth(actlib, this, login)); _networkManager.scAuth
(new SmartCardAuth(suisseid::Scanner(actlib.toStdString()).scan(),
this, login));
} catch (const std::exception& x) { } catch (const std::exception& x) {
LOG<<"No SmartCard Support:"<<x.what(); LOG<<"No SmartCard Support:"<<x.what();
} }
@ -843,7 +851,14 @@ class Browser: public QMainWindow, protected Ui::Browser {
"%3\n" "%3\n"
"%4\n" "%4\n"
"qt-%5 (%6)\n" "qt-%5 (%6)\n"
"openssl-%7 (%9) %10") "openssl-%7 (%9) %10\n\n"
"This product includes software"
" developed by the OpenSSL Project"
" for use in the OpenSSL Toolkit"
" (http://www.openssl.org/)\n\n"
"This product includes cryptographic"
" software written by Eric Young"
" (eay@cryptsoft.com)")
.arg(VERSION) .arg(VERSION)
.arg(BUILDDATE) .arg(BUILDDATE)
.arg(QString::fromStdString(proxy::version())) .arg(QString::fromStdString(proxy::version()))

@ -220,11 +220,11 @@ int main(int argv, char** argc) try {
QList<QSslCertificate> certs(sslConfig.caCertificates()); QList<QSslCertificate> certs(sslConfig.caCertificates());
for (QList<QSslCertificate>::iterator cert(certs.begin()); for (QList<QSslCertificate>::iterator cert(certs.begin());
cert!=certs.end(); ++cert) { cert!=certs.end(); ++cert) {
LOG<<"CERTIFICATE: " LOG_FN<<"CERTIFICATE: "
<<cert->issuerInfo(QSslCertificate::Organization) <<cert->issuerInfo(QSslCertificate::Organization)
<<cert->issuerInfo(QSslCertificate::CommonName) <<cert->issuerInfo(QSslCertificate::CommonName)
<<cert->subjectInfo(QSslCertificate::Organization) <<cert->subjectInfo(QSslCertificate::Organization)
<<cert->subjectInfo(QSslCertificate::CommonName); <<cert->subjectInfo(QSslCertificate::CommonName);
} }
QSslConfiguration::setDefaultConfiguration(sslConfig); QSslConfiguration::setDefaultConfiguration(sslConfig);
//............................................................................ //............................................................................
@ -240,13 +240,13 @@ int main(int argv, char** argc) try {
env()["PROXY_HOST"], env()["PROXY_PORT"].toInt())); env()["PROXY_HOST"], env()["PROXY_PORT"].toInt()));
else else
QNetworkProxyFactory::setUseSystemConfiguration(true); QNetworkProxyFactory::setUseSystemConfiguration(true);
LOG<<"Start - Proxy:" LOG_FN<<"Start - Proxy:"
<<(QNetworkProxy::applicationProxy().type()==QNetworkProxy::NoProxy <<(QNetworkProxy::applicationProxy().type()==QNetworkProxy::NoProxy
? "No Proxy" ? "No Proxy"
: (QNetworkProxy::applicationProxy().type() : (QNetworkProxy::applicationProxy().type()
==QNetworkProxy::Socks5Proxy ? "socks" : "http")) ==QNetworkProxy::Socks5Proxy ? "socks" : "http"))
<<"Hostname"<<QNetworkProxy::applicationProxy().hostName() <<"Hostname"<<QNetworkProxy::applicationProxy().hostName()
<<"Port"<<QNetworkProxy::applicationProxy().port(); <<"Port"<<QNetworkProxy::applicationProxy().port();
//............................................................................ //............................................................................
if (env().contains("QTWEBKIT_PLUGIN_PATH")) if (env().contains("QTWEBKIT_PLUGIN_PATH"))
qt_drt_overwritePluginDirectories(); qt_drt_overwritePluginDirectories();
@ -255,13 +255,13 @@ int main(int argv, char** argc) try {
if (editbookmarks) browser.on_actionEditBookmarks_triggered(); if (editbookmarks) browser.on_actionEditBookmarks_triggered();
return app.exec(); return app.exec();
} catch (std::exception& x) { } catch (std::exception& x) {
TRC_FN; LOG<<"Terminated with Exception"<<x.what(); TRC_FN; LOG_FN<<"Terminated with Exception"<<x.what();
std::cerr<<"**** Terminated with Error:" std::cerr<<"**** Terminated with Error:"
<<std::endl<<x.what()<<std::endl; <<std::endl<<x.what()<<std::endl;
return 1; return 1;
} catch (...) { } catch (...) {
// unexpected exception - just terminate // unexpected exception - just terminate
TRC_FN; LOG<<"Terminated with unknown Exception"; TRC_FN; LOG_FN<<"Terminated with unknown Exception";
std::cerr<<"**** Terminated with unknown Error"<<std::endl; std::cerr<<"**** Terminated with unknown Error"<<std::endl;
return 1; return 1;
} }

@ -40,9 +40,9 @@ class PinEntry: public QDialog, public Ui::PinEntry {
_certSerial->setText(cert.serialNumber()); _certSerial->setText(cert.serialNumber());
} }
} }
PinEntry& tokeninfo(const cryptoki::TokenInfo& ti) { PinEntry& tokeninfo(unsigned int min, unsigned int max) {
_maxPinLen = ti.maxPinLen; _maxPinLen = max;
_minPinLen = ti.minPinLen; _minPinLen = min;
on__pin_textChanged(_pin->text()); on__pin_textChanged(_pin->text());
return *this; return *this;
} }
@ -58,9 +58,7 @@ class PinEntry: public QDialog, public Ui::PinEntry {
TRC; TRC;
_pin->clear(); _pin->clear();
show(); show();
LOG<<"SSSSSSSSSTTTTTTTAAAAAAAAAAAAARRRRRRRRRRTTTTTTTTTT";
int res(_run.exec(QEventLoop::ExcludeSocketNotifiers)); int res(_run.exec(QEventLoop::ExcludeSocketNotifiers));
LOG<<"EEEEEEEEEEEEENNNNNNNNNNNNNNNNNNNNNDDDDDDDDDDDDDDEEEEEEEEEEEEE";
hide(); hide();
return res; return res;
} }
@ -73,7 +71,6 @@ class PinEntry: public QDialog, public Ui::PinEntry {
TRC; LOG<<r; TRC; LOG<<r;
_run.exit(r); _run.exit(r);
assert(!_run.isRunning()); assert(!_run.isRunning());
LOG<<"DDDDDDDDOOOOOOOOOOOONNNNNNNNNNNEEEEEEE";
QDialog::done(r); QDialog::done(r);
} }
virtual void reject() { virtual void reject() {
@ -86,9 +83,14 @@ class PinEntry: public QDialog, public Ui::PinEntry {
adjustSize(); adjustSize();
} }
void on__pin_textChanged(const QString &text) { void on__pin_textChanged(const QString &text) {
TRC; LOG<<"pin length - min: "<<_minPinLen<<" - max: "<<_maxPinLen;
_buttonBox->button(QDialogButtonBox::Ok) _buttonBox->button(QDialogButtonBox::Ok)
->setEnabled((unsigned long)text.size()>=_minPinLen && ->setEnabled((unsigned long)text.size()>=_minPinLen &&
(unsigned long)text.size()<=_maxPinLen); (unsigned long)text.size()<=_maxPinLen);
if ((unsigned long)text.size()<_minPinLen)
_pin->setToolTip(tr("minimum PIN length: %1").arg(_minPinLen));
if ((unsigned long)text.size()>_maxPinLen)
_pin->setToolTip(tr("maximum PIN length: %1").arg(_maxPinLen));
} }
protected: protected:
QString utfConv(const QString& txt) { QString utfConv(const QString& txt) {

@ -42,7 +42,7 @@ namespace qbrowserlib {
} }
static QString networkError(QNetworkReply::NetworkError err) { static QString networkError(QNetworkReply::NetworkError err) {
TRC_FN; LOG<<err; TRC_FN; LOG_FN<<err;
switch (err) { switch (err) {
case QNetworkReply::NoError: case QNetworkReply::NoError:
return tr("Network connection successful, remote host can be" return tr("Network connection successful, remote host can be"

@ -17,24 +17,32 @@ namespace qbrowserlib {
const std::string& file, unsigned long line, const std::string& file, unsigned long line,
bool traceOpenClose): bool traceOpenClose):
_debug(DEBUG), _close(traceOpenClose), _debug(DEBUG), _close(traceOpenClose),
_addr(addr), _name(name), _file(file), _line(line) { _addr(addr), _name(name), _file(file), _line(line), _clean(true) {
if (!_debug || !_close) return; if (!_debug) return;
++_level; if (_close) {
std::stringstream ss; ++_level;
indent(ss)<<"\\ "<<_name; indent(_ss)<<"\\ "<<_name;
close(init(std::clog)<<ss.str())<<std::endl; close(init(std::clog)<<_ss.str())<<std::endl;
if (!_dialog) _dialog = new LogDialog; if (!_dialog) _dialog = new LogDialog;
_dialog->append(*this, ss.str()); _dialog->append(*this, _ss.str());
_ss.str(std::string());
}
indent(_ss)<<"";
} }
Log::~Log() throw() { Log::~Log() throw() {
if (!_debug || !_close) return; if (!_debug) return;
std::stringstream ss; if (!_clean) {
indent(ss)<<"/ "<<_name; close(init(std::clog)<<_ss.str())<<std::endl;
close(init(std::clog)<<ss.str())<<std::endl; if (!_dialog) _dialog = new LogDialog;
_dialog->append(*this, _ss.str());
}
if (!_close) return;
_ss.str(std::string());
indent(_ss)<<"/ "<<_name;
close(init(std::clog)<<_ss.str())<<std::endl;
--_level; --_level;
if (!_dialog) _dialog = new LogDialog; _dialog->append(*this, _ss.str());
_dialog->append(*this, ss.str());
} }
void Log::show(QWidget* p) { void Log::show(QWidget* p) {

@ -28,42 +28,43 @@
namespace qbrowserlib { namespace qbrowserlib {
#ifndef LOG #ifndef LOG
#define LOG \ #define LOG \
QBROWSERLIB_LOCAL_TRACER qbrowserlib::Log(this, __PRETTY_FUNCTION__, __FILE__, __LINE__, false)
#endif #endif
#ifndef LOG_FN
#define LOG_FN \
qbrowserlib::Log(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false)
#endif
#ifndef TRC #ifndef TRC
#define TRC \ #define TRC \
qbrowserlib::Log QBROWSERLIB_LOCAL_TRACER \ qbrowserlib::Log __TRC_LOCAL(this, __PRETTY_FUNCTION__, __FILE__, __LINE__)
(this, __PRETTY_FUNCTION__, __FILE__, __LINE__)
#endif #endif
#ifndef TRC_FN #ifndef TRC_FN
#define TRC_FN \ #define TRC_FN \
qbrowserlib::Log QBROWSERLIB_LOCAL_TRACER \ qbrowserlib::Log __TRC_LOCAL(0, __PRETTY_FUNCTION__, __FILE__, __LINE__)
(0, __PRETTY_FUNCTION__, __FILE__, __LINE__)
#endif #endif
#define CRYPTOKI_LOG(X) \ #ifdef CRYPTOLOG
qbrowserlib::Log(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false)<<X #undef CRYPTOLOG
#endif
#define PCSC_LOG(X) \ #define CRYPTOLOG(X) \
qbrowserlib::Log(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false)<<X qbrowserlib::Log(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false)<<X;
#define OPENSSL_LOG(X) \ #ifdef OPENSSL_CHECK
qbrowserlib::Log(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false)<<X #undef OPENSSL_CHECK
#endif
#define OPENSSL_CHECK(X) \ #define OPENSSL_CHECK(X) \
if (!(X)) { \ if (!(X)) { \
ERR_load_ENGINE_strings(); \ ERR_load_ENGINE_strings(); \
std::stringstream ss; \ qbrowserlib::Log ss(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false); \
for (unsigned int err(0); err=ERR_get_error();) { \ for (unsigned int err(0); err=ERR_get_error();) { \
ss<<"Error: "<<ERR_error_string(err, 0)<<"; "; \ ss<<"Error: "<<ERR_error_string(err, 0)<<"; "; \
} \ } \
ss<<"Command "<<#X<<" failed in function "<<__PRETTY_FUNCTION__ \ ss<<"Command "<<#X<<" failed in function "<<__PRETTY_FUNCTION__ \
<<" in file "<<__FILE__<<":"<<__LINE__; \ <<" in file "<<__FILE__<<":"<<__LINE__; \
qbrowserlib::Log(0, __PRETTY_FUNCTION__, __FILE__, __LINE__, false) \
<<ss.str(); \
throw std::runtime_error(ss.str()); \ throw std::runtime_error(ss.str()); \
} }
@ -81,6 +82,8 @@ namespace qbrowserlib {
public: public:
Log();
Log(const void* addr, const std::string& name, Log(const void* addr, const std::string& name,
const std::string& file, unsigned long line, const std::string& file, unsigned long line,
bool traceOpenClose=true); bool traceOpenClose=true);
@ -90,6 +93,10 @@ namespace qbrowserlib {
~Log() throw(); ~Log() throw();
static void show(QWidget* p); static void show(QWidget* p);
std::string str() {
return _ss.str();
}
private: private:
@ -111,6 +118,8 @@ namespace qbrowserlib {
const std::string _name; const std::string _name;
const std::string _file; const std::string _file;
unsigned long _line; unsigned long _line;
std::stringstream _ss;
bool _clean;
}; };
class LogDialog: class LogDialog:
@ -221,11 +230,8 @@ namespace qbrowserlib {
// note: template class method must be defined in the header // note: template class method must be defined in the header
template<typename TYPE> Log& Log::operator<<(TYPE arg) { template<typename TYPE> Log& Log::operator<<(TYPE arg) {
if (!_debug) return *this; if (!_debug) return *this;
std::stringstream ss; _clean = false;
indent(ss)<<""<<arg; _ss<<" "<<arg;
close(init(std::clog)<<ss.str())<<std::endl;
if (!_dialog) _dialog = new LogDialog;
_dialog->append(*this, ss.str());
return *this; return *this;
} }

@ -12,10 +12,8 @@
#include <pinentry.hxx> #include <pinentry.hxx>
#include <cryptoki.hxx> #include <suisseid.hxx>
#include <pcsc.hxx>
#include <openssl-engine.hxx> #include <openssl-engine.hxx>
#include <openssl.hxx>
#include <memory> #include <memory>
@ -29,8 +27,7 @@ class CryptokiEngine: public QObject, public openssl::Engine {
public: public:
CryptokiEngine(std::string lib): CryptokiEngine() {
_cryptoki(lib) {
TRC; TRC;
} }
@ -41,10 +38,6 @@ class CryptokiEngine: public QObject, public openssl::Engine {
return _privateKey.get(); return _privateKey.get();
} }
cryptoki::Library& cryptoki() {
return _cryptoki;
}
void cert(cryptoki::Object& privateKey, const std::string& certVal) { void cert(cryptoki::Object& privateKey, const std::string& certVal) {
TRC; TRC;
_privateKey = std::auto_ptr<cryptoki::Object> _privateKey = std::auto_ptr<cryptoki::Object>
@ -110,12 +103,12 @@ class CryptokiEngine: public QObject, public openssl::Engine {
virtual const char* id() { virtual const char* id() {
TRC; TRC;
return "CryptokiEngine_ID"; return "SuisseID Engine ID";
} }
virtual const char* name() { virtual const char* name() {
TRC; TRC;
return "CryptokiEngine_NAME"; return "SuisseID Engine NAME";
} }
virtual std::string rsaSign(const std::string& in, unsigned int type) try { virtual std::string rsaSign(const std::string& in, unsigned int type) try {
@ -139,7 +132,6 @@ class CryptokiEngine: public QObject, public openssl::Engine {
private: private:
cryptoki::Library _cryptoki;
std::auto_ptr<cryptoki::Object> _privateKey; std::auto_ptr<cryptoki::Object> _privateKey;
}; };
@ -149,8 +141,8 @@ class SmartCardAuth: public QObject {
public: public:
SmartCardAuth(const QString& lib, QWidget* p=0, bool loginAtStart=true): SmartCardAuth(suisseid::Cards cards, QWidget* p=0, bool loginAtStart=true):
_parent(p), _e(new CryptokiEngine(lib.toStdString())), _reg(_e) { _parent(p), _e(new CryptokiEngine()), _reg(_e), _cards(cards) {
TRC; TRC;
if (loginAtStart) login(); if (loginAtStart) login();
assert(connect(_e, SIGNAL(certRequired()), SLOT(login()))); assert(connect(_e, SIGNAL(certRequired()), SLOT(login())));
@ -160,84 +152,37 @@ class SmartCardAuth: public QObject {
void login(bool force=true) { void login(bool force=true) {
TRC; TRC;
Lock lock;
LOG<<"got lock";
if (!_e || (!force && *_e)) return; // no smartcard or already logged in
LOG<<"get new certificate";
try { try {
Lock lock; for (suisseid::Cards::iterator card(_cards.begin());
LOG<<"got lock"; card!=_cards.end(); ++card) {
if (!_e || (!force && *_e)) return; // no smartcard or already logged in suisseid::Certificate cert((*card)->authenticationCertificate());
LOG<<"start login to smartcard"; PinEntry pinEntry(QSslCertificate(QByteArray(cert.data(),
QList<CertInfo> authcerts; cert.size()),
QList<CertInfo> allcerts;
QSslConfiguration sslConfig(QSslConfiguration::defaultConfiguration());
_slots = _e->cryptoki().slotList();
LOG<<"number of slots"<<_slots.size();
// look for login certificates ----------------------------------------
for (cryptoki::SlotList::iterator slot(_slots.begin());
slot!=_slots.end(); ++slot) {
cryptoki::Session session(*slot);
cryptoki::ObjectList certs(session.find
(cryptoki::Attribute(CKA_CLASS)
.from<CK_OBJECT_CLASS>(CKO_CERTIFICATE)));
for (cryptoki::ObjectList::iterator cert(certs.begin());
cert!=certs.end(); ++cert) {
cryptoki::Attribute label(cert->attribute(CKA_LABEL));
cryptoki::Attribute id(cert->attribute(CKA_ID));
LOG<<"**** FOUND CERTIFICATE: "<<label.value.c_str();
cryptoki::ObjectList keys
(session.find(cryptoki::Attribute(CKA_CLASS)
.from<CK_OBJECT_CLASS>(CKO_PUBLIC_KEY),
id));
LOG<<"**** with keys: "<<keys.size();
std::string data(cert->attribute(CKA_VALUE).value);
if (!keys.size()) { // add CA-certificate
LOG<<"**** add to CA-certificates";
} else {
LOG<<"**** user cert, check for authentictaion";
if (label.value.find("auth")==0 ||
label.value.find("Authentication")!=std::string::npos) {
LOG<<"**** it's our authentication cert";
authcerts.push_back(CertInfo(data, slot, id));
} else {
LOG<<"**** it's an unknown cert";
allcerts.push_back(CertInfo(data, slot, id));
}
}
}
}
// get pin and install client certificate ------------------------------
LOG<<"00000000000000000000000000000000000000000000000000";
if (!authcerts.isEmpty() || !allcerts.isEmpty()) {
LOG<<"11111111111111111111111111111111111111111111111111";
CertInfo c(authcerts.size()?authcerts[0]:allcerts[0]);
PinEntry pinEntry(QSslCertificate(QByteArray(c.data.data(),
c.data.size()),
QSsl::Der), _parent); QSsl::Der), _parent);
while (true) try { while (true) try {
LOG<<"******************************************1*******"; if (pinEntry
pinEntry.tokeninfo(c.slot->tokeninfo()) .tokeninfo((*card)->minimalPinLength(),
.retries(retries(c.slot->slotinfo().slotDescription)); (*card)->maximalPinLength())
LOG<<"******************************************2*******"; .retries((*card)->pkcs15PinRetries())
int res(pinEntry.myexec()); .myexec()
LOG<<"******************************************3*******"; !=PinEntry::Accepted)
if (res!=PinEntry::Accepted) return; return;
LOG<<"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
_session = // session login with pin _session = // session login with pin
std::auto_ptr<cryptoki::Session> std::shared_ptr<cryptoki::Session>
(new cryptoki::Session(*c.slot)); (new cryptoki::Session((*card)->session()));
LOG<<"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB";
_session->login(pinEntry.pin().toStdString()); _session->login(pinEntry.pin().toStdString());
LOG<<"CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC";
cryptoki::ObjectList keys cryptoki::ObjectList keys
(_session->find(cryptoki::Attribute(CKA_CLASS) (_session->find(cryptoki::Attribute(CKA_CLASS)
.from<CK_OBJECT_CLASS>(CKO_PRIVATE_KEY), .from<CK_OBJECT_CLASS>(CKO_PRIVATE_KEY),
c.id)); cert.id()));
LOG<<"DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD";
if (keys.size()==1) { if (keys.size()==1) {
LOG<<"**** found one private key"; _e->cert(keys[0], cert); // install client cert
_e->cert(keys[0], c.data); // install client cert
LOG<<"==================================================";
break; break;
} }
LOG<<"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
} catch (std::exception& x) { } catch (std::exception& x) {
pinEntry.pin().clear(); pinEntry.pin().clear();
LOG<<"**** ERROR"<<x.what(); LOG<<"**** ERROR"<<x.what();
@ -246,150 +191,16 @@ class SmartCardAuth: public QObject {
" please try again.")); " please try again."));
} }
} }
LOG<<"YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY";
} catch (std::exception& x) { } catch (std::exception& x) {
LOG<<"**** ERROR"<<x.what(); LOG<<"**** ERROR"<<x.what();
throw; throw;
} }
LOG<<"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
} }
private: private:
int minPinLen(const std::string& name) {
TRC; LOG<<name.c_str();
try {
pcsc::Connection pcsc;
mrw::Shared<pcsc::Connection::Reader> reader(pcsc.reader(name));
#ifndef Q_OS_MAC
pcsc::Connection::Reader::Transaction lock(reader);
#endif
// first try to read version info
if (reader->transmit(0x00, 0xA4, 0x08, 0x0C, "\x3f\x00\x56\x49", 4)
!= std::string("\x90\x00", 2) || !reader) {
LOG<<"Select File failed";
return -2;
}
std::string res(reader->transmit(0x00, 0xB0, 0x00, 0x00));
if (res.substr(res.size()-2)!=std::string("\x90\x00", 2)) {
LOG<<"read error";
return -2;
}
LOG<<"version text is: "<<res.substr(4, res[3]).c_str();
// if (res.substr(4, res[3]) != "RAPost 2009" &&
// res.substr(4, res[3]) != "RAPost 2010") {
// LOG<<"unsupported card";
// return -2;
// }
if (retCode(reader->transmit(0x00, 0xA4, 0x00, 0x0C)) == 0x9000) {
int value(retCode(reader->transmit(0x00, 0x20, 0x00, 0x81)));
if ((value&0x63C0)==0x63C0) return value&0x0F;
} else {
LOG<<"**** ERROR in select MF while reading pin status";
}
return -1; // locked
} catch (const std::exception& x) {
LOG<<"**** ERROR while reading pin status: "<<x.what();
return -2;
}
}
int maxPinLen(const std::string& name) {
TRC; LOG<<name.c_str();
try {
pcsc::Connection pcsc;
mrw::Shared<pcsc::Connection::Reader> reader(pcsc.reader(name));
#ifndef Q_OS_MAC
pcsc::Connection::Reader::Transaction lock(reader);
#endif
// first try to read version info
if (reader->transmit(0x00, 0xA4, 0x08, 0x0C, "\x3f\x00\x56\x49", 4)
!= std::string("\x90\x00", 2) || !reader) {
LOG<<"Select File failed";
return -2;
}
std::string res(reader->transmit(0x00, 0xB0, 0x00, 0x00));
if (res.substr(res.size()-2)!=std::string("\x90\x00", 2)) {
LOG<<"read error";
return -2;
}
LOG<<"version text is: "<<res.substr(4, res[3]).c_str();
// if (res.substr(4, res[3]) != "RAPost 2009" &&
// res.substr(4, res[3]) != "RAPost 2010") {
// LOG<<"unsupported card";
// return -2;
// }
if (retCode(reader->transmit(0x00, 0xA4, 0x00, 0x0C)) == 0x9000) {
int value(retCode(reader->transmit(0x00, 0x20, 0x00, 0x81)));
if ((value&0x63C0)==0x63C0) return value&0x0F;
} else {
LOG<<"**** ERROR in select MF while reading pin status";
}
return -1; // locked
} catch (const std::exception& x) {
LOG<<"**** ERROR while reading pin status: "<<x.what();
return -2;
}
}
int retries(const std::string& name) {
TRC; LOG<<name.c_str();
try {
pcsc::Connection pcsc;
mrw::Shared<pcsc::Connection::Reader> reader(pcsc.reader(name));
#ifndef Q_OS_MAC
pcsc::Connection::Reader::Transaction lock(reader);
#endif
// first try to read version info
if (reader->transmit(0x00, 0xA4, 0x08, 0x0C, "\x3f\x00\x56\x49", 4)
!= std::string("\x90\x00", 2) || !reader) {
LOG<<"Select File failed";
return -2;
}
std::string res(reader->transmit(0x00, 0xB0, 0x00, 0x00));
if (res.substr(res.size()-2)!=std::string("\x90\x00", 2)) {
LOG<<"read error";
return -2;
}
LOG<<"version text is: "<<res.substr(4, res[3]).c_str();
// if (res.substr(4, res[3]) != "RAPost 2009" &&
// res.substr(4, res[3]) != "RAPost 2010") {
// LOG<<"unsupported card";
// return -2;
// }
if (retCode(reader->transmit(0x00, 0xA4, 0x00, 0x0C)) == 0x9000) {
int value(retCode(reader->transmit(0x00, 0x20, 0x00, 0x81)));
if ((value&0x63C0)==0x63C0) return value&0x0F;
} else {
LOG<<"**** ERROR in select MF while reading pin status";
}
return -1; // locked
} catch (const std::exception& x) {
LOG<<"**** ERROR while reading pin status: "<<x.what();
return -2;
}
}
int retCode(const std::string& res) {
if (res.size()>=2)
return ((((unsigned int)(unsigned char)res[res.size()-2])*256)
+((unsigned int)(unsigned char)res[res.size()-1]));
else
return -1;
}
private: private:
struct CertInfo {
CertInfo(std::string d, cryptoki::SlotList::iterator s,
cryptoki::Attribute i):
data(d), slot(s), id(i) {
}
std::string data;
cryptoki::SlotList::iterator slot;
cryptoki::Attribute id;
};
class Lock { class Lock {
public: public:
Lock() { Lock() {
@ -416,8 +227,8 @@ class SmartCardAuth: public QObject {
QWidget* _parent; QWidget* _parent;
CryptokiEngine* _e; CryptokiEngine* _e;
openssl::RegisterEngine<CryptokiEngine> _reg; openssl::RegisterEngine<CryptokiEngine> _reg;
cryptoki::SlotList _slots; suisseid::Cards _cards;
std::auto_ptr<cryptoki::Session> _session; std::shared_ptr<cryptoki::Session> _session;
}; };

@ -33,22 +33,10 @@
<context> <context>
<name>Browser</name> <name>Browser</name>
<message> <message>
<location filename="browser.hxx" line="996"/> <location filename="browser.hxx" line="1011"/>
<source>%1</source> <source>%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="browser.hxx" line="839"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="browser.ui" line="339"/> <location filename="browser.ui" line="339"/>
<source>&amp;About</source> <source>&amp;About</source>
@ -105,70 +93,86 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="311"/> <location filename="browser.hxx" line="319"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source> <source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="714"/> <location filename="browser.hxx" line="722"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionBack_hovered %1=url %2=title</comment> <comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="733"/> <location filename="browser.hxx" line="741"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment> <comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="774"/> <location filename="browser.hxx" line="782"/>
<location filename="browser.hxx" line="788"/> <location filename="browser.hxx" line="796"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>neutral find</comment> <comment>neutral find</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="796"/> <location filename="browser.hxx" line="804"/>
<location filename="browser.hxx" line="806"/> <location filename="browser.hxx" line="814"/>
<source>background-color: #ADA</source> <source>background-color: #ADA</source>
<comment>text found</comment> <comment>text found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="798"/> <location filename="browser.hxx" line="806"/>
<location filename="browser.hxx" line="808"/> <location filename="browser.hxx" line="816"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>text not found</comment> <comment>text not found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="838"/> <location filename="browser.hxx" line="846"/>
<source>About</source> <source>About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1457"/> <location filename="browser.hxx" line="847"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1472"/>
<source>errors</source> <source>errors</source>
<comment>show error log</comment> <comment>show error log</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1474"/> <location filename="browser.hxx" line="1489"/>
<location filename="browser.hxx" line="1477"/> <location filename="browser.hxx" line="1492"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>invalid url</comment> <comment>invalid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1484"/> <location filename="browser.hxx" line="1499"/>
<location filename="browser.hxx" line="1487"/> <location filename="browser.hxx" line="1502"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>valid url</comment> <comment>valid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="310"/> <location filename="browser.hxx" line="318"/>
<source>Access Denied</source> <source>Access Denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -198,7 +202,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="306"/> <location filename="browser.hxx" line="314"/>
<source>Checking: %1</source> <source>Checking: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -294,7 +298,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="309"/> <location filename="browser.hxx" line="317"/>
<source>Forbidden: %1</source> <source>Forbidden: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -304,7 +308,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="319"/> <location filename="browser.hxx" line="327"/>
<source>Illegal URL: %1</source> <source>Illegal URL: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -314,7 +318,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1018"/> <location filename="browser.hxx" line="1033"/>
<source>Info: %1</source> <source>Info: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -325,7 +329,7 @@ openssl-%7 (%9) %10</source>
</message> </message>
<message> <message>
<location filename="browser.ui" line="297"/> <location filename="browser.ui" line="297"/>
<location filename="browser.hxx" line="586"/> <location filename="browser.hxx" line="594"/>
<source>New Tab</source> <source>New Tab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -345,7 +349,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="693"/> <location filename="browser.hxx" line="701"/>
<source>Print Document</source> <source>Print Document</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -360,17 +364,17 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="317"/> <location filename="browser.hxx" line="325"/>
<source>Reading: %1</source> <source>Reading: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="235"/> <location filename="browser.hxx" line="243"/>
<source>SSL Not Supported</source> <source>SSL Not Supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="236"/> <location filename="browser.hxx" line="244"/>
<source>SSL is not supported on your system</source> <source>SSL is not supported on your system</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -410,7 +414,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="628"/> <location filename="browser.hxx" line="636"/>
<source>Zoom: %1%</source> <source>Zoom: %1%</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -420,7 +424,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1502"/> <location filename="browser.hxx" line="1517"/>
<source>authentication required</source> <source>authentication required</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -435,7 +439,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1035"/> <location filename="browser.hxx" line="1050"/>
<source>done.</source> <source>done.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -445,35 +449,35 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="601"/> <location filename="browser.hxx" line="609"/>
<source>gg</source> <source>gg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1002"/> <location filename="browser.hxx" line="1017"/>
<source>[%1] - %2 - SwissBrowser (%3)</source> <source>[%1] - %2 - SwissBrowser (%3)</source>
<comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment> <comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1013"/> <location filename="browser.hxx" line="1028"/>
<source>SwissBrowser</source> <source>SwissBrowser</source>
<comment>window title with no tab</comment> <comment>window title with no tab</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1290"/> <location filename="browser.hxx" line="1305"/>
<source>%1</source> <source>%1</source>
<comment>statusbar for hovered link %1=url</comment> <comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1405"/> <location filename="browser.hxx" line="1420"/>
<source>handling content ...</source> <source>handling content ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="602"/> <location filename="browser.hxx" line="610"/>
<source>http://www.google.com/search?hl=%2&amp;q=%1</source> <source>http://www.google.com/search?hl=%2&amp;q=%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -483,7 +487,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="645"/> <location filename="browser.hxx" line="653"/>
<source>opening new window</source> <source>opening new window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -493,7 +497,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1509"/> <location filename="browser.hxx" line="1524"/>
<source>ssl error</source> <source>ssl error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -720,16 +724,26 @@ openssl-%7 (%9) %10</source>
<source>there are %1 PIN attempts left</source> <source>there are %1 PIN attempts left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="pinentry.hxx" line="91"/>
<source>minimum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="pinentry.hxx" line="93"/>
<source>maximum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QMessageBox</name> <name>QMessageBox</name>
<message> <message>
<location filename="smartcardauth.hxx" line="245"/> <location filename="smartcardauth.hxx" line="190"/>
<source>Authentication failed, please try again.</source> <source>Authentication failed, please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="smartcardauth.hxx" line="244"/> <location filename="smartcardauth.hxx" line="189"/>
<source>Wrong PIN</source> <source>Wrong PIN</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -33,22 +33,10 @@
<context> <context>
<name>Browser</name> <name>Browser</name>
<message> <message>
<location filename="browser.hxx" line="996"/> <location filename="browser.hxx" line="1011"/>
<source>%1</source> <source>%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="browser.hxx" line="839"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="browser.ui" line="339"/> <location filename="browser.ui" line="339"/>
<source>&amp;About</source> <source>&amp;About</source>
@ -105,70 +93,86 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="311"/> <location filename="browser.hxx" line="319"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source> <source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="714"/> <location filename="browser.hxx" line="722"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionBack_hovered %1=url %2=title</comment> <comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="733"/> <location filename="browser.hxx" line="741"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment> <comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="774"/> <location filename="browser.hxx" line="782"/>
<location filename="browser.hxx" line="788"/> <location filename="browser.hxx" line="796"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>neutral find</comment> <comment>neutral find</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="796"/> <location filename="browser.hxx" line="804"/>
<location filename="browser.hxx" line="806"/> <location filename="browser.hxx" line="814"/>
<source>background-color: #ADA</source> <source>background-color: #ADA</source>
<comment>text found</comment> <comment>text found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="798"/> <location filename="browser.hxx" line="806"/>
<location filename="browser.hxx" line="808"/> <location filename="browser.hxx" line="816"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>text not found</comment> <comment>text not found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="838"/> <location filename="browser.hxx" line="846"/>
<source>About</source> <source>About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1457"/> <location filename="browser.hxx" line="847"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1472"/>
<source>errors</source> <source>errors</source>
<comment>show error log</comment> <comment>show error log</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1474"/> <location filename="browser.hxx" line="1489"/>
<location filename="browser.hxx" line="1477"/> <location filename="browser.hxx" line="1492"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>invalid url</comment> <comment>invalid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1484"/> <location filename="browser.hxx" line="1499"/>
<location filename="browser.hxx" line="1487"/> <location filename="browser.hxx" line="1502"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>valid url</comment> <comment>valid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="310"/> <location filename="browser.hxx" line="318"/>
<source>Access Denied</source> <source>Access Denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -198,7 +202,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="306"/> <location filename="browser.hxx" line="314"/>
<source>Checking: %1</source> <source>Checking: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -294,7 +298,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="309"/> <location filename="browser.hxx" line="317"/>
<source>Forbidden: %1</source> <source>Forbidden: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -304,7 +308,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="319"/> <location filename="browser.hxx" line="327"/>
<source>Illegal URL: %1</source> <source>Illegal URL: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -314,7 +318,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1018"/> <location filename="browser.hxx" line="1033"/>
<source>Info: %1</source> <source>Info: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -325,7 +329,7 @@ openssl-%7 (%9) %10</source>
</message> </message>
<message> <message>
<location filename="browser.ui" line="297"/> <location filename="browser.ui" line="297"/>
<location filename="browser.hxx" line="586"/> <location filename="browser.hxx" line="594"/>
<source>New Tab</source> <source>New Tab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -345,7 +349,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="693"/> <location filename="browser.hxx" line="701"/>
<source>Print Document</source> <source>Print Document</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -360,17 +364,17 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="317"/> <location filename="browser.hxx" line="325"/>
<source>Reading: %1</source> <source>Reading: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="235"/> <location filename="browser.hxx" line="243"/>
<source>SSL Not Supported</source> <source>SSL Not Supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="236"/> <location filename="browser.hxx" line="244"/>
<source>SSL is not supported on your system</source> <source>SSL is not supported on your system</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -410,7 +414,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="628"/> <location filename="browser.hxx" line="636"/>
<source>Zoom: %1%</source> <source>Zoom: %1%</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -420,7 +424,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1502"/> <location filename="browser.hxx" line="1517"/>
<source>authentication required</source> <source>authentication required</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -435,7 +439,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1035"/> <location filename="browser.hxx" line="1050"/>
<source>done.</source> <source>done.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -445,35 +449,35 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="601"/> <location filename="browser.hxx" line="609"/>
<source>gg</source> <source>gg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1002"/> <location filename="browser.hxx" line="1017"/>
<source>[%1] - %2 - SwissBrowser (%3)</source> <source>[%1] - %2 - SwissBrowser (%3)</source>
<comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment> <comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1013"/> <location filename="browser.hxx" line="1028"/>
<source>SwissBrowser</source> <source>SwissBrowser</source>
<comment>window title with no tab</comment> <comment>window title with no tab</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1290"/> <location filename="browser.hxx" line="1305"/>
<source>%1</source> <source>%1</source>
<comment>statusbar for hovered link %1=url</comment> <comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1405"/> <location filename="browser.hxx" line="1420"/>
<source>handling content ...</source> <source>handling content ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="602"/> <location filename="browser.hxx" line="610"/>
<source>http://www.google.com/search?hl=%2&amp;q=%1</source> <source>http://www.google.com/search?hl=%2&amp;q=%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -483,7 +487,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="645"/> <location filename="browser.hxx" line="653"/>
<source>opening new window</source> <source>opening new window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -493,7 +497,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1509"/> <location filename="browser.hxx" line="1524"/>
<source>ssl error</source> <source>ssl error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -720,16 +724,26 @@ openssl-%7 (%9) %10</source>
<source>there are %1 PIN attempts left</source> <source>there are %1 PIN attempts left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="pinentry.hxx" line="91"/>
<source>minimum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="pinentry.hxx" line="93"/>
<source>maximum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QMessageBox</name> <name>QMessageBox</name>
<message> <message>
<location filename="smartcardauth.hxx" line="245"/> <location filename="smartcardauth.hxx" line="190"/>
<source>Authentication failed, please try again.</source> <source>Authentication failed, please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="smartcardauth.hxx" line="244"/> <location filename="smartcardauth.hxx" line="189"/>
<source>Wrong PIN</source> <source>Wrong PIN</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -33,22 +33,10 @@
<context> <context>
<name>Browser</name> <name>Browser</name>
<message> <message>
<location filename="browser.hxx" line="996"/> <location filename="browser.hxx" line="1011"/>
<source>%1</source> <source>%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="browser.hxx" line="839"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="browser.ui" line="339"/> <location filename="browser.ui" line="339"/>
<source>&amp;About</source> <source>&amp;About</source>
@ -105,70 +93,86 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="311"/> <location filename="browser.hxx" line="319"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source> <source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="714"/> <location filename="browser.hxx" line="722"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionBack_hovered %1=url %2=title</comment> <comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="733"/> <location filename="browser.hxx" line="741"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment> <comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="774"/> <location filename="browser.hxx" line="782"/>
<location filename="browser.hxx" line="788"/> <location filename="browser.hxx" line="796"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>neutral find</comment> <comment>neutral find</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="796"/> <location filename="browser.hxx" line="804"/>
<location filename="browser.hxx" line="806"/> <location filename="browser.hxx" line="814"/>
<source>background-color: #ADA</source> <source>background-color: #ADA</source>
<comment>text found</comment> <comment>text found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="798"/> <location filename="browser.hxx" line="806"/>
<location filename="browser.hxx" line="808"/> <location filename="browser.hxx" line="816"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>text not found</comment> <comment>text not found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="838"/> <location filename="browser.hxx" line="846"/>
<source>About</source> <source>About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1457"/> <location filename="browser.hxx" line="847"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1472"/>
<source>errors</source> <source>errors</source>
<comment>show error log</comment> <comment>show error log</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1474"/> <location filename="browser.hxx" line="1489"/>
<location filename="browser.hxx" line="1477"/> <location filename="browser.hxx" line="1492"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>invalid url</comment> <comment>invalid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1484"/> <location filename="browser.hxx" line="1499"/>
<location filename="browser.hxx" line="1487"/> <location filename="browser.hxx" line="1502"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>valid url</comment> <comment>valid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="310"/> <location filename="browser.hxx" line="318"/>
<source>Access Denied</source> <source>Access Denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -198,7 +202,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="306"/> <location filename="browser.hxx" line="314"/>
<source>Checking: %1</source> <source>Checking: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -294,7 +298,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="309"/> <location filename="browser.hxx" line="317"/>
<source>Forbidden: %1</source> <source>Forbidden: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -304,7 +308,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="319"/> <location filename="browser.hxx" line="327"/>
<source>Illegal URL: %1</source> <source>Illegal URL: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -314,7 +318,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1018"/> <location filename="browser.hxx" line="1033"/>
<source>Info: %1</source> <source>Info: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -325,7 +329,7 @@ openssl-%7 (%9) %10</source>
</message> </message>
<message> <message>
<location filename="browser.ui" line="297"/> <location filename="browser.ui" line="297"/>
<location filename="browser.hxx" line="586"/> <location filename="browser.hxx" line="594"/>
<source>New Tab</source> <source>New Tab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -345,7 +349,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="693"/> <location filename="browser.hxx" line="701"/>
<source>Print Document</source> <source>Print Document</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -360,17 +364,17 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="317"/> <location filename="browser.hxx" line="325"/>
<source>Reading: %1</source> <source>Reading: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="235"/> <location filename="browser.hxx" line="243"/>
<source>SSL Not Supported</source> <source>SSL Not Supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="236"/> <location filename="browser.hxx" line="244"/>
<source>SSL is not supported on your system</source> <source>SSL is not supported on your system</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -410,7 +414,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="628"/> <location filename="browser.hxx" line="636"/>
<source>Zoom: %1%</source> <source>Zoom: %1%</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -420,7 +424,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1502"/> <location filename="browser.hxx" line="1517"/>
<source>authentication required</source> <source>authentication required</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -435,7 +439,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1035"/> <location filename="browser.hxx" line="1050"/>
<source>done.</source> <source>done.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -445,35 +449,35 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="601"/> <location filename="browser.hxx" line="609"/>
<source>gg</source> <source>gg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1002"/> <location filename="browser.hxx" line="1017"/>
<source>[%1] - %2 - SwissBrowser (%3)</source> <source>[%1] - %2 - SwissBrowser (%3)</source>
<comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment> <comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1013"/> <location filename="browser.hxx" line="1028"/>
<source>SwissBrowser</source> <source>SwissBrowser</source>
<comment>window title with no tab</comment> <comment>window title with no tab</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1290"/> <location filename="browser.hxx" line="1305"/>
<source>%1</source> <source>%1</source>
<comment>statusbar for hovered link %1=url</comment> <comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1405"/> <location filename="browser.hxx" line="1420"/>
<source>handling content ...</source> <source>handling content ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="602"/> <location filename="browser.hxx" line="610"/>
<source>http://www.google.com/search?hl=%2&amp;q=%1</source> <source>http://www.google.com/search?hl=%2&amp;q=%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -483,7 +487,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="645"/> <location filename="browser.hxx" line="653"/>
<source>opening new window</source> <source>opening new window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -493,7 +497,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1509"/> <location filename="browser.hxx" line="1524"/>
<source>ssl error</source> <source>ssl error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -720,16 +724,26 @@ openssl-%7 (%9) %10</source>
<source>there are %1 PIN attempts left</source> <source>there are %1 PIN attempts left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="pinentry.hxx" line="91"/>
<source>minimum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="pinentry.hxx" line="93"/>
<source>maximum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QMessageBox</name> <name>QMessageBox</name>
<message> <message>
<location filename="smartcardauth.hxx" line="245"/> <location filename="smartcardauth.hxx" line="190"/>
<source>Authentication failed, please try again.</source> <source>Authentication failed, please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="smartcardauth.hxx" line="244"/> <location filename="smartcardauth.hxx" line="189"/>
<source>Wrong PIN</source> <source>Wrong PIN</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

@ -33,22 +33,10 @@
<context> <context>
<name>Browser</name> <name>Browser</name>
<message> <message>
<location filename="browser.hxx" line="996"/> <location filename="browser.hxx" line="1011"/>
<source>%1</source> <source>%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="browser.hxx" line="839"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="browser.ui" line="339"/> <location filename="browser.ui" line="339"/>
<source>&amp;About</source> <source>&amp;About</source>
@ -105,70 +93,86 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="311"/> <location filename="browser.hxx" line="319"/>
<source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source> <source>&lt;p&gt;Access denied due to security considerations.&lt;/p&gt;&lt;p&gt;You are not allowed to connect to %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="714"/> <location filename="browser.hxx" line="722"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionBack_hovered %1=url %2=title</comment> <comment>statusbar actionBack_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="733"/> <location filename="browser.hxx" line="741"/>
<source>%1 - %2</source> <source>%1 - %2</source>
<comment>statusbar actionForward_hovered %1=url %2=title</comment> <comment>statusbar actionForward_hovered %1=url %2=title</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="774"/> <location filename="browser.hxx" line="782"/>
<location filename="browser.hxx" line="788"/> <location filename="browser.hxx" line="796"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>neutral find</comment> <comment>neutral find</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="796"/> <location filename="browser.hxx" line="804"/>
<location filename="browser.hxx" line="806"/> <location filename="browser.hxx" line="814"/>
<source>background-color: #ADA</source> <source>background-color: #ADA</source>
<comment>text found</comment> <comment>text found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="798"/> <location filename="browser.hxx" line="806"/>
<location filename="browser.hxx" line="808"/> <location filename="browser.hxx" line="816"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>text not found</comment> <comment>text not found</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="838"/> <location filename="browser.hxx" line="846"/>
<source>About</source> <source>About</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1457"/> <location filename="browser.hxx" line="847"/>
<source>%8
Version: %1
Builddate: %2
Libraries:
%3
%4
qt-%5 (%6)
openssl-%7 (%9) %10
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="browser.hxx" line="1472"/>
<source>errors</source> <source>errors</source>
<comment>show error log</comment> <comment>show error log</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1474"/> <location filename="browser.hxx" line="1489"/>
<location filename="browser.hxx" line="1477"/> <location filename="browser.hxx" line="1492"/>
<source>background-color: #F77</source> <source>background-color: #F77</source>
<comment>invalid url</comment> <comment>invalid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1484"/> <location filename="browser.hxx" line="1499"/>
<location filename="browser.hxx" line="1487"/> <location filename="browser.hxx" line="1502"/>
<source>background-color: white</source> <source>background-color: white</source>
<comment>valid url</comment> <comment>valid url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="310"/> <location filename="browser.hxx" line="318"/>
<source>Access Denied</source> <source>Access Denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -198,7 +202,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="306"/> <location filename="browser.hxx" line="314"/>
<source>Checking: %1</source> <source>Checking: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -294,7 +298,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="309"/> <location filename="browser.hxx" line="317"/>
<source>Forbidden: %1</source> <source>Forbidden: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -304,7 +308,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="319"/> <location filename="browser.hxx" line="327"/>
<source>Illegal URL: %1</source> <source>Illegal URL: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -314,7 +318,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1018"/> <location filename="browser.hxx" line="1033"/>
<source>Info: %1</source> <source>Info: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -325,7 +329,7 @@ openssl-%7 (%9) %10</source>
</message> </message>
<message> <message>
<location filename="browser.ui" line="297"/> <location filename="browser.ui" line="297"/>
<location filename="browser.hxx" line="586"/> <location filename="browser.hxx" line="594"/>
<source>New Tab</source> <source>New Tab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -345,7 +349,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="693"/> <location filename="browser.hxx" line="701"/>
<source>Print Document</source> <source>Print Document</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -360,17 +364,17 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="317"/> <location filename="browser.hxx" line="325"/>
<source>Reading: %1</source> <source>Reading: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="235"/> <location filename="browser.hxx" line="243"/>
<source>SSL Not Supported</source> <source>SSL Not Supported</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="236"/> <location filename="browser.hxx" line="244"/>
<source>SSL is not supported on your system</source> <source>SSL is not supported on your system</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -410,7 +414,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="628"/> <location filename="browser.hxx" line="636"/>
<source>Zoom: %1%</source> <source>Zoom: %1%</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -420,7 +424,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1502"/> <location filename="browser.hxx" line="1517"/>
<source>authentication required</source> <source>authentication required</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -435,7 +439,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1035"/> <location filename="browser.hxx" line="1050"/>
<source>done.</source> <source>done.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -445,35 +449,35 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="601"/> <location filename="browser.hxx" line="609"/>
<source>gg</source> <source>gg</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1002"/> <location filename="browser.hxx" line="1017"/>
<source>[%1] - %2 - SwissBrowser (%3)</source> <source>[%1] - %2 - SwissBrowser (%3)</source>
<comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment> <comment>main window title %1 = host name %2 = page title %3 = number of open tabs</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1013"/> <location filename="browser.hxx" line="1028"/>
<source>SwissBrowser</source> <source>SwissBrowser</source>
<comment>window title with no tab</comment> <comment>window title with no tab</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1290"/> <location filename="browser.hxx" line="1305"/>
<source>%1</source> <source>%1</source>
<comment>statusbar for hovered link %1=url</comment> <comment>statusbar for hovered link %1=url</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1405"/> <location filename="browser.hxx" line="1420"/>
<source>handling content ...</source> <source>handling content ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="602"/> <location filename="browser.hxx" line="610"/>
<source>http://www.google.com/search?hl=%2&amp;q=%1</source> <source>http://www.google.com/search?hl=%2&amp;q=%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -483,7 +487,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="645"/> <location filename="browser.hxx" line="653"/>
<source>opening new window</source> <source>opening new window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -493,7 +497,7 @@ openssl-%7 (%9) %10</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="browser.hxx" line="1509"/> <location filename="browser.hxx" line="1524"/>
<source>ssl error</source> <source>ssl error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -720,16 +724,26 @@ openssl-%7 (%9) %10</source>
<source>there are %1 PIN attempts left</source> <source>there are %1 PIN attempts left</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="pinentry.hxx" line="91"/>
<source>minimum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="pinentry.hxx" line="93"/>
<source>maximum PIN length: %1</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QMessageBox</name> <name>QMessageBox</name>
<message> <message>
<location filename="smartcardauth.hxx" line="245"/> <location filename="smartcardauth.hxx" line="190"/>
<source>Authentication failed, please try again.</source> <source>Authentication failed, please try again.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="smartcardauth.hxx" line="244"/> <location filename="smartcardauth.hxx" line="189"/>
<source>Wrong PIN</source> <source>Wrong PIN</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

Loading…
Cancel
Save