2 J J  J J J                X J 0    6   <       J L N J L  T X  ^ ^ ^   J      J p s   w    L L    X  L          L        J J t J J s      s s a a! X" J#  $  % t& J' t( ) *+ J, -.  /0 1 SignatureFile InnerClasses_aliasLjava/lang/String; _b64EncoderLsun/misc/BASE64Encoder; _privateKeyLjava/security/PrivateKey; _certChain%[Ljava/security/cert/X509Certificate;T(Ljava/lang/String;Ljava/security/PrivateKey;[Ljava/security/cert/X509Certificate;)VCodeLineNumberTableLocalVariableTablethis%Lptolemy/copernicus/applet/JarSigner;alias privateKey certChainmain([Ljava/lang/String;)VpropertyfileInputStreamLjava/io/FileInputStream;exLjava/io/IOException;Ljava/lang/Throwable;args[Ljava/lang/String;keystoreFileName storePassword keyPasswordkeystorePropertiesFileName propertiesLjava/util/Properties; StackMapTablesignO(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[C[C)VcertInLjava/io/ByteArrayInputStream;cert$Ljava/security/cert/X509Certificate;countI,Ljava/security/spec/InvalidKeySpecException;keyStoreLjava/security/KeyStore;chain![Ljava/security/cert/Certificate;cf'Ljava/security/cert/CertificateFactory;keyLjava/security/Key; keyFactoryLjava/security/KeyFactory;keySpecLjava/security/spec/KeySpec; jarSignerjarFileLjava/util/jar/JarFile; jarFileNamesignedJarFileName[CfileIn outStreamLjava/io/OutputStream;commandsLjava/util/List;execLptolemy/util/StreamExec;2345678 Exceptions_createEntries@(Ljava/util/jar/Manifest;Ljava/util/jar/JarFile;)Ljava/util/Map; attributesLjava/util/jar/Attributes;manifestLjava/util/jar/Manifest;entriesLjava/util/Map;9_createSignatureFilej(Ljava/util/jar/Manifest;Ljava/security/MessageDigest;)Lptolemy/copernicus/applet/JarSigner$SignatureFile; messageDigestLjava/security/MessageDigest;manifestDigester$Lsun/security/util/ManifestDigester;:;<=>_findConstructorD(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;cLjava/lang/Class;argTypes[Ljava/lang/Class;ctLjava/lang/reflect/Constructor;? _findMethodQ(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; methodNamemLjava/lang/reflect/Method;@_getManifestFile1(Ljava/util/jar/JarFile;)Ljava/util/jar/Manifest;Ljava/util/Enumeration; inputStreamLjava/io/InputStream;jarEntryLjava/util/jar/JarEntry;AB_pruneManifestelementmapelementsLjava/util/Iterator;C_serializeManifest(Ljava/util/jar/Manifest;)[BbaosLjava/io/ByteArrayOutputStream; _signJarFile0(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V metaEntryentry manifestFile manifestBytes[BsignatureFileNamesignatureFileEntrysignatureBlockNamesignatureBlockEntry metaEntries allEntries outputStream signatureFile3Lptolemy/copernicus/applet/JarSigner$SignatureFile;blockDBlock9Lptolemy/copernicus/applet/JarSigner$SignatureFile$Block;manifestFileNamejarOutputStreamLjava/util/jar/JarOutputStream;DVEFGH _updateDigestF(Ljava/security/MessageDigest;Ljava/io/InputStream;)Ljava/lang/String;bufferreaddigest_updateManifestDigestl(Ljava/util/jar/Manifest;Ljava/util/jar/JarFile;Ljava/security/MessageDigest;Ljava/util/Map;)Ljava/util/Map; jarElements_writeJarEntryQ(Ljava/util/jar/JarEntry;Ljava/util/jar/JarFile;Ljava/util/jar/JarOutputStream;)V access$000x0x1 access$100x2()V SourceFileJarSigner.java 45 +,  "java/security/cert/X509Certificate I JK LMnUsage: java -classpath $PTII ptolemy.copernicus.applet.JarSigner JNLPApplication.jar JNLPSignedApplication.jarN OPjava/lang/StringBuilder/Users/cxh/ptII QRS T ptKeystore UV#this.is.the.storePassword,change.it!this.is.the.keyPassword,change.itptolemyptolemy.ptII.dirW XYptKeystore.propertiesjava/util/Propertiesjava/io/FileInputStream P Z[ \java/io/IOException ]MWarning: failed to read "8", using default store password, key password and alias: Q^About to sign "" and create "" using keystore: " and alias: " _` java/lang/Throwable aJKS3 bc Zd efjava/lang/Exception,Could not get certificate chain from alias "" from keystore "X.5094 bgjava/io/ByteArrayInputStreamh ij k lm noCould not get key from alias "5 pV6 bq$java/security/spec/DSAPrivateKeySpec rs*java/security/spec/InvalidKeySpecException Using RSA$java/security/spec/RSAPrivateKeySpec tu#ptolemy/copernicus/applet/JarSigner java/util/jar/JarFilejava/io/FileOutputStream PQ2LWorking around bug where the chain of certs is not included in the .RSA filejava/util/LinkedListjarsigner -keystore " " -keypass "java/lang/String v" -storepass "" "" "w xyptolemy/util/StreamExec z{ | }~9  E  1.0  Created-By java.version ( java.vendor)"sun/security/util/ManifestDigester KL1ptolemy/copernicus/applet/JarSigner$SignatureFilejava/security/MessageDigest  java/lang/RuntimeException V?  @META-INF/MANIFEST.MF  A  java/util/jar/JarEntry java/util/jar/Manifest  s[B  C    java/io/ByteArrayOutputStream   j :; SHA1 b uv  ! java/util/jar/JarOutputStream     VMETA-INF  xy  s  tj   SHA1-Digest pq java/util/jar/Attributes sun/misc/BASE64Encoderjava/lang/Objectjava/io/OutputStreamjava/security/KeyStore%java/security/cert/CertificateFactoryjava/security/Keyjava/security/KeyFactoryjava/security/spec/KeySpecjava/security/PrivateKey java/util/Map java/lang/IllegalAccessExceptionjava/lang/NoSuchMethodException+java/lang/reflect/InvocationTargetException java/lang/InstantiationException java/lang/ClassNotFoundExceptionjava/lang/reflect/Constructorjava/lang/reflect/Methodjava/util/Enumerationjava/io/InputStreamjava/util/Iterator7ptolemy/copernicus/applet/JarSigner$SignatureFile$Block&java/security/NoSuchAlgorithmException!java/security/InvalidKeyException java/security/SignatureException'java/security/cert/CertificateExceptionjava/lang/System arraycopy*(Ljava/lang/Object;ILjava/lang/Object;II)VerrLjava/io/PrintStream;java/io/PrintStreamprintln(Ljava/lang/String;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder; java/io/File separatortoString()Ljava/lang/String;ptolemy/util/StringUtilities getProperty&(Ljava/lang/String;)Ljava/lang/String;load(Ljava/io/InputStream;)Vcloseout-(Ljava/lang/Object;)Ljava/lang/StringBuilder; toCharArray()[CprintStackTrace getInstance,(Ljava/lang/String;)Ljava/security/KeyStore;(Ljava/io/InputStream;[C)VgetCertificateChain5(Ljava/lang/String;)[Ljava/security/cert/Certificate;;(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;java/security/cert/Certificate getEncoded()[B([B)VgenerateCertificate7(Ljava/io/InputStream;)Ljava/security/cert/Certificate;getKey)(Ljava/lang/String;[C)Ljava/security/Key; getAlgorithm.(Ljava/lang/String;)Ljava/security/KeyFactory; getKeySpecB(Ljava/security/Key;Ljava/lang/Class;)Ljava/security/spec/KeySpec;generatePrivate8(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;([C)Vjava/util/Listadd(Ljava/lang/Object;)Z setCommands(Ljava/util/List;)Vstart getEntries()Ljava/util/Map;size()IgetMainAttributes()Ljava/util/jar/Attributes;java/util/jar/Attributes$NameNameMANIFEST_VERSIONLjava/util/jar/Attributes$Name;putValue8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;p([Ljava/security/MessageDigest;Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/lang/String;Z)Vjava/lang/ClassgetDeclaredConstructor3([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;getName setAccessible(Z)VgetDeclaredMethod@(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method; getJarEntry,(Ljava/lang/String;)Ljava/util/jar/JarEntry;()Ljava/util/Enumeration;hasMoreElements()Z nextElement()Ljava/lang/Object;equalsIgnoreCase(Ljava/lang/String;)ZgetInputStream/(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;keySet()Ljava/util/Set; java/util/Setiterator()Ljava/util/Iterator;hasNextnextgetEntry,(Ljava/lang/String;)Ljava/util/zip/ZipEntry;removewrite(Ljava/io/OutputStream;)Vflush toByteArray1(Ljava/lang/String;)Ljava/security/MessageDigest; generateBlock(Ljava/security/PrivateKey;[Ljava/security/cert/X509Certificate;ZLjava/util/zip/ZipFile;)Lptolemy/copernicus/applet/JarSigner$SignatureFile$Block; putNextEntry(Ljava/util/zip/ZipEntry;)V([BII)V closeEntry getMetaName startsWithfinish([B)Iupdateencode([B)Ljava/lang/String; getAttributes.(Ljava/lang/String;)Ljava/util/jar/Attributes; isDirectoryput8(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;!J $**+*,*--*-PQ RUV#W*$$$$  H*  Y LMN: Y :Y::Y::Y:L M!N":#: # ):% Y &'( % Y )*2**2+,++-+ *2*2+,.-./ :1^[$)=@0#no ps)u,v/w3y<zR~[^ips)3:=@BGp s)^Z$BH),/3R[] t % B%^ +::Y,:23:4-5:  ,6Y Y 7-8,+9:  : :;: 6   ,:   ?:  S -@:  ,6Y Y A-8,+9 BC: :  DE::%G   HE: I:JY- K::LY*M:NY+O:PQ:Q#:R6R.:#:RR%S TYU: Y V,WXYYZXYY[+\-+]W^Y_:  ` aF#@MMOMafi$\$? (-V\dkv~  #-7@EMT\afikpux} %* n1 E(4 \ k y vJ <#9k  ++++++(%j  AV       07      C          L L        6 [M*bc *+dME*eN-fghiW-j Y klmnloiW*bM,. %&'+,).50B1P.T2Y4*=[[Y A$ !s#pY+qrNsYtY,S+-*uEF G*###"# $%$&'()*+,y*+vM,wY*xy,z,NO PRS -./0123'45*+,{N-wY*xy-|-XY Z\]*-.6/0789' :;Dj*}~L+/*M,!,L}+LܻYM+(N*+N,---:--,EP[[][Jfg hij#k/l2n7s?tCuEwKxPzT{[za{h4'<E#=>jc?@?+.AB!#ACD $ E9*bM,N- -X:+ -,"%.474%F994G(HI J"$ KL.LYL*++++M++,+&  #).,MNCO$PQz+N-+::-+W*-:**+:}:: Y,: Y:   -q:     : Y :     :Y:   +:N:2%  + +:': +  .   :    >I``b`2 &7;>HSZ`kpw %1> F INSX`glqy<R@1S@ST@ `UV wW X@ YZ@[<.\<zzz]u ng"#&T^_7C`c;?d><ef  CghijAkAABQB*  CghijV Cghij  Cghij lmn$&('o)* pq7M>+,Y> *,+ :+*##%#" # $##,%*rVs7t#7=>kF$ uvk+::*#*:,+iW4,Y:,+iW-W}-Z1234)5,689;:>9C;K>N=Q;U@`EiFqItHwF{JNORCi m?@"#w<B%A+0$ xyL,*N6:+*:-Y6,-:/<<><2 `a bcef$g/j4k<jCkKn>L?@LLef ArV>s;=>kDL $z,:*+H{.|0'}5E*+,H {.|~0'# Y0sJ asb