You are on page 1of 33

VTBEPXH

CHCTEMA VuETA HOTPEFHEHH PECVPCOB H FE3HAHHuHIX


PACuETOB C HCHOHI3OBAHHEM SMART-CARD

Hporpauunoe oecneuenne nn noepaxn Smart-xap1
Moynt nn pacmnpennon +xcnep1nsm SAM-xap1
Pyxonoc1no nporpauunc1a
Hncron 33
2001

DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 2 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Anno1annn
annt oxymenr coepxnr onncanne ]ynxnn (n crnne xstxa C), nxoxmnx n
nnamnuecxn sarpyxaemym nnnorexy samexp.dll.
Hpnnonrcx neoxonmax cnpanounax nn]opmannx, cneennx o nosmoxntx omnxax,
nosnnxammnx npn paore ]ynxnn nnnorexn.
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 3 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Ornannenne
1. TEPMHHOAOIHR H YCAOBHLE OBO3HAHEHHR (IAOCCAPHH)..................................... 4
1.1 CHCTEMA........................................................................................................................................... 4
1.2 CTAHAPTI BHuPOBAHH............................................................................................................... 4
1.3 KAPTI CHCTEMI H HHuOPMAHH HA KAPTAX................................................................................. 4
1.4 KHRuH CHCTEMI.............................................................................................................................. 5
2. HA3HAHEHHE BHBAHOTEKH SAMEXP.DLL.............................................................................. 6
3. OBmHE CBEEHHR ........................................................................................................................... 6
3. OHHCAHHE mYHKHHH BHBAHOTEKH SAMEXP.DLL............................................................ 8
3.1. mYHKHHR SAMEXPINI .................................................................................................................... 8
3.2. mYHKHHR SAMEXPOPENCARD...................................................................................................... 9
3.3. mYHKHHR SAMEXPGETPURSEDATA ........................................................................................... 10
3.4. mYHKHHR SAMEXPDEBIT............................................................................................................. 11
3.5. mYHKHHR SAMEXPCREDIT .......................................................................................................... 12
3.6. mYHKHHR SAMEXPCHANGEPIN.................................................................................................. 13
3.7. mYHKHHR SAMEXPDEBLOCKPIN................................................................................................ 13
3.8. mYHKHHR SAMEXPUPDATEMAXAMOUNT .................................................................................. 14
3.9. mYHKHHR SAMEXPCLOSE............................................................................................................ 15
4. HPHAOEHHR................................................................................................................................... 15
4.1. COOBmEHHR OB OmHBKAX........................................................................................................... 15
4.2. HPHMEP BL3OBA mYHKHHH MOYAR H3 HPOIPAMML (BORLAND C++ V.5.01) ....................... 20
4.3. mOPMATL KOMAH, HOABAEMLX HA KAPTY H BO3BPAmAEMLH KO CTATYCA.................. 26

DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 4 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
1. Tepunnonornn n ycnonnme oosnauennn (Inoccapnn)
1.1 Cnc1eua
CYHP Cncrema yuera norpenennx pecypcon n esnannuntx pacueron c
ncnontsonannem smart-xapr (nasnanne cncremt).
Payflex - Hnrennexryantnax (smart) xapra ]npmt Schlumberger, xoropax nonoxena n
ocnony cncrem esnannuntx pacueron, paspaartnaemtx xomnanne Dekart S.R.L.
SCR-60, Reflex 60, Reflex 72 (Schlumberger), TOWITOKO ChipDrive - cunrtnarenn
smart-xapr, ncnontsymmnecx n orentntx rexnonornuecxnx snentxx CVHP. Paoramr
rontxo conmecrno c xomntmrepom, n ynpannxmrcx nporpammntm oecneuennem,
paorammem na xomntmrepe.
3un1en1 - oprannsannx, ntnonnxmmax nepconannsannm xapr epxarene, neymax
ast xapr-cueron epxarene n opaartnammax nnarexnte rpansaxnnn.
HH - nponeccnnront nenrp. Hopasenenne (yuacrnnx) cncremt, n saaun xoroporo
nxonr ocnyxnnanne repmnnantnoro nonx, cop rpansaxnn or repmnnanon, nx
coprnponxy n pacctnxy +mnrenram.
HC nenrp cncremt. Oprannsannx, sannmammaxcx npenapnrentno
nepconannsanne xapr epxarene n nx nepeaue +mnrenram (yuacrnnxam cncremt).
HCK - nenrp ceprn]nxannn xnmue (Certificate authority). Oprannsannx,
oecneunnammax ceprn]nxannm xnmue yuacrnnxon cncremt.
Hpu+e:auue. B CVHP ]ynxnnn nenrpa cncremt n nenrpa ceprn]nxannn xnmue
ntnonnxer ona oprannsannx.
epaa1ent xap1m - ]nsnuecxoe nnno, ncnontsymmee xapry n xauecrne nnarexnoro
nncrpymenra npn onnare ronapa nnn ycnyrn.
Hna1eanan ennnna ycnonnax ronapo-enexnax ennnna (pynn, nen, onnapt,
nnrpt, xBru. n r..), ncnontsyemax n CVHP n xauecrne cpecrna nnarexa.
1.2 C1anap1m mnqponannn
DES (Data Encryption Standard) - Cranapr mn]ponannx anntx. Cnmmerpnunax
cncrema mn]ponannx c nnno xnmua n mn]pyemoro noxa anntx 64 nra.
3]]exrnnnax nnna xnmua na camom ene panna 56 (onn nr xaxoro ara
ncnontsyercx n xauecrne xonrpontnoro).
RSA - cncrema mn]ponannx na ocnone orxptrtx xnmue. Hpnmenxercx n cncreme nx
crarnuecxo ayrenrn]nxannn xapr epxarene.
SHS (Secure Hash Standard) - Cranapr na xem-]ynxnnm. Cranapr onpeenxer
anropnrm Secure Hash Algorithm (SHA-1), xoropt moxer ncnontsonartcx nx
cosannx "cxaroro" npecrannennx nexoropo nocneonarentnocrn. Taxoe
npecrannenne nocnr nasnanne oaorecma noc.eooeame.iuocmu.
1.3 Kap1m cnc1eum n nnqopuannn na xap1ax
SAM (Secure Application Module) cnennantnax xapra, xoropax oecneunnaer
esonacnocrt npn onepannxx eeronannx n xpenronannx.
Kap1a oc1yna (nnn xapra nepconantntx xnmue) cnennantnax xapra, xoropax
npenasnauena nx samnmennoro xpanennx xnmua (xnmue) ocryna ornercrnenntx
nnn cncremt. Kapra ocryna npnnanexnr xonxpernomy ornercrnennomy nnny
cncremt n samnmena ero nepconantntm nenrn]nxannonntm nomepom (PIN-xoom).
Cepnnnmn nouep xap1m - nensmenxemax, ynnxantnax nx xaxo xaprt nonunax
nocneonarentnocrt nnno 8 ar, sannctnaemax na xapry sanoom nsroronnrenem.
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 5 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
BIN (Bank Identification Number) nenrn]nxannonnt nomep +mnrenra (8 nn]p),
cocrannennt n coornercrnnn co cranaprom ISO.
PIN (Personal Identification Number) nepconantnt nenrn]nxannonnt nomep
nontsonarenx (or 4 o 8 ecxrnuntx nn]p). Bnaenen xaprt oxsan epxart cno PIN
- xo n cexpere.
PAN (Primary Account Number) nomep xaprt (19 nn]p), nepnte 8 nn]p xoroporo
coornercrnymr BIN.
ID (Identifier) nenrn]nxarop (8 nn]p), onpeenxmmn nmena ]anon, n xoroptx
sannctnamrcx RSA xnmun nponeccnnronoro nenrpa n +mnrenra, sanpoc na
ceprn]nxannm n ceprn]nxar, a raxxe PAN-xot +mnrenra. Connaaer c BIN.
1.4 Knmun cnc1eum
Knmun oc1yna nnyrpennne xnmun, xoropte xpanxrcx na xapre ocryna n
npnmenxmrcx nx orxptrnx pasnnuntx rexnonornuecxnx npnnoxenn cncremt,
npnuem n ontmnncrne cnyuaen onn cnyxar nx axrnnnsannn pyrnx (cexperntx)
xnmue cncremt.
nnepcnqnxannn xnmua - "pacntnenne" xnmua. Hcnontsyercx nx
nnnnnyannsannn nnyrpennnx xnmue xapr epxarene.
Mac1ep xnmu - cexpernt xnmu cnmmerpnuno cncremt mn]ponannx, ncnontsyemt
n cncreme nx nnepcn]nxannn xnmue xapr epxarene.
Moynt - orxptrax uacrt xnmua cncremt mn]ponannx RSA.
3xcnonen1a - orxptrax uacrt xnmua RSA. Moxer trt panno 3 nno uernepromy
uncny uepma (Fermat 4 = 2^2^4+1 = 65537). B CVHP +xcnonenra panna 3.
Cep1nqnxa1 - nonunax nocneonarentnocrt, nonyuaemax cnennantntmn
xpnnrorpa]nuecxnmn meroamn n cnyxamax nx nponepxn ocronepnocrn nexoropo
nocneonarentnocrn anntx.
Cnyuannan nocneona1entnoc1t - nocneonarentnocrt nonuntx anntx, xoropax
cosaercx cnennantntmn mexannsmamn n xaprax n repmnnanax nx mon]nxannn
coomenn c nentm nnnnnyannsannn nporoxona omena or onoro ceanca x pyromy
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 6 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
2. Hasnauenne nnno1exn samexp.dll

Moynt samexp.dll npenasnauen nx nonyuennx (nsnneuennx) anntx ns
]anon SAM xapr, nponepxn nx nenocrnocrn n ayrenrnunocrn, r.e. ntnonnennx
pacmnpenno +xcneprnst SAM xapr. Hoonax +xcneprnsa neoxonma npn
paccneonannn contx nnn upesntuantx cnryann, nponsomemnx n nponecce
+xcnnyarannn CVHP. B cnxsn c +rnm moynt nosnonxer nonyuart maxcnmantno
nonnym nn]opmannm ns xaprt n coornercrnnn c npexnnenntmn nonnomounxmn.
Moyuo ucnouosyemca mououo ++umeumo+!
3. Omne cneennn
nnamnuecxn sarpyxaemax nnnorexa samexp.dll nxnmuaer n cex cneymmne
]ynxnnn:
SAMexpIni nnnnnannsannx nponecca;
SAMexpOpenCard orxptrne SAM-xaprt c ononpemenntm nponeennem
ayrenrn]nxannn n urennem anntx c xaprt;
SAMexpGetPurseData urenne nonno nn]opmannn o xomentxax SAM-xaprt;
SAMexpDebit eeronanne xomentxa SAM-xaprt;
SAMexpCredit - xpenronanne xomentxa SAM-xaprt;
SAMexpChangePIN nsmenenne PIN-xoa SAM-xaprt;
SAMexpDeblockPIN enoxnponanne PIN-xoa SAM-xaprt;
SAMexpUpdateMaxAmount nsmenenne snauennx noronxa ntpannoro xomentxa
SAM-xaprt;
SAMexpClose sanepmenne nponecca.
Hpnmeuanne. Paora c moynem onxna naunnartcx ntsonom ]ynxnnn SAMservIni n
sanepmartcx ntsonom ]ynxnnn SAMservClose.

uynxnnn, nxoxmne n moynt samexp.dll, peannsonant na xstxax nporpammnponannx
C, C++.

Heoxonmoe oopyonanne:
Komntmrep IBM PC (486 n ntme), nmemmn cnoonte nocneonarentnte
noprt;
Smart-xaprt: xapra ocryna +mnrenra, SAM-xapra;
Cunrtnarent smart-xapr onoro ns cneymmnx rnnon: SCR-60, Reflex 60, Reflex 72
(Schlumberger), TOWITOKO ChipDrive.

Heoxonmoe nporpammnoe oecneuenne:
Onepannonnax cncrema MS Windows 9x, NT;
CT API nx cunrtnarene TOWITOKO ChipDrive n Schlumberger Reflex 72;
uan xnmue +mnrenra ID_+mnrenra.sec;
uan ceprn]nxara orxptroro xnmua ID_+mnrenra.crt.
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 7 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Vcranonxa moynx samexp.dll ocymecrnnxercx npocrtm ero xonnponannem n
coornercrnymmn xaranor (SYSTEM, SYSTEM32) cncremt Windows.

DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 8 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
3. Onncanne qynxnnn nnno1exn samexp.dll

3.1. mynxnnn SAMexpIni

Haseauue: SAMexpIni
Hasua:euue: uynxnnx oecneunnaer nnnnnannsannm nponecca anannsa cocroxnnx
SAM-xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune xaprt ocryna +mnrenra, ]ana c xnmuamn
+mnrenra n ]ana c ceprn]nxarom orxptroro xnmua +mnrenra.
Cuumarcuc: #include " SAMexp.h"
int SAMexpIni (char *Port, short ReaderType,
char *Iss_KeyFile, char *PIN,
char *Iss_ID, char *CRTfile,
char *IccNo,
char *ISOcmd, char *Data, char *SW1SW2)
Bxoouie oauuie:
Port yxasarent na crpoxy coepxamym nmx xommynnxannonnoro nopra
(nanpnmep, COM1, COM2, COM3, COM4).
ReaderType nenoe uncno, yxastnammee rnn cunrtnarenx.
Hoepxnnamrcx 4 rnna cunrtnarene:
n.n. Hponsnonrent / Hasnanne ReaderType
1 Schlumberger / SCR 60 0
2 Schlumberger / Reflex 60 1
3 TOWITOKO / ChipDrive 2
4 Schlumberger / Reflex 72 3
Iss_KeyFile yxasarent na crpoxy, coepxamym nyrt n nmx ]ana c
xnmuamn +mnrenra, xoropt ncnontsyercx nx nonyuennx orxptroro
xnmua +mnrenra (o 256 cnmnonon).
PIN yxasarent na crpoxy, coepxamym PINxo xaprt ocryna. PIN
xo moxer cocroxrt or 4 o 8 ecxrnuntx nn]p.
Iss_ID - yxasarent na crpoxy, coepxamym nenrn]nxarop (BIN)
+mnrenra (8 ecxrnuntx nn]p).
CRTfile yxasarent na crpoxy, coepxamym nyrt n nmx ]ana c
ceprn]nxarom orxptroro xnmua +mnrenra (o 256 cnmnonon).
Bixoouie oauuie:
IccNo yxasarent na y]ep (crpoxy), n xoropom yer nosnpamen
cepnnt nomep xaprt ocryna. Pasmep y]epa onxen trt ne menee
33 aron.
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO)
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 9 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 n cnyuae ycnemnoro sanepmennx nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n. 4.1).
Oepauu:euu: Heoxonmo conmennx crpororo coornercrnnx rnna cunrtnarenx
(ReaderType) c peantntm cunrtnarenem, noxnmuenntm x annomy
nocneonarentnomy nopry. Heconmenne +roro orpannuennx npnnonr
x nenpecxasyemtm pesyntraram.
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
3.2. mynxnnn SAMexpOpenCard

Haseauue: SAMexpOpenCard
Hasua:euue: uynxnnx orxptnaer SAM-xapry n npononr ee ayrenrn]nxannm. Kpome
roro, ]ynxnnx oecneunnaer urenne anntx c SAM-xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpOpenCard (char *PANcode, char *SerNo,
char *USRname, char *StartDate,
char *EndDate, char *Ident, char *Auth,
char *ISOcmd, char *Data, char *SW1SW2)
Bxoouie oauuie: Orcyrcrnymr
Bixoouie oauuie:
PANcode yxasarent na y]ep (crpoxy), n xoropom yer nosnpamen
PAN-xo SAM-xaprt. Pasmep y]epa onxen trt ne menee 20 aron.
SerNo - yxasarent na y]ep (crpoxy), n xoropom yer nosnpamen
cepnnt nomep SAM -xaprt. Pasmep y]epa onxen trt ne menee 33
aron.
USRname - yxasarent na y]ep (crpoxy), n xoropom yer nosnpameno
nanmenonanne +mnrenra. Pasmep y]epa onxen trt ne menee 40
aron.
StartDate - yxasarent na y]ep (crpoxy), n xoropom yer nosnpamena
ara nauana ecrnnx xaprt. uopmar MM.
EndDate - yxasarent na y]ep (crpoxy), n xoropom yer nosnpamena
ara oxonuannx ecrnnx xaprt. uopmar MM.
Ident - yxasarent na y]ep (crpoxy), n xoropom yer nosnpameno
coepxnmoe ]ana Ident (8000) SAM-xaprt. Pasmep y]epa onxen
trt ocrarountm (ne menee 256 aron).
Auth - yxasarent na y]ep (crpoxy), n xoropom yer nosnpameno
coepxnmoe ]ana Auth (8300) SAM-xaprt. Pasmep y]epa onxen
trt ocrarountm (ne menee 256 aron).
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 10 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
3.3. mynxnnn SAMexpGetPurseData

Haseauue: SAMexpGetPurseData
Hasua:euue: uynxnnx nponepxer nannune SAM-xaprt n cunrtnarene n oecneunnaer
nonyuenne nonno nn]opmannn o ntpannom +nexrponnom xomentxe
SAM-xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpGetPurseData (int PurseNo, char *CurCode,
char *AccountNo, char *MaxAmount,
char *LastDebitDate, char *LastCreditDate,
char *PurseBalance, char *OperationHistory,
char *ISOcmd, char *Data, char *SW1SW2)
Bxoouie oauuie:
PurseNo - nomep +nexrponnoro xomentxa SAM-xaprt (1, 2 nnn 3).
Bixoouie oauuie:
CurCode - yxasarent na y]ep (crpoxy), n xoropom yer nosnpamen xo
nanmrt no ISO, npecrannennt n ASCII xoe (4 ara)
AccountNo yxasarent na y]ep (crpoxy), n xoropom yer nosnpamen
nomep cuera xomentxa. Pasmep y]epa onxen trt ne menee 20 aron.
MaxAmount - yxasarent na y]ep (crpoxy), n xoropom yer nosnpamen
noronox ntpannoro xomentxa SAM-xaprt. Pasmep y]epa onxen
trt ne menee 5 aron.
OperationHistory - yxasarent na y]ep (crpoxy), n xoropom yer
nosnpamena nn]opmannx o 4 nocnennx onepannxx c xomentxom.
annax crpoxa cocronr ns 4 crpox (c nynentm nocnennm cnmnonom),
xaxax ns xoroptx coepxnr:
ary onepannn (3 ara, ]opmar MM);
Koa xommepcanra (4 ara);
Cymmy onepannn (3 ara).
Pasmep y]epa onxen trt ne menee 100 aron.
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 11 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
PurseBalance - yxasarent na y]ep (crpoxy), n xoropom yer
nosnpamena nn]opmannx o anancax nocne xaxo ns 4 nocnennx
onepann c xomentxom. annax crpoxa cocronr ns 4 crpox (c nynentm
nocnennm cnmnonom), xaxax ns xoroptx coepxnr ananc xomentxa
(4 ara). Pasmep y]epa onxen trt ne menee 40 aron.
LastDebitDate - yxasarent na y]ep (crpoxy), n xoropom yer
nosnpamena ara nocnene onepannn eeronannx. uopmar MM.
LastCreditDate - yxasarent na y]ep (crpoxy), n xoropom yer
nosnpamena ara nocnene onepannn xpenronannx. uopmar
MM.
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
3.4. mynxnnn SAMexpDebit

Haseauue: SAMexpDebit
Hasua:euue: uynxnnx oecneunnaer ntnonnenne onepannn eeronannx ntpannoro
+nexrponnoro xomentxa SAM-xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpDebit (int PurseNo, unsigned long DebitAmount,
char *CurrentBalance, char *ISOcmd, char *Data,
char *SW1SW2)
Bxoouie oauuie:
PurseNo nomep +nexrponnoro xomentxa SAM-xaprt (1, 2 nnn 3).
DebitAmount - nnnnoe nenoe, onpeenxmmee cymmy, na xoropym
nponcxonr eeronanne ntpannoro xomentxa. Hpnmeuanne: cymma
eeronannx onxna trt raxo, urot ntnonnxnoct nepanencrno
(ananc xomentxa SAM-xaprt - DebitAmount) > 0.
Bixoouie oauuie:
CurrentBalance yxasarent na y]ep (crpoxy), n xoropom yer
nosnpamen rexymn ananc ntpannoro +nexrponnoro xomentxa SAM-
xaprt. Pasmep y]epa onxen trt ne menee 10 aron.
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 12 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
3.5. mynxnnn SAMexpCredit

Haseauue: SAMexpCredit
Hasua:euue: uynxnnx oecneunnaer ntnonnenne onepannn xpenronannx
ntpannoro +nexrponnoro xomentxa SAM-xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpCredit (int PurseNo, unsigned long CreditAmount,
char *PINcode, char *CurrentBalance,
char *ISOcmd, char *Data, char *SW1SW2);
Bxoouie oauuie:
PurseNo nomep +nexrponnoro xomentxa SAM-xaprt (1, 2 nnn 3).
CreditAmount - nnnnoe nenoe, onpeenxmmee cymmy, na xoropym
nponcxonr xpenronanne xomentxa SAM-xaprt. Hpnmeuanne: cymma
xpenronannx onxna trt raxo, urot ntnonnxnoct nepanencrno
(ananc xomentxa SAM-xaprt + CreditAmount) < noronox SAM-xaprt.
PINcode - yxasarent na crpoxy, coepxamym PINxo SAM-xaprt. PIN
xo moxer cocroxrt or 4 o 8 ecxrnuntx nn]p.
Bixoouie oauuie:
CurrentBalance yxasarent na y]ep (crpoxy), n xoropom yer
nosnpamen rexymn ananc ntpannoro +nexrponnoro xomentxa SAM-
xaprt. Pasmep y]epa onxen trt ne menee 10 aron.
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 13 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
3.6. mynxnnn SAMexpChangePIN

Haseauue: SAMexpChangePIN
Hasua:euue: uynxnnx oecneunnaer nsmenenne PINxoa SAM-xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpChangePIN (char *CurrentPINcode, char *NewPINcode,
char *ISOcmd, char *Data, char *SW1SW2)
Bxoouie oauuie:
CurrentPINcode - yxasarent na crpoxy, coepxamym rexymee snauenne
PINxoa SAM-xaprt. PINxo moxer cocroxrt or 4 o 8 ecxrnuntx
nn]p.
NewPINcode - yxasarent na crpoxy, coepxamym nonoe snauenne PIN
xoa SAM-xaprt. PINxo moxer cocroxrt or 4 o 8 ecxrnuntx nn]p.
Bixoouie oauuie:
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
Oepauu:euu: BHHMAHHE! Tpexxparnoe npexnnenne nenepnoro snauennx PIN-
xoa npnnonr x ero noxnponannm.
3.7. mynxnnn SAMexpDeblockPIN

Haseauue: SAMexpDeblockPIN
Hasua:euue: uynxnnx oecneunnaer enoxnponanne PIN-xoa SAM-xaprt.
Vc.oeu npu+eueuu:
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 14 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpDeblockPIN (char *PINcode,
char *ISOcmd, char *Data, char *SW1SW2)
Bxoouie oauuie:
PINcode - yxasarent na crpoxy, coepxamym ncrnnnoe rexymee
snauenne PINxoa SAM-xaprt. PINxo moxer cocroxrt or 4 o 8
ecxrnuntx nn]p.
Bixoouie oauuie:
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
Oepauu:euu: BHHMAHHE! Hpexnnenne nenepnoro snauennx PIN-xoa npn
enoxnponannn npnnonr x oxonuarentnomy noxnponannm SAM-
xaprt!
3.8. mynxnnn SAMexpUpdateMaxAmount

Haseauue: SAMexpUpdateMaxAmount
Hasua:euue: uynxnnx oecneunnaer cmeny noronxa +nexrponnoro xomentxa SAM-
xaprt.
Vc.oeu npu+eueuu:
Heoxonmo nannune SAM-xaprt.
Cuumarcuc: #include " SAMexp.h"
int SAMexpUpdateMaxAmount (int PurseNo,
unsigned long MaxAmount,
char *ISOcmd, char *Data,
char *SW1SW2)
Bxoouie oauuie:
PurseNo - nomep +nexrponnoro xomentxa SAM-xaprt (1, 2 nnn 3).
MaxAmount - nnnnoe nenoe, onpeenxmmee nonoe snauenne noronxa
ntpannoro xomentxa
Bixoouie oauuie:
ISOcmd yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
cocrannte uacrn xomant, noanaemo na xapry (cornacno ISO) -
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 15 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
CLA||INS||P1||P2||P3. Pasmep y]epa onxen trt ne menee 17 aron
(cm. n. 4.3).
Data - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
annte, neoxonmte nx ntnonnennx coornercrnymme xomant.
Pasmep y]epa onxen trt ocrarountm (ne menee 256 aron).
SW1SW2 - yxasarent na y]ep (crpoxy), n xoropom yyr nosnpament
art pesyntrar ntnonnennx xomant n xapre. Pasmep y]epa
onxen trt ne menee 12 aron (cm. n. 4.3).
Bosepauae+oe sua:euue:
1 npn ycnemnom sanepmennn nporpammt, nnaue orpnnarentnoe
snauenne xoa omnxn (cm. xot omnox n n. 4.1)
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.2
3.9. mynxnnn SAMexpClose

Haseauue: SAMexpClose
Hasua:euue: uynxnnx sanepmaer nponecc +mnccnn cpecrn na SAM-xapry n
ocnooxaer cunrtnarent smart-xapr.
Cuumarcuc: #include " SAMexp.h"
void SAMexpClose (void)
Bxoouie oauuie: Orcyrcrnymr.
Bosepauae+oe sua:euue: Orcyrcrnyer.
Hpu+ep eisoea qvuruu us npoepa++i (BC++ v.5.01) cm. n. 4.1
4. Hpnnoaennn
4.1. Coomennn o omnxax
1
Ko
omnxn
Hanuenonanne omnxn Kouuen1apnn
Oouue rooi eosepama
0 NOK Henopmantnoe sanepmenne
nporpammt. Bosnnxna omnxa npn
paore c xapro.
1 OK Hopmantnoe sanepmenne nporpammt.
Ouuoru ooueeo xaparmepa
-1 ERR_PC_TIME_OUT

Omnxa ntsnana coem n paore
xomntmrepa
-2...-7 Pesepn
Pempauc.upve+ie rooi ouuoru
uumepqeca CT-API

1
Omnxn moxno pasennrt na cneymmne rpynnt: omnxn oopyonannx (COM-nopra, cunrtnarenx
smart-xapr, xomntmrepa), omnxn nporoxona, omnxn anntx (nanpnmep, nenepnt ceprn]nxar).
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 16 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
-8 ERR_CT_API_NOT_ACC CT-API neocrynen
-10 ERR_CT_API_TRANSMIS Omnxa nepeaun
-11 ERR_CT_API_MEM_ASIGN Omnxa saxnara namxrn
Ouuoru, eosuuramuue npu paoome c
qvuru+u +oov.
-12 ERR_FILE_NOT_FOUND Omnxa ntsnana orcyrcrnnem ]ana c
xnmuamn cncremt
-13 ERR_READING_FILE Omnxa npn urennn ]ana c xnmuamn
cncremt
-14 ERR_BAD_READER

Hoxnnenne anno omnxn moxer
ronopnrt o cneymmem:
orcyrcrnyer cunrtnarent, nnn
rnn cunrtnarenx yxasan
nenpannntno, nnn
omnxa npn paore cunrtnarenx,
nnn
yxasan nenepnt COM-nopr.
-15 ERR_NO_CARD_ON_READER Omnxa ntsnana orcyrcrnnem xaprt n
cunrtnarene
-16 ERR_BAD_ACCESS_CARD Omnxa npn paore c xapro ocryna,
nosmoxno, ncrannena ne xapra
ocryna, a nnax.
-17 ERR_INVALID_PIN_LEN Henpannntnax nnna PIN-xoa
-18 ERR_INVALID_PIN_CHR Hpn nnoe PIN-xoa tnn
ncnontsonant ne rontxo ecxrnunte
nn]pt
-19 ERR_BAD_PIN_VERIFY PIN-xo ne nepn]nnnponan
-20 ERR_BAD_PASSWORD Henepnt napont ocryna x
cexperntm xnmuam cncremt
-21 ERR_BAD_SAM_CARD Omnxa npn paore c SAM xapro,
nosmoxno, ncrannena ne SAM xapra, a
nnax.
-22 ERR_BAD_USR_CARD Omnxa npn paore c xapro
nontsonarenx, nosmoxno, ncrannena
ne xapra nontsonarenx, a nnax.
-23 ERR_INV_REC_LEN Henpannntnax nnna sanncn
-24 ERR_DNOT_FOUND_KEY Orcyrcrnyer xnmu
-25 ERR_APP_NOT_FOUND Orcyrcrnyer npnnoxenne
-26 ERR_READ_CARD_FILE Omnxa urennx ]ana na xapre
-27 ERR_IDENT_NOT_FOUND Ha xapre orcyrcrnyer ]an 8000
-28 ERR_BAD_ISS_CERT Henepnt ceprn]nxar orxptroro
xnmua +mnrenra
-29 ERR_BAD_ISS_IDEND Henepnt +mnrenr
-30 ERR_AUTH_NOT_FOUND Ha xapre orcyrcrnyer ]an 8300
-31 ERR_UNKNOWN_AUTH_ALG Hensnecrnt anropnrm
ayrenrn]nxannn
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 17 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
-32 ERR_SN_NOT_FOUND Ha xapre orcyrcrnyer ]an 2F00
-33 ERR_SAM_NOT_FOUND Orcyrcrnyer SAM-xapra
-34 ERR_USR_NOT_FOUND Orcyrcrnyer xapra nontsonarenx
-35 ERR_USR_PURS_NOTFOUND Ha xapre nontsonarenx orcyrcrnyer
]an c xomentxom
-36 ERR_SAM_PURS_NOTFOUND Ha SAM-xapre orcyrcrnyer ]an c
xomentxom
-37 ERR_USR_IS_BAD 3anopuena xapra nontsonarenx
nonexnr nsxrnm
-38 ERR_SAM_IS_BAD 3anopuena SAM-xapra nonexnr
nsxrnm
-39 ERR_USR_CUR_NOT_MATCH Hpn ntsone ]ynxnnn yxasan
nenepnt rnn nanmrt n xomentxe
xaprt nontsonarenx
-40 ERR_SAM_CUR_NOT_MATCH Hpn ntsone ]ynxnnn yxasan
nenepnt rnn nanmrt n xomentxe
SAM-xaprt
-41 ERR_READ_USR_CARD Omnxa npn urennn xaprt
nontsonarenx
-42 ERR_READ_SAM_CARD Omnxa npn urennn SAM-xaprt
-43 ERR_USR_DEBIT_PURSE Omnxa npn eeronannn xomentxa
xaprt nontsonarenx
-44 ERR_USR_CREDIT_PURSE Omnxa npn xpenronannn xomentxa
xaprt nontsonarenx
-45 ERR_SAM_DEBIT_PURSE Omnxa npn eeronannn xomentxa
SAM-xaprt
-46 ERR_INV_ID_LEN Henepnax nnna nenrn]nxaropa
-47...-50 Pesepn
Ouuoru, eosuuramuue npu paoome c
ouo.uomero mirlib (paooma c
oo.iuu+u :uc.a+u)
-51 ERR_BASE_TOO_BIG Ocnonanne uncna ouent ontmoe nx
npecrannennx
-52 ERR_DIV_BY_ZERO enenne na nont (n nnnorexe
ontmnx uncen)
-53 ERR_OVERFLOW Hepenonnenne uncno ouent
ontmoe
-54 ERR_NEG_RESULT Hpn ntuncnennn nonyueno
orpnnarentnoe snauenne
-55 ERR_BAD_FORMAT Henepnt nxono ]opmar uncna
-56 ERR_BAD_BASE Henepnoe ocnonanne uncna
-57 ERR_BAD_PARAMETERS Henepnoe ncnontsonanne napamerpa
-58 ERR_OUT_OF_MEMORY Heocrarouno oneparnnno namxrn
-59 ERR_NEG_ROOT uernt xopent ns orpnnarentnoro
uncna
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 18 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
-60 ERR_NEG_POWER Bosneenne uncna n orpnnarentnym
crenent
-61 ERR_BAD_ROOT Hontrxa nonyunrt nenepnt xopent
-62 ERR_INT_OP Henepnax onepannx na Flash uncnom
-63 ERR_FLASH_OVERFLOW Flash nepenonnenne
-64 ERR_TOO_BIG uncna ouent ontmne
-65 ERR_NEG_LOG Horapn]m ns orpnnarentnoro uncna
-66 ERR_DOUBLE_FAIL Omnxa npeopasonannx double n
flash
-67 ERR_IO_OVERFLOW Hepenonnenne y]epa nnoa/ntnoa
-68 ERR_NO_MIRSYS Fnnnorexa ontmnx uncen ne
nponnnnnannsnponana
-69 ERR_BAD_MONT_MOD Henepnt Monrromepn moynt
(onxen trt neuerntm)
-70 ERR_NO_MONT_MOD He onpeenen Monrromepn moynt
-71 ERR_EXP_TOO_BIG Cnnmxom ontmax +xcnonenra
-72 ERR_NBASE_MBP_P2 Ocnonanne onxno trt crenentm 2
-73...80 Pesepn
-81 ERR_KEYFILE_NOT_FOUND Orcyrcrnyer ]an c xnmuamn
HCK/HC
-82 ERR_READING_KEYFILE Omnxa urennx ]ana xnmue
-83 ERR_PARFILE_NOT_FOUND Orcyrcrnyer ]an c napamerpamn
sPRPERS.PAR
-84 ERR_BAD_NUM_OF_PARAM Omnounoe uncno napamerpon n
]ane sPRPERS.PAR
-85 ERR_BAD_PARAM_FMT Henepnte snauennx napamerpon n
]ane sPRPERS.PAR
-86 ERR_BAD_CA_ID_FMT Henepnoe snauenne nenrn]nxaropa
HCK
-87 ERR_BAD_ISS_ID_FMT Henepnoe snauenne nenrn]nxaropa
+mnrenra
-88 ERR_CRTFILE_NOT_FOUND Orcyrcrnyer ]an c ceprn]nxarom
orxptroro xnmua +mnrenra
-89 ERR_CRT_ISS_NOT_CMP Henrn]nxarop +mnrenra ne
connaaer c yxasanntm n ceprn]nxare
-90 ERR_CRT_DATE_EXPIRED Hcrex cpox ecrnnx ceprn]nxara
-91 ERR_CRT_CA_NOT_CMP Henrn]nxarop +mnrenra ne
connaaer c yxasanntm n ceprn]nxare
-92 ERR_CRT_LEN Henepnax nnna ceprn]nxara
-93 ERR_BAD_PUBLIC_LEN Henepnax nnna orxptroro xnmua
HCK
-94 ERR_BAD_AUTH_OF_CARD Omnxa ayrenrn]nxannn
-95 ERR_INV_LUHN_CODE Henpannntnoe snauenne luhn-xoa
-96 ERR_NOT_FREE_MEM Heocrarouno cnoonoro mecra
-97 ERR_TRANS_KEY_VERIFY Omnxa nepn]nxannn rpancnoprnoro
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 19 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
xnmua
-98 ERR_CREATE_CARDFILE Omnxa npn cosannn ]ana na xapre
-99 ERR_WRITE_CARD_FILE Omnxa sanncn ]ana na xapry
-100 ERR_BAD_IDENT_CONTENT Henepnoe coepxnmoe ]ana 8000 na
xapre
-101 ERR_PERFILE_NOT_FOUND Orcyrcrnyer PER-]an
-102 ERR_SERNO_DONT_COMPAR He connaaer peantnt cepnnt
nomep xaprt n nomep, yxasannt n
PER-]ane
-103 ERR_BAD_START_DATE Henepnax ara nauana ecrnnx SAM-
xaprt
-104 ERR_BAD_END_DATE Henepnax ara oxonuannx ecrnnx
SAM-xaprt
-105 ERR_DATES_CONFLICT ara oxonuannx ecrnnx SAM-xaprt
npentmaer ary oxonuannx ecrnnx
ceprn]nxara orxptroro xnmua
+mnrenra
-106 ERR_PURSE_NOT_EMPTY Komenex ne nycro
-107 ERR_KEY_VERIFICATION Omnxa nepn]nxannn xnmua
-108 ERR_UPDATE_CARD_FILE Omnxa nepesanncn ]ana na xapre
-109 ERR_CHANGE_KEY Omnxa nsmenennx xnmua
-110 ERR_DEBIT_AMT_GRATE Cymma eera npentmaer ocrarox
xomentxa SAM-xaprt
-111 ERR_CREDIT_AMT_GRATE Pesyntrar cnoxennx ocrarxa
xomentxa n cymmt cpenra
npentmaer noronox xomentxa SAM-
xaprt
-112 ERR_UNBLOCK_KEY Omnxa enoxnponannx xnmua
-113 ERR_MAX_AMNT_LES_PURS Honoe snauenne noronxa xomentxa
SAM-xaprt mentme rexymero
ocrarxa n xomentxe
-114 ERR_UPDATE_MAX_AMOUNT Omnxa cment noronxa xomentxa
SAM-xaprt
-123 ERR_NOT_INITIALIZED He tna ntnonnena nnnnnannsannx
-124 ERR_UNKNOWN_ERROR Hensnecrnax omnxa
-125 ERR_FUNC_NOT_RELEASED
-126 ERR_USR_ABORT Paora nporpammt ocranonnena
nontsonarenem
/* Rest of CT-API */
-127 ERR_CT_API_ABORT Paora nporpammt ocranonnena
cepnepom
-128 ERR_CT_API_HTSI Omnxa nnxnero yponnx
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 20 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
4.2. Hpnuep nmsona qynxnnn uoynn ns nporpauum (Borland C++ v.5.01)

//----------------------------------------------------------------------------
//
// BC++ built 32-bit DLL's (Example of SAMexp.DLL call).
//
// Copyright (c) Dekart Ltd. All Rights Reserved
//
// This application tests calling into a 32-bit DLL built with Borland C++.
// Code was verified with Borland C++ 5.02
//
//----------------------------------------------------------------------------
//#include <mfc/afxwin.h> // For GetDlgItemText() + windows.h
#include <windows.h>
#include <stdio.h> // stdio.h
#include "SAMexp.h" // functions from SAMexp.dll
#include <stdlib.h>
#include <sys/stat.h>
#include <io.h>
#include <conio.h>
#include <dir.h>
#include <fstream.h>
#include <string.h>

//
// Declaration of DLL - functions
//

int ( __stdcall *pSAMexpIni)(char *Port, short ReaderType,
char *Iss_KeyFile, char *PIN,
char *Iss_ID, char *CRTfile,
char *IccNo,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpOpenCard)(char *PANcode, char *SerNo,
char *USRname, char
*StartDate,
char *EndDate, char *Ident, char *Auth,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpGetPurseData)(int PurseNo, char *CurCode,
char *AccountNo, char
*MaxAmount,
char *LastDebitDate, char *LastCreditDate,
char *PurseBalance, char *OperationHistory,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpDebit)(int PurseNo, unsigned long DebitAmount,
char *CurrentBalance,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpCredit)(int PurseNo, unsigned long CreditAmount,
char *PINcode, char
*CurrentBalance,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpChangePIN)(char *CurrentPINcode, char *NewPINcode,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpDeblockPIN)(char *PINcode,
char *ISOcmd, char *Data, char *SW1SW2);
int ( __stdcall *pSAMexpUpdateMaxAmount)(int PurseNo, unsigned long MaxAmount,
char *ISOcmd, char *Data, char *SW1SW2);
void ( __stdcall *pSAMexpClose)(void);

char xDll[] = "SAMexp.dll";
///////////////////////////////////////////////////////////////////////////////

int main()
{
//
// Declaration & Initial Values of variables
//
int status, purse;
char cardnum[33]=" ";
char port[20]=" ", pan_code[20]=" " ;
char cardpin[32]=" ", cardpin_n[32]="22222", name[40]=" ";
char iss_id[10]=" ", max_sum[5]=" ", curs[4]=" ", acc_no[20]=" ";
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 21 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
char date_d[7]=" ", date_c[7]=" ", date_s[7]=" ", date_e[7]=" ";
char history[256]=" ", balance[256];
char s_data[256]=" ", s_ISOcmd[256]=" ", s_error[256]=" ";
char s_auth[256]=" ", s_ident[256];
short reader;
char iss_key_file[MAX_PATH], iss_crt_file[MAX_PATH];
long int sum_c, sum_d, sum;

//
// Load the Dynamic Link LIbrary SAMexp.DLL
//
HINSTANCE hLib = LoadLibrary(xDll);
if ( (unsigned)hLib <= HINSTANCE_ERROR ) {
printf("Failure loading library: %s\n", xDll);
return 0;
}

//
// Get all the entry points for the functions we wish to test. Typedef's can
// be used to simplify casting the retrun value from GetProcAddress.
//
pSAMexpIni = (int ( __stdcall* )(char *Port, short ReaderType,
char *Iss_KeyFile, char *PIN,
char *Iss_ID, char *CRTfile,
char *IccNo,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpIni");
pSAMexpOpenCard = (int ( __stdcall* )(char *PANcode, char *SerNo,
char *USRname, char *StartDate,
char *EndDate, char *Ident, char *Auth,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpOpenCard");
pSAMexpGetPurseData = (int ( __stdcall* )(int PurseNo, char *CurCode,
char *AccountNo, char *MaxAmount,
char *LastDebitDate, char *LastCreditDate,
char *PurseBalance, char *OperationHistory,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpGetPurseData");
pSAMexpDebit = (int ( __stdcall* )(int PurseNo, unsigned long DebitAmount,
char *CurrentBalance,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpDebit");
pSAMexpCredit = (int ( __stdcall* )(int PurseNo, unsigned long CreditAmount,
char *PINcode, char *CurrentBalance,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpCredit");
pSAMexpChangePIN = (int ( __stdcall* )(char *CurrentPINcode, char *NewPINcode,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpChangePIN");
pSAMexpDeblockPIN = (int ( __stdcall* )(char *PINcode,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpDeblockPIN");
pSAMexpUpdateMaxAmount = (int ( __stdcall* )(int PurseNo, unsigned long MaxAmount,
char *ISOcmd, char *Data, char *SW1SW2))GetProcAddress(hLib,
"SAMexpUpdateMaxAmount");
pSAMexpClose = (void ( __stdcall* )(void))GetProcAddress(hLib, "SAMexpClose");

//
// GetProcAddress returns null on failure
//
if( pSAMexpIni == NULL) {
printf("1 - Failure locating procedures.\n");
return 0;
}
if (pSAMexpOpenCard == NULL) {
printf("2 - Failure locating procedures.\n");
return 0;
}
if( pSAMexpGetPurseData == NULL) {
printf("3 - Failure locating procedures.\n");
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 22 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
return 0;
}
if( pSAMexpDebit == NULL) {
printf("4 - Failure locating procedures.\n");
return 0;
}
if( pSAMexpCredit == NULL) {
printf("5 - Failure locating procedures.\n");
return 0;
}
if( pSAMexpChangePIN == NULL) {
printf("6 - Failure locating procedures.\n");
return 0;
}
if( pSAMexpDeblockPIN == NULL) {
printf("7 - Failure locating procedures.\n");
return 0;
}
if( pSAMexpUpdateMaxAmount == NULL) {
printf("8 - Failure locating procedures.\n");
return 0;
}
if( pSAMexpClose == NULL) {
printf("9 - Failure locating procedures.\n");
return 0;
}
//
// Load INI parameters
//
// port - name of com-port connected to reader
// reader - reader type
// cardpin - PIN-code to access card (issuer)
// iss_id - issuer identifier
// iss_key_file - name of file with keys of issuer
// iss_crt_file - name of file with issuer certificate
// per_file_path - path to file with parameters
// s_ISOcmd - CLA INS P1 P2 P3
// s_error - SW1SW2 (Status Code of Card operation)
// s_data - data for expert diagnostic
// s_auth - file AUTH content
// s_ident - file IDENT content

reader=2;
strcpy(iss_key_file,".\\94980001.SEC");
strcpy(iss_crt_file,".\\94980001.CRT");
strcpy(port,"COM2"); strcpy(cardpin,"1111");
strcpy(iss_id,"94980001");
/*printf("\n %s \n %s \n %s \n %s \n %s \n %s ",
iss_key_file, per_file_path, iss_crt_file, port, cardpin, iss_id); */

//
// Test of SAMexp
//
printf("\n Test of SAMexp");

// SAMserv operation
printf("\n\n Session initialization");
printf("\n Insert Acces Card of issuer in Reader"); getch();
status = pSAMexpIni(port, reader, iss_key_file, cardpin, iss_id,
iss_crt_file, cardnum,s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n IssNo: %s ", cardnum); // printing of card serial number
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 23 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
}
// SAM card open
printf("\n\n SAM card openning");
printf("\n Insert SAM Card of issuer in Reader"); getch();

status = pSAMexpOpenCard(pan_code, cardnum, name, date_s, date_e,
s_ident, s_auth,s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n SAM_No: %s ", cardnum); // printing of SAM card serial number
printf("\n PAN: %s ", pan_code); // printing of SAM card PAN code
printf("\n Name: %s ", name); // printing of name
printf("\n Start date: %s ", date_s); // printing of start date
printf("\n End date: %s ", date_s); // printing of start date
printf("\n Ident: %s ", s_ident); // printing of Ident
printf("\n Auth: %s ", s_auth); // printing of Auth
}
// SAM card PIN changing
printf("\n\n SAM card PIN changing (new PIN - 22222)");

status = pSAMexpChangePIN(cardpin, cardpin_n, s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else printf("\n status: %d ", status);

printf("\n\n SAM card PIN changing (new PIN - 1111)");

strcpy(cardpin,cardpin_n); strcpy(cardpin_n,"1111");
status = pSAMexpChangePIN(cardpin, cardpin_n, s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else printf("\n status: %d ", status);
strcpy(cardpin,cardpin_n);

// SAM card PIN deblocking
printf("\n\n SAM card PIN deblocking");

status = pSAMexpDeblockPIN(cardpin,s_ISOcmd,s_data,s_error);

if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else printf("\n status: %d ", status);

// SAM card reading #1
printf("\n\n SAM card reading");

for(purse=1; purse<4; purse++) {
printf("\n\n Purse %d", purse);
status = pSAMexpGetPurseData(purse, curs, acc_no, max_sum, date_d, date_c,
balance, history,s_ISOcmd,s_data,s_error);

if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n cur_code: %s ", curs); // printing of cur_code
printf("\n Account: %s ", acc_no); // printing of account_number
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 24 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
printf("\n MaxAmount: %s ", max_sum); // printing of MaxAmount
printf("\n Last debit date: %s ", date_d); // printing of debit date
printf("\n Last credit date: %s ", date_c); // printing of credit date
printf("\n Purse balance: %s ", balance); // printing of balance
printf("\n Purse history: %s ", history); // printing of history
}
printf("\n ...."); getch();
}
// SAM card MaxAmount changing
printf("\n\n SAM card MaxAmount changing");

for(purse=1; purse<4; purse++) {

printf("\n\n Purse %d", purse);

status = pSAMexpGetPurseData(purse, curs, acc_no, max_sum, date_d, date_c,
balance, history,s_ISOcmd,s_data,s_error);

if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else printf("\n Old MaxAmount: %s ", max_sum); // printing of MaxAmount

//sum=atol(max_sum);
sum=200000;
status = pSAMexpUpdateMaxAmount(purse, sum, s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else printf("\n status: %d ", status);

status = pSAMexpGetPurseData(purse, curs, acc_no, max_sum, date_d, date_c,
balance, history,s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else printf("\n New MaxAmount: %s ", max_sum); // printing of MaxAmount
printf("\n ...."); getch();
}
// SAM card credit
printf("\n\n SAM card credit");
sum_c=100;
for(purse=1; purse<4; purse++) {
printf("\n Purse %d", purse);
status = pSAMexpCredit(purse, sum_c, cardpin, balance, s_ISOcmd,s_data,s_error);

if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n Purse balance: %s ", balance); // printing of balance
}
sum_c+=50;
}
// SAM card reading #2
printf("\n\n SAM card purses reading after credit operation");

for(purse=1; purse<4; purse++) {
printf("\n\n Purse %d", purse);
status = pSAMexpGetPurseData(purse, curs, acc_no, max_sum, date_d, date_c,
balance, history,s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 25 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno
cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n Last debit date: %s ", date_d); // printing of debit date
printf("\n Last credit date: %s ", date_c); // printing of credit date
printf("\n Purse balance: %s ", balance); // printing of balance
printf("\n Purse history: %s ", history); // printing of history
}
printf("\n ...."); getch();
}
// SAM card debit
printf("\n\n SAM card debit");
sum_d=100;
for(purse=1; purse<4; purse++) {
printf("\n Purse %d", purse);

status = pSAMexpDebit(purse, sum_d, balance, s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n Purse balance: %s ", balance); // printing of balance
}
sum_d+=50;
}
// SAM card reading #3
printf("\n\n SAM card purses reading after debit operation");

for(purse=1; purse<4; purse++) {
printf("\n\n Purse %d", purse);
status = pSAMexpGetPurseData(purse, curs, acc_no, max_sum, date_d, date_c,
balance, history,s_ISOcmd,s_data,s_error);
if(status<0) {printf("\n error: %d ", status);
printf("\n ISOcmd: %s ", s_ISOcmd);
printf("\n Data : %s ", s_data);
printf("\n SW1SW2: %s ", s_error);
return 0;} // status printing
else {printf("\n status: %d ", status);
printf("\n Last debit date: %s ", date_d); // printing of debit date
printf("\n Last credit date: %s ", date_c); // printing of credit date
printf("\n Purse balance: %s ", balance); // printing of balance
printf("\n Purse history: %s ", history); // printing of history
}
printf("\n ...."); getch();
}
printf("\n\n Session closing");
// psPersoClose operation
pSAMexpClose();

printf("\n");
if((unsigned)hLib>HINSTANCE_ERROR)
FreeLibrary(hLib);
cout << endl <<"done." <<endl;
return 0;
}
4.3. mopua1m xouan, noanaeumx na xap1y n nosnpamaeumn xo c1a1yca
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
6A-84 Heocrarouno namxrn, ocrynno nx cosannx ]ana
6A-80 1. Cosanaemt ]an c nenrn]nxaropom ID yxe cymecrnyer
n ponrentcxom xaranore
2. BS/RL ne nenoe uncno nnn npentmaer FF nnn yxe 254
]ana cosant n rexymem xaranore
3. BS=0 (ecnn P3=0Bh nnn P3=0Eh), RL=0 (ecnn P3=0Bh),
06>RL>16h (ecnn EPF), RL=FFh (ecnn FT=06), BS>80h
(ecnn FT=29h),
62-83 Ponrentcxn xaranor sanopuen
67-00 Omnxa napamerpa P3:
P309h (DF), P30Bh (EF), P30Eh (EPF),
69-82 He conment ycnonnx ocryna
69-85 Btpan ne DF (xaranor) nnn yxe 3 yponnx npncyrcrnymr na
xapre (ecnn P3=09h)
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
1 00 E0 Cosanne ]ana 00 00 09,
0B,
0E
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 He ntpan FD (npexropnx)
6A-82 uan sanopuen (paspymen)
69-82 He conment ycnonnx ocryna
62-83 1. npexropnx FD ne nycrax
2. uan ne tn cosan nocnennm n rexymem xaranore
3. Fananc xomentxa ne panen 0
4. uan-xeron ne nycro
67-00 P302
6A-82 1. Orcyrcrnyer nenrnrn]nxarop ]ana
2. 3anopuen ponrentcxn xaranor
65-81 Hponemt namxrn
2 00 E4 Vanenne ]ana 00 00 02
64-00 3annct ne tna ntnonnena
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 27 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 He ntpan FD (npexropnx)
69-82 He conment ycnonnx ocryna
62-83 npexropnx FD yxe nmeer craryc e]exrno
67-00 Henepnt napamerp P3
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
3 00 04 Hpnanne xaranory
craryca e]exrnoro
(neecrnnrentnoro)
00 00 00
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 He ntpan FD (npexropnx)
69-82 He conment ycnonnx ocryna
62-83 npexropnx FD yxe noccranonnena
67-00 Henepnt napamerp P3
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
4 00 44 Boccranonnenne
e]exrnoro xaranora
00 00 00
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 He ntpan nn onn ns ]anon:
1. C_Key
2. P&V_Key
3. CHV_Key
69-82 He conment ycnonnx ocryna
69-81 1. KtD ne cosan (ne axrnnnponan)
2. EF-KEY ne cosan, xnmu nx sanncn ne axrnnnponan
69-83 KtD nnn xnmu nx sanncn (sarpysxn) noxnponant
67-00 P310h
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
5 00 DA 3annct (sarpysxa)
xnmua
KtD KN 10h
90-00 Hopmantnoe sanepmenne xomant
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 28 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-83 CHV/Key yxe sanoxnponan nnn noxnpyercx (nenpannntnt
CHV/Key)
69-81 EF- CHV/EF-KEY ne cosan na xapre, CHV/Key ne axrnnnponan
nnn KEY ne cymecrnyer
67-00 P308
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
63-00 Henepnt CHV/Key (eme ne sanoxnponan)
6 00 20 Bepn]nxannx xnmua 00 KN 08
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-83 CHV/Key yxe sanoxnponan nnn noxnpyercx (nenpannntnt
CHV/Key)
69-81 EF- CHV/EF-KEY ne cosan na xapre, CHV/Key ne axrnnnponan
nnn KEY ne cymecrnyer
67-00 P310
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
63-00 Henepnt CHV/Key (eme ne sanoxnponan)
7 00 24 Hsmenenne xnmue
CHV, P&V_KEY
Mode
&
KtD
KN 10h
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-83 CHV/Key yxe sanoxnponan nnn noxnpyercx (nenpannntnt
CHV/Key)
69-81 EF- CHV/EF-KEY ne cosan na xapre, CHV/Key ne axrnnnponan
nnn KEY ne cymecrnyer
67-00 P308
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
63-00 Henpannntnt CHV/Key (eme ne sanoxnponan)
8 00 2C enoxnponanne
CHV/KEY
Mode KN 08
90-00 Hopmantnoe sanepmenne xomant
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 29 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
67-00 P308
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
9 00 84 Honyunrt cnyuanoe
uncno
00 00 08
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 Hpenapnrentno ne tna ntnonnena xomana nonyunrt
cnyuanoe uncno
69-83 KEY yxe sanoxnponan nnn noxnpyercx (nenepnte annte)
69-81 EF-KEY ne cosan na xapre, KEY ne axrnnnponan nnn ne
cymecrnyer
67-00 P306
65-81 Hponemt namxrn
63-00 Henepnte annte (KEY eme ne sanoxnponan)
64-00 3annct ne tna ntnonnena
62-00 Hopmantnoe sanepmenne c necxontxnmn nontrxamn sanncn
10 00 82 Bnemnxx
ayrenrn]nxannx
00 KN 06
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-81 1. EF-C_KEY ne cosan,
2. xnmu ne axrnnnponan nnn ne cymecrnyer
3. xnmu ne EF-C_KEY
4. nenepnt rnn xnmua
5. ne panen xnmuy nx 3DES
67-00 P308
11 00 88 Bnyrpennxx
ayrenrn]nxannx
00 KN 08
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
12 00 8A Ceprn]nxannx
xpenronannx
00 KN 0A
69-85 Hpenapnrentno ne tna ntnonnena onepannx eeronannx
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 30 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
69-81 1. EF-KEY ne cosan,
2. xnmu ne axrnnnponan nnn ne cymecrnyer
3. nenepnt rnn xnmua
4. ne panen xnmuy nx 3DES
67-00 P30A
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 Hpenapnrentno ne tna ntnonnena onepannx eeronannx
69-81 1. EF-KEY ne cosan,
2. xnmu ne axrnnnponan nnn ne cymecrnyer
3. nenepnt rnn xnmua
4. ne panen xnmuy nx 3DES
67-00 P30A
12 00 8C Ceprn]nxannx
eeronannx
00 KN
00
0E
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
6A-86 Henepnte napamerpt P1 nnn P2
6A-82 He yxasan nenrn]nxarop ]ana nnn nencnpanen ponrentcxn
xaranor, uro ntstnaer omnxy ntopa EF nnn nenepnym
xonrpontnym cymmy
62-83 Btpannt xaranor - e]exrnt
67-00 P302
13 00 A4 Btop ]ana 00 00 02
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
6B-00 Henepnt rnn (P202 nnn P204)
6A-83 1. Ononnxemax sannct nocnenxx (rnn next)
2. 3annct ne sanncana (P1>NWR, rnn absolute) n nnnent
]an
3. 3annct ne cymecrnyer (P1>NR, rnn absolute)
69-85 He ntpan ]an EF
14 00 DC Hepesannct anntx Rec
Nr
Mode
02,
04
lgth
69-82 He conment ycnonnx ocryna
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 31 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
67-00 P3 ne coornercrnyer nnne sanncn
65-81 Hponemt namxrn
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
6B-00 Henepnt rnn (P202 nnn P204)
69-85 He ntpan ]an EPF (xomenex)
69-82 He conment ycnonnx ocryna nx ononnennx noronxa
xomentxa
67-00 P304
65-81 Hponemt namxrn
15 00 DE Hepesannct noronxa
xomentxa
00 00 04
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
6B-00 Henepnt rnn (P200 nnn P202 nnn P204)
6A-86 Henepnt napamerp P2 nx EMV (P2SFI+100)
6A-83 1. unraemax sannct nocnenxx (rnn next)
2. 3annct ne sanncana (P1>NWR, rnn absolute) n nnnent
]an
3. 3annct ne cymecrnyer (P1>NR, rnn absolute)
69-85 He ntpan ]an EPF (xomenex)
69-82 He conment ycnonnx ocryna nx ononnennx noronxa
xomentxa
67-00 P304
65-81 Hponemt namxrn
16 00 B2 urenne sanncn 00 00 04
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 1. Hpenapnrentno ne tna ntnonnena xomana nonyunrt
cnyuanoe uncno
2. He tn ntpan xomenex (]an EPF)
17 00 52 Onepannx
xpenronannx
00 00 0A
69-83 KEY yxe sanoxnponan nnn noxnpyercx (nenepnt
ceprn]nxar)
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 32 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
69-82 He conment ycnonnx ocryna
69-81 1. EF-KEY ne cosan,
2. xnmu ne axrnnnponan nnn ne cymecrnyer
3. ner xnmua n RAM
67-00 P30Ah
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
63-00 Henepnt ceprn]nxar (KEY eme ne sanoxnponan)
62-81 uan EPF (xomenex) paspymen
62-00 Hopmantnoe sanepmenne c necxontxnmn nontrxamn sanncn
94-03 Fananc xomentxa + cymma xpenra > noronxa xomentxa
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
69-85 1. Hpenapnrentno ne tna ntnonnena xomana nonyunrt
cnyuanoe uncno
2. He tn ntpan xomenex (]an EPF)
69-83 KEY yxe sanoxnponan nnn noxnpyercx (nenepnt
ceprn]nxar)
69-82 He conment ycnonnx ocryna
69-81 1. EF-KEY ne cosan,
2. xnmu ne axrnnnponan nnn ne cymecrnyer
67-00 P30Ah
65-81 Hponemt namxrn
64-00 3annct ne tna ntnonnena
63-00 Henepnt ceprn]nxar (KEY eme ne sanoxnponan)
62-81 uan EPF (xomenex) paspymen
62-00 Hopmantnoe sanepmenne c necxontxnmn nontrxamn sanncn
94-03 Fananc xomentxa < cymma eera
18 00 54 Onepannx
eeronannx
00 00 0A
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
19 00 C0 Honyunrt orxnnx 00 00 lgth
67-00 Henepnt napamerp P3
DSSSCT File : samex_pg.doc Ref : SAMEXPPG0000 Revision:2.0 33 / 33
Copyright Dekart S.R.L (www.dekart.com) - 2001
This document shall not be disclosed to a third party without prior written consent of Dekart S.R.L.
Hnxaxax uacrt annoro oxymenra ne moxer trt nocnponsneena n xaxo t ro nn tno ]opme n xaxnmn t, ro nn tno cpecrnamn es nnctmennoro paspemennx nnaentna anropcxnx npan.
Ccmnxa na opnrnnan onsa1entna.
Nn/n Class
(CLA)
Instr.
(INS)
Hasnanne P1 P2 P3 SW1-
SW2
Kouuen1apnn
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
67-00 P308
69-81 B xapre cosan ne ]an EF-C_KEY, Master Key ne axrnnnponan
nnn ne cymecrnyer
20 00 8E enepannx
nnepcn]nnnponann
oro xnmua C_KEY
12 KN 08
90-00 Hopmantnoe sanepmenne xomant
6E-00 Knacc ne panen 00
6D-00 Hensnecrnax nncrpyxnnx
67-00 P308
69-81 Master Key noxnponan
69-83 B xapre cosan ne ]an EF- P&V_KEY, Master Key ne
axrnnnponan nnn ne cymecrnyer
21 00 8E enepannx
nnepcn]nnnponann
oro xnmua
P&V_KEY
12 KN 08
90-00 Hopmantnoe sanepmenne xomant
Omnxn
npo1oxona
22 FF-FF Omnxa ntsnana coem n xomntmrepe nnn n CT-API tnn
nepeant nenepnte napamerpt
23 FF-FE Komana npepnana nontsonarenem
24 FF-FD Henepnoe snauenne xonrpontno cymmt naxera, nepeannoro c
xaprt
25 FF-FC Henepnte annte
26 FF-FB Omnxa nporoxona
27 FF-F8 Omnxm CT-API: CT npemenno neocrynen
28 FF-F6 Heycrpannmax omnxa nepeaun
29 FF-F5 Omnxa saxnara namxrn
30 FF-81 Paora nporpammt ocranonnena cepnepom
31 FF-80 Omnxa nnxnero yponnx

You might also like