/*! @file @id $Id$ */ // 1 2 3 4 5 6 7 8 // 45678901234567890123456789012345678901234567890123456789012345678901234567890 #ifndef SUISSE_ID_DEMO_HXX #define SUISSE_ID_DEMO_HXX #include #include #include class TextualCycle: public suisseid::StatusCycle { public: TextualCycle(mrw::Shared card): StatusCycle(card) { } protected: /// @name slots //@{ virtual PinPukChange pinChangeTransportPin() { PinPukChange pinpuk; std::cout<<"Enter Transport PIN: "; std::cin>>pinpuk.oldpin; std::cout<<"Enter New PIN: "; std::cin>>pinpuk.newpin; return pinpuk; } virtual PinPukChange pinChangePuk() { PinPukChange pinpuk; std::cout<<"Enter PUK to unlock PKCS#15 PIN: "; std::cin>>pinpuk.oldpin; std::cout<<"Enter New PKCS#15 PIN: "; std::cin>>pinpuk.newpin; return pinpuk; } virtual void transportPinLocked() { std::cout<<"Transport PIN is Locked!"<>pin; if (pin=="x") { std::cout<slot()); try { session.login(pin); } catch (const cryptoki::wrong_pin& x) { std::cout<<"**** Wrong PIN!"<