Mám čipovou Opencard a trošku problém si s ní povídat. Třeba se můj pokus bude někomu hodit.
Jediné co jsem našel je
http://www.abclinuxu.cz/blog/hufhendr/2008/9/pripravme-se-na-opencardKde se popisuje vlastně jen rozchození čtečky. Nějaké užitečné informace jsou až v posledním příspěvku diskuze.
Takže jsem si řekl že se tomu zkusím trochu dnes večer (vlastně už včera
) podívat na zoubek.
Výsledkem prozatím je že jsem aplikaci dostal na x64 systém (na x86 by to snad mohlo jít instalovat rovnou) a že se pomocí aplikace bavím s opencard pomocí proprietární cryptoplus aplikace, operace prováděné s kartou se vypisují v ikonce v trayi, ale pro opensc-tool je karta stále neznámá.
Ve výpisech může chybět nějaká změna pracovního adresáře.
Konfigurace: Kubuntu 11.04 x64
Nejdřív čtečku, viz.
http://ubuntuforums.org/showthread.php?t=1447218Testuji, z karty standardními nástroji (opensc-tool --reader 0 --atr) alespoň vytáhnu sériové číslo, ale to poněkud nestačí.
mkiklhorn@admin3:/usr/local/crplus/bin$ opensc-tool --reader 0 --name
Unsupported card
Karta není podporovaná, takže kde vzít drivery?
Ke stažení, dle přiloženého pdf Ubuntu 6.06, i386 deb binárky.
http://opencard.praha.eu/public/fe/20/9f/160425_21845_opencard_instalacni_balik.zip (odkaz z "vím jak řídím")
WTF? imho coreutils jsou v požadované verzi. Tudy to nepůjde, takže ručně
sudo dpkg --force-architecture -i crplus-common-1.0.1-0.i386.deb
dpkg: varování: potlačuji problém, protože je nastaveno --force:
architektura balíku (i386) se neshoduje se systémem (amd64)
dpkg: dívám se na crplus-common-1.0.1-0.i386.deb obsahující crplus-common:i386, před-závislostní problém:
crplus-common:i386 před-závisí na coreutils (>= 5.93)
dpkg: chyba při zpracovávání crplus-common-1.0.1-0.i386.deb (--install):
před-závislostní problém - neinstaluji crplus-common:i386
Při zpracování nastaly chyby:
crplus-common-1.0.1-0.i386.deb
mkiklhorn@admin3:~/Stažené/opencard_instalacni_balik/Software/Linux/deb$ aptitude show coreutils | grep -i vers
Version: 8.5-1ubuntu6
no zkusím to rozbalit a podívat se rovnou co vlastně balíčky obsahují
mkiklhorn@admin3:~/Stažené/opencard_instalacni_balik/Software/Linux/deb$ file `dpkg-deb -X crplus-common-1.0.1-0.i386.deb ./`
./: directory
./etc/: directory
./etc/init.d/: directory
./etc/init.d/crpdsptd: POSIX shell script text executable
./usr/: directory
./usr/local/: directory
./usr/local/crplus/: directory
./usr/local/crplus/bin/: directory
./usr/local/crplus/bin/crplustba: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
./usr/local/crplus/bin/lsgempctwin.sh: POSIX shell script text executable
./usr/local/crplus/bin/lsserial: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
./usr/local/crplus/lib/: directory
./usr/local/crplus/lib/libcrpluscli.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./usr/local/crplus/lib/libcrplustba.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./usr/local/crplus/lib/libcrpluswsync.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
./usr/local/crplus/sbin/: directory
./usr/local/crplus/sbin/crpdspt: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
mkiklhorn@admin3:~/Stažené/opencard_instalacni_balik/Software/Linux/deb$ file `dpkg-deb -X crplus-opencard-1.0.0-0.i386.deb ./`
./: directory
./usr/: directory
./usr/local/: directory
./usr/local/crplus/: directory
./usr/local/crplus/bin/: directory
./usr/local/crplus/bin/ccmanopcrd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
./usr/local/crplus/etc/: directory
./usr/local/crplus/etc/opcrd11p.conf: ASCII text
./usr/local/crplus/lib/: directory
./usr/local/crplus/lib/opcrd11.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
./usr/local/crplus/lib/opcrd11p.sig: data
./usr/local/crplus/lib/opcrd11p.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped
./usr/local/crplus/man/: directory
./usr/local/crplus/man/man1/: directory
./usr/local/crplus/man/man1/ccmanopcrd.1.gz: gzip compressed data, was "ccmanopcrd.1", from Unix, last modified: Tue Jan 16 09:12:46 2007, max compression
Hm mám nějaké 32bit knihovny, podívám se co na to strýček a
vidím poprvé jak google mlčíV man vidím název, CryptoPlus card manager utility, googlím - firma monet+, na helpdesk.cryptoplus.cz je ke stažení několik balíků, vše jen windows. Co dál?
Zkusím jaké mi chybí knihovny, přes ldd se podívám na závislosti, knihovny nakopíruju do /usr/lib32/
ldd usr/local/crplus/bin/ccmanopcrd
linux-gate.so.1 => (0xf7781000)
libcrypto.so.4 => not found
libstdc++.so.5 => /usr/lib32/libstdc++.so.5 (0xf76a1000)
libm.so.6 => /lib32/libm.so.6 (0xf767b000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf765f000)
libc.so.6 => /lib32/libc.so.6 (0xf7502000)
libdl.so.2 => /lib32/libdl.so.2 (0xf74fd000)
/lib/ld-linux.so.2 (0xf7782000)
mkiklhorn@admin3:~/Stažené/opencard_instalacni_balik/Software/Linux/deb$ ldd usr/local/crplus/lib/opcrd11p.so
linux-gate.so.1 => (0xf772c000)
libpthread.so.0 => /lib32/libpthread.so.0 (0xf7692000)
libpcsclite.so.0 => not found
libcrpluswsync.so => not found
libcrpluscli.so => not found
libstdc++.so.5 => /usr/lib32/libstdc++.so.5 (0xf75d8000)
libm.so.6 => /lib32/libm.so.6 (0xf75b1000)
libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7595000)
libc.so.6 => /lib32/libc.so.6 (0xf7438000)
/lib/ld-linux.so.2 (0xf772d000)
Takže mi chybí libpcsclite.so.0 a libcrypto.so.4
V čem tak může být?
mkiklhorn@admin3:~/Stažené/opencard_instalacni_balik/Software/Linux/deb$ sudo dpkg --force-architecture --force-depends --unpack --dry-run crplus-common-1.0.1-0.i386.deb 2>&1| grep závisí
crplus-common:i386 před-závisí na coreutils (>= 5.93)
crplus-common:i386 před-závisí na pcscd (<< 2.0.0)
crplus-common:i386 před-závisí na bash
crplus-common:i386 před-závisí na sed
crplus-common:i386 před-závisí na libssl0.9.8
crplus-common:i386 před-závisí na libstdc++5
crplus-common:i386 před-závisí na libc6
crplus-common:i386 před-závisí na libgcc1
crplus-common:i386 před-závisí na libc6
crplus-common:i386 před-závisí na libpcsclite1
mkiklhorn@admin3:~/Stažené/opencard_instalacni_balik/Software/Linux/deb$ sudo dpkg --force-architecture --force-depends --unpack --dry-run crplus-opencard-1.0.0-0.i386.deb 2>&1| grep závisí
crplus-opencard:i386 před-závisí na crplus-common (>= 1.0.0)
takže to vypadá na libpcsclite1 a libssl0.9.8
wget http://ubuntu.ynet.sk/ubuntu//pool/main/o/openssl/libssl0.9.8_0.9.8o-5ubuntu1_i386.deb
wget http://ubuntu.ynet.sk/ubuntu//pool/main/p/pcsc-lite/libpcsclite1_1.7.0-2ubuntu2_i386.deb
mkdir i386miss
dpkg-deb -X libpcsclite1_1.7.0-2ubuntu2_i386.deb ./i386miss/
dpkg-deb -X libssl0.9.8_0.9.8o-5ubuntu1_i386.deb ./i386miss/
cp i386miss/lib/libcrypto.so.0.9.8 /usr/lib32/libcrypto.so.4
sudo cp i386miss/lib/libcrypto.so.0.9.8 /usr/lib32/libcrypto.so.4
sudo cp i386miss/lib/libpcsclite.so.1 /usr/lib32/libpcsclite.so.0
zkontorluji jestli něco nechybí
ldd /usr/lib32/libpcsclite.so.0
ldd /usr/lib32/libcrypto.so.4
je to ok, nakopírujeme knihovny z driverů ať nemusím řešit cesty
cd usr/local/crplus/lib/
sudo cp -i ./* /usr/lib32/
rozbalím naostro
dpkg-deb -X crplus-common-1.0.1-0.i386.deb /
sudo dpkg-deb -X crplus-common-1.0.1-0.i386.deb /
sudo dpkg-deb -X crplus-opencard-1.0.0-0.i386.deb /
cd /usr/local/crplus/bin
ls
#spustim vse, co to asi dela?
/usr/local/crplus/bin/crplustba
#hm zobrazi ikonu v trayi
/usr/local/crplus/bin/ccmanopcrd
#tohle něco píše, asi je čas se podívat do přiloženého pdf
/usr/local/crplus/bin/ccmanopcrd --dci
******************************************************************************
Reader
~~~~~~
Reader slot: 0
Name: ACS ACR 38U-CCID 00 00
------------------------------------------------------------------------------
Card information
~~~~~~~~~~~~~~~~
Card number: 92XX XXXX XXXX XXXX
Application identifier: A0 00 00 00 28 80 10 24 00
Card version: 9
Validity: 08/10 - 12/10
Structure version: 7
Card label: 92XXXXXXXXXXXXXX
Used containers: 2 of 8
Used 1024-bit RSA keys: 0 of 2
Used space for certificates: 900 B of 9092 B
The longest available block: 8192 B
Used data objects: 0 of 4
Used space by public objects: 100 B of 1124 B
******************************************************************************
Pro opensc-tool je karta stále neznámá
nicméně třeba
mkiklhorn@admin3:/usr/local/crplus/bin$ ./ccmanopcrd -dpki
******************************************************************************
Reader
~~~~~~
Reader slot: 0
Name: ACS ACR 38U-CCID 00 00
------------------------------------------------------------------------------
PKI objects
~~~~~~~~~~~
Reference: pki0 (delete only)
Certificate:
Reference: cer0
Subject: C=CZ, OU=opencard, L=Prague, CN=Root Device CA E
Reference: pki1 (delete only)
Certificate:
Reference: cer1
Subject: C=CZ, OU=opencard, CN=92XXXXXXXXXXXXXX
Public key:
Reference: key1 (export only)
Key type: RSA1536
******************************************************************************
něco vypisuje (celkem to trvá)
A to je zatím vše, budete někdo pokračovat?