/****************************************************************************** * Copyright (C) 2011 Frank Osterfeld * * * * This program is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * * or FITNESS FOR A PARTICULAR PURPOSE. For licensing and distribution * * details, check the accompanying file 'COPYING'. * *****************************************************************************/ #include #include #include "keychain.h" #include int printUsage() { std::cerr << "testclient store " << std::endl; std::cerr << "testclient restore " << std::endl; std::cerr << "testclient delete " << std::endl; return 1; } int main( int argc, char** argv ) { QCoreApplication app( argc, argv ); const QStringList args = app.arguments(); if ( args.count() < 2 ) return printUsage(); QStringList::ConstIterator it = args.constBegin(); ++it; if ( *it == QLatin1String("store") ) { if ( ++it == args.constEnd() ) return printUsage(); const QString acc = *it; if ( ++it == args.constEnd() ) return printUsage(); const QString pass = *it; if ( ++it != args.constEnd() ) return printUsage(); Keychain k( QLatin1String("qtkeychain-testclient") ); k.writePassword( acc, pass, Keychain::ForceOverwrite ); if ( k.error() ) { std::cerr << "Storing password failed: " << qPrintable(k.errorString()) << std::endl; return 1; } std::cout << "Password stored successfully" << std::endl; } else if ( *it == QLatin1String("restore") ) { if ( ++it == args.constEnd() ) return printUsage(); const QString acc = *it; if ( ++it != args.constEnd() ) return printUsage(); Keychain k( QLatin1String("qtkeychain-testclient") ); const QString pw = k.readPassword( acc ); if ( k.error() ) { std::cerr << "Restoring password failed: " << qPrintable(k.errorString()) << std::endl; return 1; } std::cout << qPrintable(pw) << std::endl; } else if ( *it == QLatin1String("delete") ) { if ( ++it == args.constEnd() ) return printUsage(); const QString acc = *it; if ( ++it != args.constEnd() ) return printUsage(); Keychain k( QLatin1String("qtkeychain-testclient") ); k.deletePassword( acc ); if ( k.error() ) { std::cerr << "Deleting password failed: " << qPrintable(k.errorString()) << std::endl; return 1; } std::cout << "Password deleted successfully" << std::endl; } else { return printUsage(); } }