Java card technology for smart cards:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Boston [u.a.]
Addison-Wesley
2000
|
Schriftenreihe: | The Java series
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXII, 368 S. graph. Darst. |
ISBN: | 0201703297 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV013987248 | ||
003 | DE-604 | ||
005 | 20020913 | ||
007 | t | ||
008 | 011030s2000 d||| |||| 00||| eng d | ||
020 | |a 0201703297 |9 0-201-70329-7 | ||
035 | |a (OCoLC)635039880 | ||
035 | |a (DE-599)BVBBV013987248 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-91G |a DE-1046 |a DE-526 | ||
084 | |a ST 175 |0 (DE-625)143603: |2 rvk | ||
084 | |a DAT 362f |2 stub | ||
100 | 1 | |a Chen, Zhiqun |e Verfasser |4 aut | |
245 | 1 | 0 | |a Java card technology for smart cards |c Zhiqun Chen |
264 | 1 | |a Boston [u.a.] |b Addison-Wesley |c 2000 | |
300 | |a XXII, 368 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a The Java series | |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Chipkarte |0 (DE-588)4147723-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Chipkarte |0 (DE-588)4147723-6 |D s |
689 | 0 | 1 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m HEBIS Datenaustausch Darmstadt |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009573029&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-009573029 |
Datensatz im Suchindex
_version_ | 1804128837962825728 |
---|---|
adam_text | JAVA CARD* TECHNOLOGY FOR SMART CARDS ARCHITECTURE AND PROGRAMMER S
GUIDE ZHIQUN CHEN ADDISON-WESLEY BOSTON * SAN FRANCISCO * NEW YORK *
TORONTO * MONTREAL LONDON * MUNICH * PARIS * MADRID CAPETOWN * SYDNEY *
TOKYO * SINGAPORE * MEXICO CITY CONTENTS FOREWORD XVII PREFACE XIX PART
1 INTRODUCTION 1 1 FROM THE BEGINNING 3 1.1 SMART CARDS 3 1.1.1 BRIEF
HISTORY 3 1.1.2 BENEFITS 4 1.1.3 APPLICATIONS 5 1.2 CHALLENGES IN THE
DEVELOPMENT OF SMART CARD APPLICATIONS 7 1.3 APPLYING JAVA TO SMART
CARDS 8 1.3.1 BENEFITS OF JAVA CARD TECHNOLOGY 8 1.3.2 BRIEF HISTORY OF
JAVA CARD TECHNOLOGY 9 2 SMART CARD BASICS 11 2.1 OVERVIEW OF SMART
CARDS 11 2.2 BASIC CARD TYPES 11 2.2.1 MEMORY CARDS VERSUS
MICROPROCESSOR CARDS 12 2.2.2 CONTACT CARDS VERSUS CONTACTLESS CARDS 13
2.3 SMART CARD HARDWARE 14 2.3.1 SMART CARD CONTACT POINTS 14 2.3.2
SMART CARD CENTRAL PROCESSING UNIT 15 2.3.3 SMART CARD COPROCESSORS 15
2.3.4 SMART CARD MEMORY SYSTEM 16 IX CONTENTS 2.4 SMART CARD
COMMUNICATION 17 2.4.1 CARD ACCEPTANCE DEVICE AND HOST APPLICATIONS 17
2.4.2 SMART CARD COMMUNICATION MODEL 17 2.4.3 APDU PROTOCOL 18 2.4.4
TPDU PROTOCOL 20 2.4.5 ATR 20 2.5 SMART CARD OPERATING SYSTEMS 21 2.5.1
SMART CARD FILE SYSTEMS 21 2.5.2 MASTER FILE 22 2.5.3 DEDICATED FILE 22
2.5.4 ELEMENTARY FILE 22 2.6 SMART CARD SYSTEMS 23 2.7 SMART CARD
STANDARDS AND SPECIFICATIONS 24 2.7.1 ISO 7816 STANDARDS 24 2.7.2 GSM 25
2.7.3 EMV 25 2.7.4 OPEN PLATFORM 25 2.7.5 OPENCARD FRAMEWORK 26 2.7.6
PC/SC 26 PART 2 JAVA CARD TECHNOLOGY 27 3 JAVA CARD TECHNOLOGY OVERVIEW
29 3.1 ARCHITECTURE OVERVIEW 29 3.2 JAVA CARD LANGUAGE SUBSET 30 3.3
JAVA CARD VIRTUAL MACHINE 31 3.3.1 CAP FILE AND EXPORT FILE 32 3.3.2
JAVA CARD CONVERTER 33 3.3.3 JAVA CARD INTERPRETER 34 3.4 JAVA CARD
INSTALLER AND OFF-CARD INSTALLATION PROGRAM 34 3.5 JAVA CARD RUNTIME
ENVIRONMENT 36 3.5.1 JCRE LIFETIME 37 3.5.2 HOW DOES THE JCRE OPERATE
DURING A CAD SESSION? 38 3.5.3 JAVA CARD RUNTIME FEATURES 39 3.6 JAVA
CARD APIS 40 3.6.1 JAVA. LANG PACKAGE 40 3.6.2 JAVACARD. FRAMEWORK
PACKAGE 41 3.6.3 JAVACARD.SECURITY PACKAGE 41 3.6.4 JAVACARDX.CRYPTO
PACKAGE 42 CONTENTS XI 3.7 JAVA CARD APPLETS 42 3.8 PACKAGE AND APPLET
NAMING CONVENTION 43 3.9 APPLET DEVELOPMENT PROCESS 44 3.10 APPLET
INSTALLATION 45 3.10.1 ROM APPLETS 46 3.10.2 PREISSUANCE OR POSTISSUANCE
APPLETS 46 3.10.3 POSTISSUANCE APPLET INSTALLATION 46 3.10.4 ERROR
RECOVERY DURING APPLET INSTALLATION 47 3.10.5 INSTALLATION CONSTRAINTS
48 JAVA CARD OBJECTS 49 4.1 JAVA CARD MEMORY MODEL 49 4.2 PERSISTENT
OBJECTS 50 4.3 TRANSIENT OBJECTS 51 4.3.1 PROPERTIES OF TRANSIENT
OBJECTS 52 4.3.2 TRANSIENT OBJECT TYPES 52 4.3.3 CREATING TRANSIENT
OBJECTS 53 4.3.4 QUERYING TRANSIENT OBJECTS 54 4.4 A FEW WORDS ABOUT
OBJECT CREATION AND DELETION 54 ATOMICITY AND TRANSACTIONS 57 5.1
ATOMICITY 57 5.2 BLOCK DATA UPDATES IN AN ARRAY 58 5.3 TRANSACTIONS 59
5.3.1 COMMIT TRANSACTION 59 5.3.2 ABORT TRANSACTION 59 5.3.3 NESTED
TRANSACTION 60 5.3.4 COMMIT CAPACITY 60 5.3.5 TRANSACT! ONEXCEPTI ON 61
5.3.6 LOCAL VARIABLES AND TRANSIENT OBJECTS DURING A TRANSACTION 62 JAVA
CARD EXCEPTIONS AND EXCEPTION HANDLING 65 6.1 EXCEPTIONS IN THE J AVA. 1
ANG PACKAGE 65 6.2 JAVA CARD EXCEPTIONS 66 6.2.1 JAVA CARD EXCEPTION
REASON CODE 67 6.2.2 THROWING AN EXCEPTION IN THE JAVA CARD PLATFORM 68
6.2.3 ISOEXCEPTION 69 6.2.4 USEREXCEPTI ON 69 XLL CONTENTS 7 JAVA CARD
APPLETS 71 7.1 APPLET OVERVIEW 71 7.1.1 APPLET INSTALLATION AND
EXECUTION 71 7.1.2 APPLET COMMUNICATION 72 7.2 CLASS
JAVACARD.FRAMEWORK.APPLET 73 7.3 INSTALL METHOD 74 7.3.1 CREATING
OBJECTS IN THE APPLET S CONSTRUCTOR 76 7.3.2 REGISTERING THE APPLET
INSTANCE WITH THE JCRE 76 7.3.3 PROCESSING THE INSTALLATION PARAMETERS
77 7.3.4 FURTHER APPLET INITIALIZATION 79 7.4 SELECT METHOD 80 7.4.1
SELECT APDU FORMAT AND PROCESSING 80 7.4.2 DEFAULT APPLET 81 7.5
DESELECT METHOD 82 7.6 PROCESS METHOD 82 7.7 OTHER METHODS IN THE CLASS
JAVACARD. FRAMEWORK. APPLET 83 8 WORKING WITH APDUS 85 8.1 APDU CLASS 85
8.1.1 APDU OBJECT 86 8.1.2 APDU BUFFER SIZE 86 8.2 INTERFACE IS07816 87
8.3 WORKING WITH APDUS IN APPLETS 87 8.3.1 RETRIEVE THE APDU BUFFER 87
8.3.2 EXAMINE THE COMMAND APDU HEADER 88 8.3.3 RECEIVE APDU COMMAND DATA
89 8.3.3.1 RECEIVING LONG COMMAND DATA 90 8.3.4 PROCESS THE APDU COMMAND
AND GENERATE THE RESPONSE DATA 92 8.3.5 RETURN APDU RESPONSE DATA 92
8.3.5.1 SENDING DATA FROM OTHER LOCATIONS 95 8.3.5.2 SENDING A LONG
RESPONSE 95 8.3.6 RETURN THE STATUS WORD 97 8.4 PROTOCOL-SPECIFIC APDU
PROCESSING 98 8.4.1 METHOD GETPROTOCOL 98 8.4.2 METHOD GETLNBLOCKSIZE 98
8.4.3 METHOD GETOUTBLOCKSIZE 99 8.4.4 METHOD SETOUTGOINGNOCHAINING 101
CONTENTS XIII 8.4.5 METHOD GETNAD 101 8.4.6 METHOD WAI TEXTENSI ON 101
8.5 SUMMARY 102 9 APPLET FIREWALL AND OBJECT SHARING 105 9.1 APPLET
FIREWALL 105 9.1.1 CONTEXTS 106 9.1.2 OBJECT OWNERSHIP 107 9.1.3 OBJECT
ACCESS 107 9.1.4 TRANSIENT ARRAY AND CONTEXT 108 9.1.5 STATIC FIELDS AND
METHODS 108 9.2 OBJECT SHARING ACROSS CONTEXTS 109 9.2.1 CONTEXT SWITCH
109 9.2.2 JCRE PRIVILEGES 110 9.2.3 JCRE ENTRY POINT OBJECTS 110 9.2.4
GLOBAL ARRAYS ILL 9.2.5 OBJECT SHAREABLE INTERFACE MECHANISM 112 9.2.5.1
SHAREABLE INTERFACE 112 9.2.5.2 SHAREABLE INTERFACE OBJECT 113 9.2.5.3
THOUGHTS BEHIND THE SHAREABLE INTERFACE MECHANISM 113 9.2.5.4 AN EXAMPLE
OF OBJECT SHARING BETWEEN APPLETS 114 9.2.5.5 CREATE A SHAREABLE
INTERFACE OBJECT 115 9.2.5.6 REQUEST A SHAREABLE INTERFACE OBJECT 116
9.2.5.7 USE A SHAREABLE INTERFACE OBJECT 118 9.2.5.8 CONTEXT SWITCHES
DURING OBJECT SHARING 120 9.2.5.9 PARAMETER TYPES AND RETURN TYPES IN
SHAREABLE INTERFACE METHODS 121 9.2.5.10 AUTHENTICATE A CLIENT APPLET
122 9.2.5.11 GETPREVIOUSCONTEXTAID METHOD 126 9.2.5.12 SUMMARY 127 10
PROGRAMMING CRYPTOGRAPHY 129 10.1 QUICK TOUR OF CRYPTOGRAPHY 129 10.1.1
ENCRYPTION AND DECRYPTION 130 10.1.2 MESSAGE DIGEST 133 10.1.3 DIGITAL
SIGNATURE 134 10.1.4 RANDOM DATA 135 XIV CONTENTS 10.2 CRYPTOGRAPHIC
PRACTICE IN SMART CARD APPLICATIONS 135 10.2.1 ENSURING APPLICATION
SECURITY 135 10.2.2 FUNCTIONING AS A SECURE TOKEN 136 10.2.3 SUMMARY 137
10.3 JAVA CARD CRYPTOGRAPHY APIS 137 10.3.1 DESIGN PRINCIPLES 137 10.3.2
ARCHITECTURE 138 10.3.3 PACKAGE STRUCTURE 139 10.4 CODE EXAMPLES 141
10.4.1 COMPUTE A MESSAGE DIGEST 141 10.4.2 BUILD A CRYPTOGRAPHIC KEY 143
10.4.3 SIGN AND VERIFY A SIGNATURE 145 10.4.4 ENCRYPT AND DECRYPT DATA
147 10.4.5 GENERATE RANDOM DATA 148 11 JAVA CARD PLATFORM SECURITY 151
11.1 JAVA CARD PLATFORM SECURITY FEATURES 151 11.1.1 JAVA LANGUAGE
SECURITY 152 11.1.2 ADDITIONAL SECURITY FEATURES OF THE JAVA CARD
PLATFORM ... 152 11.2 JAVA CARD PLATFORM SECURITY MECHANISMS 153 11.2.1
COMPILE-TIME CHECKING 154 11.2.2 CLASS FILE VERIFICATION AND SUBSET
CHECKING 154 11.2.3 CAP FILE AND EXPORT FILE VERIFICATION 156 11.2.4
INSTALLATION CHECKING 158 11.2.5 CRYPTOGRAPHICALLY ENFORCED CHAIN TRUST
160 11.2.6 RUNTIME SECURITY ENFORCEMENT 160 11.2.7 JAVA CARD
CRYPTOGRAPHIC SUPPORT 162 11.3 APPLET SECURITY 162 PART 3 PROGRAMMING
GUIDE AND TIPS 165 12 STEP-BY-STEP APPLET DEVELOPMENT GUIDE 167 12.1
DESIGN THE APPLET 167 12.1.1 SPECIFY THE FUNCTIONS OF THE APPLET 167
12.1.2 SPECIFY AIDS FOR THE APPLET 168 12.1.3 DEFINE THE CLASS STRUCTURE
AND METHOD FUNCTIONS OF THE APPLET 169 12.1.4 DEFINE THE INTERFACE
BETWEEN THE APPLET AND ITS HOST APPLICATION 170 12.1.4.1 SELECT APDU 171
12.1.4.2 VERIFY APDU 171 CONTENTS XV 12.1.4.3 CREDIT APDU 172 12.1.4.4
DEBIT APDU 172 12.1.4.5 GET BALANCE APDU 173 12.2 CONSTRUCT THE APPLET
CODE 173 12.2.1 WALLET APPLET CODE 174 12.2.2 IMPLEMENT ERROR CHECKING
180 12.3 WHAT S THE NEXT STEP? 181 13 APPLET OPTIMIZATION 183 13.1
OPTIMIZING AN APPLET S OVERALL DESIGN 183 13.2 ON-CARD EXECUTION TIME
184 13.3 METHOD INVOCATIONS 184 13.4 CREATING OBJECTS IN APPLETS 185
13.5 REUSING OBJECTS 185 13.6 ELIMINATING REDUNDANT CODE 186 13.7
ACCESSING ARRAYS 187 13.8 THE SWITCH STATEMENT VERSUS THE IF-ELSE
STATEMENT 189 13.9 ARITHMETIC STATEMENTS 191 13.10 OPTIMIZING VARIABLES
IN APPLETS 191 14 WORKING WITH INT DATA TYPE 195 14.1 32-BIT ARITHMETIC
OPERATIONS 195 14.2 ARRAY SIZE AND ARRAY INDEX 206 14.3 STORING AND
COMPUTING I NT VALUES 207 14.4 SUMMARY 213 PART 4 APPENDICES 215 A JAVA
CARD LANGUAGE SUBSET 217 B JAVA CARD 2.1 APPLICATION PROGRAMMING
INTERFACE 224 GLOSSARY 357 BIBLIOGRAPHY 361 INDEX 363
|
any_adam_object | 1 |
author | Chen, Zhiqun |
author_facet | Chen, Zhiqun |
author_role | aut |
author_sort | Chen, Zhiqun |
author_variant | z c zc |
building | Verbundindex |
bvnumber | BV013987248 |
classification_rvk | ST 175 |
classification_tum | DAT 362f |
ctrlnum | (OCoLC)635039880 (DE-599)BVBBV013987248 |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01363nam a2200361 c 4500</leader><controlfield tag="001">BV013987248</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20020913 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">011030s2000 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0201703297</subfield><subfield code="9">0-201-70329-7</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)635039880</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV013987248</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-91G</subfield><subfield code="a">DE-1046</subfield><subfield code="a">DE-526</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 175</subfield><subfield code="0">(DE-625)143603:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 362f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Chen, Zhiqun</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Java card technology for smart cards</subfield><subfield code="c">Zhiqun Chen</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Boston [u.a.]</subfield><subfield code="b">Addison-Wesley</subfield><subfield code="c">2000</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXII, 368 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">The Java series</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Chipkarte</subfield><subfield code="0">(DE-588)4147723-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Chipkarte</subfield><subfield code="0">(DE-588)4147723-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HEBIS Datenaustausch Darmstadt</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009573029&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-009573029</subfield></datafield></record></collection> |
id | DE-604.BV013987248 |
illustrated | Illustrated |
indexdate | 2024-07-09T18:55:36Z |
institution | BVB |
isbn | 0201703297 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-009573029 |
oclc_num | 635039880 |
open_access_boolean | |
owner | DE-91G DE-BY-TUM DE-1046 DE-526 |
owner_facet | DE-91G DE-BY-TUM DE-1046 DE-526 |
physical | XXII, 368 S. graph. Darst. |
publishDate | 2000 |
publishDateSearch | 2000 |
publishDateSort | 2000 |
publisher | Addison-Wesley |
record_format | marc |
series2 | The Java series |
spelling | Chen, Zhiqun Verfasser aut Java card technology for smart cards Zhiqun Chen Boston [u.a.] Addison-Wesley 2000 XXII, 368 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier The Java series Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Chipkarte (DE-588)4147723-6 gnd rswk-swf Chipkarte (DE-588)4147723-6 s Java Programmiersprache (DE-588)4401313-9 s DE-604 HEBIS Datenaustausch Darmstadt application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009573029&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Chen, Zhiqun Java card technology for smart cards Java Programmiersprache (DE-588)4401313-9 gnd Chipkarte (DE-588)4147723-6 gnd |
subject_GND | (DE-588)4401313-9 (DE-588)4147723-6 |
title | Java card technology for smart cards |
title_auth | Java card technology for smart cards |
title_exact_search | Java card technology for smart cards |
title_full | Java card technology for smart cards Zhiqun Chen |
title_fullStr | Java card technology for smart cards Zhiqun Chen |
title_full_unstemmed | Java card technology for smart cards Zhiqun Chen |
title_short | Java card technology for smart cards |
title_sort | java card technology for smart cards |
topic | Java Programmiersprache (DE-588)4401313-9 gnd Chipkarte (DE-588)4147723-6 gnd |
topic_facet | Java Programmiersprache Chipkarte |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=009573029&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT chenzhiqun javacardtechnologyforsmartcards |