1) Smart cards are small computers designed for security applications like banking cards, SIM cards, passports, and access cards. They have simple I/O, a crypto processor, and security countermeasures. 2) Java Card allows multiple applets to run on a single smart card using a Java-based programming model and virtual machine. 3) ePassports use public key cryptography and store biometric and other user data to help verify document authenticity and link the document to its owner. Open source projects aim to support ePassport standards and applications.