3 S                      !" # $% &' ()*+ ' , - . / y0 1 234 1 56 178 5 579 : ; <= > ? @B ? ?D ?E ?F ?GH I J AK AL AM iNO L P Q RS TUVW 5X Y Z [\ Y Y] ^ _ i` 1a 5a bc d e f ghij kl g m n op oq rs rt (u@$@ vwxy InnerClasses RNG_ALGORITHMLjava/lang/String; ConstantValueRNG_ALGORITHM_PROVIDERLOGGERLjava/util/logging/Logger;SCRATCH_CODE_LENGTHISCRATCH_CODE_MODULUSSCRATCH_CODE_INVALIDBYTES_PER_SCRATCH_CODEDEFAULT_RANDOM_NUMBER_ALGORITHM(DEFAULT_RANDOM_NUMBER_ALGORITHM_PROVIDERconfig8Lcom/warrenstrange/googleauth/GoogleAuthenticatorConfig; secureRandom4Lcom/warrenstrange/googleauth/ReseedingSecureRandom;credentialRepository4Lcom/warrenstrange/googleauth/ICredentialRepository;credentialRepositorySearchedZ()VCodeLineNumberTableLocalVariableTablethis2Lcom/warrenstrange/googleauth/GoogleAuthenticator;;(Lcom/warrenstrange/googleauth/GoogleAuthenticatorConfig;)V StackMapTable'(Ljava/lang/String;Ljava/lang/String;)VrandomNumberAlgorithmrandomNumberAlgorithmProvider_(Lcom/warrenstrange/googleauth/GoogleAuthenticatorConfig;Ljava/lang/String;Ljava/lang/String;)VzgetRandomNumberAlgorithm()Ljava/lang/String; getRandomNumberAlgorithmProvider calculateCode([BJ)IimacLjavax/crypto/Mac;hash[Boffset truncatedHashJex(Ljava/security/GeneralSecurityException;keytmdatavaluesignKey!Ljavax/crypto/spec/SecretKeySpec;{|getTimeWindowFromTime(J)Jtime checkCode(Ljava/lang/String;JJI)Zsecretcode timestampwindow decodedKey timeWindow decodeSecret(Ljava/lang/String;)[Bcodec32(Lorg/apache/commons/codec/binary/Base32;codec64(Lorg/apache/commons/codec/binary/Base64;createCredentials7()Lcom/warrenstrange/googleauth/GoogleAuthenticatorKey; bufferSizebuffer secretKey generatedKeyvalidationCode scratchCodesLjava/util/List;LocalVariableTypeTable%Ljava/util/List;I(Ljava/lang/String;)Lcom/warrenstrange/googleauth/GoogleAuthenticatorKey;userName5Lcom/warrenstrange/googleauth/GoogleAuthenticatorKey; repositorycalculateScratchCodes()Ljava/util/List;} Signature'()Ljava/util/List;calculateScratchCode([B)IscratchCodeBuffer scratchCodevalidateScratchCode(I)ZgenerateScratchCode()IcalculateValidationCodegetTotpPassword(Ljava/lang/String;)I(Ljava/lang/String;J)IgetTotpPasswordOfUsercalculateSecretKey([B)Ljava/lang/String; authorize(Ljava/lang/String;I)ZverificationCode(Ljava/lang/String;IJ)Z authorizeUsergetValidCredentialRepository6()Lcom/warrenstrange/googleauth/ICredentialRepository;jgetCredentialRepositoryloaderLjava/util/ServiceLoader;OLjava/util/ServiceLoader;~setCredentialRepository7(Lcom/warrenstrange/googleauth/ICredentialRepository;)V SourceFileGoogleAuthenticator.java 6com/warrenstrange/googleauth/GoogleAuthenticatorConfig 2com/warrenstrange/googleauth/ReseedingSecureRandom "java/lang/IllegalArgumentExceptionConfiguration cannot be null.  RandomNumberAlgorithm must not be null. If the RandomNumberAlgorithm is null, the RandomNumberAlgorithmProvider must also be null.0com/warrenstrange/googleauth/GoogleAuthenticator*com.warrenstrange.googleauth.rng.algorithmSHA1PRNG 2com.warrenstrange.googleauth.rng.algorithmProviderSUNjavax/crypto/spec/SecretKeySpec   {    &java/security/NoSuchAlgorithmException!java/security/InvalidKeyException  |  9com/warrenstrange/googleauth/GoogleAuthenticatorException&The operation cannot be performed now.    &org/apache/commons/codec/binary/Base32z  &org/apache/commons/codec/binary/Base64 Unknown key representation type.    ;com/warrenstrange/googleauth/GoogleAuthenticatorKey$BuilderBuilder    User name cannot be null.    java/util/ArrayList   } 1The provided random byte buffer is too small: %d.java/lang/Object  java/util/Date    Secret cannot be null.  'java/lang/UnsupportedOperationExceptionNAn instance of the %s service must be configured in order to use this feature.2com/warrenstrange/googleauth/ICredentialRepository  ~      1com/warrenstrange/googleauth/IGoogleAuthenticator2com/warrenstrange/googleauth/GoogleAuthenticator$1java/lang/Stringjavax/crypto/Mac&java/security/GeneralSecurityExceptionjava/util/Listjava/util/ServiceLoaderjava/util/Iterator(Ljava/lang/String;)Vjava/lang/System getProperty8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;getHmacHashFunction1()Lcom/warrenstrange/googleauth/HmacHashFunction;-com/warrenstrange/googleauth/HmacHashFunctiontoString([BLjava/lang/String;)V getInstance&(Ljava/lang/String;)Ljavax/crypto/Mac;init(Ljava/security/Key;)VdoFinal([B)[B getKeyModulusjava/util/logging/LevelSEVERELjava/util/logging/Level; getMessagejava/util/logging/LoggerlogC(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)VgetTimeStepSizeInMillis()J9$SwitchMap$com$warrenstrange$googleauth$KeyRepresentation[IgetKeyRepresentation2()Lcom/warrenstrange/googleauth/KeyRepresentation;.com/warrenstrange/googleauth/KeyRepresentationordinal toUpperCasedecode getSecretBits nextBytes([B)Vjava/util/ArrayscopyOf([BI)[B3com/warrenstrange/googleauth/GoogleAuthenticatorKey setConfigw(Lcom/warrenstrange/googleauth/GoogleAuthenticatorConfig;)Lcom/warrenstrange/googleauth/GoogleAuthenticatorKey$Builder;setVerificationCode@(I)Lcom/warrenstrange/googleauth/GoogleAuthenticatorKey$Builder;setScratchCodesO(Ljava/util/List;)Lcom/warrenstrange/googleauth/GoogleAuthenticatorKey$Builder;buildgetKeygetVerificationCodegetScratchCodessaveUserCredentials8(Ljava/lang/String;Ljava/lang/String;ILjava/util/List;)VgetNumberOfScratchCodesjava/lang/IntegervalueOf(I)Ljava/lang/Integer;add(Ljava/lang/Object;)Zformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;getTime getSecretKey&(Ljava/lang/String;)Ljava/lang/String;encodeToString getWindowSizejava/lang/ClassgetNameload,(Ljava/lang/Class;)Ljava/util/ServiceLoader;iterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object; getLogger.(Ljava/lang/String;)Ljava/util/logging/Logger;java/lang/Mathpow(DD)D1Sx {|}~|}}}}|}|}a#**Y*Y** " #+*+ Y *+*Y** "!*++P*Y+,   ||L*+ Y *+,-*Y !, Y -*Y, . -1;?K*LLL|L| 2 2 : 76T}7Y+*:*::   d3~6 7 6  " y7     `3~7  7  * q7  :#$%&'Y()<!<"V   (<KR[!h%k't){-'2368;> n% Ka[Q hD kA  <F E $> **mD  A*++:*,7dlt6  l!* a-7   "Y]b!e0h7k9b?p\ 0 ' AA|AAA:2 Q.*/0.9+1Y2M,+345Y6N-+7 Y8 v(y0|9~AG*0 AQQ|( O*9l<M* ,:,;N*-<:*-=6*>:?Y@*ABCD2  $+1>CHKHO D@2$+|+$1 1-+ YE *FM*GN-+,H,I,JK,* #&+*--|+LYML=*N+*OPQW+#)  +# #  P+ YRSY+PST =>x+3~`=U~Vp=*W2 !(5;DLN*#PP!/ OV l@xL* +:*+X=  ;*+ -D*+YYZ[\|M**++* ,- |D*+YYZ[]|t*G:**+^+* ,-$& '(&*|J.*/0.2&1Y2+_5Y6+` Y8 3(648@:JJ( O*+YYZ[aA |/+ Yb * *+!*cdHJNPT(X+T*//|//O*+YYZ[e^ |k*G:*+^!a df4|z$*fL+gYhSYijSTk+su wzx"$"<*l*m*linL+oM,p,qiN*-m*m" /47 /<% % G *+m*l  5jr#suwV ` jzy?AC