mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Let scdaemon call a script on status changes
This commit is contained in:
parent
44393f2ce7
commit
6374763c98
12 changed files with 355 additions and 49 deletions
|
@ -1,3 +1,10 @@
|
|||
2006-09-07 Werner Koch <wk@g10code.com>
|
||||
|
||||
* scdaemon.texi (Scdaemon Configuration): New.
|
||||
|
||||
* examples/scd-event: Event handler for sdaemon.
|
||||
* examples/: New directory
|
||||
|
||||
2006-08-22 Werner Koch <wk@g10code.com>
|
||||
|
||||
* yat2m.c (parse_file): Added code to skip a line after @mansect.
|
||||
|
|
|
@ -19,13 +19,16 @@
|
|||
|
||||
## Process this file with automake to produce Makefile.in
|
||||
|
||||
examples=examples/scd-event
|
||||
|
||||
EXTRA_DIST = DETAILS HACKING TRANSLATE OpenPGP KEYSERVER samplekeys.asc \
|
||||
gnupg-badge-openpgp.eps gnupg-badge-openpgp.jpg \
|
||||
gnupg-badge-openpgp.pdf \
|
||||
gnupg-card-architecture.eps gnupg-card-architecture.png \
|
||||
gnupg-card-architecture.pdf \
|
||||
faq.raw FAQ faq.html gnupg7.texi \
|
||||
opt-homedir.texi see-also-note.texi
|
||||
opt-homedir.texi see-also-note.texi \
|
||||
$(examples)
|
||||
|
||||
BUILT_SOURCES = gnupg-card-architecture.eps gnupg-card-architecture.png \
|
||||
gnupg-card-architecture.pdf FAQ faq.html
|
||||
|
|
102
doc/examples/scd-event
Executable file
102
doc/examples/scd-event
Executable file
|
@ -0,0 +1,102 @@
|
|||
#!/bin/sh
|
||||
# Sample script for scdaemon event mechanism.
|
||||
|
||||
#exec >>/tmp/scd-event.log
|
||||
|
||||
PGM=scd-event
|
||||
|
||||
reader_port=
|
||||
old_code=0x0000
|
||||
new_code=0x0000
|
||||
status=
|
||||
|
||||
tick='`'
|
||||
prev=
|
||||
while [ $# -gt 0 ]; do
|
||||
arg="$1"
|
||||
case $arg in
|
||||
-*=*) optarg=$(echo "X$arg" | sed -e '1s/^X//' -e 's/[-_a-zA-Z0-9]*=//')
|
||||
;;
|
||||
*) optarg=
|
||||
;;
|
||||
esac
|
||||
if [ -n "$prev" ]; then
|
||||
eval "$prev=\$arg"
|
||||
prev=
|
||||
shift
|
||||
continue
|
||||
fi
|
||||
case $arg in
|
||||
--help|-h)
|
||||
cat <<EOF
|
||||
Usage: $PGM [options]
|
||||
$PGM is called by scdaemon on card reader status changes
|
||||
|
||||
Options:
|
||||
--reader-port N Reports change for port N
|
||||
--old-code 0xNNNN Previous status code
|
||||
--old-code 0xNNNN Current status code
|
||||
--status USABLE|ACTIVE|PRESENT}NOCARD
|
||||
Human readable status code
|
||||
|
||||
Environment:
|
||||
|
||||
GNUPGHOME=DIR Set to the active hmedir
|
||||
|
||||
EOF
|
||||
exit 0
|
||||
;;
|
||||
|
||||
--reader-port)
|
||||
prev=reader_port
|
||||
;;
|
||||
--reader-port=*)
|
||||
reader_port="$optarg"
|
||||
;;
|
||||
--old-code)
|
||||
prev=old_code
|
||||
;;
|
||||
--old-code=*)
|
||||
old_code="$optarg"
|
||||
;;
|
||||
--new-code)
|
||||
prev=new_code
|
||||
;;
|
||||
--new-code=*)
|
||||
new_code="$optarg"
|
||||
;;
|
||||
--status)
|
||||
prev=status
|
||||
;;
|
||||
--new-code=*)
|
||||
status="$optarg"
|
||||
;;
|
||||
|
||||
-*)
|
||||
echo "$PGM: invalid option $tick$arg'" >&2
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
if [ -n "$prev" ]; then
|
||||
echo "$PGM: argument missing for option $tick$prev'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat <<EOF
|
||||
========================
|
||||
port: $reader_port
|
||||
old-code: $old_code
|
||||
new-code: $new_code
|
||||
status: $status
|
||||
EOF
|
||||
|
||||
if [ x$status = xUSABLE ]; then
|
||||
gpg --batch --card-status 2>&1
|
||||
fi
|
||||
|
|
@ -48,6 +48,7 @@ options.
|
|||
* Scdaemon Commands:: List of all commands.
|
||||
* Scdaemon Options:: List of all options.
|
||||
* Card applications:: Description of card applications.
|
||||
* Scdaemon Configuration:: Configuration files.
|
||||
* Scdaemon Examples:: Some usage examples.
|
||||
* Scdaemon Protocol:: The protocol the daemon uses.
|
||||
@end menu
|
||||
|
@ -320,6 +321,41 @@ This is common fraqmework for smart card applications. It is used by
|
|||
@command{gpgsm}.
|
||||
|
||||
|
||||
@c *******************************************
|
||||
@c *************** ****************
|
||||
@c *************** FILES ****************
|
||||
@c *************** ****************
|
||||
@c *******************************************
|
||||
@mansect files
|
||||
@node Scdaemon Configuration
|
||||
@section Configuration files
|
||||
|
||||
There are a few configuration files to control certain aspects of
|
||||
@command{scdaemons}'s operation. Unless noted, they are expected in the
|
||||
current home directory (@pxref{option --homedir}).
|
||||
|
||||
@table @file
|
||||
|
||||
@item scdaemon.conf
|
||||
@cindex scdaemon.conf
|
||||
This is the standard configuration file read by @command{scdaemon} on
|
||||
startup. It may contain any valid long option; the leading two dashes
|
||||
may not be entered and the option may not be abbreviated. This default
|
||||
name may be changed on the command line (@pxref{option --options}).
|
||||
|
||||
@item scd-event
|
||||
@cindex scd-event
|
||||
If this file is present and executable, it will be called on veyer card
|
||||
reader's status changed. An example of this script is provided with the
|
||||
distribution
|
||||
|
||||
@item reader_@var{n}.status
|
||||
This file is created by @command{sdaemon} to let other applications now
|
||||
about reader status changes. Its use is now deprecated in favor of
|
||||
@file{scd-event}.
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
@c
|
||||
@c Examples
|
||||
|
@ -339,7 +375,7 @@ $ scdaemon --server -v
|
|||
@c
|
||||
@c Assuan Protocol
|
||||
@c
|
||||
@mansect assuan
|
||||
@manpause
|
||||
@node Scdaemon Protocol
|
||||
@section Scdaemon's Assuan Protocol
|
||||
|
||||
|
@ -621,3 +657,11 @@ Using the option @code{--more} handles the card status word MORE_DATA
|
|||
|
||||
|
||||
|
||||
@mansect see also
|
||||
@ifset isman
|
||||
@command{gpg-agent}(1),
|
||||
@command{gpgsm}(1),
|
||||
@command{gpg2}(1)
|
||||
@end ifset
|
||||
@include see-also-note.texi
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue