ΚώΊΎ7«  $net/luminis/quic/crypto/BaseAeadImplQ(Lnet/luminis/quic/Version;Lnet/luminis/quic/Role;Lnet/luminis/quic/log/Logger;)V   at/favre/lib/crypto/HKDFfromHmacSha256()Lat/favre/lib/crypto/HKDF;   net/luminis/quic/crypto/ChaCha20hpCipherLjavax/crypto/Cipher;ChaCha20  javax/crypto/Cipher getInstance)(Ljava/lang/String;)Ljavax/crypto/Cipher;&java/security/NoSuchAlgorithmException%net/luminis/quic/QuicRuntimeException  !(Ljava/lang/Exception;)V##javax/crypto/NoSuchPaddingException%java/lang/RuntimeException $' (()V * +, writeKeySpec!Ljavax/crypto/spec/SecretKeySpec;.javax/crypto/spec/SecretKeySpec 0 12writeKey[B4ChaCha20-Poly1305 -6 7([BLjava/lang/String;)V 9 : writeCipher < =>getWriteCipher()Ljavax/crypto/Cipher;@!javax/crypto/spec/IvParameterSpec ?B C([B)V E FGgetWriteKeySpec#()Ljavax/crypto/spec/SecretKeySpec; I JKinitB(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V M NC updateAAD P QRdoFinal([B)[BT!java/security/InvalidKeyExceptionV0java/security/InvalidAlgorithmParameterExceptionX&javax/crypto/IllegalBlockSizeExceptionZ javax/crypto/BadPaddingException\ javax/crypto/AEADBadTagException^$net/luminis/quic/DecryptionException ]' abc dejava/util/Arrays copyOfRange([BII)[B ghi jkjava/nio/ByteBufferwrap([B)Ljava/nio/ByteBuffer; gm nogetInt()Iq'javax/crypto/spec/ChaCha20ParameterSpec ps t([BI)V v w2hpCodeLineNumberTableLocalVariableTablethis"Lnet/luminis/quic/crypto/ChaCha20; quicVersionLnet/luminis/quic/Version;serverLnet/luminis/quic/Role;logLnet/luminis/quic/log/Logger; getHashLength()S getKeyLengthgetHKDFgetHeaderProtectionCiphere(Ljava/security/NoSuchAlgorithmException;%Ljavax/crypto/NoSuchPaddingException; StackMapTable(Ljava/security/GeneralSecurityException;Ž&java/security/GeneralSecurityException aeadEncrypt ([B[B[B)[B aeadCipherchacha20poly1305Spec#Ljavax/crypto/spec/IvParameterSpec;keyLjava/security/Key;associatedDatamessagenonce aeadDecrypt decryptError"Ljavax/crypto/AEADBadTagException; ExceptionscreateHeaderProtectionMask counterBytescounterIchaCha20ParameterSpec)Ljavax/crypto/spec/ChaCha20ParameterSpec;mask#Ljava/security/InvalidKeyException;"Ljavax/crypto/BadPaddingException;(Ljavax/crypto/IllegalBlockSizeException;2Ljava/security/InvalidAlgorithmParameterException;sample SourceFile ChaCha20.java! xT*+,-·±y 01z*{|}~€‚ƒ„x- ¬y5z {|…„x- ¬y:z {|† x.Έ°y?z {|‡>x¦+*΄ Η"*Έ΅ §L»Y+·ΏL»$Y·&Ώ*΄ °"y"DFMGIJL&Oz  ˆ‰ˆŠ+{|‹ SI"FGxX*΄)Η*»-Y*΄/3·5΅)*΄)°yTUWz {|‹=>x‡"*΄8Η*3Έ΅8§ L»Y+·Ώ*΄8°"y\^c`bez ˆŒ"{|‹S xο7*Ά;:»?Y-·A:*ΆD:ΆH+ΆL,ΆO°:»$Y·&Ώ,-S,-U,-W,-Yy"klmn o&p-r/tzR'‘’“”•/ˆŒ7{|7–27—27˜2‹m™xA*Ά;:»?Y-·A:*ΆD:ΆH+ΆL,ΆO°:»]Y·_Ώ:»$Y·&Ώ,-[,7S,7U,7W,7Yy* {|}~ &€-‚/ƒ7…9‡z\ '‘’“”•/š›9ˆŒA{|A–2A—2A˜2‹ m[Iœ]Rxύ «ΈM+Έ`NΌ:+3T+3T+3T+3TΈfΆl6»pY-·r:»-Y*΄u·5:,ΆH,ΌYTYTYTYTYTΆO:°M»Y,·ΏM»$Y·&ΏM»$Y·&ΏM»$Y·&ΏM»$Y·&Ώ|}|}"|‡S|Y|™W|’Uy^Ž‘’!“(”/•9–E—T˜]™zš}›~‡žˆ ‘‘’™£š€’₯£¦zŽwo˜2jž29DŸ E8‘’T)”,z£2~ ˆŒˆˆ€‘ˆ₯šˆ¦£ˆ§«{|«¨2‹χ}ISHYHWHU©ͺ