38 ! "# ! $% & '( )* +, ! )-. /0 /1 /2 3 45 467 89 : 8; < 8=>? @ AB CD #E F GH I GJKL )M )N )OP Q .RS 1! 1T UV 1W #! lX lY lZ l[ \] ^_ `a \b `cd AR efg Dh Ai jV lkl I!m In Iop qr st u RMv Uwx Wy Wz W{ W| }~ } R R  } dw } hw } } m ` p r t v x! $          ` x xo ` R `loggerLorg/apache/log4j/Logger;BCLjava/lang/String; ConstantValue validityDaysIsrLjava/security/SecureRandom;()VCodeLineNumberTableLocalVariableTablethis.Lorg/dataone/cn/auth/X509CertificateGenerator; StackMapTable( createKeys()Ljava/security/KeyPair;keyGen Ljava/security/KeyPairGenerator;keypairLjava/security/KeyPair; ExceptionsgenerateDataOneCert8(Ljava/lang/String;)Ljava/security/cert/X509Certificate;cnkeyPair publicKeyLjava/security/PublicKey; privateKeyLjava/security/PrivateKey;builder,Lorg/bouncycastle/asn1/x500/X500NameBuilder;generateCACert(Ljava/security/PublicKey;Ljava/security/PrivateKey;Lorg/bouncycastle/asn1/x500/X500NameBuilder;)Ljava/security/cert/X509Certificate;pubKeyprivKeynowLjava/util/Calendar; startDateLjava/util/Date; expireDate dateIntegerLjava/math/BigInteger;bigSerialNumbersigGen)Lorg/bouncycastle/operator/ContentSigner;certGen10Lorg/bouncycastle/cert/X509v1CertificateBuilder;cert$Ljava/security/cert/X509Certificate;7BDgenerateSelfSignedCertificate(Ljava/security/PublicKey;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;Lorg/bouncycastle/asn1/x500/X500NameBuilder;)Ljava/security/cert/X509Certificate; caPrivateKeycaCert0Lorg/bouncycastle/cert/X509v3CertificateBuilder;storeSelfSignedCertificate(Ljava/lang/String;)V subjectCN caKeyPair caPublicKey caBuilderpemFileLocationLjava/io/File; fileWriterLjava/io/FileWriter; pemWriter$Lorg/bouncycastle/openssl/PEMWriter; storeCACertS(Ljava/lang/String;Ljava/security/PrivateKey;Ljava/security/cert/X509Certificate;)V caInStreamLjava/io/InputStream;caAlias trustStoreLjava/security/KeyStore;caFilechain![Ljava/security/cert/Certificate; caOutStreamLjava/io/OutputStream;t getCACertcaStreame!Ljava/security/KeyStoreException;(Ljava/security/NoSuchAlgorithmException;)Ljava/security/cert/CertificateException;Ljava/io/FileNotFoundException;Ljava/io/IOException;locateCertificate()Ljava/lang/String;streamreaderLjava/io/BufferedReader;resulttestUidprocessLjava/lang/Process;retLjava/lang/Exception;locationLjava/lang/StringBuffer;tmpuid cleanUpFiles SourceFileX509CertificateGenerator.javaRuntimeVisibleAnnotations*Lorg/springframework/stereotype/Component;8Lorg/springframework/beans/factory/annotation/Qualifier;valuex509CertificateGenerator2org/bouncycastle/jce/provider/BouncyCastleProvider java/security/SecureRandom   ,org/dataone/cn/auth/X509CertificateGenerator   RSA      *org/bouncycastle/asn1/x500/X500NameBuilder     dataoneorg java/util/Calendar java/util/Date     8org/bouncycastle/operator/jcajce/JcaContentSignerBuilderMD5WithRSAEncryption  8org/bouncycastle/cert/jcajce/JcaX509v1CertificateBuilder  8org/bouncycastle/cert/jcajce/JcaX509CertificateConverter         name comparison fails   8org/bouncycastle/cert/jcajce/JcaX509v3CertificateBuilder ?org/bouncycastle/x509/extension/AuthorityKeyIdentifierStructure   java/lang/StringBuilderSelf Signed Certificat is    cn.dataone.org Mock CA  dataoneCA  java/io/File java/io/FileWriter  "org/bouncycastle/openssl/PEMWriter      /tmp/caD1certs  whatnot  java/io/FileInputStreamjava/security/cert/Certificate java/io/FileOutputStream  "java/security/cert/X509Certificatejava/security/KeyStoreException  &java/security/NoSuchAlgorithmException'java/security/cert/CertificateExceptionjava/io/FileNotFoundExceptionjava/io/IOExceptionjava/lang/StringBuffertmpdir  !/tmp" #$id -u %&' ( )*java/io/BufferedReaderjava/io/InputStreamReader + , -. /0 1java/lang/ExceptionNo UID found, using user.name 2 user.name  3/x509up_u!Calculated certificate location: 4 5 67java/lang/Object3org/bouncycastle/operator/OperatorCreationException!java/security/InvalidKeyException%java/security/NoSuchProviderException java/security/SignatureExceptionjava/security/PublicKeyjava/security/PrivateKeyjava/math/BigInteger'org/bouncycastle/operator/ContentSigner.org/bouncycastle/cert/X509v1CertificateBuilder.org/bouncycastle/cert/X509v3CertificateBuilderjava/security/KeyStorejava/lang/Stringjava/lang/SystemcurrentTimeMillis()JsetSeed(J)VnextInt()Ijava/security/Security getProvider,(Ljava/lang/String;)Ljava/security/Provider;java/security/ProviderisEmpty()Z addProvider(Ljava/security/Provider;)Ijava/security/KeyPairGenerator getInstance4(Ljava/lang/String;)Ljava/security/KeyPairGenerator; initialize (ILjava/security/SecureRandom;)VgenerateKeyPairjava/security/KeyPair getPublic()Ljava/security/PublicKey; getPrivate()Ljava/security/PrivateKey;-org/bouncycastle/asn1/x500/style/RFC4519StyleINSTANCE*Lorg/bouncycastle/asn1/x500/X500NameStyle;-(Lorg/bouncycastle/asn1/x500/X500NameStyle;)V,Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;addRDNl(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;Ljava/lang/String;)Lorg/bouncycastle/asn1/x500/X500NameBuilder;dc()Ljava/util/Calendar;add(II)VgetTimeInMillisvalueOf(J)Ljava/math/BigInteger;nextLong.(Ljava/math/BigInteger;)Ljava/math/BigInteger; setProviderN(Ljava/lang/String;)Lorg/bouncycastle/operator/jcajce/JcaContentSignerBuilder;buildE(Ljava/security/PrivateKey;)Lorg/bouncycastle/operator/ContentSigner;'()Lorg/bouncycastle/asn1/x500/X500Name;(Lorg/bouncycastle/asn1/x500/X500Name;Ljava/math/BigInteger;Ljava/util/Date;Ljava/util/Date;Lorg/bouncycastle/asn1/x500/X500Name;Ljava/security/PublicKey;)VN(Ljava/lang/String;)Lorg/bouncycastle/cert/jcajce/JcaX509CertificateConverter;X(Lorg/bouncycastle/operator/ContentSigner;)Lorg/bouncycastle/cert/X509CertificateHolder;getCertificateS(Lorg/bouncycastle/cert/X509CertificateHolder;)Ljava/security/cert/X509Certificate; checkValidity(Ljava/util/Date;)Vverify(Ljava/security/PublicKey;)V getIssuerDN()Ljava/security/Principal; getSubjectDNjava/security/Principalequals(Ljava/lang/Object;)Zorg/apache/log4j/Loggererror(Ljava/lang/Object;)VgetNameinfo(org/bouncycastle/asn1/x509/X509ExtensionauthorityKeyIdentifier'(Ljava/security/cert/X509Certificate;)V addExtension(Lorg/bouncycastle/asn1/ASN1ObjectIdentifier;ZLorg/bouncycastle/asn1/ASN1Encodable;)Lorg/bouncycastle/cert/X509v3CertificateBuilder; getPublicKeyappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString(Ljava/io/File;)V(Ljava/io/Writer;)V writeObjectflushclosegetDefaultType,(Ljava/lang/String;)Ljava/security/KeyStore;exists createNewFile toCharArray()[Cload(Ljava/io/InputStream;[C)V setKeyEntryK(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)Vstore(Ljava/io/OutputStream;[C)V4(Ljava/lang/String;)Ljava/security/cert/Certificate; getMessage*(Ljava/lang/Object;Ljava/lang/Throwable;)V getProperty&(Ljava/lang/String;)Ljava/lang/String;java/lang/Runtime getRuntime()Ljava/lang/Runtime;exec'(Ljava/lang/String;)Ljava/lang/Process;java/lang/ProcesswaitForgetInputStream()Ljava/io/InputStream;(Ljava/io/InputStream;)V(Ljava/io/Reader;)VreadLinejava/lang/IntegerparseInt(Ljava/lang/String;)I(I)Ljava/lang/String;warn,(Ljava/lang/String;)Ljava/lang/StringBuffer;debugdelete getLogger,(Ljava/lang/Class;)Lorg/apache/log4j/Logger;!   ! E***Y**W  Y W"^] _`a&b9cDe E 9 bL+*+M,hijk pF*M,N,:Y:+WWW*-"op qvx&y1z<{>FFA <6*pr Ǹ:!"#Y$:#Y%$:&:*'&:(W)Y*+ ,,-: .Y-/-/+0: 1Y2 3  45:  #Y67 +8 9 :; <=>< :?@ B(0<DXpz (0<Xo pW ? - pr :!"#Y$:#Y%$:&:*'&:  (W)Y*+ ,,-: AY/ /+BCDY-EF: 1Y2 3  G5:  #Y67 -H8 9 :; <=><IYJKL :?LM@ B(0<DX (0< X l T 0 prv*M,N,:Y:NWWW*-:*::: Y:  W W +W* O: *PQRY*ST: UY V: WY X: Y YZ[f '2=HNU\hs~ HNU\ ht F / $ prvm6v\]:RY^T:_`WabcdYe:abcfY-S:+,abghYi:abj:!/:FPV[^iu\ : vvvvncP&i  / mvprMN\]NRY^T:dYe:-abc-+klMZ:<noH:<qo6:<so$:<uo:<wo,58m5Jp5\r5nt5v^ !,58:GJLY\^knp}p !: L ^ p  )8QQQQ xYyLz{M,|MN}~:60:YY::6  N :<- {N+,W+W+W+-W<IYJL+LM+Z]b   !(-4FMTZ!]_ g"k#q%w&~'(*-p 4&F  M  T !9 (2_DB to!RY*STL+WRY^TM,W0 123 5 ! t!  <Xs