# Smart Card Shell

- - Home
- - GPError
  - GPSystem
  - ByteString
  - ByteBuffer
  - TLV
  - TLVList
  - Card
  - Atr
  - Key
  - Crypto
  - Application
  - GPApplication
  - GPSecDomain
- - ASN1
  - CardFile
  - IsoSecureChannel
  - ApplFactory
  - GPXML
  - JsScript
  - CardSim
- - X509
  - CRL
  - KeyStore
  - Signed CMS
  - Enveloped CMS
  - CMS Generator
  - XMLSignature
  - SSS
  - OCSPQuery
  - LDAP
  - SOAP
  - URLConnection
- - PKCS11Provider
  - PKCS11Session
  - PKCS11Object
- - OutlineNode
  - Dialog
  - Task
- - Tools
  - Modules
- - OpenSCDP

The Smart Card Shell 3 is an interactive development and scripting tool that allows easy access to smart cards on an APDU level as well as on a file system level. It can be used to develop and test smart card applications, in particular applications integrated into a Public Key Infrastructure (PKI).

It is a Java application using the OpenCard Framework supporting most smart cards compliant with ISO7816-4. The Smart Card Shell uses JavaScript as command and script language provided by the Mozilla Rhino Engine. It has support for classes defined in the Global Platform Scripting specification and defines additional classes to support ASN.1/TLV encoding, X509 certificates, OCSP, LDAP and SOAP. The scripting engine supports E4X for simple XML processing.

See the list of supported cards and applications, if your card or application is already supported. Take a look at the screenshots to get an idea of what the software looks like.

## Usage

- Download
- Installation
- Getting Started
- Troubleshooting
- Command Line Arguments
- Build-in Shell Commands
- Locating Files
- Shell and Card Terminal Configuration
- Persistent Configuration Settings
- Supported Cards and Applications

## Global Platform Scripting Classes

- GPError - Exceptions thrown by GP methods
- GPSystem - Access to information (date, version) and tracing functions
- ByteString - Immutuable byte buffer
- ByteBuffer - Mutuable byte buffer
- TLV - Tag Length Value encoded data structures
- TLVList - List of Tag Length Value encoded data structures
- Card - Access to ICC
- Atr - Class to hold the Answer to Reset returned by the ICC
- Key - Class to describe cryptographic keys
- Crypto - Cryptographic operations
- Application - Class representing a card application
- GPApplication - Class representing a card application on a Global Platform card
- GPSecurityDomain - Class representing a security domain on a Global Platform card

## OpenSCDP Scripting Classes

- ASN1 - DER encoded ASN.1 objects
- CardFile - Elementary and dedicated files on ISO 7816-4 smart cards
- IsoSecureChannel - Support for secure messaging from ISO 7816-4 and eSignK
- ApplicationFactory - Repository for Global Platform profiles
- GPXML - Parser for XML files, Global Platform Profiles in particular
- JsScript - Class for loading and running scripts
- CardSimulationAdapter - Script based simulation of cards
- X509 - Certificates according to X.509 V3
- CRL - Certificates revocation lists according to X.509
- KeyStore - Container to securely store cryptographic keys
- CMSSignedData - Cryptographic Message Syntax Signed Data
- CMSGenerator - Cryptographic Message Syntax Signed Data Generator
- XMLSignature - Support for XML Signature generation and verification
- OCSPQuery - Query certificate status from an OCSP responder
- LDAP - Query information from directory using LDAP
- SOAPConnection - Call SOAP web services
- URLConnection - Read from and write to resources identified by an URL
- PKCS11Provider - Support for cryptographic modules with a PKCS#11 interface
- PKCS11Session - Session management and cryptographic operations
- PKCS11Object - Support for creating and accessing PKCS#11 objects

## Smart Card Shell GUI Classes

- OutlineNode - Class to build outline trees.
- Dialog - Support for simple prompts in scripts.
- Task - Class to run and manage background tasks.

Additional tools classes are documented as JSDoc

The online documentation is for latest beta version of the Smart Card Shell. The latest stable version may not yet contain all functions described here.

## Download

You can always find the latest version of the Smart Card Shell on our website.

## License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

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. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

If you would like to include this software or parts of it in your own software and do not publish your code under the GPL, then you will need a commercial license from us (Dual-license).

We also provide support, integration and development services for OpenSCDP, as well as consulting services for your smart card project. Please contact for details.

The raw picture for the banner on top was kindly provided by www.photocase.com.

© Copyright 2003 - 2024 CardContact Systems GmbH , Minden, Germany