# User Interface

OpenSC is all about SmartCards?. SmartCards? are all about cryptography. Cryptography is something users don't care much about nor want to know about. At the same time - SmartCards? are usually tightly tied to the cardholder. So user interaction and UserInterface? are actually important components of the overall solutions that SmartCards? provide.

To sum up where exactly and how user interaction takes place, can take place or should take place, we need to know what layers and standards affect this area. Then we can find the most convinient and optimal path so that the whole usage of smartcards can be somewhat hidden and convenient for the user. To be more precise: user interaction is everything that the user _must_ do in normal cases - so user _has_ to authenticate to the card somehow, but she must not start other interactions - some application can have the initiative. Information to the end user (errors etc) falls into this category too.

## To be continued

- pkcs11 defines login functions, what means user interaction is done by the application to get the pin
- pkcs11 also defines secure authentication path variable, what leaves the authentication process outside of the scope of pkcs11
- pkcs15 defines user consent attribute, that must result in user interaction.
- opensc includes ui* functions that should deal with some of the problems described here
- applications (utilities) deal with user interaction - this should happen in a unified manner
- help to fill in!