├── CCU2F ├── .jcop ├── .project ├── U2F Example Attestation Certificate and Key Bytes.txt ├── U2F-FIDO_Cert_install_APDUs.txt ├── build.xml ├── cap │ └── ccu2f.cap ├── extlibs │ ├── .gitignore │ └── jc303_kit │ │ ├── COPYRIGHT.html │ │ ├── RELEASENOTES-CL.html │ │ ├── Uninstaller │ │ └── uninstaller.jar │ │ ├── api_export_files │ │ ├── java │ │ │ ├── io │ │ │ │ └── javacard │ │ │ │ │ └── io.exp │ │ │ ├── lang │ │ │ │ └── javacard │ │ │ │ │ └── lang.exp │ │ │ └── rmi │ │ │ │ └── javacard │ │ │ │ └── rmi.exp │ │ ├── javacard │ │ │ ├── framework │ │ │ │ ├── javacard │ │ │ │ │ └── framework.exp │ │ │ │ └── service │ │ │ │ │ └── javacard │ │ │ │ │ └── service.exp │ │ │ └── security │ │ │ │ └── javacard │ │ │ │ └── security.exp │ │ └── javacardx │ │ │ ├── apdu │ │ │ └── javacard │ │ │ │ └── apdu.exp │ │ │ ├── biometry │ │ │ └── javacard │ │ │ │ └── biometry.exp │ │ │ ├── crypto │ │ │ └── javacard │ │ │ │ └── crypto.exp │ │ │ ├── external │ │ │ └── javacard │ │ │ │ └── external.exp │ │ │ └── framework │ │ │ ├── math │ │ │ └── javacard │ │ │ │ └── math.exp │ │ │ ├── tlv │ │ │ └── javacard │ │ │ │ └── tlv.exp │ │ │ └── util │ │ │ ├── intx │ │ │ └── javacard │ │ │ │ └── intx.exp │ │ │ └── javacard │ │ │ └── util.exp │ │ ├── bin │ │ ├── apdutool.bat │ │ ├── capdump.bat │ │ ├── capgen.bat │ │ ├── converter.bat │ │ ├── cref.bat │ │ ├── cref_t0.exe │ │ ├── cref_t1.exe │ │ ├── cref_tdual.exe │ │ ├── exp2text.bat │ │ ├── normalizer.bat │ │ ├── packager.bat │ │ ├── scriptgen.bat │ │ ├── verifycap.bat │ │ ├── verifyexp.bat │ │ └── verifyrev.bat │ │ ├── document.css │ │ ├── legal │ │ ├── Distribution_ReadME.txt │ │ └── THIRDPARTYREADME.txt │ │ ├── lib │ │ ├── ant-contrib-1.0b3.jar │ │ ├── api_classic.jar │ │ ├── api_connected.jar │ │ ├── asm-all-3.1.jar │ │ ├── bcel-5.2.jar │ │ ├── commons-cli-1.0.jar │ │ ├── commons-codec-1.3.jar │ │ ├── commons-httpclient-3.0.jar │ │ ├── commons-logging-1.1.jar │ │ ├── jctasks.jar │ │ ├── logging.properties │ │ └── tools.jar │ │ └── shared │ │ ├── Java_clr_hori.gif │ │ ├── Java_clr_hori_interval.gif │ │ ├── Java_clr_hori_small.gif │ │ ├── downicon.gif │ │ ├── oracle.gif │ │ ├── smallOracleLogo.gif │ │ └── topicon.gif ├── scripts │ ├── install+personalize.sh │ └── personalisation_script.txt ├── src │ └── de │ │ └── tsenger │ │ └── u2f │ │ ├── FIDOAPI.java │ │ ├── FIDOCCImplementation.java │ │ ├── Secp256r1.java │ │ └── U2FApplet.java └── tools │ ├── ant-javacard.jar │ └── gp.jar ├── LICENSE └── README.md /CCU2F/.jcop: -------------------------------------------------------------------------------- 1 | 1.01.0D2760001325502461.0D2780001320001A0000006472F00011.0 -------------------------------------------------------------------------------- /CCU2F/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | CCU2F 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | com.ibm.bluez.jcop.eclipse.jcopbuilder 15 | 16 | 17 | 18 | 19 | com.ibm.bluez.jcop.eclipse.jcopbuildverifier 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | com.ibm.bluez.jcop.eclipse.jcopnature 27 | 28 | 29 | -------------------------------------------------------------------------------- /CCU2F/U2F Example Attestation Certificate and Key Bytes.txt: -------------------------------------------------------------------------------- 1 | key 2 | f3 fc cc 0d 00 d8 03 19 54 f9 08 64 d4 3c 24 7f 3 | 4b f5 f0 66 5c 6b 50 cc 17 74 9a 27 d1 cf 76 64 4 | 5 | cert 6 | 30 82 01 3c 30 81 e4 a0 03 02 01 02 02 0a 47 90 7 | 12 80 00 11 55 95 73 52 30 0a 06 08 2a 86 48 ce 8 | 3d 04 03 02 30 17 31 15 30 13 06 03 55 04 03 13 9 | 0c 47 6e 75 62 62 79 20 50 69 6c 6f 74 30 1e 17 10 | 0d 31 32 30 38 31 34 31 38 32 39 33 32 5a 17 0d 11 | 31 33 30 38 31 34 31 38 32 39 33 32 5a 30 31 31 12 | 2f 30 2d 06 03 55 04 03 13 26 50 69 6c 6f 74 47 13 | 6e 75 62 62 79 2d 30 2e 34 2e 31 2d 34 37 39 30 14 | 31 32 38 30 30 30 31 31 35 35 39 35 37 33 35 32 15 | 30 59 30 13 06 07 2a 86 48 ce 3d 02 01 06 08 2a 16 | 86 48 ce 3d 03 01 07 03 42 00 04 8d 61 7e 65 c9 17 | 50 8e 64 bc c5 67 3a c8 2a 67 99 da 3c 14 46 68 18 | 2c 25 8c 46 3f ff df 58 df d2 fa 3e 6c 37 8b 53 19 | d7 95 c4 a4 df fb 41 99 ed d7 86 2f 23 ab af 02 20 | 03 b4 b8 91 1b a0 56 99 94 e1 01 30 0a 06 08 2a 21 | 86 48 ce 3d 04 03 02 03 47 00 30 44 02 20 60 cd 22 | b6 06 1e 9c 22 26 2d 1a ac 1d 96 d8 c7 08 29 b2 23 | 36 65 31 dd a2 68 83 2c b8 36 bc d3 0d fa 02 20 24 | 63 1b 14 59 f0 9e 63 30 05 57 22 c8 d8 9b 7f 48 25 | 88 3b 90 89 b8 8d 60 d1 d9 79 59 02 b3 04 10 df 26 | 27 | -------------------------------------------------------------------------------- /CCU2F/U2F-FIDO_Cert_install_APDUs.txt: -------------------------------------------------------------------------------- 1 | 00 A4 04 00 0C A0 00 00 06 17 00 4F 97 A2 E9 49 01 00 2 | F0 01 00 00 80 30 82 01 3c 30 81 e4 a0 03 02 01 02 02 0a 47 90 12 80 00 11 55 95 73 52 30 0a 06 08 2a 86 48 ce 3d 04 03 02 30 17 31 15 30 13 06 03 55 04 03 13 0c 47 6e 75 62 62 79 20 50 69 6c 6f 74 30 1e 17 0d 31 32 30 38 31 34 31 38 32 39 33 32 5a 17 0d 31 33 30 38 31 34 31 38 32 39 33 32 5a 30 31 31 2f 30 2d 06 03 55 04 03 13 26 50 69 6c 6f 74 47 6e 75 62 62 79 2d 30 2e 34 2e 31 2d 34 37 39 30 3 | F0 01 00 80 80 31 32 38 30 30 30 31 31 35 35 39 35 37 33 35 32 30 59 30 13 06 07 2a 86 48 ce 3d 02 01 06 08 2a 86 48 ce 3d 03 01 07 03 42 00 04 8d 61 7e 65 c9 50 8e 64 bc c5 67 3a c8 2a 67 99 da 3c 14 46 68 2c 25 8c 46 3f ff df 58 df d2 fa 3e 6c 37 8b 53 d7 95 c4 a4 df fb 41 99 ed d7 86 2f 23 ab af 02 03 b4 b8 91 1b a0 56 99 94 e1 01 30 0a 06 08 2a 86 48 ce 3d 04 03 02 03 47 00 30 44 02 20 60 cd 4 | F0 01 01 00 40 b6 06 1e 9c 22 26 2d 1a ac 1d 96 d8 c7 08 29 b2 36 65 31 dd a2 68 83 2c b8 36 bc d3 0d fa 02 20 63 1b 14 59 f0 9e 63 30 05 57 22 c8 d8 9b 7f 48 88 3b 90 89 b8 8d 60 d1 d9 79 59 02 b3 04 10 df -------------------------------------------------------------------------------- /CCU2F/build.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /CCU2F/cap/ccu2f.cap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/cap/ccu2f.cap -------------------------------------------------------------------------------- /CCU2F/extlibs/.gitignore: -------------------------------------------------------------------------------- 1 | /jcopx-2.4.2.R2/ 2 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/COPYRIGHT.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 11 | Copyright 12 | 13 | 14 |
Copyright © 1998, 2010, 15 | Oracle and/or its affiliates. All rights reserved.
17 |
18 |

This software and related documentation are provided under a license 19 | agreement containing restrictions on use and disclosure and are 20 | protected by intellectual property laws. Except as expressly permitted 21 | in your license agreement or allowed by law, you may not use, copy, 22 | reproduce, translate, broadcast, modify, license, transmit, distribute, 23 | exhibit, perform, publish, or display any part, in any form, or by any 24 | means. Reverse engineering, disassembly, or decompilation of this 25 | software, unless required by law for interoperability, is prohibited.

26 |

The information contained herein is subject to change without notice 27 | and is not warranted to be error-free. If you find any errors, please 28 | report them to us in writing.

29 |

If this is software or related software documentation that is 30 | delivered to the U.S. Government or anyone licensing it on behalf of 31 | the U.S. Government, the following notice is applicable:

32 |

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related 33 | documentation and technical data delivered to U.S. Government customers 34 | are "commercial computer software" or "commercial technical data" 35 | pursuant to the applicable Federal Acquisition Regulation and 36 | agency-specific supplemental regulations. As such, the use, 37 | duplication, disclosure, modification, and adaptation shall be subject 38 | to the restrictions and license terms set forth in the applicable 39 | Government contract, and, to the extent applicable by the terms of the 40 | Government contract, the additional rights set forth in FAR 52.227-19, 41 | Commercial Computer Software License (December 2007). Oracle USA, Inc., 42 | 500 Oracle Parkway, Redwood City, CA 94065.

43 |

This software or hardware is developed for general use in a variety 44 | of information management applications. It is not developed or intended 45 | for use in any inherently dangerous applications, including 46 | applications which may create a risk of personal injury. If you use 47 | this software or hardware in dangerous applications, then you shall be 48 | responsible to take all appropriate fail-safe, backup, redundancy, and 49 | other measures to ensure the safe use. Oracle Corporation and its 50 | affiliates disclaim any liability for any damages caused by use of this 51 | software or hardware in dangerous applications.

52 |

Oracle and Java are registered trademarks of Oracle Corporation 53 | and/or its 54 | affiliates. Oracle and Java are registered trademarks of Oracle and/or 55 | its affiliates. Other names may be trademarks of their respective 56 | owners.

57 |

AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks 58 | or registered trademarks of Advanced Micro Devices. Intel and Intel 59 | Xeon are trademarks or registered trademarks of Intel Corporation. All 60 | SPARC trademarks are used under license and are trademarks or 61 | registered trademarks of SPARC International, Inc. UNIX is a registered 62 | trademark licensed through X/Open Company, Ltd.

63 |

This software or hardware and documentation may provide access to or 64 | information on content, products, and services from third parties. 65 | Oracle Corporation and its affiliates are not responsible for and 66 | expressly disclaim all warranties of any kind with respect to 67 | third-party content, products, and services. Oracle Corporation and its 68 | affiliates will not be responsible for any loss, costs, or damages 69 | incurred due to your access to or use of third-party content, products, 70 | or services.
71 |

72 |
73 | Copyright © 1998, 2010, Oracle 74 | et/ou ses affiliés. 75 | Tous droits réservés. 76 | 77 |

Ce logiciel et la documentation qui l’accompagne sont 78 | protégés par les 79 | lois sur la propriété intellectuelle. Ils sont 80 | concédés sous licence et soumis à 81 | des restrictions d’utilisation et de divulgation. Sauf disposition de 82 | votre contrat de licence ou 83 | de la loi, vous ne pouvez pas copier, reproduire, traduire, diffuser, 84 | modifier, breveter, 85 | transmettre, distribuer, exposer, exécuter, publier ou afficher 86 | le logiciel, même partiellement, sous quelque forme 87 | et par quelque procédé que ce soit. Par ailleurs, il est 88 | interdit de 89 | procéder à toute ingénierie inverse du logiciel, 90 | de le désassembler ou de le décompiler, 91 | excepté à des fins d’interopérabilité avec 92 | des logiciels tiers ou tel que prescrit par 93 | la loi.

94 |

Les informations fournies dans ce document sont susceptibles de 95 | modification sans préavis. 96 | Par ailleurs, Oracle Corporation ne garantit pas qu’elles soient 97 | exemptes d’erreurs et vous invite, 98 | le cas échéant, à lui en faire part par 99 | écrit.

100 |

Si ce logiciel, ou 101 | la documentation qui l’accompagne, est concédé sous 102 | licence au Gouvernement des Etats-Unis, ou à 103 | toute entité qui délivre la licence de ce logiciel ou 104 | l’utilise pour le 105 | compte du Gouvernement des Etats-Unis, la notice suivante s’applique:

106 |

U.S. GOVERNMENT RIGHTS. Programs, 107 | software, databases, and related documentation and technical data 108 | delivered to U.S. Government customers are 109 | "commercial computer software" or "commercial technical data" pursuant 110 | to the applicable Federal Acquisition 111 | Regulation and agency-specific supplemental regulations. As such, the 112 | use, duplication, disclosure, modification, and 113 | adaptation shall be subject to the restrictions and license terms set 114 | forth in 115 | the applicable Government contract, and, to the extent applicable by 116 | the terms of the 117 | Government contract, the additional rights set forth in FAR 52.227-19, 118 | Commercial Computer Software 119 | License (December 2007). Oracle America, Inc., 500 Oracle Parkway, 120 | Redwood City, CA 121 | 94065.

122 |

Ce logiciel ou matériel a été 123 | développé pour un usage général dans le 124 | cadre d’applications de gestion des informations. Ce logiciel ou 125 | matériel n’est pas conçu ni 126 | n’est destiné à être utilisé dans des 127 | applications à risque, notamment dans des applications 128 | pouvant causer des dommages corporels. Si vous utilisez ce logiciel ou 129 | matériel dans 130 | le cadre d’applications dangereuses, il est de votre 131 | responsabilité de prendre toutes les mesures 132 | de secours, de sauvegarde, de redondance et autres mesures 133 | nécessaires à son utilisation 134 | dans des conditions optimales de sécurité. Oracle 135 | Corporation et ses affiliés déclinent toute 136 | responsabilité 137 | quant aux dommages causés par l’utilisation de ce logiciel ou 138 | matériel pour ce type 139 | d’applications.

140 |

Oracle et Java sont des marques déposées d’Oracle 141 | Corporation et/ou de ses affiliés.Tout 142 | autre nom mentionné peut correspondre à des marques 143 | appartenant à d’autres propriétaires qu’Oracle.

144 |

AMD, Opteron, 145 | le logo AMD et le logo AMD Opteron sont des marques ou des 146 | marques déposées d’Advanced Micro Devices. Intel et Intel 147 | Xeon sont des marques ou 148 | des marques déposées d’Intel Corporation. Toutes les 149 | marques SPARC sont utilisées sous licence et 150 | sont des marques ou des marques déposées de SPARC 151 | International, Inc. UNIX est une 152 | marque déposée concédée sous licence par 153 | X/Open Company, Ltd.

154 |

Ce logiciel ou matériel et 155 | la documentation qui l’accompagne peuvent fournir des informations ou 156 | des liens donnant accès à 157 | des contenus, des produits et des services émanant de tiers. 158 | Oracle Corporation et 159 | ses affiliés déclinent toute responsabilité ou 160 | garantie expresse quant aux contenus, produits ou services 161 | émanant de tiers. En aucun cas, Oracle Corporation et ses 162 | affiliés ne sauraient 163 | être tenus pour responsables des pertes subies, des coûts 164 | occasionnés ou des dommages causés 165 | par l’accès à des contenus, produits ou services tiers, 166 | ou à leur utilisation.
167 |

168 |

169 |
170 | 171 | 172 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/RELEASENOTES-CL.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Release Notes - Classic Edition Development Kit, Java Card 8 | Patform, Version 3.0.3 9 | 10 | 11 | 12 |
13 | 15 | 16 | 17 | 20 | 22 | 23 | 24 |
18 |

Release Notes

19 |
25 |
26 |
27 |
28 | 30 | 31 | 32 | 36 | 38 | 39 | 40 | 44 | 45 | 46 | 50 | 51 | 52 |
33 |

Development Kit for the Java Card 3 Platform
34 |

35 |
41 |

Version 3.0.3, Classic Edition
42 |

43 |
47 |

November 2010
48 |

49 |
53 |
54 |
55 | 57 |

Table of Contents

58 | 69 | 70 |

1. Overview

71 |

These release notes describe the development kit for the Java Card 3 72 | Platform, Version 3.0.3, Classic Edition. This version 73 | of the development kit is a maintenance release and includes bug fixes. 74 | It also supports a new tool, the trimming tool, which is 75 | designed to minimize the code footprint of an application before it is 76 | deployed to a smartcard. The trimming tool is available in a separate 77 | download bundle for licensees only.
78 |

79 |

Java Card technology combines a subset of the Java programming 80 | language with a runtime environment optimized for smart cards and 81 | similar small-memory embedded devices. The goal of Java Card technology 82 | is to bring many of the benefits of the Java programming language to 83 | the resource-constrained world of smart cards. The Java Card API is 84 | compatible with international standards such as ISO 7816, and 85 | industry-specific standards such as Europay, Master Card, and Visa 86 | (EMV).
87 |

88 |

Java Card platform version 3.0.3 is the latest evolution of Java 89 | Card technology. This development kit is based on version 3.0.1 of the 90 | Java Card specifications, which includes their errata sheets located at 91 | http://www.oracle.com/technetwork/java/javacard/jc-classic-spec-errata-140181.html. 93 | The 94 | Java 95 | Card 96 | 3 97 | platform 98 | consists 99 | of version 3.0 and 3.0.1 of the 100 | specifications and versions 3.0.1, 3.0.2, and 3.0.3 of the development 101 | kit.
102 |

103 |

The Java Card platform is available in two 104 | editions, both of which are backward compatible with previous versions 105 | and share key security features:
106 |

107 |
    108 |
  • Classic Edition is based on an evolution of the Java Card 109 | Platform, 110 | Version 2.2.2, architecture. This edition targets more 111 | resource-constrained devices than the Connected Edition. These release 112 | notes are for the Classic Edition.
    113 |
  • 114 |
  • Connected Edition contains a new architecture compared to the 115 | Java 116 | Card technology released in version 2.2.2, which is now knows as the 117 | "Classic Edition." The Connected Edition enables the integration of 118 | smart cards within IP networks and web services architectures. To do 119 | so., it features a significantly enhanced runtime environment and 120 | virtual machine (VM), and it includes new network-oriented features, 121 | such as support for Java Servlet APIs and Java Card applets with 122 | extended and advanced capabilities.
    123 |
  • 124 |
125 | 127 | 128 |

2. Prerequisites

129 |

Required Operating System

130 |
    131 |
  • This release is targeted for use on the Microsoft Windows XP SP3 132 | operating system.
    133 |
  • 134 |
135 |

Required Software

136 |

The following software must be installed for the Java Card 137 | development 138 | kit to work:

139 | 161 |

Note: Do not 162 | install any software in a directory that 163 | contains a space in its name. For example, do not install software in 164 | any subdirectory of c:\program files because of the space 165 | in the program files element
166 |

167 |

Note: The trimming tool 168 | bundle and the bundle containing the specifications must 169 | be 170 | downloaded separately.The bundle containing the trimming tool MUST be 171 | installed into a directory separate from this development kit directory.

172 |
    173 |
174 |

Contents of This Release

175 |

This release contains both binary and source 176 | code. Note that neither the new trimming tool nor the Java Card 177 | specifications are included in this 178 | development kit release bundle. 

179 |

Note: This release fixes 180 | the off-card verifier verification problem, recently reported by THALES 181 | Information Systems Security, which is related to verification of 182 | multiple execution paths with changed local variable types.

183 |

This release contains features required to support classic Java Card 184 | applet applications on the card. Specifically, this release includes 185 | the following:

186 |
    187 |
  • Java Card runtime environment (cref.exe)
  • 188 |
  • Uninstaller tool
    189 |
  • 190 |
  • Normalizer tool (normalizer.bat)
    191 |
  • 192 |
  • APDU tool (apdutool.bat)
  • 193 |
  • capdump tool
    194 |
  • 195 |
  • capgen tool
    196 |
  • 197 |
  • Converter tool (converter.bat)
  • 198 |
  • exp2text tool
    199 |
  • 200 |
  • on-card installer
  • 201 |
  • maskgen tool
    202 |
  • 203 |
  • off-card verifier tool
    204 |
  • 205 |
  • scriptgen tool
    206 |
  • 207 |
  • optional Ant tasks
    208 |
  • 209 |
  • Sample applications
  • 210 |
  • User's guide for this release in Development Kit User's Guide for 212 | the Java Card Platform, Version 3.0.3, Classic Edition
  • 213 |
214 |

Note: The debugging tool jcwde, which was in previous 216 | releases, is no longer included. To develop and debug your classic 217 | applets, you might want to use the Connected Edition development kit 218 | and the NetBeans IDE, version 6.8 or higher, along with its Java Card 219 | technology-specific plugin.

220 |
221 | 223 |

3. Installation Instructions

224 |

For a more thorough description of the installation, contents and 225 | use of the development kit, see Development 226 | User's 227 | Guide, 228 | Java 229 | Card 230 | Platform, Version 3.0.3, Classic Edition 231 | included in the download bundle for this release.

232 |

An automatic installer tool can be used to unpack the download file 233 | containing this release. During download, you can choose to let the 234 | installer tool unpack the download file into a directory of your choice 235 | on your system or you can save the download file itself to your system.
236 |

237 |

Note: Do not 238 | install the development kit software in any 239 | directory that has a space in its name. For example, on a Windows 240 | platform, do not install software in the c:\program files 241 | directory, or any subdirectory of c:\program files, 242 | because the program files element contains a space.
243 |

244 |

Note: Do not 245 | install the trimming tool bundle into the directory containing this 246 | development kit. The trimming tool must be installed into a separate 247 | folder that is not within the installed development kit's folder. 248 |

249 |

Note: Do not install this 250 | version of the Java Card 251 | development kit or trimming tool into an existing directory for an 252 | older version. You must first uninstall the 253 | previously installed version of the Java Card 254 | development kit or trimming tool prior to installing this version into 255 | the old 256 | directory. Installing into the same directory without first 257 | uninstalling could result in unpredictable behavior.

258 |

To install the Java Card development kit and associated software, 259 | follow these steps:

260 |
    261 |
  1. Install the JDK version 6, Update 10 or later. This JDK 262 | is 263 | available from: http://www.oracle.com/technetwork/java/javase/downloads/index.html. 266 | 267 | 268 | 269 |
  2. 270 |
  3. Install Apache Ant version 1.6.5 or later. The latest 271 | version is available at: http://ant.apache.org/. 272 | 273 | 274 | 275 |
  4. 276 |
  5. Install the GCC compiler. 277 | The compiler Minimal GNU for Windows (MinGW), version 5.1.4 is 278 | required.  It is available at http://sourceforge.net/projects/mingw, 280 | while 281 | its 282 | installation 283 | information is at http://www.mingw.org.
  6. 284 |
  7. Download the Java Card development kit. Download and 285 | store the development kit Java Archive (JAR) file in a 286 | directory of your choice.
  8. 287 |
  9. Run the development kit installer or use the command line. 288 | Double 289 | click 290 | the 291 | JAR 292 | file 293 | on 294 | your system. If 295 | the 296 | JDK 297 | is installed correctly, the jar file is recognized as an executable 298 | jar and the automatic installer will 299 | launch to step you through the remainder of the installation process.
    300 |
  10. 301 |
302 |

Alternatively, you can use the command 303 | line to unpack the JAR file using the following command:

304 |
305 |
java -jar Bundle-Filename
306 |
307 |
308 | Where Bundle-Filename is the downloaded development kit 309 | JAR file.
310 |

By default, the development kit is installed in C:\JCDK3.0.3_ClassicEdition_RR 311 | and its associated sub-directories. You can specify a different 312 | directory if you wish.
313 |

314 |

The directory C:\JCDK3.0.3_ClassicEdition_RR (or 315 | the alternate directory you specify during installation) is referred to 316 | as JC_CLASSIC_HOME in these 317 | release notes. When the development 318 | kit installation is complete, JC_CLASSIC_HOME 319 | contains the following:
320 |

321 |
322 | 327 | 328 | 329 | 331 | 336 | 337 | 338 | 339 | 348 | 349 | 350 | 351 | 357 | 358 | 359 | 360 | 363 | 364 | 365 | 366 | 370 | 371 | 372 | 373 | 375 | 376 | 377 | 378 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 393 | 394 | 395 | 396 | 399 | 400 | 401 | 402 | 405 | 406 | 407 | 408 | 410 | 411 | 412 | 413 | 415 | 416 | 417 | 418 | 420 | 421 | 422 |
JC_CLASSIC_HOME 330 | These 332 | release 333 | notes.
334 | Copyright files.
335 |
docsJCDevKitUG-Classic-3_0_3.pdf  340 | 341 | 342 | 343 | Development Kit User's Guide 344 | for 345 | the Java Card Platform, Version 3.0.3, Classic Edition.
347 |
docs\htmlThe HTML version of Development Kit User's Guide 353 | for 354 | the Java Card Platform, Version 3.0.3, Classic Edition.
356 |
docs\apduioJavadoc 362 | tool files for use with APDU I/O described in the user's guide.
docs\rmiclientJavadoc 368 | tool files for use with optional RMI implementation described in the 369 | user's guide.
docs\apiJavadoc tool files for the API.
374 |
api_export_filesContains java, javacard, and javacardx directories of API 382 | export files.
383 |
bin Development kit executable files.
samples\classic_applets Samples of basic classic applets, such as HelloWorld.
392 |
samples\reference_appsSamples of more robust classic 397 | applets.
398 |
lib Configuration and JAR files for the API, tools.
403 | Third-party 404 | libraries.
src Development kit source files. AVAILABLE ONLY IF YOU HAVE A 409 | SOURCE BUNDLE.
Uninstaller\uninstaller.jarUninstalls the development kit.
414 |
legalLicense files.
419 |
423 |
424 | 425 | 427 |

4. Setting System Variables and Paths

428 | System variables and paths must be set before 429 | running the development kit. See the Development 430 | Kit 431 | User's 432 | Guide more details on how to set them. 433 | Note that if you choose to set the variables 434 | and paths each time you run the development kit rather than 435 | permanently in your system, you can place the appropriate commands in a 436 | batch file. 437 |
    438 |
  • JAVA_HOME. You must set the JAVA_HOME 439 | system variable to the JDK root directory before running the 440 | development kit 441 |
      442 |
    • To temporarily set JAVA_HOME from the command 443 | line, enter the 444 | command: set JAVA_HOME=c:\path before running the 445 | development kit. For example, if the Java platform software is stored 446 | in your c:\jdk6 directory, enter set JAVA_HOME=c:\jdk6 447 | before running the development kit.
    • 448 |
    449 |
  • 450 |
  • JC_CLASSIC_HOMEYou must set the  JC_CLASSIC_HOME 459 | system variable to the directory in which the development kit is 460 | installed before running the development kit.  
  • 463 |
      464 |
    • To temporarily set JC_CLASSIC_HOME from the 465 | command 466 | line, enter the 467 | command: set JC_CLASSIC_HOME=c:\path before 468 | running the 469 | development kit. For example, if the Java Card development kit is 470 | stored 471 | in your c:\JCDK3.0.3_ClassicEdition_RR 472 | directory, enter set JC_CLASSIC_HOME=c:\JCDK3.0.3_ClassicEdition_RR 473 | before running the development kit. 
    • 476 |
    477 |
478 |
    479 |
  • Apache Ant. You 480 | must set the ANT_HOME 481 | system variable to the Apache Ant directory 482 | before running the samples.
    483 |
  • 484 |
      485 |
    • To temporarily set ANT_HOME from the command 486 | line, enter the 487 | command: set PATH=c:\path before running the 488 | development kit. For example, if Apache Ant is stored 489 | in your c:\ant\apache-ant1.6.5 490 | directory, enter set ANT_HOME=c:\ant\apache-ant1.6.5 491 | before running the development kit.
      492 |
    • 493 |
    494 |
495 |
    496 |
  • MinGW. You must set the 497 | path to the location of MinGW before running the 498 | development kit. Note that the path has to 499 | point to the \bin subdirectory of the MinGW installation 500 | directory 501 | where 502 | the 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 | 528 | 529 | gcc.exe file is located.  530 |
      531 |
    • To temporarily set the path to MinGW, enter the command set 532 | PATH=c:\MinGW_path;%PATH%. For example, if MinGW is 533 | installed in c:\MinGW, enter the command set 534 | PATH=c:\MinGW\bin;%PATH% before running the development kit.
    • 535 |
    536 |
  • 537 |
538 |

Configuring the Java Card Runtime 539 | Environment for the Samples
540 |

541 |

Note that the Java Card RE (cref) 542 | implementation 543 | is 544 | not 545 | optimized 546 | for 547 | memory 548 | or 549 | performance 550 | and, therefore, requires 551 | more memory than an actual optimized implementation on a card. To run 552 | the Java Card RE, you can use the default executable, cref.bat, using the command 554 | line as follows:
555 |

556 |

JC_CLASSIC_HOME\bin\cref.bat
560 |

561 | 563 | 564 |

5. Known Bugs

565 | For issues related to the new 566 | trimming 567 | tool, see its release notes in the separate trimming tool download 568 | bundle.
569 |
570 | 571 | 572 | 574 | 577 | 578 | 579 | 581 | 583 | 584 | 585 | 586 | 588 | 589 | 590 |
6903384
573 |
Converter fails to generate cap 575 | file if an applet imports some.other.package.Shareable interface.
576 |
6994105
580 |
Transaction does't work in 582 | RandomData.generateData() with the ALG_PSEUDO_RANDOM algorithm.
6997670Verifier error with -debug: 587 | Invalid variable count for non-abstract method XXX in class XYZ.
591 |
592 | 594 |
595 |

6. Product Information and Feedback
596 |

597 |

The public Java Card technology web site is http://www.oracle.com/technetwork/java/javacard. 599 | The 600 | developer 601 | collaboration 602 | web 603 | site 604 | also 605 | contains 606 | information 607 | about 608 | Java 609 | Card 610 | technology 611 | at 612 | http://kenai.com/projects/javacard/pages/HOME.

613 |

If you are a Licensee, visit the product web site at https://java-partner.sun.com/portal/service/ent/platform/javacardgroup 616 | This site has the most up-to-date information on the following:

617 |
    618 |
  • Product news and reviews
  • 619 |
  • Release notes and product documentation
  • 620 |
  • Technical support contact information
  • 621 |
622 |

We greatly appreciate your feedback on this reference 623 | Implementation. Please send all feedback to 624 | jc3-ri-feedback@sun.com.

625 | 627 |
628 |
629 |

Copyright © 1998, 2010, Oracle 630 | and/or 631 | its affiliates. All rights reserved.
632 |

633 | 634 | 635 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/Uninstaller/uninstaller.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/Uninstaller/uninstaller.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/java/io/javacard/io.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/java/io/javacard/io.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/java/lang/javacard/lang.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/java/lang/javacard/lang.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/java/rmi/javacard/rmi.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/java/rmi/javacard/rmi.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacard/framework/javacard/framework.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacard/framework/javacard/framework.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacard/framework/service/javacard/service.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacard/framework/service/javacard/service.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacard/security/javacard/security.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacard/security/javacard/security.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/apdu/javacard/apdu.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/apdu/javacard/apdu.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/biometry/javacard/biometry.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/biometry/javacard/biometry.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/crypto/javacard/crypto.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/crypto/javacard/crypto.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/external/javacard/external.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/external/javacard/external.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/math/javacard/math.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/math/javacard/math.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/tlv/javacard/tlv.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/tlv/javacard/tlv.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/util/intx/javacard/intx.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/util/intx/javacard/intx.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/util/javacard/util.exp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/api_export_files/javacardx/framework/util/javacard/util.exp -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/apdutool.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute apdutool's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.apdutool.Main %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/capdump.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute capdump's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.capdump.CapDump %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/capgen.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute capgen's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.jcasm.cap.Main %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/converter.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute converter's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.converter.Main %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/cref.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | rem 4 | rem in Java Card 2 there was only cref.exe, but now we provide cref_t0.exe, 5 | rem cref_t1.exe, and cref_tdual.exe. 6 | rem 7 | @echo off 8 | setlocal 9 | set JC_CLASSIC_HOME=%~dp0\.. 10 | rem this batch file is provided as a easy way to call the new .exe's. 11 | rem 12 | rem "cref.bat args" will call "cref_tdual.exe args" 13 | rem 14 | rem "cref.bat -t0 args" will call "cref_t0.exe args" 15 | rem "cref.bat -t1 args" will call "cref_t1.exe args" 16 | rem "cref.bat -tdual args" will call "cref_tdual.exe args" 17 | rem 18 | setlocal 19 | set list= 20 | set target=cref_tdual 21 | :loop 22 | if "%1"=="" goto done 23 | if "%1"=="-t0" ( 24 | set target=cref_t0 25 | shift 26 | goto loop 27 | ) 28 | if "%1"=="-t1" ( 29 | set target=cref_t1 30 | shift 31 | goto loop 32 | ) 33 | if "%1"=="-tdual" ( 34 | set target=cref_tdual 35 | shift 36 | goto loop 37 | ) 38 | set list=%list% %1 39 | shift 40 | goto loop 41 | :done 42 | call %JC_CLASSIC_HOME%\bin\%target%.exe %list% 43 | endlocal 44 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/cref_t0.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/bin/cref_t0.exe -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/cref_t1.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/bin/cref_t1.exe -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/cref_tdual.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/bin/cref_tdual.exe -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/exp2text.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute exp2text's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.converter.Exp2Text %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/normalizer.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute normalizer's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.normalizer.Main %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/packager.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute packager's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.packager.Main %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/scriptgen.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute scriptgen's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.scriptgen.Main %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/verifycap.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute verifycap's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.offcardverifier.Verifier %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/verifyexp.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute verifyexp's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.offcardverifier.VerifyExp %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/bin/verifyrev.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo off 3 | setlocal 4 | set JC_CLASSIC_HOME=%~dp0\.. 5 | rem Print warning if no JAVA_HOME set 6 | if not defined JAVA_HOME goto nojavahome 7 | 8 | rem set classpath to all jars 9 | 10 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\ant-contrib-1.0b3.jar;%JC_CLASSPATH% 11 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\asm-all-3.1.jar;%JC_CLASSPATH% 12 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\bcel-5.2.jar;%JC_CLASSPATH% 13 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-cli-1.0.jar;%JC_CLASSPATH% 14 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-codec-1.3.jar;%JC_CLASSPATH% 15 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-httpclient-3.0.jar;%JC_CLASSPATH% 16 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\commons-logging-1.1.jar;%JC_CLASSPATH% 17 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\jctasks.jar;%JC_CLASSPATH% 18 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\tools.jar;%JC_CLASSPATH% 19 | set JC_CLASSPATH=%JC_CLASSIC_HOME%\lib\api_classic.jar;%JC_CLASSPATH% 20 | 21 | rem execute verifyrev's Main class 22 | "%JAVA_HOME%\bin\java" -Djc.home=%JC_CLASSIC_HOME% -classpath %JC_CLASSPATH% com.sun.javacard.offcardverifier.VerifyRev %* 23 | goto done 24 | :nojavahome 25 | echo JAVA_HOME is not set - please set it to point to JDK 1.6 26 | :done 27 | endlocal 28 | 29 | rem Send the error code to the command interpreter 30 | cmd /c Exit /B %errorlevel% 31 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/document.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. 3 | * Use is subject to license terms. 4 | * 5 | * SCCS: %W% %E% 6 | */ 7 | 8 | 9 | /* font tag overwrite */ 10 | font { 11 | font-family:Arial, Helvetica, FreeSans, "Luxi-sans", "Nimbus Sans L", sans-serif; 12 | font-size:14px; 13 | } 14 | /* font family */ 15 | body, input, select, textarea, button { 16 | font-family:Arial, Helvetica, FreeSans, "Luxi-sans", "Nimbus Sans L", sans-serif; 17 | font-size:100%; 18 | } 19 | code, kbd, tt, pre { 20 | font-family:Monaco, Courier, "Courier New"; 21 | font-size:110%; 22 | } 23 | /* generic */ 24 | body { 25 | color:#000; 26 | } 27 | a { 28 | color:#666; 29 | text-decoration:none 30 | } 31 | a.href { 32 | color:#666; 33 | text-decoration:none 34 | } 35 | a.hover { 36 | color:#F00; 37 | text-decoration:none 38 | } 39 | a.visited { 40 | color:#999; 41 | text-decoration:none 42 | } 43 | a.link { 44 | color:#F00; 45 | text-decoration:none 46 | } 47 | 48 | ol, ul { 49 | margin:1ex; 50 | padding-left:1ex; 51 | } 52 | li { 53 | margin:1ex; 54 | padding-left:0ex 55 | } 56 | dl { 57 | margin:1.6ex; 58 | padding-left:0ex; 59 | } 60 | dt { 61 | margin:1ex; 62 | padding-left:0ex 63 | } 64 | 65 | tr {vertical-align:top;} 66 | 67 | table tr th { 68 | background:#E5E5E6; 69 | font-size:90%; 70 | text-align:left; 71 | vertical-align:top; 72 | padding-left:1ex; 73 | } 74 | caption { 75 | font-weight:bold; 76 | font-size:85%; 77 | } 78 | /* hr */ 79 | hr.light { 80 | background:#E3E3E3; 81 | color:#E3E3E3; 82 | height:2px; 83 | padding:0; 84 | border:0 85 | } 86 | hr.red { 87 | background:#F00; 88 | color:#F00; 89 | height:2px; 90 | padding:0; 91 | border:0 92 | } 93 | 94 | div.MastheadPane { 95 | height: 45px; 96 | width: 100%; 97 | top: 0; 98 | right: 0; 99 | bottom: auto; 100 | left: 0; 101 | overflow: hidden; 102 | border-bottom: 3px #F00; 103 | margin: 0; 104 | text-decoration:none; 105 | } 106 | div.MastheadDateBuild { 107 | height: 90px; 108 | width: 100%; 109 | top: 0; 110 | right: 0; 111 | bottom: auto; 112 | left: 0; 113 | overflow: visible; 114 | border-bottom: 3px #F00; 115 | text-decoration:none; 116 | } 117 | .MastheadPane tr td { 118 | background:#fff; 119 | background-color:#FFF; 120 | padding: 0px; 121 | margin: 0px; 122 | } 123 | .MastheadPane tr th { 124 | background:#fff; 125 | background-color:#FFF; 126 | padding: 0px; 127 | margin: 0px; 128 | } 129 | .MastheadDateBuild tr th { 130 | background:#fff; 131 | background-color:#FFF; 132 | padding: 0px; 133 | margin: 0px; 134 | } 135 | .MastheadDateBuild tr td { 136 | background:#fff; 137 | background-color:#FFF; 138 | padding: 0px; 139 | margin: 0px; 140 | } 141 | 142 | table.MastheadTable { 143 | width: 100%; 144 | border-collapse:collapse; 145 | padding: 0px; 146 | margin: 0px; 147 | background:#FFF; 148 | background-color:#FFF 149 | } 150 | table.MastheadDateBuild { 151 | width: 100%; 152 | border-collapse:collapse; 153 | margin: 0px; 154 | padding: 0px; 155 | background:#FFF; 156 | } 157 | div.MastheadPane a { 158 | color: rgb(127, 127, 127); 159 | background:#FFF; 160 | } 161 | 162 | th.smallLogo { 163 | width: 130px; 164 | align: right; 165 | } 166 | td.smallLogo { 167 | width: 130px; 168 | align: right; 169 | } 170 | td.javaLogo { 171 | width: 100px; 172 | text-align: right; 173 | } 174 | .smallLogo img { 175 | padding-right: 15px; 176 | } 177 | tr.breadcrumbbar { 178 | margin: 0px; 179 | height: 15px; 180 | } 181 | tr.titlebar { 182 | height: 55px; 183 | padding: 0px; 184 | background-color:#FFF; 185 | } 186 | h4.contentpage-doctitle { 187 | color: rgb(127, 127, 127); 188 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 189 | font-size: 120%; 190 | font-weight: bold; 191 | text-align: left; 192 | padding: 0px; 193 | width: auto; 194 | } 195 | 196 | p.breadcrumb a { 197 | color: rgb(255, 0, 0); 198 | font-weight: bold; 199 | } 200 | p.breadcrumb { 201 | margin-bottom: 20px 202 | } 203 | div.MainContent a:visited { 204 | color: rgb(127, 127, 127) 205 | } 206 | div.MainContent a { 207 | color: rgb(0, 0, 0); 208 | text-decoration:none 209 | } 210 | div.embeddedtoc { 211 | margin: 0ex; 212 | } 213 | .embeddedtoc a { 214 | color:#666; 215 | text-decoration:none 216 | } 217 | .embeddedtoc a.href { 218 | color:#666; 219 | text-decoration:none 220 | } 221 | .embeddedtoc a.hover { 222 | color:#F00; 223 | text-decoration:none 224 | } 225 | .embeddedtoc a.visited { 226 | color:#999; 227 | text-decoration:none 228 | } 229 | .embeddedtoc a.link { 230 | color:#666; 231 | text-decoration:none 232 | } 233 | .embeddedtoc p { 234 | margin-top: -1ex; 235 | } 236 | .embeddedtoc p.level1 a { 237 | color: (127,127,127); 238 | font-size: 100%; 239 | } 240 | .embeddedtoc p.level2 a { 241 | color: rgb(127,127,127); 242 | font-size: 90%; 243 | margin-left: 3ex; 244 | } 245 | .embeddedtoc p.level3 a { 246 | color: rgb(127,127,127); 247 | font-size: 85%; 248 | margin-left: 6ex; 249 | } 250 | .embeddedtoc p.level4 a { 251 | color: rgb(127,127,127); 252 | font-size: 85%; 253 | margin-left: 9ex; 254 | } 255 | .embeddedtoc p.level5 a { 256 | color: rgb(70,70,70); 257 | font-size: 85%; 258 | margin-left: 12ex; 259 | } 260 | div.BodyStyle { 261 | width: 100%; 262 | top: 100px; 263 | right: 0; 264 | bottom: 20px; 265 | left: 0px; 266 | margin: 0px; 267 | overflow: hidden; 268 | font-family:Arial, Helvetica, FreeSans, "Luxi-sans", "Nimbus Sans L", sans-serif; 269 | } 270 | BodyStyle a.href { 271 | text-decoration:none 272 | } 273 | BodyStyle a.hover { 274 | color:#F00 275 | } 276 | BodyStyle a.visited { 277 | color:#999 278 | } 279 | BodyStyle a.link { 280 | color:#666 281 | } 282 | 283 | p.navtop, p.navtop a { 284 | font-size:85%; 285 | } 286 | 287 | body { 288 | padding: 1.5em; 289 | margin: 0; 290 | background-color: white; 291 | font-size:14px; 292 | } 293 | h1+p, h2+p, h3+p, h4+p, h5+p { 294 | margin-top: 0; 295 | } 296 | code, pre { 297 | color: black; 298 | } 299 | pre { 300 | background-color: #efefef; 301 | border: 1px solid #ccc; 302 | padding: 0.5em; 303 | overflow: hidden; 304 | font-size: 110%; 305 | } 306 | a img { 307 | border-style: none; 308 | } 309 | div.TitleDiv { 310 | margin-top: 30px; 311 | } 312 | h2.DocTitle { 313 | color: rgb(127, 127, 127); 314 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 315 | font-size: 115%; 316 | font-weight: bold; 317 | text-align: left; 318 | text-decoration: none; 319 | text-indent: 0px; 320 | text-transform: none 321 | } 322 | h3.SubTitle { 323 | color: rgb(127, 127, 127); 324 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 325 | font-size: 90%; 326 | font-weight: bold; 327 | text-align: left; 328 | text-decoration: none; 329 | text-indent: 0px; 330 | text-transform: none 331 | } 332 | h4.TitleDate { 333 | color: rgb(127, 127, 127); 334 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 335 | font-size: 80%; 336 | font-weight: bold; 337 | text-align: left; 338 | text-decoration: none; 339 | text-indent: 0px; 340 | text-transform: none 341 | } 342 | .BodyStyle tr thead th { 343 | text-align:left; 344 | background-color:#fefefe; 345 | } 346 | .BodyStyle h1 { 347 | margin-top: 1.25em; 348 | margin-bottom: 0.5em; 349 | color: rgb(127, 127, 127); 350 | } 351 | .BodyStyle h2 { 352 | font-size: 125%; 353 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 354 | margin-top: 1.25em; 355 | margin-bottom: 0.5em; 356 | color: rgb(127, 127, 127); 357 | } 358 | .BodyStyle h3 { 359 | font-size: 115%; 360 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 361 | margin-top: 1.25em; 362 | color: rgb(127, 127, 127); 363 | margin-bottom: 0.5em; 364 | } 365 | .BodyStyle h4 { 366 | font-size: 105%; 367 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 368 | margin-top: 1.25em; 369 | margin-bottom: 0.5em; 370 | color: rgb(127, 127, 127); 371 | } 372 | .BodyStyle h5 { 373 | font-size: 95%; 374 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 375 | margin-top: 1.25em; 376 | margin-bottom: 0.5em; 377 | color: rgb(127, 127, 127); 378 | } 379 | .BodyStyle h6 { 380 | font-size: 85%; 381 | font-family: "Univers LT Std", Univers, Arial, Helvetica, sans-serif; 382 | margin-top: 1.25em; 383 | margin-bottom: 0.5em; 384 | color: rgb(127, 127, 127); 385 | } 386 | .BodyStyle table { 387 | font-size:100%; 388 | border-color:#CCC; 389 | width:100%; 390 | border:solid; 391 | border-left:none; 392 | border-right:none; 393 | border-top:none; 394 | border-bottom:medium; 395 | border-width:medium; 396 | 397 | } 398 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/legal/Distribution_ReadME.txt: -------------------------------------------------------------------------------- 1 | DistributionREADME 2 | 3 | DISTRIBUTION BY DEVELOPERS. Subject to the terms and conditions of the Software License Agreement and the obligations, restrictions, and exceptions set forth below, You may reproduce and distribute the portions of Software identified below ("Redistributable"), provided that: 4 | 5 | (a) You distribute Redistributable complete and unmodified and only bundled as part of Your Programs, 6 | 7 | (b) Your Programs add significant and primary functionality to the Redistributable, 8 | 9 | (c) You do not distribute additional software intended to replace any 10 | component(s) of the Redistributable, 11 | 12 | (d) You do not remove or alter any proprietary legends or notices contained in or on the Redistributable. 13 | 14 | (e) You only distribute the Redistributable subject to a license agreement that protects Oracle's interests consistent with the terms contained in this 15 | Agreement, and 16 | 17 | (f) You agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Redistributable. 18 | 19 | The following files are Redistributables: 20 | 21 | Java Card Development Kit 3.0.3 22 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/legal/THIRDPARTYREADME.txt: -------------------------------------------------------------------------------- 1 | DO NOT TRANSLATE OR LOCALIZE 2 | 3 | *************************************************************************** 4 | 5 | %%The following software may be included in this product: 6 | ASM 7 | 8 | Use of any of this software is governed by the terms of the license below: 9 | 10 | Copyright (c) 2000-2005 INRIA, France Telecom 11 | All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions 15 | are met: 16 | 17 | 1. Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | 20 | 2. Redistributions in binary form must reproduce the above copyright 21 | notice, this list of conditions and the following disclaimer in the 22 | documentation and/or other materials provided with the distribution. 23 | 24 | 3. Neither the name of the copyright holders nor the names of its 25 | contributors may be used to endorse or promote products derived from 26 | this software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 31 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 32 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 33 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 34 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 35 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 36 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 37 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 38 | THE POSSIBILITY OF SUCH DAMAGE. 39 | 40 | *************************************************************************** 41 | 42 | %%The following software may be included in this product: 43 | Izpack 44 | 45 | Use of any of this software is governed by the terms of the license below: 46 | 47 | Apache License 48 | Version 2.0, January 2004 49 | http://www.apache.org/licenses/ 50 | 51 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 52 | 53 | 1. Definitions. 54 | 55 | "License" shall mean the terms and conditions for use, reproduction, and 56 | distribution as defined by Sections 1 through 9 of this document. 57 | 58 | "Licensor" shall mean the copyright owner or entity authorized by the copyright 59 | owner that is granting the License. 60 | 61 | "Legal Entity" shall mean the union of the acting entity and all other entities 62 | that control, are controlled by, or are under common control with that entity. 63 | For the purposes of this definition, "control" means (i) the power, direct or 64 | indirect, to cause the direction or management of such entity, whether by 65 | contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the 66 | outstanding shares, or (iii) beneficial ownership of such entity. 67 | 68 | "You" (or "Your") shall mean an individual or Legal Entity exercising 69 | permissions granted by this License. 70 | 71 | "Source" form shall mean the preferred form for making modifications, including 72 | but not limited to software source code, documentation source, and configuration 73 | files. 74 | 75 | "Object" form shall mean any form resulting from mechanical transformation or 76 | translation of a Source form, including but not limited to compiled object code, 77 | generated documentation, and conversions to other media types. 78 | 79 | "Work" shall mean the work of authorship, whether in Source or Object form, made 80 | available under the License, as indicated by a copyright notice that is included 81 | in or attached to the work (an example is provided in the Appendix below). 82 | 83 | "Derivative Works" shall mean any work, whether in Source or Object form, that 84 | is based on (or derived from) the Work and for which the editorial revisions, 85 | annotations, elaborations, or other modifications represent, as a whole, an 86 | original work of authorship. For the purposes of this License, Derivative Works 87 | shall not include works that remain separable from, or merely link (or bind by 88 | name) to the interfaces of, the Work and Derivative Works thereof. 89 | 90 | "Contribution" shall mean any work of authorship, including the original version 91 | of the Work and any modifications or additions to that Work or Derivative Works 92 | thereof, that is intentionally submitted to Licensor for inclusion in the Work 93 | by the copyright owner or by an individual or Legal Entity authorized to submit 94 | on behalf of the copyright owner. For the purposes of this definition, 95 | "submitted" means any form of electronic, verbal, or written communication sent 96 | to the Licensor or its representatives, including but not limited to 97 | communication on electronic mailing lists, source code control systems, and 98 | issue tracking systems that are managed by, or on behalf of, the Licensor for 99 | the purpose of discussing and improving the Work, but excluding communication 100 | that is conspicuously marked or otherwise designated in writing by the copyright 101 | owner as "Not a Contribution." 102 | 103 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf 104 | of whom a Contribution has been received by Licensor and subsequently 105 | incorporated within the Work. 106 | 107 | 2. Grant of Copyright License. Subject to the terms and conditions of this 108 | License, each Contributor hereby grants to You a perpetual, worldwide, 109 | non-exclusive, no-charge, royalty-free, irrevocable copyright license to 110 | reproduce, prepare Derivative Works of, publicly display, publicly perform, 111 | sublicense, and distribute the Work and such Derivative Works in Source or 112 | Object form. 113 | 114 | 3. Grant of Patent License. Subject to the terms and conditions of this License, 115 | each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, 116 | no-charge, royalty-free, irrevocable (except as stated in this section) patent 117 | license to make, have made, use, offer to sell, sell, import, and otherwise 118 | transfer the Work, where such license applies only to those patent claims 119 | licensable by such Contributor that are necessarily infringed by their 120 | Contribution(s) alone or by combination of their Contribution(s) with the Work 121 | to which such Contribution(s) was submitted. If You institute patent litigation 122 | against any entity (including a cross-claim or counterclaim in a lawsuit) 123 | alleging that the Work or a Contribution incorporated within the Work 124 | constitutes direct or contributory patent infringement, then any patent licenses 125 | granted to You under this License for that Work shall terminate as of the date 126 | such litigation is filed. 127 | 128 | 4. Redistribution. You may reproduce and distribute copies of the Work or 129 | Derivative Works thereof in any medium, with or without modifications, and in 130 | Source or Object form, provided that You meet the following conditions: 131 | 132 | 1. You must give any other recipients of the Work or Derivative Works a copy 133 | of this License; and 134 | 135 | 2. You must cause any modified files to carry prominent notices stating that 136 | You changed the files; and 137 | 138 | 3. You must retain, in the Source form of any Derivative Works that You 139 | distribute, all copyright, patent, trademark, and attribution notices from the 140 | Source form of the Work, excluding those notices that do not pertain to any part 141 | of the Derivative Works; and 142 | 143 | 4. If the Work includes a "NOTICE" text file as part of its distribution, 144 | then any Derivative Works that You distribute must include a readable copy of 145 | the attribution notices contained within such NOTICE file, excluding those 146 | notices that do not pertain to any part of the Derivative Works, in at least one 147 | of the following places: within a NOTICE text file distributed as part of the 148 | Derivative Works; within the Source form or documentation, if provided along 149 | with the Derivative Works; or, within a display generated by the Derivative 150 | Works, if and wherever such third-party notices normally appear. The contents of 151 | the NOTICE file are for informational purposes only and do not modify the 152 | License. You may add Your own attribution notices within Derivative Works that 153 | You distribute, alongside or as an addendum to the NOTICE text from the Work, 154 | provided that such additional attribution notices cannot be construed as 155 | modifying the License. 156 | 157 | You may add Your own copyright statement to Your modifications and may provide 158 | additional or different license terms and conditions for use, reproduction, or 159 | distribution of Your modifications, or for any such Derivative Works as a whole, 160 | provided Your use, reproduction, and distribution of the Work otherwise complies 161 | with the conditions stated in this License. 162 | 163 | 5. Submission of Contributions. Unless You explicitly state otherwise, any 164 | Contribution intentionally submitted for inclusion in the Work by You to the 165 | Licensor shall be under the terms and conditions of this License, without any 166 | additional terms or conditions. Notwithstanding the above, nothing herein shall 167 | supersede or modify the terms of any separate license agreement you may have 168 | executed with Licensor regarding such Contributions. 169 | 170 | 6. Trademarks. This License does not grant permission to use the trade names, 171 | trademarks, service marks, or product names of the Licensor, except as required 172 | for reasonable and customary use in describing the origin of the Work and 173 | reproducing the content of the NOTICE file. 174 | 175 | 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in 176 | writing, Licensor provides the Work (and each Contributor provides its 177 | Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 178 | KIND, either express or implied, including, without limitation, any warranties 179 | or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 180 | PARTICULAR PURPOSE. You are solely responsible for determining the 181 | appropriateness of using or redistributing the Work and assume any risks 182 | associated with Your exercise of permissions under this License. 183 | 184 | 8. Limitation of Liability. In no event and under no legal theory, whether in 185 | tort (including negligence), contract, or otherwise, unless required by 186 | applicable law (such as deliberate and grossly negligent acts) or agreed to in 187 | writing, shall any Contributor be liable to You for damages, including any 188 | direct, indirect, special, incidental, or consequential damages of any character 189 | arising as a result of this License or out of the use or inability to use the 190 | Work (including but not limited to damages for loss of goodwill, work stoppage, 191 | computer failure or malfunction, or any and all other commercial damages or 192 | losses), even if such Contributor has been advised of the possibility of such 193 | damages. 194 | 195 | 9. Accepting Warranty or Additional Liability. While redistributing the Work or 196 | Derivative Works thereof, You may choose to offer, and charge a fee for, 197 | acceptance of support, warranty, indemnity, or other liability obligations 198 | and/or rights consistent with this License. However, in accepting such 199 | obligations, You may act only on Your own behalf and on Your sole 200 | responsibility, not on behalf of any other Contributor, and only if You agree to 201 | indemnify, defend, and hold each Contributor harmless for any liability incurred 202 | by, or claims asserted against, such Contributor by reason of your accepting any 203 | such warranty or additional liability. 204 | 205 | END OF TERMS AND CONDITIONS 206 | 207 | *************************************************************************** 208 | 209 | %%The following software may be included in this product: 210 | Apache BCEL (Byte Code Engineering Library) 211 | 212 | Use of any of this software is governed by the terms of the license below: 213 | 214 | * Apache License 215 | * Version 2.0, January 2004 216 | * http://www.apache.org/licenses/ 217 | * 218 | * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 219 | * 220 | * 1. Definitions. 221 | * 222 | * "License" shall mean the terms and conditions for use, reproduction, 223 | * and distribution as defined by Sections 1 through 9 of this document. 224 | * 225 | * "Licensor" shall mean the copyright owner or entity authorized by 226 | * the copyright owner that is granting the License. 227 | * 228 | * "Legal Entity" shall mean the union of the acting entity and all 229 | * other entities that control, are controlled by, or are under common 230 | * control with that entity. For the purposes of this definition, 231 | * "control" means (i) the power, direct or indirect, to cause the 232 | * direction or management of such entity, whether by contract or 233 | * otherwise, or (ii) ownership of fifty percent (50%) or more of the 234 | * outstanding shares, or (iii) beneficial ownership of such entity. 235 | * 236 | * "You" (or "Your") shall mean an individual or Legal Entity 237 | * exercising permissions granted by this License. 238 | * 239 | * "Source" form shall mean the preferred form for making modifications, 240 | * including but not limited to software source code, documentation 241 | * source, and configuration files. 242 | * 243 | * "Object" form shall mean any form resulting from mechanical 244 | * transformation or translation of a Source form, including but 245 | * not limited to compiled object code, generated documentation, 246 | * and conversions to other media types. 247 | * 248 | * "Work" shall mean the work of authorship, whether in Source or 249 | * Object form, made available under the License, as indicated by a 250 | * copyright notice that is included in or attached to the work 251 | * (an example is provided in the Appendix below). 252 | * 253 | * "Derivative Works" shall mean any work, whether in Source or Object 254 | * form, that is based on (or derived from) the Work and for which the 255 | * editorial revisions, annotations, elaborations, or other modifications 256 | * represent, as a whole, an original work of authorship. For the purposes 257 | * of this License, Derivative Works shall not include works that remain 258 | * separable from, or merely link (or bind by name) to the interfaces of, 259 | * the Work and Derivative Works thereof. 260 | * 261 | * "Contribution" shall mean any work of authorship, including 262 | * the original version of the Work and any modifications or additions 263 | * to that Work or Derivative Works thereof, that is intentionally 264 | * submitted to Licensor for inclusion in the Work by the copyright owner 265 | * or by an individual or Legal Entity authorized to submit on behalf of 266 | * the copyright owner. For the purposes of this definition, "submitted" 267 | * means any form of electronic, verbal, or written communication sent 268 | * to the Licensor or its representatives, including but not limited to 269 | * communication on electronic mailing lists, source code control systems, 270 | * and issue tracking systems that are managed by, or on behalf of, the 271 | * Licensor for the purpose of discussing and improving the Work, but 272 | * excluding communication that is conspicuously marked or otherwise 273 | * designated in writing by the copyright owner as "Not a Contribution." 274 | * 275 | * "Contributor" shall mean Licensor and any individual or Legal Entity 276 | * on behalf of whom a Contribution has been received by Licensor and 277 | * subsequently incorporated within the Work. 278 | * 279 | * 2. Grant of Copyright License. Subject to the terms and conditions of 280 | * this License, each Contributor hereby grants to You a perpetual, 281 | * worldwide, non-exclusive, no-charge, royalty-free, irrevocable 282 | * copyright license to reproduce, prepare Derivative Works of, 283 | * publicly display, publicly perform, sublicense, and distribute the 284 | * Work and such Derivative Works in Source or Object form. 285 | * 286 | * 3. Grant of Patent License. Subject to the terms and conditions of 287 | * this License, each Contributor hereby grants to You a perpetual, 288 | * worldwide, non-exclusive, no-charge, royalty-free, irrevocable 289 | * (except as stated in this section) patent license to make, have made, 290 | * use, offer to sell, sell, import, and otherwise transfer the Work, 291 | * where such license applies only to those patent claims licensable 292 | * by such Contributor that are necessarily infringed by their 293 | * Contribution(s) alone or by combination of their Contribution(s) 294 | * with the Work to which such Contribution(s) was submitted. If You 295 | * institute patent litigation against any entity (including a 296 | * cross-claim or counterclaim in a lawsuit) alleging that the Work 297 | * or a Contribution incorporated within the Work constitutes direct 298 | * or contributory patent infringement, then any patent licenses 299 | * granted to You under this License for that Work shall terminate 300 | * as of the date such litigation is filed. 301 | * 302 | * 4. Redistribution. You may reproduce and distribute copies of the 303 | * Work or Derivative Works thereof in any medium, with or without 304 | * modifications, and in Source or Object form, provided that You 305 | * meet the following conditions: 306 | * 307 | * (a) You must give any other recipients of the Work or 308 | * Derivative Works a copy of this License; and 309 | * 310 | * (b) You must cause any modified files to carry prominent notices 311 | * stating that You changed the files; and 312 | * 313 | * (c) You must retain, in the Source form of any Derivative Works 314 | * that You distribute, all copyright, patent, trademark, and 315 | * attribution notices from the Source form of the Work, 316 | * excluding those notices that do not pertain to any part of 317 | * the Derivative Works; and 318 | * 319 | * (d) If the Work includes a "NOTICE" text file as part of its 320 | * distribution, then any Derivative Works that You distribute must 321 | * include a readable copy of the attribution notices contained 322 | * within such NOTICE file, excluding those notices that do not 323 | * pertain to any part of the Derivative Works, in at least one 324 | * of the following places: within a NOTICE text file distributed 325 | * as part of the Derivative Works; within the Source form or 326 | * documentation, if provided along with the Derivative Works; or, 327 | * within a display generated by the Derivative Works, if and 328 | * wherever such third-party notices normally appear. The contents 329 | * of the NOTICE file are for informational purposes only and 330 | * do not modify the License. You may add Your own attribution 331 | * notices within Derivative Works that You distribute, alongside 332 | * or as an addendum to the NOTICE text from the Work, provided 333 | * that such additional attribution notices cannot be construed 334 | * as modifying the License. 335 | * 336 | * You may add Your own copyright statement to Your modifications and 337 | * may provide additional or different license terms and conditions 338 | * for use, reproduction, or distribution of Your modifications, or 339 | * for any such Derivative Works as a whole, provided Your use, 340 | * reproduction, and distribution of the Work otherwise complies with 341 | * the conditions stated in this License. 342 | * 343 | * 5. Submission of Contributions. Unless You explicitly state otherwise, 344 | * any Contribution intentionally submitted for inclusion in the Work 345 | * by You to the Licensor shall be under the terms and conditions of 346 | * this License, without any additional terms or conditions. 347 | * Notwithstanding the above, nothing herein shall supersede or modify 348 | * the terms of any separate license agreement you may have executed 349 | * with Licensor regarding such Contributions. 350 | * 351 | * 6. Trademarks. This License does not grant permission to use the trade 352 | * names, trademarks, service marks, or product names of the Licensor, 353 | * except as required for reasonable and customary use in describing the 354 | * origin of the Work and reproducing the content of the NOTICE file. 355 | * 356 | * 7. Disclaimer of Warranty. Unless required by applicable law or 357 | * agreed to in writing, Licensor provides the Work (and each 358 | * Contributor provides its Contributions) on an "AS IS" BASIS, 359 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 360 | * implied, including, without limitation, any warranties or conditions 361 | * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 362 | * PARTICULAR PURPOSE. You are solely responsible for determining the 363 | * appropriateness of using or redistributing the Work and assume any 364 | * risks associated with Your exercise of permissions under this License. 365 | * 366 | * 8. Limitation of Liability. In no event and under no legal theory, 367 | * whether in tort (including negligence), contract, or otherwise, 368 | * unless required by applicable law (such as deliberate and grossly 369 | * negligent acts) or agreed to in writing, shall any Contributor be 370 | * liable to You for damages, including any direct, indirect, special, 371 | * incidental, or consequential damages of any character arising as a 372 | * result of this License or out of the use or inability to use the 373 | * Work (including but not limited to damages for loss of goodwill, 374 | * work stoppage, computer failure or malfunction, or any and all 375 | * other commercial damages or losses), even if such Contributor 376 | * has been advised of the possibility of such damages. 377 | * 378 | * 9. Accepting Warranty or Additional Liability. While redistributing 379 | * the Work or Derivative Works thereof, You may choose to offer, 380 | * and charge a fee for, acceptance of support, warranty, indemnity, 381 | * or other liability obligations and/or rights consistent with this 382 | * License. However, in accepting such obligations, You may act only 383 | * on Your own behalf and on Your sole responsibility, not on behalf 384 | * of any other Contributor, and only if You agree to indemnify, 385 | * defend, and hold each Contributor harmless for any liability 386 | * incurred by, or claims asserted against, such Contributor by reason 387 | * of your accepting any such warranty or additional liability. 388 | * 389 | * END OF TERMS AND CONDITIONS 390 | * 391 | * APPENDIX: How to apply the Apache License to your work. 392 | * 393 | * To apply the Apache License to your work, attach the following 394 | * boilerplate notice, with the fields enclosed by brackets "[]" 395 | * replaced with your own identifying information. (Don't include 396 | * the brackets!) The text should be enclosed in the appropriate 397 | * comment syntax for the file format. We also recommend that a 398 | * file or class name and description of purpose be included on the 399 | * same "printed page" as the copyright notice for easier 400 | * identification within third-party archives. 401 | * 402 | * Copyright [yyyy] [name of copyright owner] 403 | * 404 | * Licensed under the Apache License, Version 2.0 (the "License"); 405 | * you may not use this file except in compliance with the License. 406 | * You may obtain a copy of the License at 407 | * 408 | * http://www.apache.org/licenses/LICENSE-2.0 409 | * 410 | * Unless required by applicable law or agreed to in writing, software 411 | * distributed under the License is distributed on an "AS IS" BASIS, 412 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 413 | * See the License for the specific language governing permissions and 414 | * limitations under the License. 415 | */ 416 | 417 | *************************************************************************** 418 | 419 | %%The following software may be included in this product: 420 | Jetty HTTP Server 421 | 422 | Use of any of this software is governed by the terms of the license below: 423 | 424 | Apache License 425 | Version 2.0, January 2004 426 | http://www.apache.org/licenses/ 427 | 428 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 429 | 430 | 1. Definitions. 431 | 432 | "License" shall mean the terms and conditions for use, reproduction, 433 | and distribution as defined by Sections 1 through 9 of this document. 434 | 435 | "Licensor" shall mean the copyright owner or entity authorized by 436 | the copyright owner that is granting the License. 437 | 438 | "Legal Entity" shall mean the union of the acting entity and all 439 | other entities that control, are controlled by, or are under common 440 | control with that entity. For the purposes of this definition, 441 | "control" means (i) the power, direct or indirect, to cause the 442 | direction or management of such entity, whether by contract or 443 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 444 | outstanding shares, or (iii) beneficial ownership of such entity. 445 | 446 | "You" (or "Your") shall mean an individual or Legal Entity 447 | exercising permissions granted by this License. 448 | 449 | "Source" form shall mean the preferred form for making modifications, 450 | including but not limited to software source code, documentation 451 | source, and configuration files. 452 | 453 | "Object" form shall mean any form resulting from mechanical 454 | transformation or translation of a Source form, including but 455 | not limited to compiled object code, generated documentation, 456 | and conversions to other media types. 457 | 458 | "Work" shall mean the work of authorship, whether in Source or 459 | Object form, made available under the License, as indicated by a 460 | copyright notice that is included in or attached to the work 461 | (an example is provided in the Appendix below). 462 | 463 | "Derivative Works" shall mean any work, whether in Source or Object 464 | form, that is based on (or derived from) the Work and for which the 465 | editorial revisions, annotations, elaborations, or other modifications 466 | represent, as a whole, an original work of authorship. For the purposes 467 | of this License, Derivative Works shall not include works that remain 468 | separable from, or merely link (or bind by name) to the interfaces of, 469 | the Work and Derivative Works thereof. 470 | 471 | "Contribution" shall mean any work of authorship, including 472 | the original version of the Work and any modifications or additions 473 | to that Work or Derivative Works thereof, that is intentionally 474 | submitted to Licensor for inclusion in the Work by the copyright owner 475 | or by an individual or Legal Entity authorized to submit on behalf of 476 | the copyright owner. For the purposes of this definition, "submitted" 477 | means any form of electronic, verbal, or written communication sent 478 | to the Licensor or its representatives, including but not limited to 479 | communication on electronic mailing lists, source code control systems, 480 | and issue tracking systems that are managed by, or on behalf of, the 481 | Licensor for the purpose of discussing and improving the Work, but 482 | excluding communication that is conspicuously marked or otherwise 483 | designated in writing by the copyright owner as "Not a Contribution." 484 | 485 | "Contributor" shall mean Licensor and any individual or Legal Entity 486 | on behalf of whom a Contribution has been received by Licensor and 487 | subsequently incorporated within the Work. 488 | 489 | 2. Grant of Copyright License. Subject to the terms and conditions of 490 | this License, each Contributor hereby grants to You a perpetual, 491 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 492 | copyright license to reproduce, prepare Derivative Works of, 493 | publicly display, publicly perform, sublicense, and distribute the 494 | Work and such Derivative Works in Source or Object form. 495 | 496 | 3. Grant of Patent License. Subject to the terms and conditions of 497 | this License, each Contributor hereby grants to You a perpetual, 498 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 499 | (except as stated in this section) patent license to make, have made, 500 | use, offer to sell, sell, import, and otherwise transfer the Work, 501 | where such license applies only to those patent claims licensable 502 | by such Contributor that are necessarily infringed by their 503 | Contribution(s) alone or by combination of their Contribution(s) 504 | with the Work to which such Contribution(s) was submitted. If You 505 | institute patent litigation against any entity (including a 506 | cross-claim or counterclaim in a lawsuit) alleging that the Work 507 | or a Contribution incorporated within the Work constitutes direct 508 | or contributory patent infringement, then any patent licenses 509 | granted to You under this License for that Work shall terminate 510 | as of the date such litigation is filed. 511 | 512 | 4. Redistribution. You may reproduce and distribute copies of the 513 | Work or Derivative Works thereof in any medium, with or without 514 | modifications, and in Source or Object form, provided that You 515 | meet the following conditions: 516 | 517 | (a) You must give any other recipients of the Work or 518 | Derivative Works a copy of this License; and 519 | 520 | (b) You must cause any modified files to carry prominent notices 521 | stating that You changed the files; and 522 | 523 | (c) You must retain, in the Source form of any Derivative Works 524 | that You distribute, all copyright, patent, trademark, and 525 | attribution notices from the Source form of the Work, 526 | excluding those notices that do not pertain to any part of 527 | the Derivative Works; and 528 | 529 | (d) If the Work includes a "NOTICE" text file as part of its 530 | distribution, then any Derivative Works that You distribute must 531 | include a readable copy of the attribution notices contained 532 | within such NOTICE file, excluding those notices that do not 533 | pertain to any part of the Derivative Works, in at least one 534 | of the following places: within a NOTICE text file distributed 535 | as part of the Derivative Works; within the Source form or 536 | documentation, if provided along with the Derivative Works; or, 537 | within a display generated by the Derivative Works, if and 538 | wherever such third-party notices normally appear. The contents 539 | of the NOTICE file are for informational purposes only and 540 | do not modify the License. You may add Your own attribution 541 | notices within Derivative Works that You distribute, alongside 542 | or as an addendum to the NOTICE text from the Work, provided 543 | that such additional attribution notices cannot be construed 544 | as modifying the License. 545 | 546 | You may add Your own copyright statement to Your modifications and 547 | may provide additional or different license terms and conditions 548 | for use, reproduction, or distribution of Your modifications, or 549 | for any such Derivative Works as a whole, provided Your use, 550 | reproduction, and distribution of the Work otherwise complies with 551 | the conditions stated in this License. 552 | 553 | 5. Submission of Contributions. Unless You explicitly state otherwise, 554 | any Contribution intentionally submitted for inclusion in the Work 555 | by You to the Licensor shall be under the terms and conditions of 556 | this License, without any additional terms or conditions. 557 | Notwithstanding the above, nothing herein shall supersede or modify 558 | the terms of any separate license agreement you may have executed 559 | with Licensor regarding such Contributions. 560 | 561 | 6. Trademarks. This License does not grant permission to use the trade 562 | names, trademarks, service marks, or product names of the Licensor, 563 | except as required for reasonable and customary use in describing the 564 | origin of the Work and reproducing the content of the NOTICE file. 565 | 566 | 7. Disclaimer of Warranty. Unless required by applicable law or 567 | agreed to in writing, Licensor provides the Work (and each 568 | Contributor provides its Contributions) on an "AS IS" BASIS, 569 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 570 | implied, including, without limitation, any warranties or conditions 571 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 572 | PARTICULAR PURPOSE. You are solely responsible for determining the 573 | appropriateness of using or redistributing the Work and assume any 574 | risks associated with Your exercise of permissions under this License. 575 | 576 | 8. Limitation of Liability. In no event and under no legal theory, 577 | whether in tort (including negligence), contract, or otherwise, 578 | unless required by applicable law (such as deliberate and grossly 579 | negligent acts) or agreed to in writing, shall any Contributor be 580 | liable to You for damages, including any direct, indirect, special, 581 | incidental, or consequential damages of any character arising as a 582 | result of this License or out of the use or inability to use the 583 | Work (including but not limited to damages for loss of goodwill, 584 | work stoppage, computer failure or malfunction, or any and all 585 | other commercial damages or losses), even if such Contributor 586 | has been advised of the possibility of such damages. 587 | 588 | 9. Accepting Warranty or Additional Liability. While redistributing 589 | the Work or Derivative Works thereof, You may choose to offer, 590 | and charge a fee for, acceptance of support, warranty, indemnity, 591 | or other liability obligations and/or rights consistent with this 592 | License. However, in accepting such obligations, You may act only 593 | on Your own behalf and on Your sole responsibility, not on behalf 594 | of any other Contributor, and only if You agree to indemnify, 595 | defend, and hold each Contributor harmless for any liability 596 | incurred by, or claims asserted against, such Contributor by reason 597 | of your accepting any such warranty or additional liability. 598 | 599 | END OF TERMS AND CONDITIONS 600 | 601 | APPENDIX: How to apply the Apache License to your work. 602 | 603 | To apply the Apache License to your work, attach the following 604 | boilerplate notice, with the fields enclosed by brackets "[]" 605 | replaced with your own identifying information. (Don't include 606 | the brackets!) The text should be enclosed in the appropriate 607 | comment syntax for the file format. We also recommend that a 608 | file or class name and description of purpose be included on the 609 | same "printed page" as the copyright notice for easier 610 | identification within third-party archives. 611 | 612 | Copyright [yyyy] [name of copyright owner] 613 | 614 | Licensed under the Apache License, Version 2.0 (the "License"); 615 | you may not use this file except in compliance with the License. 616 | You may obtain a copy of the License at 617 | 618 | http://www.apache.org/licenses/LICENSE-2.0 619 | 620 | Unless required by applicable law or agreed to in writing, software 621 | distributed under the License is distributed on an "AS IS" BASIS, 622 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 623 | See the License for the specific language governing permissions and 624 | limitations under the License. 625 | 626 | Additional License(s) 627 | 628 | All source files carry one of three copyrights: 629 | 630 | Copyright (c) 1999 The Apache Software Foundation. All rights reserved. 631 | Copyright (c) 1996 Mort Bay Consulting Pty. Ltd. All rights reserved. 632 | Copyright (c) 1996 Optimus Solutions Pty. Ltd. All rights reserved. 633 | 634 | One file is under the LGPL. This appears to be an oversight and it's 635 | in an optional "extras" 636 | component that we don't ship. 637 | 638 | *************************************************************************** 639 | 640 | %%The following software may be included in this product: 641 | Apache Jakarta Commons 642 | 643 | Use of any of this software is governed by the terms of the license below: 644 | 645 | Apache License 646 | Version 2.0, January 2004 647 | http://www.apache.org/licenses/ 648 | 649 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 650 | 651 | 1. Definitions. 652 | 653 | "License" shall mean the terms and conditions for use, reproduction, 654 | and distribution as defined by Sections 1 through 9 of this document. 655 | 656 | "Licensor" shall mean the copyright owner or entity authorized by 657 | the copyright owner that is granting the License. 658 | 659 | "Legal Entity" shall mean the union of the acting entity and all 660 | other entities that control, are controlled by, or are under common 661 | control with that entity. For the purposes of this definition, 662 | "control" means (i) the power, direct or indirect, to cause the 663 | direction or management of such entity, whether by contract or 664 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 665 | outstanding shares, or (iii) beneficial ownership of such entity. 666 | 667 | "You" (or "Your") shall mean an individual or Legal Entity 668 | exercising permissions granted by this License. 669 | 670 | "Source" form shall mean the preferred form for making modifications, 671 | including but not limited to software source code, documentation 672 | source, and configuration files. 673 | 674 | "Object" form shall mean any form resulting from mechanical 675 | transformation or translation of a Source form, including but 676 | not limited to compiled object code, generated documentation, 677 | and conversions to other media types. 678 | 679 | "Work" shall mean the work of authorship, whether in Source or 680 | Object form, made available under the License, as indicated by a 681 | copyright notice that is included in or attached to the work 682 | (an example is provided in the Appendix below). 683 | 684 | "Derivative Works" shall mean any work, whether in Source or Object 685 | form, that is based on (or derived from) the Work and for which the 686 | editorial revisions, annotations, elaborations, or other modifications 687 | represent, as a whole, an original work of authorship. For the purposes 688 | of this License, Derivative Works shall not include works that remain 689 | separable from, or merely link (or bind by name) to the interfaces of, 690 | the Work and Derivative Works thereof. 691 | 692 | "Contribution" shall mean any work of authorship, including 693 | the original version of the Work and any modifications or additions 694 | to that Work or Derivative Works thereof, that is intentionally 695 | submitted to Licensor for inclusion in the Work by the copyright owner 696 | or by an individual or Legal Entity authorized to submit on behalf of 697 | the copyright owner. For the purposes of this definition, "submitted" 698 | means any form of electronic, verbal, or written communication sent 699 | to the Licensor or its representatives, including but not limited to 700 | communication on electronic mailing lists, source code control systems, 701 | and issue tracking systems that are managed by, or on behalf of, the 702 | Licensor for the purpose of discussing and improving the Work, but 703 | excluding communication that is conspicuously marked or otherwise 704 | designated in writing by the copyright owner as "Not a Contribution." 705 | 706 | "Contributor" shall mean Licensor and any individual or Legal Entity 707 | on behalf of whom a Contribution has been received by Licensor and 708 | subsequently incorporated within the Work. 709 | 710 | 2. Grant of Copyright License. Subject to the terms and conditions of 711 | this License, each Contributor hereby grants to You a perpetual, 712 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 713 | copyright license to reproduce, prepare Derivative Works of, 714 | publicly display, publicly perform, sublicense, and distribute the 715 | Work and such Derivative Works in Source or Object form. 716 | 717 | 3. Grant of Patent License. Subject to the terms and conditions of 718 | this License, each Contributor hereby grants to You a perpetual, 719 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 720 | (except as stated in this section) patent license to make, have made, 721 | use, offer to sell, sell, import, and otherwise transfer the Work, 722 | where such license applies only to those patent claims licensable 723 | by such Contributor that are necessarily infringed by their 724 | Contribution(s) alone or by combination of their Contribution(s) 725 | with the Work to which such Contribution(s) was submitted. If You 726 | institute patent litigation against any entity (including a 727 | cross-claim or counterclaim in a lawsuit) alleging that the Work 728 | or a Contribution incorporated within the Work constitutes direct 729 | or contributory patent infringement, then any patent licenses 730 | granted to You under this License for that Work shall terminate 731 | as of the date such litigation is filed. 732 | 733 | 4. Redistribution. You may reproduce and distribute copies of the 734 | Work or Derivative Works thereof in any medium, with or without 735 | modifications, and in Source or Object form, provided that You 736 | meet the following conditions: 737 | 738 | (a) You must give any other recipients of the Work or 739 | Derivative Works a copy of this License; and 740 | 741 | (b) You must cause any modified files to carry prominent notices 742 | stating that You changed the files; and 743 | 744 | (c) You must retain, in the Source form of any Derivative Works 745 | that You distribute, all copyright, patent, trademark, and 746 | attribution notices from the Source form of the Work, 747 | excluding those notices that do not pertain to any part of 748 | the Derivative Works; and 749 | 750 | (d) If the Work includes a "NOTICE" text file as part of its 751 | distribution, then any Derivative Works that You distribute must 752 | include a readable copy of the attribution notices contained 753 | within such NOTICE file, excluding those notices that do not 754 | pertain to any part of the Derivative Works, in at least one 755 | of the following places: within a NOTICE text file distributed 756 | as part of the Derivative Works; within the Source form or 757 | documentation, if provided along with the Derivative Works; or, 758 | within a display generated by the Derivative Works, if and 759 | wherever such third-party notices normally appear. The contents 760 | of the NOTICE file are for informational purposes only and 761 | do not modify the License. You may add Your own attribution 762 | notices within Derivative Works that You distribute, alongside 763 | or as an addendum to the NOTICE text from the Work, provided 764 | that such additional attribution notices cannot be construed 765 | as modifying the License. 766 | 767 | You may add Your own copyright statement to Your modifications and 768 | may provide additional or different license terms and conditions 769 | for use, reproduction, or distribution of Your modifications, or 770 | for any such Derivative Works as a whole, provided Your use, 771 | reproduction, and distribution of the Work otherwise complies with 772 | the conditions stated in this License. 773 | 774 | 5. Submission of Contributions. Unless You explicitly state otherwise, 775 | any Contribution intentionally submitted for inclusion in the Work 776 | by You to the Licensor shall be under the terms and conditions of 777 | this License, without any additional terms or conditions. 778 | Notwithstanding the above, nothing herein shall supersede or modify 779 | the terms of any separate license agreement you may have executed 780 | with Licensor regarding such Contributions. 781 | 782 | 6. Trademarks. This License does not grant permission to use the trade 783 | names, trademarks, service marks, or product names of the Licensor, 784 | except as required for reasonable and customary use in describing the 785 | origin of the Work and reproducing the content of the NOTICE file. 786 | 787 | 7. Disclaimer of Warranty. Unless required by applicable law or 788 | agreed to in writing, Licensor provides the Work (and each 789 | Contributor provides its Contributions) on an "AS IS" BASIS, 790 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 791 | implied, including, without limitation, any warranties or conditions 792 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 793 | PARTICULAR PURPOSE. You are solely responsible for determining the 794 | appropriateness of using or redistributing the Work and assume any 795 | risks associated with Your exercise of permissions under this License. 796 | 797 | 8. Limitation of Liability. In no event and under no legal theory, 798 | whether in tort (including negligence), contract, or otherwise, 799 | unless required by applicable law (such as deliberate and grossly 800 | negligent acts) or agreed to in writing, shall any Contributor be 801 | liable to You for damages, including any direct, indirect, special, 802 | incidental, or consequential damages of any character arising as a 803 | result of this License or out of the use or inability to use the 804 | Work (including but not limited to damages for loss of goodwill, 805 | work stoppage, computer failure or malfunction, or any and all 806 | other commercial damages or losses), even if such Contributor 807 | has been advised of the possibility of such damages. 808 | 809 | 9. Accepting Warranty or Additional Liability. While redistributing 810 | the Work or Derivative Works thereof, You may choose to offer, 811 | and charge a fee for, acceptance of support, warranty, indemnity, 812 | or other liability obligations and/or rights consistent with this 813 | License. However, in accepting such obligations, You may act only 814 | on Your own behalf and on Your sole responsibility, not on behalf 815 | of any other Contributor, and only if You agree to indemnify, 816 | defend, and hold each Contributor harmless for any liability 817 | incurred by, or claims asserted against, such Contributor by reason 818 | of your accepting any such warranty or additional liability. 819 | 820 | END OF TERMS AND CONDITIONS 821 | 822 | APPENDIX: How to apply the Apache License to your work. 823 | 824 | To apply the Apache License to your work, attach the following 825 | boilerplate notice, with the fields enclosed by brackets "[]" 826 | replaced with your own identifying information. (Don't include 827 | the brackets!) The text should be enclosed in the appropriate 828 | comment syntax for the file format. We also recommend that a 829 | file or class name and description of purpose be included on the 830 | same "printed page" as the copyright notice for easier 831 | identification within third-party archives. 832 | 833 | Copyright [yyyy] [name of copyright owner] 834 | 835 | Licensed under the Apache License, Version 2.0 (the "License"); 836 | you may not use this file except in compliance with the License. 837 | You may obtain a copy of the License at 838 | 839 | http://www.apache.org/licenses/LICENSE-2.0 840 | 841 | Unless required by applicable law or agreed to in writing, software 842 | distributed under the License is distributed on an "AS IS" BASIS, 843 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 844 | See the License for the specific language governing permissions and 845 | limitations under the License. 846 | 847 | *************************************************************************** 848 | 849 | %%The following software may be included in this product: 850 | Ant 851 | 852 | Use of any of this software is governed by the terms of the license below: 853 | 854 | License 855 | The Apache Software License Version 2.0 856 | 857 | The Apache Software License Version 2.0 applies to all releases of Ant starting 858 | with ant 1.6.1 859 | 860 | /* 861 | * Apache License 862 | * Version 2.0, January 2004 863 | * http://www.apache.org/licenses/ 864 | * 865 | * TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 866 | * 867 | * 1. Definitions. 868 | * 869 | * "License" shall mean the terms and conditions for use, reproduction, 870 | * and distribution as defined by Sections 1 through 9 of this document. 871 | * 872 | * "Licensor" shall mean the copyright owner or entity authorized by 873 | * the copyright owner that is granting the License. 874 | * 875 | * "Legal Entity" shall mean the union of the acting entity and all 876 | * other entities that control, are controlled by, or are under common 877 | * control with that entity. For the purposes of this definition, 878 | * "control" means (i) the power, direct or indirect, to cause the 879 | * direction or management of such entity, whether by contract or 880 | * otherwise, or (ii) ownership of fifty percent (50%) or more of the 881 | * outstanding shares, or (iii) beneficial ownership of such entity. 882 | * 883 | * "You" (or "Your") shall mean an individual or Legal Entity 884 | * exercising permissions granted by this License. 885 | * 886 | * "Source" form shall mean the preferred form for making modifications, 887 | * including but not limited to software source code, documentation 888 | * source, and configuration files. 889 | * 890 | * "Object" form shall mean any form resulting from mechanical 891 | * transformation or translation of a Source form, including but 892 | * not limited to compiled object code, generated documentation, 893 | * and conversions to other media types. 894 | * 895 | * "Work" shall mean the work of authorship, whether in Source or 896 | * Object form, made available under the License, as indicated by a 897 | * copyright notice that is included in or attached to the work 898 | * (an example is provided in the Appendix below). 899 | * 900 | * "Derivative Works" shall mean any work, whether in Source or Object 901 | * form, that is based on (or derived from) the Work and for which the 902 | * editorial revisions, annotations, elaborations, or other modifications 903 | * represent, as a whole, an original work of authorship. For the purposes 904 | * of this License, Derivative Works shall not include works that remain 905 | * separable from, or merely link (or bind by name) to the interfaces of, 906 | * the Work and Derivative Works thereof. 907 | * 908 | * "Contribution" shall mean any work of authorship, including 909 | * the original version of the Work and any modifications or additions 910 | * to that Work or Derivative Works thereof, that is intentionally 911 | * submitted to Licensor for inclusion in the Work by the copyright owner 912 | * or by an individual or Legal Entity authorized to submit on behalf of 913 | * the copyright owner. For the purposes of this definition, "submitted" 914 | * means any form of electronic, verbal, or written communication sent 915 | * to the Licensor or its representatives, including but not limited to 916 | * communication on electronic mailing lists, source code control systems, 917 | * and issue tracking systems that are managed by, or on behalf of, the 918 | * Licensor for the purpose of discussing and improving the Work, but 919 | * excluding communication that is conspicuously marked or otherwise 920 | * designated in writing by the copyright owner as "Not a Contribution." 921 | * 922 | * "Contributor" shall mean Licensor and any individual or Legal Entity 923 | * on behalf of whom a Contribution has been received by Licensor and 924 | * subsequently incorporated within the Work. 925 | * 926 | * 2. Grant of Copyright License. Subject to the terms and conditions of 927 | * this License, each Contributor hereby grants to You a perpetual, 928 | * worldwide, non-exclusive, no-charge, royalty-free, irrevocable 929 | * copyright license to reproduce, prepare Derivative Works of, 930 | * publicly display, publicly perform, sublicense, and distribute the 931 | * Work and such Derivative Works in Source or Object form. 932 | * 933 | * 3. Grant of Patent License. Subject to the terms and conditions of 934 | * this License, each Contributor hereby grants to You a perpetual, 935 | * worldwide, non-exclusive, no-charge, royalty-free, irrevocable 936 | * (except as stated in this section) patent license to make, have made, 937 | * use, offer to sell, sell, import, and otherwise transfer the Work, 938 | * where such license applies only to those patent claims licensable 939 | * by such Contributor that are necessarily infringed by their 940 | * Contribution(s) alone or by combination of their Contribution(s) 941 | * with the Work to which such Contribution(s) was submitted. If You 942 | * institute patent litigation against any entity (including a 943 | * cross-claim or counterclaim in a lawsuit) alleging that the Work 944 | * or a Contribution incorporated within the Work constitutes direct 945 | * or contributory patent infringement, then any patent licenses 946 | * granted to You under this License for that Work shall terminate 947 | * as of the date such litigation is filed. 948 | * 949 | * 4. Redistribution. You may reproduce and distribute copies of the 950 | * Work or Derivative Works thereof in any medium, with or without 951 | * modifications, and in Source or Object form, provided that You 952 | * meet the following conditions: 953 | * 954 | * (a) You must give any other recipients of the Work or 955 | * Derivative Works a copy of this License; and 956 | * 957 | * (b) You must cause any modified files to carry prominent notices 958 | * stating that You changed the files; and 959 | * 960 | * (c) You must retain, in the Source form of any Derivative Works 961 | * that You distribute, all copyright, patent, trademark, and 962 | * attribution notices from the Source form of the Work, 963 | * excluding those notices that do not pertain to any part of 964 | * the Derivative Works; and 965 | * 966 | * (d) If the Work includes a "NOTICE" text file as part of its 967 | * distribution, then any Derivative Works that You distribute must 968 | * include a readable copy of the attribution notices contained 969 | * within such NOTICE file, excluding those notices that do not 970 | * pertain to any part of the Derivative Works, in at least one 971 | * of the following places: within a NOTICE text file distributed 972 | * as part of the Derivative Works; within the Source form or 973 | * documentation, if provided along with the Derivative Works; or, 974 | * within a display generated by the Derivative Works, if and 975 | * wherever such third-party notices normally appear. The contents 976 | * of the NOTICE file are for informational purposes only and 977 | * do not modify the License. You may add Your own attribution 978 | * notices within Derivative Works that You distribute, alongside 979 | * or as an addendum to the NOTICE text from the Work, provided 980 | * that such additional attribution notices cannot be construed 981 | * as modifying the License. 982 | * 983 | * You may add Your own copyright statement to Your modifications and 984 | * may provide additional or different license terms and conditions 985 | * for use, reproduction, or distribution of Your modifications, or 986 | * for any such Derivative Works as a whole, provided Your use, 987 | * reproduction, and distribution of the Work otherwise complies with 988 | * the conditions stated in this License. 989 | * 990 | * 5. Submission of Contributions. Unless You explicitly state otherwise, 991 | * any Contribution intentionally submitted for inclusion in the Work 992 | * by You to the Licensor shall be under the terms and conditions of 993 | * this License, without any additional terms or conditions. 994 | * Notwithstanding the above, nothing herein shall supersede or modify 995 | * the terms of any separate license agreement you may have executed 996 | * with Licensor regarding such Contributions. 997 | * 998 | * 6. Trademarks. This License does not grant permission to use the trade 999 | * names, trademarks, service marks, or product names of the Licensor, 1000 | * except as required for reasonable and customary use in describing the 1001 | * origin of the Work and reproducing the content of the NOTICE file. 1002 | * 1003 | * 7. Disclaimer of Warranty. Unless required by applicable law or 1004 | * agreed to in writing, Licensor provides the Work (and each 1005 | * Contributor provides its Contributions) on an "AS IS" BASIS, 1006 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 1007 | * implied, including, without limitation, any warranties or conditions 1008 | * of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 1009 | * PARTICULAR PURPOSE. You are solely responsible for determining the 1010 | * appropriateness of using or redistributing the Work and assume any 1011 | * risks associated with Your exercise of permissions under this License. 1012 | * 1013 | * 8. Limitation of Liability. In no event and under no legal theory, 1014 | * whether in tort (including negligence), contract, or otherwise, 1015 | * unless required by applicable law (such as deliberate and grossly 1016 | * negligent acts) or agreed to in writing, shall any Contributor be 1017 | * liable to You for damages, including any direct, indirect, special, 1018 | * incidental, or consequential damages of any character arising as a 1019 | * result of this License or out of the use or inability to use the 1020 | * Work (including but not limited to damages for loss of goodwill, 1021 | * work stoppage, computer failure or malfunction, or any and all 1022 | * other commercial damages or losses), even if such Contributor 1023 | * has been advised of the possibility of such damages. 1024 | * 1025 | * 9. Accepting Warranty or Additional Liability. While redistributing 1026 | * the Work or Derivative Works thereof, You may choose to offer, 1027 | * and charge a fee for, acceptance of support, warranty, indemnity, 1028 | * or other liability obligations and/or rights consistent with this 1029 | * License. However, in accepting such obligations, You may act only 1030 | * on Your own behalf and on Your sole responsibility, not on behalf 1031 | * of any other Contributor, and only if You agree to indemnify, 1032 | * defend, and hold each Contributor harmless for any liability 1033 | * incurred by, or claims asserted against, such Contributor by reason 1034 | * of your accepting any such warranty or additional liability. 1035 | * 1036 | * END OF TERMS AND CONDITIONS 1037 | * 1038 | * APPENDIX: How to apply the Apache License to your work. 1039 | * 1040 | * To apply the Apache License to your work, attach the following 1041 | * boilerplate notice, with the fields enclosed by brackets "[]" 1042 | * replaced with your own identifying information. (Don't include 1043 | * the brackets!) The text should be enclosed in the appropriate 1044 | * comment syntax for the file format. We also recommend that a 1045 | * file or class name and description of purpose be included on the 1046 | * same "printed page" as the copyright notice for easier 1047 | * identification within third-party archives. 1048 | * 1049 | * Copyright [yyyy] Apache Software Foundation 1050 | * 1051 | * Licensed under the Apache License, Version 2.0 (the "License"); 1052 | * you may not use this file except in compliance with the License. 1053 | * You may obtain a copy of the License at 1054 | * 1055 | * http://www.apache.org/licenses/LICENSE-2.0 1056 | * 1057 | * Unless required by applicable law or agreed to in writing, software 1058 | * distributed under the License is distributed on an "AS IS" BASIS, 1059 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1060 | * See the License for the specific language governing permissions and 1061 | * limitations under the License. 1062 | */ 1063 | 1064 | 1065 | You can download the original license file here. 1066 | 1067 | The License is accompanied by a NOTICE 1068 | 1069 | ========================================================================= 1070 | == NOTICE file corresponding to the section 4 d of == 1071 | == the Apache License, Version 2.0, == 1072 | == in this case for the Apache Ant distribution. == 1073 | ========================================================================= 1074 | 1075 | This product includes software developed by 1076 | The Apache Software Foundation (http://www.apache.org/). 1077 | 1078 | This product includes also software developed by : 1079 | - the W3C consortium (http://www.w3c.org) , 1080 | - the SAX project (http://www.saxproject.org) 1081 | 1082 | Please read the different LICENSE files present in the root directory of 1083 | this distribution. 1084 | 1085 | The names "Ant" and "Apache Software Foundation" must not be used to 1086 | endorse or promote products derived from this software without prior 1087 | written permission. For written permission, please contact 1088 | apache@apache.org. 1089 | 1090 | The Apache Software License, Version 1.1 1091 | 1092 | The Apache Software License, Version 1.1, applies to all versions of up to ant 1093 | 1.6.0 included. 1094 | 1095 | /* 1096 | * ============================================================================ 1097 | * The Apache Software License, Version 1.1 1098 | * ============================================================================ 1099 | * 1100 | * Copyright (C) 2000-2003 The Apache Software Foundation. All 1101 | * rights reserved. 1102 | * 1103 | * Redistribution and use in source and binary forms, with or without modifica- 1104 | * tion, are permitted provided that the following conditions are met: 1105 | * 1106 | * 1. Redistributions of source code must retain the above copyright notice, 1107 | * this list of conditions and the following disclaimer. 1108 | * 1109 | * 2. Redistributions in binary form must reproduce the above copyright notice, 1110 | * this list of conditions and the following disclaimer in the documentation 1111 | * and/or other materials provided with the distribution. 1112 | * 1113 | * 3. The end-user documentation included with the redistribution, if any, must 1114 | * include the following acknowledgment: "This product includes software 1115 | * developed by the Apache Software Foundation (http://www.apache.org/)." 1116 | * Alternately, this acknowledgment may appear in the software itself, if 1117 | * and wherever such third-party acknowledgments normally appear. 1118 | * 1119 | * 4. The names "Ant" and "Apache Software Foundation" must not be used to 1120 | * endorse or promote products derived from this software without prior 1121 | * written permission. For written permission, please contact 1122 | * apache@apache.org. 1123 | * 1124 | * 5. Products derived from this software may not be called "Apache", nor may 1125 | * "Apache" appear in their name, without prior written permission of the 1126 | * Apache Software Foundation. 1127 | * 1128 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, 1129 | * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 1130 | * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 1131 | * APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 1132 | * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU- 1133 | * DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 1134 | * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 1135 | * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1136 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 1137 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1138 | * 1139 | * This software consists of voluntary contributions made by many individuals 1140 | * on behalf of the Apache Software Foundation. For more information on the 1141 | * Apache Software Foundation, please see . 1142 | * 1143 | */ 1144 | 1145 | 1146 | Additional License(s) 1147 | 1148 | none 1149 | 1150 | *************************************************************************** 1151 | 1152 | %%The following software may be included in this product: 1153 | SAX 1154 | 1155 | Use of any of this software is governed by the terms of the license below: 1156 | 1157 | There is not a license - it is in the public domain 1158 | 1159 | Copyright Disclaimers 1160 | 1161 | This page includes statements to that effect by David Megginson, who would have 1162 | been able to claim copyright for the original work. 1163 | 1164 | SAX 1.0 1165 | 1166 | Version 1.0 of the Simple API for XML (SAX), created collectively by the 1167 | membership of the XML-DEV mailing list, is hereby released into the public 1168 | domain. 1169 | 1170 | No one owns SAX: you may use it freely in both commercial and non-commercial 1171 | applications, bundle it with your software distribution, include it on a CD-ROM, 1172 | list the source code in a book, mirror the documentation at your own web site, 1173 | or use it in any other way you see fit. 1174 | 1175 | SAX 2.0 1176 | 1177 | I hereby abandon any property rights to SAX 2.0 (the Simple API for XML), and 1178 | release all of the SAX 2.0 source code, compiled code, and documentation 1179 | contained in this distribution into the Public Domain. SAX comes with NO 1180 | WARRANTY or guarantee of fitness for any purpose. 1181 | 1182 | David Megginson, david@megginson.com 1183 | 2000-05-05 1184 | 1185 | Additional License(s) 1186 | 1187 | Public domain software 1188 | 1189 | *************************************************************************** 1190 | 1191 | %%The following software may be included in this product: 1192 | Ant-Contrib 1193 | 1194 | Use of any of this software is governed by the terms of the license below: 1195 | 1196 | /* 1197 | * The Apache Software License, Version 1.1 1198 | * 1199 | * Copyright (c) 2001-2003 Ant-Contrib project. All rights reserved. 1200 | * 1201 | * Redistribution and use in source and binary forms, with or without 1202 | * modification, are permitted provided that the following conditions 1203 | * are met: 1204 | * 1205 | * 1. Redistributions of source code must retain the above copyright 1206 | * notice, this list of conditions and the following disclaimer. 1207 | * 1208 | * 2. Redistributions in binary form must reproduce the above copyright 1209 | * notice, this list of conditions and the following disclaimer in 1210 | * the documentation and/or other materials provided with the 1211 | * distribution. 1212 | * 1213 | * 3. The end-user documentation included with the redistribution, if 1214 | * any, must include the following acknowlegement: 1215 | * "This product includes software developed by the 1216 | * Ant-Contrib project (http://sourceforge.net/projects/ant-contrib)." 1217 | * Alternately, this acknowlegement may appear in the software itself, 1218 | * if and wherever such third-party acknowlegements normally appear. 1219 | * 1220 | * 4. The name Ant-Contrib must not be used to endorse or promote products 1221 | * derived from this software without prior written permission. For 1222 | * written permission, please contact 1223 | * ant-contrib-developers@lists.sourceforge.net. 1224 | * 1225 | * 5. Products derived from this software may not be called "Ant-Contrib" 1226 | * nor may "Ant-Contrib" appear in their names without prior written 1227 | * permission of the Ant-Contrib project. 1228 | * 1229 | * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 1230 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1231 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1232 | * DISCLAIMED. IN NO EVENT SHALL THE ANT-CONTRIB PROJECT OR ITS 1233 | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1234 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1235 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 1236 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 1237 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 1238 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 1239 | * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 1240 | * SUCH DAMAGE. 1241 | * ==================================================================== 1242 | */ 1243 | 1244 | *************************************************************************** 1245 | 1246 | 1247 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/ant-contrib-1.0b3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/ant-contrib-1.0b3.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/api_classic.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/api_classic.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/api_connected.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/api_connected.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/asm-all-3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/asm-all-3.1.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/bcel-5.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/bcel-5.2.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/commons-cli-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/commons-cli-1.0.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/commons-codec-1.3.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/commons-codec-1.3.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/commons-httpclient-3.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/commons-httpclient-3.0.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/commons-logging-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/commons-logging-1.1.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/jctasks.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/jctasks.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/logging.properties: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2010, 2010, Oracle and/or its affiliates. All rights reserved. 2 | 3 | # Properties file which configures the operation of the JDK 4 | # logging facility. 5 | 6 | # The system will look for this config file, first using 7 | # a System property specified at startup: 8 | # 9 | # >java -Djava.util.logging.config.file=myLoggingConfigFilePath 10 | # 11 | # If this property is not specified, then the config file is 12 | # retrieved from its default location at: 13 | # 14 | # JDK_HOME/jre/lib/logging.properties 15 | 16 | # Global logging properties. 17 | # ------------------------------------------ 18 | # The set of handlers to be loaded upon startup. 19 | # Comma-separated list of class names. 20 | # java.util.logging.ConsoleHandler 21 | handlers=com.sun.javacard.tools.util.JCConsoleHandler, java.util.logging.FileHandler 22 | 23 | # Default global logging level. 24 | # Loggers and Handlers may override this level 25 | .level=ALL 26 | 27 | # Loggers 28 | # ------------------------------------------ 29 | # Loggers are usually attached to packages. 30 | # Here, the level for each package is specified. 31 | # The global level is used by default, so levels 32 | # specified here simply act as an override. 33 | #com.sun.javacard.offcardinstaller=ALL 34 | 35 | # Handlers 36 | # ----------------------------------------- 37 | 38 | com.sun.javacard.tools.util.JCConsoleHandler.level=ALL 39 | com.sun.javacard.tools.util.JCConsoleHandler.formatter=com.sun.javacard.tools.util.JCToolsFormatter 40 | com.sun.javacard.tools.util.JCConsoleHandler.filter=com.sun.javacard.tools.util.ConsoleFilter 41 | 42 | # --- FileHandler --- 43 | # Override of global logging level 44 | java.util.logging.FileHandler.level=ALL 45 | 46 | # Naming style for the output file: 47 | # (The output file is placed in the directory 48 | # defined by the "user.home" System property.) 49 | java.util.logging.FileHandler.pattern=%h/java%u.log 50 | 51 | # Limiting size of output file in bytes: 52 | java.util.logging.FileHandler.limit=50000 53 | 54 | # Number of output files to cycle through, by appending an 55 | # integer to the base file name: 56 | java.util.logging.FileHandler.count=10 57 | 58 | # Style of output (Simple or XML): 59 | java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter 60 | 61 | java.util.logging.FileHandler.append=true 62 | 63 | #--------------print class method info 64 | printCurrentClassAndMethod = false 65 | -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/lib/tools.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/lib/tools.jar -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/Java_clr_hori.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/Java_clr_hori.gif -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/Java_clr_hori_interval.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/Java_clr_hori_interval.gif -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/Java_clr_hori_small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/Java_clr_hori_small.gif -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/downicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/downicon.gif -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/oracle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/oracle.gif -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/smallOracleLogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/smallOracleLogo.gif -------------------------------------------------------------------------------- /CCU2F/extlibs/jc303_kit/shared/topicon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/extlibs/jc303_kit/shared/topicon.gif -------------------------------------------------------------------------------- /CCU2F/scripts/install+personalize.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Install applet and set private key of attestation certifcate (User Presence Check disabled) 3 | #java -jar tools/gp.jar -reinstall ccu2f.cap -params 010140f3fccc0d00d8031954f90864d43c247f4bf5f0665c6b50cc17749a27d1cf7664 4 | 5 | # Install applet and set private key of attestation certifcate (User Presence Check enabled) 6 | java -jar tools/gp.jar -reinstall cap/ccu2f.cap -params 000140f3fccc0d00d8031954f90864d43c247f4bf5f0665c6b50cc17749a27d1cf7664 7 | 8 | # Upload attestation certificate 9 | scriptor scripts/personalisation_script.txt 10 | -------------------------------------------------------------------------------- /CCU2F/scripts/personalisation_script.txt: -------------------------------------------------------------------------------- 1 | 00A4040008A0000006472F000100 2 | 80090000803082013c3081e4a003020102020a47901280001155957352300a06082a8648ce3d0403023017311530130603550403130c476e756262792050696c6f74301e170d3132303831343138323933325a170d3133303831343138323933325a3031312f302d0603550403132650696c6f74476e756262792d302e342e312d34373930 3 | 8009008080313238303030313135353935373335323059301306072a8648ce3d020106082a8648ce3d030107034200048d617e65c9508e64bcc5673ac82a6799da3c1446682c258c463fffdf58dfd2fa3e6c378b53d795c4a4dffb4199edd7862f23abaf0203b4b8911ba0569994e101300a06082a8648ce3d0403020347003044022060cd 4 | 8009010040b6061e9c22262d1aac1d96d8c70829b2366531dda268832cb836bcd30dfa0220631b1459f09e6330055722c8d89b7f48883b9089b88d60d1d9795902b30410df -------------------------------------------------------------------------------- /CCU2F/src/de/tsenger/u2f/FIDOAPI.java: -------------------------------------------------------------------------------- 1 | /* 2 | ******************************************************************************* 3 | * FIDO U2F Authenticator 4 | * (c) 2015 Ledger 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | ******************************************************************************* 18 | */ 19 | 20 | package de.tsenger.u2f; 21 | 22 | import javacard.security.ECPrivateKey; 23 | 24 | public interface FIDOAPI { 25 | 26 | public short generateKeyAndWrap(byte[] applicationParameter, short applicationParameterOffset, ECPrivateKey generatedPrivateKey, byte[] publicKey, short publicKeyOffset, byte[] keyHandle, short keyHandleOffset); 27 | public boolean unwrap(byte[] keyHandle, short keyHandleOffset, short keyHandleLength, byte[] applicationParameter, short applicationParameterOffset, ECPrivateKey unwrappedPrivateKey); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /CCU2F/src/de/tsenger/u2f/FIDOCCImplementation.java: -------------------------------------------------------------------------------- 1 | /* 2 | ******************************************************************************* 3 | * FIDO CCU2F Authenticator 4 | * (c) 2017 tsenger 5 | * based on FIDO U2F Authenticator by Ledger 6 | * 7 | * Licensed under the Apache License, Version 2.0 (the "License"); 8 | * you may not use this file except in compliance with the License. 9 | * You may obtain a copy of the License at 10 | * 11 | * http://www.apache.org/licenses/LICENSE-2.0 12 | * 13 | * Unless required by applicable law or agreed to in writing, software 14 | * distributed under the License is distributed on an "AS IS" BASIS, 15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | * See the License for the specific language governing permissions and 17 | * limitations under the License. 18 | ******************************************************************************* 19 | */ 20 | 21 | package de.tsenger.u2f; 22 | 23 | import javacard.framework.JCSystem; 24 | import javacard.framework.Util; 25 | import javacard.security.AESKey; 26 | import javacard.security.ECKey; 27 | import javacard.security.ECPrivateKey; 28 | import javacard.security.ECPublicKey; 29 | import javacard.security.KeyAgreement; 30 | import javacard.security.KeyBuilder; 31 | import javacard.security.KeyPair; 32 | import javacard.security.MessageDigest; 33 | import javacard.security.RandomData; 34 | 35 | import com.nxp.id.jcopx.KeyAgreementX; 36 | import com.nxp.id.jcopx.KeyBuilderX; 37 | 38 | public class FIDOCCImplementation implements FIDOAPI { 39 | 40 | private static KeyPair keyPair; 41 | private static AESKey macKey1, macKey2; 42 | //private static byte[] seed; 43 | private static AESKey drngSeed1, drngSeed2; 44 | private static RandomData random; 45 | private static byte[] scratch; 46 | private static KeyAgreement ecMultiplyHelper; 47 | private static MessageDigest sha256; 48 | 49 | 50 | public FIDOCCImplementation() { 51 | 52 | random = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM); 53 | 54 | scratch = JCSystem.makeTransientByteArray((short)128, JCSystem.CLEAR_ON_DESELECT); 55 | //seed = new byte[64]; 56 | 57 | keyPair = new KeyPair( 58 | (ECPublicKey)KeyBuilder.buildKey(KeyBuilder.TYPE_EC_FP_PUBLIC, KeyBuilder.LENGTH_EC_FP_256, false), 59 | (ECPrivateKey)KeyBuilder.buildKey(KeyBuilder.TYPE_EC_FP_PRIVATE, KeyBuilder.LENGTH_EC_FP_256, false)); 60 | Secp256r1.setCommonCurveParameters((ECKey)keyPair.getPrivate()); 61 | Secp256r1.setCommonCurveParameters((ECKey)keyPair.getPublic()); 62 | 63 | // Initialize the unique seed for DRNG function 64 | //random.generateData(seed, (short)0, (short)64); 65 | 66 | // Initialize the unique seed for DRNG function 67 | drngSeed1 = (AESKey)KeyBuilderX.buildKey(KeyBuilderX.TYPE_AES_STATIC, KeyBuilder.LENGTH_AES_256, false); 68 | drngSeed2 = (AESKey)KeyBuilderX.buildKey(KeyBuilderX.TYPE_AES_STATIC, KeyBuilder.LENGTH_AES_256, false); 69 | random.generateData(scratch, (short)0, (short)32); 70 | drngSeed1.setKey(scratch, (short)0); 71 | random.generateData(scratch, (short)0, (short)32); 72 | drngSeed2.setKey(scratch, (short)0); 73 | 74 | sha256 = MessageDigest.getInstance(MessageDigest.ALG_SHA_256, false); 75 | 76 | // Initialize the unique keys for MAC function 77 | macKey1 = (AESKey)KeyBuilderX.buildKey(KeyBuilderX.TYPE_AES_STATIC, KeyBuilder.LENGTH_AES_128, false); 78 | macKey2 = (AESKey)KeyBuilderX.buildKey(KeyBuilderX.TYPE_AES_STATIC, KeyBuilder.LENGTH_AES_128, false); 79 | random.generateData(scratch, (short)0, (short)16); 80 | macKey1.setKey(scratch, (short)0); 81 | random.generateData(scratch, (short)0, (short)16); 82 | macKey2.setKey(scratch, (short)0); 83 | 84 | // Initialize ecMultiplier 85 | ecMultiplyHelper = KeyAgreementX.getInstance(KeyAgreementX.ALG_EC_SVDP_DH_PLAIN_XY, false); 86 | } 87 | 88 | /** 89 | * Generate Public Key from given Private Key. Uses the Key Agreement API of Java card. 90 | * @param pointOutputBuffer Output buffer 91 | * @param offset Offset of the output buffer 92 | * @return Length of the final EC point 93 | */ 94 | private short generatePublicKeyPoint(byte[] pointOutputBuffer, short offset){ 95 | ecMultiplyHelper.init(keyPair.getPrivate()); 96 | return ecMultiplyHelper.generateSecret(Secp256r1.SECP256R1_G, (short) 0, (short) 65, pointOutputBuffer, offset); 97 | } 98 | 99 | 100 | private void generatePrivateKey(byte[] applicationParameter, short applicationParameterOffset, byte[] nonceBuffer, short nonceBufferOffset) { 101 | Util.arrayCopy(applicationParameter, applicationParameterOffset, scratch, (short) 0, (short) 32); 102 | Util.arrayCopy(nonceBuffer, nonceBufferOffset, scratch, (short) 32, (short) 32); // we use only 32 byte of the nonce to avoid that message length gets bigger then blocksize (64 Byte) 103 | drngSeed1.getKey(scratch, (short) 64); 104 | drngSeed2.getKey(scratch, (short) 96); 105 | computeHmacSha256(scratch, (short) 64, (short) 64, scratch, (short) 0, (short) 64, scratch, (short) 0); 106 | 107 | 108 | } 109 | 110 | private short computeHmacSha256(byte[] key, short key_offset, short key_length, 111 | byte[] message, short message_offset, short message_length, 112 | byte[] mac, short mac_offset){ 113 | 114 | byte[] hmacBuffer = JCSystem.makeTransientByteArray((short) 128, JCSystem.CLEAR_ON_DESELECT); 115 | 116 | short BLOCKSIZE=64; 117 | short HASHSIZE=32; 118 | 119 | // compute inner hash 120 | for (short i=0; i (short)attestationCertificate.length) { 150 | ISOException.throwIt(ISO7816.SW_WRONG_DATA); 151 | } 152 | Util.arrayCopy(buffer, dataOffset, attestationCertificate, copyOffset, len); 153 | if ((short)(copyOffset + len) == (short)attestationCertificate.length) { 154 | attestationCertificateSet = true; 155 | } 156 | } 157 | 158 | private void handleEnroll(APDU apdu) throws ISOException { 159 | byte[] buffer = apdu.getBuffer(); 160 | short len = apdu.setIncomingAndReceive(); 161 | short dataOffset = apdu.getOffsetCdata(); 162 | boolean extendedLength = (dataOffset != ISO7816.OFFSET_CDATA); 163 | short outOffset; 164 | if (len != 64) { 165 | ISOException.throwIt(ISO7816.SW_WRONG_LENGTH); 166 | } 167 | // Deny if user presence cannot be validated 168 | if ((flags & INSTALL_FLAG_DISABLE_USER_PRESENCE) == 0) { 169 | if (scratchPersistent[0] != 0) { 170 | ISOException.throwIt(FIDO_SW_TEST_OF_PRESENCE_REQUIRED); 171 | } 172 | } 173 | // Check if the counter overflowed 174 | if (counterOverflowed) { 175 | ISOException.throwIt(ISO7816.SW_FILE_FULL); 176 | } 177 | // Set user presence 178 | scratchPersistent[0] = (byte)1; 179 | // Generate the key pair 180 | if (localPrivateTransient) { 181 | Secp256r1.setCommonCurveParameters(localPrivateKey); 182 | } 183 | short keyHandleLength = fidoImpl.generateKeyAndWrap(buffer, (short)(dataOffset + APDU_APPLICATION_PARAMETER_OFFSET), localPrivateKey, scratch, SCRATCH_PUBLIC_KEY_OFFSET, scratch, SCRATCH_KEY_HANDLE_OFFSET); 184 | scratch[SCRATCH_PAD] = ENROLL_LEGACY_VERSION; 185 | scratch[SCRATCH_KEY_HANDLE_LENGTH_OFFSET] = (byte)keyHandleLength; 186 | // Prepare the attestation 187 | attestationSignature.update(RFU_ENROLL_SIGNED_VERSION, (short)0, (short)1); 188 | attestationSignature.update(buffer, (short)(dataOffset + APDU_APPLICATION_PARAMETER_OFFSET), (short)32); 189 | attestationSignature.update(buffer, (short)(dataOffset + APDU_CHALLENGE_OFFSET), (short)32); 190 | attestationSignature.update(scratch, SCRATCH_KEY_HANDLE_OFFSET, keyHandleLength); 191 | attestationSignature.update(scratch, SCRATCH_PUBLIC_KEY_OFFSET, (short)65); 192 | outOffset = (short)(ENROLL_PUBLIC_KEY_OFFSET + 65 + 1 + keyHandleLength); 193 | if (extendedLength) { 194 | // If using extended length, the message can be completed and sent immediately 195 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_EXTENDED; 196 | outOffset = Util.arrayCopyNonAtomic(scratch, SCRATCH_PAD, buffer, (short)0, outOffset); 197 | outOffset = Util.arrayCopyNonAtomic(attestationCertificate, (short)0, buffer, outOffset, (short)attestationCertificate.length); 198 | short signatureSize = attestationSignature.sign(buffer, (short)0, (short)0, buffer, outOffset); 199 | outOffset += signatureSize; 200 | apdu.setOutgoingAndSend((short)0, outOffset); 201 | } 202 | else { 203 | // Otherwise, keep the signature and proceed to send the first chunk 204 | short signatureSize = attestationSignature.sign(buffer, (short)0, (short)0, scratch, SCRATCH_SIGNATURE_OFFSET); 205 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_NOT_EXTENDED; 206 | Util.setShort(scratch, SCRATCH_CURRENT_OFFSET, (short)0); 207 | Util.setShort(scratch, SCRATCH_SIGNATURE_LENGTH, signatureSize); 208 | Util.setShort(scratch, SCRATCH_NONCERT_LENGTH, outOffset); 209 | Util.setShort(scratch, SCRATCH_FULL_LENGTH, (short)(outOffset + attestationCertificate.length + signatureSize)); 210 | scratch[SCRATCH_INCLUDE_CERT] = (byte)1; 211 | handleGetData(apdu); 212 | } 213 | } 214 | 215 | private void handleSign(APDU apdu) throws ISOException { 216 | byte[] buffer = apdu.getBuffer(); 217 | short len = apdu.setIncomingAndReceive(); 218 | short dataOffset = apdu.getOffsetCdata(); 219 | byte p1 = buffer[ISO7816.OFFSET_P1]; 220 | boolean sign = false; 221 | boolean counterOverflow = true; 222 | short keyHandleLength; 223 | boolean extendedLength = (dataOffset != ISO7816.OFFSET_CDATA); 224 | short outOffset = SCRATCH_PAD; 225 | if (len < 65) { 226 | ISOException.throwIt(ISO7816.SW_WRONG_LENGTH); 227 | } 228 | switch(p1) { 229 | case P1_SIGN_OPERATION: 230 | sign = true; 231 | break; 232 | case P1_SIGN_CHECK_ONLY: 233 | break; 234 | default: 235 | ISOException.throwIt(ISO7816.SW_INCORRECT_P1P2); 236 | } 237 | // Check if the counter overflowed 238 | if (counterOverflowed) { 239 | ISOException.throwIt(ISO7816.SW_FILE_FULL); 240 | } 241 | // Verify key handle 242 | if (localPrivateTransient) { 243 | Secp256r1.setCommonCurveParameters(localPrivateKey); 244 | } 245 | keyHandleLength = (short)(buffer[(short)(dataOffset + 64)] & 0xff); 246 | if (!fidoImpl.unwrap(buffer, (short)(dataOffset + 65), keyHandleLength, buffer, (short)(dataOffset + APDU_APPLICATION_PARAMETER_OFFSET), (sign ? localPrivateKey : null))) { 247 | ISOException.throwIt(FIDO_SW_INVALID_KEY_HANDLE); 248 | } 249 | // If not signing, return with the "correct" exception 250 | if (!sign) { 251 | ISOException.throwIt(FIDO_SW_TEST_OF_PRESENCE_REQUIRED); 252 | } 253 | // If signing, only proceed if user presence can be validated 254 | if ((flags & INSTALL_FLAG_DISABLE_USER_PRESENCE) == 0) { 255 | if (scratchPersistent[0] != 0) { 256 | ISOException.throwIt(FIDO_SW_TEST_OF_PRESENCE_REQUIRED); 257 | } 258 | } 259 | scratchPersistent[0] = (byte)1; 260 | // Increase the counter 261 | boolean carry = false; 262 | JCSystem.beginTransaction(); 263 | for (byte i=0; i<4; i++) { 264 | short addValue = (i == 0 ? (short)1 : (short)0); 265 | short val = (short)((short)(counter[(short)(4 - 1 - i)] & 0xff) + addValue); 266 | if (carry) { 267 | val++; 268 | } 269 | carry = (val > 255); 270 | counter[(short)(4 - 1 - i)] = (byte)val; 271 | } 272 | JCSystem.commitTransaction(); 273 | if (carry) { 274 | // Game over 275 | counterOverflowed = true; 276 | ISOException.throwIt(ISO7816.SW_FILE_FULL); 277 | } 278 | // Prepare reply 279 | scratch[outOffset++] = FLAG_USER_PRESENCE_VERIFIED; 280 | outOffset = Util.arrayCopyNonAtomic(counter, (short)0, scratch, outOffset, (short)4); 281 | localSignature.init(localPrivateKey, Signature.MODE_SIGN); 282 | localSignature.update(buffer, (short)(dataOffset + APDU_APPLICATION_PARAMETER_OFFSET), (short)32); 283 | localSignature.update(scratch, SCRATCH_PAD, (short)5); 284 | outOffset += localSignature.sign(buffer, (short)(dataOffset + APDU_CHALLENGE_OFFSET), (short)32, scratch, outOffset); 285 | 286 | if (extendedLength) { 287 | // If using extended length, the message can be completed and sent immediately 288 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_EXTENDED; 289 | Util.arrayCopyNonAtomic(scratch, SCRATCH_PAD, buffer, (short)0, outOffset); 290 | apdu.setOutgoingAndSend((short)0, (short)(outOffset - SCRATCH_PAD)); 291 | } 292 | else { 293 | // Otherwise send the first chunk 294 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_NOT_EXTENDED; 295 | Util.setShort(scratch, SCRATCH_CURRENT_OFFSET, (short)0); 296 | Util.setShort(scratch, SCRATCH_SIGNATURE_LENGTH, (short)0); 297 | Util.setShort(scratch, SCRATCH_NONCERT_LENGTH, (short)(outOffset - SCRATCH_PAD)); 298 | Util.setShort(scratch, SCRATCH_FULL_LENGTH, (short)(outOffset - SCRATCH_PAD)); 299 | scratch[SCRATCH_INCLUDE_CERT] = (byte)0; 300 | handleGetData(apdu); 301 | } 302 | } 303 | 304 | private void handleVersion(APDU apdu) throws ISOException { 305 | byte[] buffer = apdu.getBuffer(); 306 | Util.arrayCopyNonAtomic(VERSION, (short)0, buffer, (short)0, (short)VERSION.length); 307 | apdu.setOutgoingAndSend((short)0, (short)VERSION.length); 308 | } 309 | 310 | private void handleGetData(APDU apdu) throws ISOException { 311 | byte[] buffer = apdu.getBuffer(); 312 | short currentOffset = Util.getShort(scratch, SCRATCH_CURRENT_OFFSET); 313 | short fullLength = Util.getShort(scratch, SCRATCH_FULL_LENGTH); 314 | switch(scratch[SCRATCH_TRANSPORT_STATE]) { 315 | case TRANSPORT_NOT_EXTENDED: 316 | case TRANSPORT_NOT_EXTENDED_CERT: 317 | case TRANSPORT_NOT_EXTENDED_SIGNATURE: 318 | break; 319 | default: 320 | ISOException.throwIt(ISO7816.SW_CONDITIONS_NOT_SATISFIED); 321 | } 322 | short requestedSize = apdu.setOutgoing(); 323 | short outOffset = (short)0; 324 | if (scratch[SCRATCH_TRANSPORT_STATE] == TRANSPORT_NOT_EXTENDED) { 325 | short dataSize = Util.getShort(scratch, SCRATCH_NONCERT_LENGTH); 326 | short blockSize = ((short)(dataSize - currentOffset) > requestedSize ? requestedSize : (short)(dataSize - currentOffset)); 327 | Util.arrayCopyNonAtomic(scratch, (short)(SCRATCH_PAD + currentOffset), buffer, outOffset, blockSize); 328 | outOffset += blockSize; 329 | currentOffset += blockSize; 330 | fullLength -= blockSize; 331 | if (currentOffset == dataSize) { 332 | if (scratch[SCRATCH_INCLUDE_CERT] == (byte)1) { 333 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_NOT_EXTENDED_CERT; 334 | currentOffset = (short)0; 335 | requestedSize -= blockSize; 336 | } 337 | else { 338 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_NONE; 339 | } 340 | } 341 | } 342 | if ((scratch[SCRATCH_TRANSPORT_STATE] == TRANSPORT_NOT_EXTENDED_CERT) && (requestedSize != (short)0)) { 343 | short blockSize = ((short)(attestationCertificate.length - currentOffset) > requestedSize ? requestedSize : (short)(attestationCertificate.length - currentOffset)); 344 | Util.arrayCopyNonAtomic(attestationCertificate, currentOffset, buffer, outOffset, blockSize); 345 | outOffset += blockSize; 346 | currentOffset += blockSize; 347 | fullLength -= blockSize; 348 | if (currentOffset == (short)attestationCertificate.length) { 349 | if (Util.getShort(scratch, SCRATCH_SIGNATURE_LENGTH) != (short)0) { 350 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_NOT_EXTENDED_SIGNATURE; 351 | currentOffset = (short)0; 352 | requestedSize -= blockSize; 353 | } 354 | else { 355 | scratch[SCRATCH_TRANSPORT_STATE] = TRANSPORT_NONE; 356 | } 357 | } 358 | } 359 | if ((scratch[SCRATCH_TRANSPORT_STATE] == TRANSPORT_NOT_EXTENDED_SIGNATURE) && (requestedSize != (short)0)) { 360 | short signatureSize = Util.getShort(scratch, SCRATCH_SIGNATURE_LENGTH); 361 | short blockSize = ((short)(signatureSize - currentOffset) > requestedSize ? requestedSize : (short)(signatureSize - currentOffset)); 362 | Util.arrayCopyNonAtomic(scratch, (short)(SCRATCH_SIGNATURE_OFFSET + currentOffset), buffer, outOffset, blockSize); 363 | outOffset += blockSize; 364 | currentOffset += blockSize; 365 | fullLength -= blockSize; 366 | } 367 | apdu.setOutgoingLength(outOffset); 368 | apdu.sendBytes((short)0, outOffset); 369 | Util.setShort(scratch, SCRATCH_CURRENT_OFFSET, currentOffset); 370 | Util.setShort(scratch, SCRATCH_FULL_LENGTH, fullLength); 371 | if (fullLength > 256) { 372 | ISOException.throwIt(ISO7816.SW_BYTES_REMAINING_00); 373 | } 374 | else 375 | if (fullLength != 0) { 376 | ISOException.throwIt((short)(ISO7816.SW_BYTES_REMAINING_00 + fullLength)); 377 | } 378 | } 379 | 380 | public void process(APDU apdu) throws ISOException { 381 | byte[] buffer = apdu.getBuffer(); 382 | if (selectingApplet()) { 383 | if (attestationCertificateSet) { 384 | Util.arrayCopyNonAtomic(VERSION, (short)0, buffer, (short)0, (short)VERSION.length); 385 | apdu.setOutgoingAndSend((short)0, (short)VERSION.length); 386 | } 387 | return; 388 | } 389 | if (buffer[ISO7816.OFFSET_CLA] == PROPRIETARY_CLA) { 390 | if (attestationCertificateSet) { 391 | ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED); 392 | } 393 | switch(buffer[ISO7816.OFFSET_INS]) { 394 | case FIDO_ADM_SET_ATTESTATION_CERT: 395 | handleSetAttestationCert(apdu); 396 | break; 397 | default: 398 | ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED); 399 | } 400 | } 401 | else if (buffer[ISO7816.OFFSET_CLA] == FIDO_CLA) { 402 | if (!attestationCertificateSet) { 403 | ISOException.throwIt(ISO7816.SW_SECURITY_STATUS_NOT_SATISFIED); 404 | } 405 | switch(buffer[ISO7816.OFFSET_INS]) { 406 | case FIDO_INS_ENROLL: 407 | handleEnroll(apdu); 408 | break; 409 | case FIDO_INS_SIGN: 410 | handleSign(apdu); 411 | break; 412 | case FIDO_INS_VERSION: 413 | handleVersion(apdu); 414 | break; 415 | case ISO_INS_GET_DATA: 416 | handleGetData(apdu); 417 | break; 418 | default: 419 | ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED); 420 | } 421 | } 422 | else { 423 | ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED); 424 | } 425 | } 426 | 427 | public static void install (byte bArray[], short bOffset, byte bLength) throws ISOException { 428 | short offset = bOffset; 429 | offset += (short)(bArray[offset] + 1); // instance 430 | offset += (short)(bArray[offset] + 1); // privileges 431 | new U2FApplet(bArray, (short)(offset + 1), bArray[offset]).register(bArray, (short)(bOffset + 1), bArray[bOffset]); 432 | } 433 | } 434 | 435 | -------------------------------------------------------------------------------- /CCU2F/tools/ant-javacard.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/tools/ant-javacard.jar -------------------------------------------------------------------------------- /CCU2F/tools/gp.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsenger/CCU2F/9f178ebcd6a5b22e738f263a92552230ac14f4e9/CCU2F/tools/gp.jar -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NEW since 18.01.2019 2 | With the last commits I added the cap file as well as scripts, libs and tools for easier development. Unfortunately I can't provide the JCOP libs which is used for KeyAgreementX.ALG_EC_SVDP_DH_PLAIN_XY in the JCOP cards. But since Javacard 3.0.5 the KeyAgreement.ALG_EC_SVDP_DH_PLAIN_XY is in the standard Javacard libs. So if your card supports JC 3.0.5 you can easily change the code and use the standard lib. 3 | 4 | # FIDO CCU2F Javacard Applet 5 | This CCU2F JavaCard Applet is based on the [Ledger U2F Applet](https://github.com/LedgerHQ/ledger-u2f-javacard). I imported this applet to Eclipse with installed JCOP Tools and modified the AID of this applet to the standardized AID for FIDO NFC token ( 0xA0000006472F0001). I also provided some example data ([Attestation Certificate and Key](u2f-javacard/U2F Example Attestation Certificate and Key Bytes.txt)) to bring this applet to run. The example data is sourced in the specification [FIDO U2F Raw Message Formats] (https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-raw-message-formats.html#examples). 6 | This Applet was succesfully tested on JCOP v2.4.2 R3 cards. This implementation uses the KeyAgreementX.ALG_EC_SVDP_DH_PLAIN_XY from NXPs JCOP library for EC Point Multiplication. Other cards may have similar functions which can be used instead. 7 | 8 | ## Installing 9 | The following install parameters are expected : 10 | 11 | - 1 byte flag : provide 01 to pass the current [Fido NFC interoperability tests](https://github.com/google/u2f-ref-code/tree/master/u2f-tests), or 00 12 | - 2 bytes length (big endian encoded) : length of the attestation certificate to load, supposed to be using a private key on the P-256 curve 13 | - 32 bytes : private key of the attestation certificate 14 | 15 | Example parameters with flag set to 00, length of certificate is set to 0x0140 byte and key bytes: 16 |
17 | 00 01 40 f3 fc cc 0d 00 d8 03 19 54 f9 08 64 d4 3c 24 7f 4b f5 f0 66 5c 6b 50 cc 17 74 9a 27 d1 cf 76 64 
18 | 
19 | 20 | Before using the applet, the attestation certificate shall be loaded using a proprietary APDU 21 | 22 | | CLA | INS | P1 | P2 | Data | 23 | | --- | --- | ------------- | ------------ | ----------------------- | 24 | | 80 | 09 | offset (high) | offset (low) | Certificate data chunk | 25 | 26 | The following command APDUs will upload the example attestation certicate to the applet: 27 | - Select applet: 28 |
29 | 00 A4 04 00 08 A0 00 00 06 47 2F 00 01
30 | 
31 | - Upload first 128 Byte of the certificate to applet: 32 |
33 | 80 09 00 00 80 30 82 01 3c 30 81 e4 a0 03 02 01 02 02 0a 47 90 12 80 00 11 55 95 73 52 30 0a 06 08 2a 86 48 ce 3d 04 03 02 30 17 31 15 30 13 06 03 55 04 03 13 0c 47 6e 75 62 62 79 20 50 69 6c 6f 74 30 1e 17 0d 31 32 30 38 31 34 31 38 32 39 33 32 5a 17 0d 31 33 30 38 31 34 31 38 32 39 33 32 5a 30 31 31 2f 30 2d 06 03 55 04 03 13 26 50 69 6c 6f 74 47 6e 75 62 62 79 2d 30 2e 34 2e 31 2d 34 37 39 30
34 | 
35 | - Upload next 128 Byte of the certificate to applet: 36 |
37 | 80 09 00 80 80 31 32 38 30 30 30 31 31 35 35 39 35 37 33 35 32 30 59 30 13 06 07 2a 86 48 ce 3d 02 01 06 08 2a 86 48 ce 3d 03 01 07 03 42 00 04 8d 61 7e 65 c9 50 8e 64 bc c5 67 3a c8 2a 67 99 da 3c 14 46 68 2c 25 8c 46 3f ff df 58 df d2 fa 3e 6c 37 8b 53 d7 95 c4 a4 df fb 41 99 ed d7 86 2f 23 ab af 02 03 b4 b8 91 1b a0 56 99 94 e1 01 30 0a 06 08 2a 86 48 ce 3d 04 03 02 03 47 00 30 44 02 20 60 cd
38 | 
39 | - Upload last 64 Byte of the certificate to applet: 40 |
41 | 80 09 01 00 40 b6 06 1e 9c 22 26 2d 1a ac 1d 96 d8 c7 08 29 b2 36 65 31 dd a2 68 83 2c b8 36 bc d3 0d fa 02 20 63 1b 14 59 f0 9e 63 30 05 57 22 c8 d8 9b 7f 48 88 3b 90 89 b8 8d 60 d1 d9 79 59 02 b3 04 10 df
42 | 
43 | 44 | 45 | ## Testing on Android 46 | 47 | - Download [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) 48 | - Test on http://u2fdemo.appspot.com or https://demo.yubico.com/u2f from Chrome 49 | - For additional API reference and implementations, check [the reference code](https://github.com/google/u2f-ref-code), the [beta NFC API](https://github.com/google/u2f-ref-code/blob/no-extension/u2f-gae-demo/war/js/u2f-api.js) and [Yubico guide](https://www.yubico.com/applications/fido/) 50 | --------------------------------------------------------------------------------