7e  java/lang/Object()V    net/luminis/quic/EncryptionLevelvalues%()[Lnet/luminis/quic/EncryptionLevel;net/luminis/quic/crypto/Aead  )net/luminis/quic/crypto/ConnectionSecrets clientSecrets[Lnet/luminis/quic/crypto/Aead;   serverSecrets   quicVersion Lnet/luminis/quic/VersionHolder;  ownRoleLnet/luminis/quic/Role; ! "#logLnet/luminis/quic/log/Logger; % &'wiresharkSecretsFileLjava/nio/file/Path; )*+ ,-java/nio/file/FilesdeleteIfExists(Ljava/nio/file/Path;)Z/%java/nio/file/attribute/FileAttribute )1 23 createFileR(Ljava/nio/file/Path;[Ljava/nio/file/attribute/FileAttribute;)Ljava/nio/file/Path; 5 67writeSecretsToFileZ9java/io/IOException; <=makeConcatWithConstants((Ljava/nio/file/Path;)Ljava/lang/String; ?@A BCnet/luminis/quic/log/Loggererror*(Ljava/lang/String;Ljava/lang/Throwable;)V E FGoriginalDestinationConnectionId[B IJK LMnet/luminis/quic/VersionHolder getVersion()Lnet/luminis/quic/Version; O PQcomputeInitialSecret(Lnet/luminis/quic/Version;)[BSInitial secret ?U VWsecret(Ljava/lang/String;[B)V Y Z[Initial"Lnet/luminis/quic/EncryptionLevel; ] ^_ordinal()Ia!net/luminis/quic/crypto/Aes128Gcm cde fnet/luminis/quic/RoleClient `h iS(Lnet/luminis/quic/Version;[BLnet/luminis/quic/Role;Lnet/luminis/quic/log/Logger;)V ck lServer cn opother()Lnet/luminis/quic/Role; rst uvat/favre/lib/crypto/HKDFfromHmacSha256()Lat/favre/lib/crypto/HKDF; xyz {|net/luminis/quic/VersionisV1()Z ~ GSTATIC_SALT_V1 x |isV2  GSTATIC_SALT_V2  GSTATIC_SALT_DRAFT_29 r extract([B[B)[B  computeInitialKeys([B)V  [ZeroRTT   createKeysi(Lnet/luminis/quic/EncryptionLevel;Lnet/luminis/tls/TlsConstants$CipherSuite;Lnet/luminis/quic/Version;)V  net/luminis/tls/TrafficSecretsgetClientEarlyTrafficSecret()[B  computeKeys  (net/luminis/tls/TlsConstants$CipherSuiteTLS_AES_128_GCM_SHA256*Lnet/luminis/tls/TlsConstants$CipherSuite; ` Q(Lnet/luminis/quic/Version;Lnet/luminis/quic/Role;Lnet/luminis/quic/log/Logger;)V TLS_AES_256_GCM_SHA384!net/luminis/quic/crypto/Aes256Gcm TLS_CHACHA20_POLY1305_SHA256 net/luminis/quic/crypto/ChaCha20 java/lang/IllegalStateException <>(Lnet/luminis/tls/TlsConstants$CipherSuite;)Ljava/lang/String; (Ljava/lang/String;)V  setPeerAead!(Lnet/luminis/quic/crypto/Aead;)V  selectedCipherSuite  [ Handshake getClientHandshakeTrafficSecretClientHandshakeTrafficSecret: getServerHandshakeTrafficSecretServerHandshakeTrafficSecret: HANDSHAKE_TRAFFIC_SECRET   appendToFile7(Ljava/lang/String;Lnet/luminis/quic/EncryptionLevel;)V  [App !getClientApplicationTrafficSecret ClientApplicationTrafficSecret: !getServerApplicationTrafficSecret ServerApplicationTrafficSecret: TRAFFIC_SECRET_0java/util/ArrayList   G clientRandom  net/luminis/tls/util/ByteUtils bytesToHex([B)Ljava/lang/String; getTrafficSecret <J(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;  java/util/Listadd(Ljava/lang/Object;)Zjava/nio/file/OpenOption   java/nio/file/StandardOpenOptionAPPEND"Ljava/nio/file/StandardOpenOption; )   writeY(Ljava/nio/file/Path;Ljava/lang/Iterable;[Ljava/nio/file/OpenOption;)Ljava/nio/file/Path;;k(Lnet/luminis/quic/VersionHolder;Lnet/luminis/quic/Role;Ljava/nio/file/Path;Lnet/luminis/quic/log/Logger;)VCodeLineNumberTableLocalVariableTableeLjava/io/IOException;this+Lnet/luminis/quic/crypto/ConnectionSecrets;rolewiresharksecrets StackMapTablejava/nio/file/PathdestConnectionId actualVersionLnet/luminis/quic/Version; initialSecretgetInitialPeerSecretsForVersion:(Lnet/luminis/quic/Version;)Lnet/luminis/quic/crypto/Aead;versionhkdfLat/favre/lib/crypto/HKDF; initialSaltGrecomputeInitialKeyscomputeEarlySecretsg(Lnet/luminis/tls/TrafficSecrets;Lnet/luminis/tls/TlsConstants$CipherSuite;Lnet/luminis/quic/Version;)Vsecrets Lnet/luminis/tls/TrafficSecrets; cipherSuiteoriginalVersion earlySecretclientHandshakeSecretsLnet/luminis/quic/crypto/Aead;serverHandshakeSecretslevelcomputeHandshakeSecretsM(Lnet/luminis/tls/TrafficSecrets;Lnet/luminis/tls/TlsConstants$CipherSuite;)VclientHandshakeTrafficSecretserverHandshakeTrafficSecretcomputeApplicationSecrets#(Lnet/luminis/tls/TrafficSecrets;)VclientApplicationTrafficSecretserverApplicationTrafficSecretlabelLjava/lang/String;contentLjava/util/List;LocalVariableTypeTable$Ljava/util/List;@java/lang/StringsetClientRandom getClientAeadB(Lnet/luminis/quic/EncryptionLevel;)Lnet/luminis/quic/crypto/Aead;encryptionLevel getServerAead getPeerAead getOwnAead SourceFileConnectionSecrets.javaBootstrapMethodsM NOP <Q$java/lang/invoke/StringConcatFactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/invoke/CallSite;S:Initializing (creating/truncating) secrets file '' failedUunsupported cipher suite W CLIENT_  Y SERVER_  ["Writing secrets to file '' failed InnerClasses^net/luminis/tls/TlsConstants CipherSuitea%java/lang/invoke/MethodHandles$Lookupcjava/lang/invoke/MethodHandlesLookup! GGG"#G67&'FG "d** * *+*,* -8*-$*$(W*$.0W*4:*$:>3LO8>IBCJK$L*N.O3Q;RGSLVOTQUcX>Qdddd'd"#OIc?8!V*+D*HM*,NN* R-T*X\`Y,-b* gS*X\`Y,-j* gS`a cdi:jUk*VVG ICGM`Y+*+N*m* gt PQ,qM+w }+ N,-*Dz|"}*,,(!"" #G r B$%7 **D   !&'$*,-+:*\2 #4$$()$*$+,G,(`Y-b* :`Y-j* :i,(Y-b* :Y-j* :=,(Y-b* :Y-j* :Y,*+\S+*+\SB,3DX_pz -.)/.D-.U/.p-./.0[ 0-.0/.,++   !12p*,*,*H+N* -T*Ŷ\2-+:* T*Ŷ\2*4 *ҲŶԱ. '8@M_fo4pp()pU3G@04G o$$!56k***H+M* ,T*ض\2,+N* -T*ض\2-*4 *ضԱ* %6=IZaj*kk()R7G=.8G j$$GYN-+**,\2W-+**,\2W*$-YSW:* *$ >*4Reh8>'-3;LRehj~4j9:0[|;<= |;>h?8A>*+ G!BC> *+\2  D[!EC> *+\2  D[!FCa *b*+\2 *+\2  D[H !GCa *b*+\2 *+\2  D[H HkYTYTYTY(TYTYTYTYLTYTY TY TY TY TY aTYTYTYCTYTYTYTY8TYvTY,TYTYTYYTY4TYTYMTY TY TY TY TY TY TYTYTYTYTY T}Y TYTYTYTYTYTYTYTYTY TY TY TY nTY &TYTYTYTYTY.TYT*y19IJK LRLTLVLXLZ\]_@`bd