Skip Navigation Links | |
Exit Print View | |
man pages section 3: Extended Library Functions Oracle Solaris 10 1/13 Information Library |
Extended Library Functions - Part 1
Extended Library Functions - Part 2
Extended Library Functions - Part 3
Extended Library Functions - Part 4
Extended Library Functions - Part 5
ptree_add_row_to_table(3PICLTREE)
ptree_create_and_add_node(3PICLTREE)
ptree_create_and_add_prop(3PICLTREE)
ptree_get_first_prop(3PICLTREE)
ptree_get_frutree_parent(3PICLTREE)
ptree_get_next_by_col(3PICLTREE)
ptree_get_next_by_row(3PICLTREE)
ptree_get_next_prop(3PICLTREE)
ptree_get_node_by_path(3PICLTREE)
ptree_get_prop_by_name(3PICLTREE)
ptree_get_propinfo_by_name(3PICLTREE)
ptree_get_propval_by_name(3PICLTREE)
ptree_init_propinfo(3PICLTREE)
ptree_register_handler(3PICLTREE)
ptree_unregister_handler(3PICLTREE)
ptree_update_propval(3PICLTREE)
ptree_update_propval_by_name(3PICLTREE)
ptree_walk_tree_by_class(3PICLTREE)
rsm_create_localmemory_handle(3RSM)
rsm_free_interconnect_topology(3RSM)
rsm_free_localmemory_handle(3RSM)
rsm_get_interconnect_topology(3RSM)
rsm_intr_signal_wait_pollfd(3RSM)
rsm_memseg_export_create(3RSM)
rsm_memseg_export_destroy(3RSM)
rsm_memseg_export_publish(3RSM)
rsm_memseg_export_rebind(3RSM)
rsm_memseg_export_republish(3RSM)
rsm_memseg_export_unpublish(3RSM)
rsm_memseg_import_close_barrier(3RSM)
rsm_memseg_import_connect(3RSM)
rsm_memseg_import_destroy_barrier(3RSM)
rsm_memseg_import_disconnect(3RSM)
rsm_memseg_import_get_mode(3RSM)
rsm_memseg_import_init_barrier(3RSM)
rsm_memseg_import_open_barrier(3RSM)
rsm_memseg_import_order_barrier(3RSM)
rsm_memseg_import_set_mode(3RSM)
rsm_memseg_release_pollfd(3RSM)
SCF_Card_exchangeAPDU(3SMARTCARD)
SCF_Card_waitForCardRemoved(3SMARTCARD)
scf_entry_destroy_children(3SCF)
scf_instance_get_pg_composed(3SCF)
scf_instance_get_snapshot(3SCF)
scf_iter_instance_pgs_composed(3SCF)
scf_iter_instance_pgs_typed(3SCF)
scf_iter_instance_pgs_typed_composed(3SCF)
scf_iter_instance_snapshots(3SCF)
scf_iter_property_values(3SCF)
scf_iter_service_instances(3SCF)
scf_iter_service_pgs_typed(3SCF)
scf_iter_snaplevel_pgs_typed(3SCF)
scf_pg_get_parent_instance(3SCF)
scf_pg_get_parent_service(3SCF)
scf_pg_get_parent_snaplevel(3SCF)
scf_pg_get_underlying_pg(3SCF)
scf_service_add_instance(3SCF)
scf_service_get_instance(3SCF)
SCF_Session_freeInfo(3SMARTCARD)
SCF_Session_getInfo(3SMARTCARD)
SCF_Session_getSession(3SMARTCARD)
SCF_Session_getTerminal(3SMARTCARD)
scf_simple_app_props_free(3SCF)
scf_simple_app_props_get(3SCF)
scf_simple_app_props_next(3SCF)
scf_simple_app_props_search(3SCF)
scf_simple_prop_next_astring(3SCF)
scf_simple_prop_next_boolean(3SCF)
scf_simple_prop_next_count(3SCF)
scf_simple_prop_next_integer(3SCF)
scf_simple_prop_next_opaque(3SCF)
scf_simple_prop_next_reset(3SCF)
scf_simple_prop_next_time(3SCF)
scf_simple_prop_next_ustring(3SCF)
scf_simple_prop_numvalues(3SCF)
scf_simple_walk_instances(3SCF)
scf_snaplevel_get_instance_name(3SCF)
scf_snaplevel_get_next_snaplevel(3SCF)
scf_snaplevel_get_parent(3SCF)
scf_snaplevel_get_scope_name(3SCF)
scf_snaplevel_get_service_name(3SCF)
scf_snapshot_get_base_snaplevel(3SCF)
SCF_Terminal_addEventListener(3SMARTCARD)
SCF_Terminal_close(3SMARTCARD)
SCF_Terminal_freeInfo(3SMARTCARD)
SCF_Terminal_getInfo(3SMARTCARD)
SCF_Terminal_removeEventListener(3SMARTCARD)
SCF_Terminal_updateEventListener(3SMARTCARD)
SCF_Terminal_waitForCardAbsent(3SMARTCARD)
SCF_Terminal_waitForCardPresent(3SMARTCARD)
scf_transaction_destroy_children(3SCF)
scf_transaction_property_change(3SCF)
scf_transaction_property_change_type(3SCF)
scf_transaction_property_delete(3SCF)
scf_transaction_property_new(3SCF)
scf_transaction_reset_all(3SCF)
scf_value_get_as_string_typed(3SCF)
- establish a context with a smartcard
cc [ flag… ] file… -lsmartcard [ library…] #include <smartcard/scf.h> SCF_Status_t SCF_Terminal_getCard(SCF_Terminal_t terminal, SCF_Card_t *card);
A pointer to a SCF_Card_t. If the smartcard is successfully opened, a handle for the card will be returned through this parameter.
The terminal (from SCF_Session_getTerminal(3SMARTCARD)) containing a smartcard to open.
The SCF_Terminal_getCard() function establishes a context with a specific smartcard in a terminal. Card objects can be used to send APDUs (Application Protocol Data Units) to the card with SCF_Card_exchangeAPDU(3SMARTCARD). When the card is no longer needed, SCF_Card_close(3SMARTCARD) should be called to release allocated resources.
If SCF_Terminal_getCard() is called multiple times in the same session to access the same physical card (while the card remains inserted), the same SCF_Card_t will be returned in each call. The library cannot identifty specific cards, so when a card is reinserted it will be represented by a new SCF_Card_t. Multithreaded applications must take care to avoid having one thread close a card that is still needed by another thread. This can be accomplished by coordination within the application, or by having each thread open a separate session to avoid interference.
If a working card is present in the reader, SCF_STATUS_SUCCESS is returned and card is a valid reference to the card. Otherwise, an error value is returned and card remains unaltered.
The SCF_Terminal_getCard() function will fail if:
The card argument is a null pointer.
The specified terminal has been closed or is invalid.
An internal error occured.
No card is present in the terminal.
Example 1 Access a smartcard.
SCF_Status_t status; SCF_Terminal_t myTerminal; SCF_Card_t myCard; /* (...call SCF_Session_getTerminal to open myTerminal...) */ status = SCF_Terminal_getCard(myTerminal, &myCard); if (status == SCF_STATUS_NOCARD) { printf("Please insert your smartcard and try again.\n"); exit(0); } else if (status != SCF_STATUS_SUCCESS) exit(1); /* (...go on to use the card with SCF_Card_exchangeAPDU()...) */
See attributes(5) for descriptions of the following attributes:
|
libsmartcard(3LIB), SCF_Card_close(3SMARTCARD), SCF_Card_exchangeAPDU(3SMARTCARD), SCF_Card_getInfo(3SMARTCARD), SCF_Card_lock(3SMARTCARD), SCF_Session_getTerminal(3SMARTCARD), attributes(5)