72  #net/luminis/tls/extension/Extension()Vjava/util/ArrayList   +net/luminis/tls/extension/KeyShareExtensionkeyShareEntriesLjava/util/List;   handshakeType,Lnet/luminis/tls/TlsConstants$HandshakeType;  supportedCurves  java/util/Listcontains(Ljava/lang/Object;)Zjava/lang/RuntimeException !"makeConcatWithConstants$(Ljava/util/List;)Ljava/lang/String; $ %(Ljava/lang/String;)V';net/luminis/tls/extension/KeyShareExtension$ECKeyShareEntry &) *R(Lnet/luminis/tls/TlsConstants$NamedGroup;Ljava/security/interfaces/ECPublicKey;)V , -add/9net/luminis/tls/extension/KeyShareExtension$KeyShareEntry .1 2E(Lnet/luminis/tls/TlsConstants$NamedGroup;Ljava/security/PublicKey;)V 4 5E(Ljava/nio/ByteBuffer;Lnet/luminis/tls/TlsConstants$HandshakeType;Z)V 789 :;*net/luminis/tls/TlsConstants$ExtensionType key_share,Lnet/luminis/tls/TlsConstants$ExtensionType; = >?parseExtensionHeaderE(Ljava/nio/ByteBuffer;Lnet/luminis/tls/TlsConstants$ExtensionType;I)IA*net/luminis/tls/alert/DecodeErrorExceptionCextension underflow @$ FGH I*net/luminis/tls/TlsConstants$HandshakeType client_hello KLM NOjava/nio/ByteBuffergetShort()SQinconsistent length S TUparseKeyShareEntry(Ljava/nio/ByteBuffer;Z)I FW X server_helloZ"java/lang/IllegalArgumentException Y K] ^_position()I Ka b_ remaining def gh'net/luminis/tls/TlsConstants$NamedGroupvalues,()[Lnet/luminis/tls/TlsConstants$NamedGroup; jkl mnjava/util/stream/Streamof.([Ljava/lang/Object;)Ljava/util/stream/Stream;p qrtest!(I)Ljava/util/function/Predicate; jt uvfilter9(Ljava/util/function/Predicate;)Ljava/util/stream/Stream; jx yzfindAny()Ljava/util/Optional;| }~get()Ljava/util/function/Supplier;  java/util/Optional orElseThrow1(Ljava/util/function/Supplier;)Ljava/lang/Object; !=(Lnet/luminis/tls/TlsConstants$NamedGroup;)Ljava/lang/String; CURVE_KEY_LENGTHSLjava/util/Map;  } java/util/Map&(Ljava/lang/Object;)Ljava/lang/Object;java/lang/Integer _intValue d name()Ljava/lang/String; !'(Ljava/lang/String;I)Ljava/lang/String; d  secp256r1)Lnet/luminis/tls/TlsConstants$NamedGroup; K }()B K }([B)Ljava/nio/ByteBuffer; rawToEncodedECPublicKeyS(Lnet/luminis/tls/TlsConstants$NamedGroup;[B)Ljava/security/interfaces/ECPublicKey;EC keys must be in legacy form d x25519 d x448 rawToEncodedXDHPublicKeyF(Lnet/luminis/tls/TlsConstants$NamedGroup;[B)Ljava/security/PublicKey;  stream()Ljava/util/stream/Stream; apply()Ljava/util/function/Function; j map8(Ljava/util/function/Function;)Ljava/util/stream/Stream;  applyAsInt$()Ljava/util/function/ToIntFunction; j mapToInt@(Ljava/util/function/ToIntFunction;)Ljava/util/stream/IntStream; '()Ljava/util/function/IntUnaryOperator;  java/util/stream/IntStreamC(Ljava/util/function/IntUnaryOperator;)Ljava/util/stream/IntStream; _sum K allocate(I)Ljava/nio/ByteBuffer; 7 valueS K putShort(S)Ljava/nio/ByteBuffer;  iterator()Ljava/util/Iterator;  java/util/IteratorhasNext()Z next()Ljava/lang/Object; .  getNamedGroup+()Lnet/luminis/tls/TlsConstants$NamedGroup; d O shortValue K put(B)Ljava/nio/ByteBuffer; . getKey()Ljava/security/PublicKey;$java/security/interfaces/ECPublicKey  getW()Ljava/security/spec/ECPoint;    java/security/spec/ECPoint getAffineX()Ljava/math/BigInteger;   java/math/BigInteger toByteArray()[B   writeAffine(Ljava/nio/ByteBuffer;[B)V    getAffineY%java/security/interfaces/XECPublicKey   getU ! >(Lnet/luminis/tls/TlsConstants$NamedGroup;I)Ljava/lang/String; " #$reverse([B)V &'( )*java/util/ArrayscopyOf([BI)[B K,  K/ 0array K2 3([BII)Ljava/nio/ByteBuffer; 567 89net/luminis/tls/util/ByteUtils bytesToHex([B)Ljava/lang/String;; !<&(Ljava/lang/String;)Ljava/lang/String;>EC @AB CDjava/security/KeyFactory getInstance.(Ljava/lang/String;)Ljava/security/KeyFactory; &F GH copyOfRange([BII)[B  J K(I[B)V M N/(Ljava/math/BigInteger;Ljava/math/BigInteger;)VP"java/security/spec/ECPublicKeySpec R STecParameterSpecForCurve8(Ljava/lang/String;)Ljava/security/spec/ECParameterSpec; OV WC(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V @Y Z[generatePublic7(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;]&java/security/NoSuchAlgorithmException_ Missing support for EC algorithma*java/security/spec/InvalidKeySpecExceptionc%Inappropriate parameter specification efg Ch!java/security/AlgorithmParameters7(Ljava/lang/String;)Ljava/security/AlgorithmParameters;j%java/security/spec/ECGenParameterSpec i$ em noinit.(Ljava/security/spec/AlgorithmParameterSpec;)Vq"java/security/spec/ECParameterSpec es tugetParameterSpec>(Ljava/lang/Class;)Ljava/security/spec/AlgorithmParameterSpec;w0java/security/spec/InvalidParameterSpecException  y ${XDH}%java/security/spec/NamedParameterSpec  java/lang/String toUpperCase |$#java/security/spec/XECPublicKeySpec  D(Ljava/security/spec/AlgorithmParameterSpec;Ljava/math/BigInteger;)VInvalid named group  valueOf(I)Ljava/lang/Integer;  m}(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;  mH(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/List; SignatureMLjava/util/Map;;Ljava/util/List;MLjava/util/List;~(Ljava/security/interfaces/ECPublicKey;Lnet/luminis/tls/TlsConstants$NamedGroup;Lnet/luminis/tls/TlsConstants$HandshakeType;)VCodeLineNumberTableLocalVariableTablethis-Lnet/luminis/tls/extension/KeyShareExtension; publicKey&Ljava/security/interfaces/ECPublicKey;ecCurve StackMapTableq(Ljava/security/PublicKey;Lnet/luminis/tls/TlsConstants$NamedGroup;Lnet/luminis/tls/TlsConstants$HandshakeType;)VLjava/security/PublicKey;java/security/PublicKeyD(Ljava/nio/ByteBuffer;Lnet/luminis/tls/TlsConstants$HandshakeType;)VbufferLjava/nio/ByteBuffer; Exceptions$net/luminis/tls/TlsProtocolExceptionkeyShareEntriesSizeIhelloRetryRequestTypeZextensionDataLengthkeyData[B ecPublicKey headerByte keyLengthnamedGroupOnly startPositionnamedGroupValue namedGroupgetBytesaffineXaffineYpaddedrawkeyShare;Lnet/luminis/tls/extension/KeyShareExtension$KeyShareEntry;keyShareEntryLengthextensionLengthgetKeyShareEntries()Ljava/util/List;O()Ljava/util/List;iaffinekfLjava/security/KeyFactory;xywLjava/security/spec/ECPoint;e(Ljava/security/NoSuchAlgorithmException;,Ljava/security/spec/InvalidKeySpecException; curveNamerawBytesparams#Ljava/security/AlgorithmParameters;2Ljava/security/spec/InvalidParameterSpecException;Ljava/lang/String;uLjava/math/BigInteger; paramSpec'Ljava/security/spec/NamedParameterSpec;pubSpec%Ljava/security/spec/XECPublicKeySpec;curvetmpBjlambda$getBytes$4(I)Islambda$getBytes$3,(Lnet/luminis/tls/TlsConstants$NamedGroup;)Iglambda$getBytes$2f(Lnet/luminis/tls/extension/KeyShareExtension$KeyShareEntry;)Lnet/luminis/tls/TlsConstants$NamedGroup;kslambda$parseKeyShareEntry$1.()Lnet/luminis/tls/alert/DecodeErrorException;lambda$parseKeyShareEntry$0-(ILnet/luminis/tls/TlsConstants$NamedGroup;)Zit SourceFileKeyShareExtension.java NestMembersBootstrapMethods  !$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;Only curves supported:   "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  Curve '' not supportedInvalid  key length:   (Ljava/lang/Object;)I  ! " $2W Affine more then 32 bytes, leading bytes not 0  InnerClasses'net/luminis/tls/TlsConstants HandshakeTypeECKeyShareEntry NamedGroup KeyShareEntry ExtensionType.%java/lang/invoke/MethodHandles$Lookup0java/lang/invoke/MethodHandlesLookup! D**Y *-,Y#* &Y,+(+WA8BD E0HCI*DDDD0 dFD**Y *-,Y#* .Y,+0+WK8LN O0RCS*DDDD0 dFJ*+,3 ]^ 5**Y *+6<6 @YBD,EE+J6` @YPD6*+Rd6 @YPD3,V$6*+Rd6 @YPD YY[^`8ab c*f1g7h@iJkNlSmaofpprsszt~uvwy{}R79N"b~b$ * KF$TU ]+\> +`+` @YBD+J6ciosw{d:Y#* &Y(+W+J6+` @YBD@YDL+63d:+W: * &Y (+W @YD> .:+W:* .Y0+W+\d~'-IQ^mq +18AVz % @1%A]]]X-0Q !  Ed(C ** <=*E`=`N-6ڶW-W*E -W* :/.:-W-WD-W :*- :*- :Y#)!%::!-+W Y--.&"'.0:?FQWag!:Ohm\ #!y.0}Fg+ ?'K .?> /*  w, +,+Wi, &> ,d+W+,,1W?, 8>, d ,3Y,4:#+,, d 1W>"(.:ALRWciv4C&www  i=?M++lEN++l+E:Y Y-I YIL:,OY*QUXMY^#MYb#PQ\P]`& !"#$9%Q&R'](^)RJ@49R ^ ii Q\K`ST6=dL+iY*kl+prpLY^#LYb#\*v/0123*4+5* + 6 ^\KvO+! Y+xMz?N|Y*~:Y,:-XMY^#MYb#67\6C`* <= >?$@0A7B8CCDDER *#$08 D OO w\K` #$)*<*d=*3>**3T*T. JKMN PQRST"U(W*)0"   .`  :*  /*  # @YD M+ @Z.A 801 2305&.L     #%2F&(@& ) d&*@. + 7&,@-/1