Middleware is – generally speaking – a component that stands between two other components and mediates between them. In cryptography, middleware usually refers to a component that stands between an application program (for example, email encryption software) and a crypto module (for example, a smart card or a security token). Depending on its characteristics, it is also referred to as smartcard middleware or token middleware. On the one hand, the middleware ensures that the application can address different smartcards or tokens in the same way – an important task, because there are numerous incompatible solutions in this area. Secondly, the middleware provides a program for managing the card or token. This can be used, for example, to generate a key, change the card PIN or read out a stored certificate.