7M  #net/luminis/tls/handshake/TlsEngine()V   )net/luminis/tls/handshake/TlsServerEnginecurrentTicketNumberB  java/lang/LongvalueOf(J)Ljava/lang/Long;  maxEarlyDataSizeLjava/lang/Long;  serverCertificateChainLjava/util/List;   certificatePrivateKeyLjava/security/PrivateKey; " #$serverMessageSender/Lnet/luminis/tls/handshake/ServerMessageSender; & '( statusHandler1Lnet/luminis/tls/handshake/TlsStatusEventHandler;*java/util/HashSet ) - ./supportedCiphersLjava/util/Set; 123 45(net/luminis/tls/TlsConstants$CipherSuiteTLS_AES_128_GCM_SHA256*Lnet/luminis/tls/TlsConstants$CipherSuite; 789 :; java/util/Setadd(Ljava/lang/Object;)Z=java/util/ArrayList < @ AB extensionsLjava/util/ArrayList; D EserverExtensions G HclientSupportedKeyExchangeModes J KLsessionRegistry.Lnet/luminis/tls/handshake/TlsSessionRegistry; NOP QRjava/util/Listof$(Ljava/lang/Object;)Ljava/util/List; T U(Ljava/util/List;Ljava/security/PrivateKey;Lnet/luminis/tls/handshake/ServerMessageSender;Lnet/luminis/tls/handshake/TlsStatusEventHandler;Lnet/luminis/tls/handshake/TlsSessionRegistry;)V WXY Z[%net/luminis/tls/handshake/ClientHellogetCipherSuites()Ljava/util/List; N] ^_stream()Ljava/util/stream/Stream;a bctestK(Lnet/luminis/tls/handshake/TlsServerEngine;)Ljava/util/function/Predicate; efg hijava/util/stream/Streamfilter9(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; ek lm findFirst()Ljava/util/Optional;o pqgetJ(Lnet/luminis/tls/handshake/TlsServerEngine;)Ljava/util/function/Supplier; stu vwjava/util/Optional orElseThrow1(Ljava/util/function/Supplier;)Ljava/lang/Object; y z5selectedCipher W| }[ getExtensions b ()Ljava/util/function/Predicate; p()Ljava/util/function/Supplier;2net/luminis/tls/extension/SupportedGroupsExtension  'net/luminis/tls/TlsConstants$NamedGroup secp256r1)Lnet/luminis/tls/TlsConstants$NamedGroup; x25519 N Q6(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; [getNamedGroups  java/util/ObjectsrequireNonNull&(Ljava/lang/Object;)Ljava/lang/Object; b0(Ljava/util/List;)Ljava/util/function/Predicate; s isEmpty()Z+net/luminis/tls/alert/HandshakeFailureAlert=Failed to negotiate supported group (server only supports %s)java/lang/Object  java/lang/Stringformat9(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; (Ljava/lang/String;)V+net/luminis/tls/extension/KeyShareExtension [getKeyShareEntries9net/luminis/tls/extension/KeyShareExtension$KeyShareEntry  6net/luminis/tls/extension/SignatureAlgorithmsExtension  acceptJ(Lnet/luminis/tls/handshake/TlsServerEngine;)Ljava/util/function/Consumer; s  ifPresent (Ljava/util/function/Consumer;)V [getSignatureAlgorithms  ,net/luminis/tls/TlsConstants$SignatureSchemersa_pss_rsae_sha256.Lnet/luminis/tls/TlsConstants$SignatureScheme; N ;containsQFailed to negotiate signature algorithm (server only supports rsa_pss_rsae_sha256   /net/luminis/tls/handshake/TlsStatusEventHandlerextensionsReceived(Ljava/util/List;)V s  isPresent N+net/luminis/tls/alert/MissingExtensionAlert=psk_key_exchange_modes extension required with pre_shared_key  /net/luminis/tls/TlsConstants$PskKeyExchangeMode psk_dhe_ke1Lnet/luminis/tls/TlsConstants$PskKeyExchangeMode; s p()Ljava/lang/Object;:net/luminis/tls/extension/ClientHelloPreSharedKeyExtension [ getIdentities  ,net/luminis/tls/handshake/TlsSessionRegistryselectIdentityO(Ljava/util/List;Lnet/luminis/tls/TlsConstants$CipherSuite;)Ljava/lang/Integer;  java/lang/IntegerintValue()I N p(I)Ljava/lang/Object;Fnet/luminis/tls/extension/ClientHelloPreSharedKeyExtension$PskIdentity   peekSessionDataL(Lnet/luminis/tls/extension/ClientHelloPreSharedKeyExtension$PskIdentity;)[B     isAcceptable([B)Z   useSessionp(Lnet/luminis/tls/extension/ClientHelloPreSharedKeyExtension$PskIdentity;)Lnet/luminis/tls/handshake/TlsSession;net/luminis/tls/TranscriptHash   hashLength-(Lnet/luminis/tls/TlsConstants$CipherSuite;)I  (I)V  transcriptHash Lnet/luminis/tls/TranscriptHash; net/luminis/tls/TlsState "#$ %&$net/luminis/tls/handshake/TlsSessiongetPsk()[B ( ) keyLength + ,'(Lnet/luminis/tls/TranscriptHash;[BII)V . /0stateLnet/luminis/tls/TlsState; 2 3[ getBinders5Inet/luminis/tls/extension/ClientHelloPreSharedKeyExtension$PskBinderEntry 7 8getBinderPosition : ;<validateBinderv(Lnet/luminis/tls/extension/ClientHelloPreSharedKeyExtension$PskBinderEntry;ILnet/luminis/tls/handshake/ClientHello;)Z>'net/luminis/tls/alert/DecryptErrorAlert@Invalid PSK binder = eD EmfindAny G HI selectedApplicationLayerProtocolLjava/lang/String; "K LMgetApplicationLayerProtocol()Ljava/lang/String; O P;equals R SisEarlyDataAccepted U V%(Lnet/luminis/tls/TranscriptHash;II)V X YZrecord/(Lnet/luminis/tls/handshake/HandshakeMessage;)V \ ]^ getNamedGroup+()Lnet/luminis/tls/TlsConstants$NamedGroup; ` ab generateKeys,(Lnet/luminis/tls/TlsConstants$NamedGroup;)V d e  privateKey g hi setOwnKey(Ljava/security/PrivateKey;)V k lcomputeEarlyTrafficSecret n oearlySecretsKnownq4net/luminis/tls/extension/SupportedVersionsExtension stu vw*net/luminis/tls/TlsConstants$HandshakeType server_hello,Lnet/luminis/tls/TlsConstants$HandshakeType; py z/(Lnet/luminis/tls/TlsConstants$HandshakeType;)V | }~ publicKeyLjava/security/PublicKey;  q(Ljava/security/PublicKey;Lnet/luminis/tls/TlsConstants$NamedGroup;Lnet/luminis/tls/TlsConstants$HandshakeType;)V < (Ljava/util/Collection;)V5net/luminis/tls/extension/ServerPreSharedKeyExtension   shortValue()S  N8%net/luminis/tls/handshake/ServerHello  =(Lnet/luminis/tls/TlsConstants$CipherSuite;Ljava/util/List;)V  -net/luminis/tls/handshake/ServerMessageSendersend*(Lnet/luminis/tls/handshake/ServerHello;)V  getKey()Ljava/security/PublicKey;   setPeerKey(Ljava/security/PublicKey;)V  computeSharedSecret  computeHandshakeSecrets  handshakeSecretsKnown,net/luminis/tls/extension/EarlyDataExtension -net/luminis/tls/handshake/EncryptedExtensions    2(Lnet/luminis/tls/handshake/EncryptedExtensions;)V,net/luminis/tls/handshake/CertificateMessage   1(Lnet/luminis/tls/handshake/CertificateMessage;)V  Z recordServer s w certificate   getServerHash0(Lnet/luminis/tls/TlsConstants$HandshakeType;)[B  computeSignatureO([BLjava/security/PrivateKey;Lnet/luminis/tls/TlsConstants$SignatureScheme;Z)[B2net/luminis/tls/handshake/CertificateVerifyMessage  3(Lnet/luminis/tls/TlsConstants$SignatureScheme;[B)V  7(Lnet/luminis/tls/handshake/CertificateVerifyMessage;)V s wcertificate_verify  &getServerHandshakeTrafficSecret  computeFinishedVerifyData([B[B)[B)net/luminis/tls/handshake/FinishedMessage  ([B)V  .(Lnet/luminis/tls/handshake/FinishedMessage;)V  computeApplicationSecrets  sessionDataVerificationCallbackLjava/util/function/Function;  java/nio/ByteBufferwrap([B)Ljava/nio/ByteBuffer;  java/util/function/Functionapplyjava/lang/Boolean   booleanValue  "net/luminis/tls/ProtectionKeysType Handshake$Lnet/luminis/tls/ProtectionKeysType;,net/luminis/tls/alert/UnexpectedMessageAlertincorrect protection level   Z recordClient s wfinished   &getClientHandshakeTrafficSecret  & getVerifyData  Pjava/util/Arrays([B[B)Zincorrect finished message  computeResumptionMasterSecret  handshakeFinished  additionalSessionData[B ! "#createNewSessionTicketMessage(BLnet/luminis/tls/TlsConstants$CipherSuite;Lnet/luminis/tls/TlsState;Ljava/lang/String;Ljava/lang/Long;[B)Lnet/luminis/tls/handshake/NewSessionTicketMessage; % &6(Lnet/luminis/tls/handshake/NewSessionTicketMessage;)V W( )&getBytes W+ ,getPskExtensionStartPosition . /0 copyOfRange([BII)[B 2 34computePskBinder([B)[B 46 7&getHmac 79 :;addAll(Ljava/util/Collection;)Z="java/lang/IllegalArgumentException <@6net/luminis/tls/extension/PskKeyExchangeModesExtension ?B C[getKeyExchangeModes N9F:signature algorithms extension is required in Client HelloH+net/luminis/tls/alert/IllegalParameterAlertJFkey share named group not supported (and no HelloRetryRequest support) GM/key share extension is required in Client HelloO6supported groups extension is required in Client Hello 7]R S()Ljava/util/function/Function; eU VWmap8(Ljava/util/function/Function;)Ljava/util/stream/Stream;Y, [\] ^_java/util/stream/Collectorsjoining6(Ljava/lang/CharSequence;)Ljava/util/stream/Collector; ea bccollect0(Ljava/util/stream/Collector;)Ljava/lang/Object;e fgmakeConcatWithConstants&(Ljava/lang/String;)Ljava/lang/String; 1i jMtoString 7m0net/luminis/tls/handshake/ServerMessageProcessor Signature;Ljava/util/Set;;6Ljava/util/List;7Ljava/util/List;CLjava/util/List;GLjava/util/function/Function;CodeLineNumberTableLocalVariableTablethis+Lnet/luminis/tls/handshake/TlsServerEngine; certificatescertificateKeytlsStatusHandlertlsSessionRegistryLocalVariableTypeTable(Ljava/util/List;Ljava/security/PrivateKey;Lnet/luminis/tls/handshake/ServerMessageSender;Lnet/luminis/tls/handshake/TlsStatusEventHandler;Lnet/luminis/tls/handshake/TlsSessionRegistry;)V(Ljava/security/cert/X509Certificate;Ljava/security/PrivateKey;Lnet/luminis/tls/handshake/ServerMessageSender;Lnet/luminis/tls/handshake/TlsStatusEventHandler;Lnet/luminis/tls/handshake/TlsSessionRegistry;)VserverCertificate$Ljava/security/cert/X509Certificate;receivedN(Lnet/luminis/tls/handshake/ClientHello;Lnet/luminis/tls/ProtectionKeysType;)VresumedSession&Lnet/luminis/tls/handshake/TlsSession;preSharedKeyExtension;;Ljava/util/Optional; StackMapTable Exceptions$net/luminis/tls/TlsProtocolExceptionjava/io/IOException sessionDataR(Lnet/luminis/tls/handshake/FinishedMessage;Lnet/luminis/tls/ProtectionKeysType;)VnewSessionTicketMessage3Lnet/luminis/tls/handshake/NewSessionTicketMessage;clientFinished serverHmacpskBinderEntryKLnet/luminis/tls/extension/ClientHelloPreSharedKeyExtension$PskBinderEntry;binderPositionI partialCHbindervalidaddSupportedCiphers cipherSuites;?(Ljava/util/List;)VsetServerMessageSender2(Lnet/luminis/tls/handshake/ServerMessageSender;)VsetStatusHandler4(Lnet/luminis/tls/handshake/TlsStatusEventHandler;)VgetSelectedCipher,()Lnet/luminis/tls/TlsConstants$CipherSuite;getServerExtensions9()Ljava/util/List;addServerExtensions((Lnet/luminis/tls/extension/Extension;)V extension%Lnet/luminis/tls/extension/Extension;#setSelectedApplicationLayerProtocolapplicationProtocolsetSessionData"setSessionDataVerificationCallback (Ljava/util/function/Function;)VcallbackJ(Ljava/util/function/Function;)Vlambda$received$14((Lnet/luminis/tls/extension/Extension;)Zextlambda$received$13lambda$received$12lambda$received$11lambda$received$10/()Lnet/luminis/tls/alert/MissingExtensionAlert;lambda$received$9lambda$received$8/()Lnet/luminis/tls/alert/IllegalParameterAlert;lambda$received$7N(Ljava/util/List;Lnet/luminis/tls/extension/KeyShareExtension$KeyShareEntry;)Zentrylambda$received$6lambda$received$5lambda$received$4lambda$received$3lambda$received$2/()Lnet/luminis/tls/alert/HandshakeFailureAlert;lambda$received$1>(Lnet/luminis/tls/TlsConstants$CipherSuite;)Ljava/lang/String;clambda$received$0-(Lnet/luminis/tls/TlsConstants$CipherSuite;)Zit SourceFileTlsServerEngine.javaBootstrapMethods  "java/lang/invoke/LambdaMetafactory metafactory(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;;          ,(Lnet/luminis/tls/TlsConstants$NamedGroup;)Z      >(Lnet/luminis/tls/extension/KeyShareExtension$KeyShareEntry;)Z      " # %(Ljava/lang/Object;)V' ( + , . / 2 3 6 789 f:$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;<5Failed to negotiate a cipher (server only supports ) InnerClasses?net/luminis/tls/TlsConstants CipherSuite NamedGroup KeyShareEntrySignatureSchemePskKeyExchangeMode PskIdentityPskBinderEntry HandshakeTypeI%java/lang/invoke/MethodHandles$LookupKjava/lang/invoke/MethodHandlesLookup!l./noABnp#$'(nq z5EnrHnsKL HIntUu h*** *+*,*-!*%*)Y+,*,06W*?*C*F*Iv::3 5;<=">(?3@@AKBVCaDgEw>hxyhzh{ h#$h|(h}L~ hzqnuo*+M,-Sv HIw>xy{ #$|(}Luay*+V\*`dj*nr1x+{\~djrN:-\YWdjYYS+{\djr:\djr:+{\djr:+{\dj*ɲ̹ Yշ+{\dj:*%+{6 : ޙ=*F Y*F: *I *x:  **I   *I  :  *Y*x*Y* !*x'*x*-* 1 4 6+9*-=Y?A+{\BdCޙ. &*F*F JN*%Q6 *-5*Y*x*Y**x'*xT-: *+W*[_*-*cf*-j*%mpYrxY*{[r:  "*+!v ./wxy#$u>*+%v 23wxy'(u/*xv7w xy[u/*Cv;w xynuD *C+Wv ? @w xy u[+ *+FvCD FGwxyI u>*+v RSwxyuP*+v ]^wxy~ tn u/*vw  u/*vw uJ*F+?ADWv wxwxy u/*?vtw  u# YEvq u/*vow  u# GYIKvl u? *+[vjw   u# YLvg u/*vew  u# YNvY u/*vWw uX.Y*,PQTXZ`dvTw .xy u/*hvTw 5u? *,+kvOw xy 5   !$&)*-0145;=J 1>@@>A@B >C@>D@E 4F s>G@HJL