{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":594749373,"defaultBranch":"main","name":"REALITY","ownerLogin":"XTLS","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-01-29T14:29:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/71564206?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1703561049.0","currentOid":""},"activityList":{"items":[{"before":"de7a8e5061a88af705701b9b7c5a76013d0a9340","after":"ecc4401070cc57f40a510e58428aeaa2bd6bbb8f","ref":"refs/heads/main","pushedAt":"2024-04-29T22:49:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"Add Star Chart\n\nWhen can we reach 1024 stars","shortMessageHtmlLink":"Add Star Chart"}},{"before":"de1173cf2b195624f20990f45a91c7c5d6792c81","after":"de7a8e5061a88af705701b9b7c5a76013d0a9340","ref":"refs/heads/main","pushedAt":"2024-04-29T22:46:12.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"do not crash if clientHello is nil","shortMessageHtmlLink":"do not crash if clientHello is nil"}},{"before":"0673e3b6052f4aa5fb9b551a5132e2aec95519bb","after":null,"ref":"refs/heads/go121","pushedAt":"2023-12-26T03:24:09.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"}},{"before":"933c289fd11ae8491bffe91ab9a478ce5f5746b7","after":"de1173cf2b195624f20990f45a91c7c5d6792c81","ref":"refs/heads/main","pushedAt":"2023-11-12T17:14:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"Update dependencies and readme","shortMessageHtmlLink":"Update dependencies and readme"}},{"before":"da6c695a34db49707253b69521ea2b7263b15968","after":"933c289fd11ae8491bffe91ab9a478ce5f5746b7","ref":"refs/heads/main","pushedAt":"2023-11-12T17:08:31.000Z","pushType":"pr_merge","commitsCount":30,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"crypto: add available godoc link\n\nChange-Id: Ifc669399dde7d6229c6ccdbe29611ed1f8698fb1\nReviewed-on: https://go-review.googlesource.com/c/go/+/534778\nReviewed-by: Dmitri Shuralyov \nReviewed-by: Ian Lance Taylor \nRun-TryBot: shuang cui \nTryBot-Result: Gopher Robot \nAuto-Submit: Ian Lance Taylor ","shortMessageHtmlLink":"crypto: add available godoc link"}},{"before":"15efe80b326fd662bb060ce72c7d5434c19ec30d","after":"0673e3b6052f4aa5fb9b551a5132e2aec95519bb","ref":"refs/heads/go121","pushedAt":"2023-10-17T01:48:02.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"crypto: add available godoc link\n\nChange-Id: Ifc669399dde7d6229c6ccdbe29611ed1f8698fb1\nReviewed-on: https://go-review.googlesource.com/c/go/+/534778\nReviewed-by: Dmitri Shuralyov \nReviewed-by: Ian Lance Taylor \nRun-TryBot: shuang cui \nTryBot-Result: Gopher Robot \nAuto-Submit: Ian Lance Taylor ","shortMessageHtmlLink":"crypto: add available godoc link"}},{"before":"49b683bde801d1b92e508b99ad14b18c969d79e3","after":"15efe80b326fd662bb060ce72c7d5434c19ec30d","ref":"refs/heads/go121","pushedAt":"2023-10-16T01:57:41.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"crypto/tls: change SendSessionTicket to take an options struct\n\nTo allow for future evolution of the API, make\nQUICConn.SendSessionTicket take a QUICSessionTicketOptions\nrather than a single bool.\n\nFor #60107\n\nChange-Id: I798fd0feec5c7581e3c3574e2de99611c81df47f\nReviewed-on: https://go-review.googlesource.com/c/go/+/514997\nReviewed-by: Roland Shoemaker \nRun-TryBot: Damien Neil \nTryBot-Result: Gopher Robot \nReviewed-by: Marten Seemann ","shortMessageHtmlLink":"crypto/tls: change SendSessionTicket to take an options struct"}},{"before":"60e61e454eefd759b461fe924280108404fbcd34","after":"49b683bde801d1b92e508b99ad14b18c969d79e3","ref":"refs/heads/go121","pushedAt":"2023-10-16T01:23:10.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"crypto/tls: don't reverify but check certificate expiration on resumption\n\nWe used to inconsistently run certificate verification on the server on\nresumption, but not on the client. This made TLS 1.3 resumption pretty\nmuch useless, as it didn't save bytes, CPU, or round-trips.\n\nThis requires serializing the verified chains into the session ticket,\nso it's a tradeoff making the ticket bigger to save computation (and for\nconsistency).\n\nThe previous behavior also had a \"stickyness\" issue: if a ticket\ncontained invalid certificates, they would be used even if the client\nhad in the meantime configured valid certificates for a full handshake.\n\nWe also didn't check expiration on the client side on resumption if\nInsecureSkipVerify was set. Again for consistency, we do that now.\n\nAlso, we used to run VerifyPeerCertificates on resumption even if\nNoClientCerts was set.\n\nFixes #31641\n\nChange-Id: Icc88269ea4adb544fa81158114aae76f3c91a15f\nReviewed-on: https://go-review.googlesource.com/c/go/+/497895\nReviewed-by: Damien Neil \nTryBot-Result: Gopher Robot \nRun-TryBot: Filippo Valsorda \nReviewed-by: Roland Shoemaker \nAuto-Submit: Filippo Valsorda ","shortMessageHtmlLink":"crypto/tls: don't reverify but check certificate expiration on resump…"}},{"before":"16e0038292208ef9817c8a9a253c84c637037449","after":"60e61e454eefd759b461fe924280108404fbcd34","ref":"refs/heads/go121","pushedAt":"2023-10-15T14:48:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"crypto/tls: enforce 1.3 record version semantics\n\n1.3 expects the record version is always 1.2 (0x0303), this previously\nwasn't enforced.\n\nChange-Id: I8bc88f588e76f9b862b57601336bb5c5ff08b30e\nReviewed-on: https://go-review.googlesource.com/c/go/+/485876\nReviewed-by: Damien Neil \nAuto-Submit: Roland Shoemaker \nRun-TryBot: Roland Shoemaker \nTryBot-Result: Gopher Robot ","shortMessageHtmlLink":"crypto/tls: enforce 1.3 record version semantics"}},{"before":"c19e06105685e466c648e270d4264cc588bf4326","after":null,"ref":"refs/heads/eng","pushedAt":"2023-10-10T00:31:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"}},{"before":"e426190d57f6443930a8f9cf3acfbb1a40b1576e","after":"da6c695a34db49707253b69521ea2b7263b15968","ref":"refs/heads/main","pushedAt":"2023-10-10T00:30:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"Add English translation\n\nCo-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>","shortMessageHtmlLink":"Add English translation"}},{"before":"3ae18a683cea4c27c564a0eaa3265a6b9b82c45f","after":null,"ref":"refs/heads/go1.20","pushedAt":"2023-10-10T00:15:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"}},{"before":null,"after":"16e0038292208ef9817c8a9a253c84c637037449","ref":"refs/heads/go121","pushedAt":"2023-10-10T00:07:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"all: fix problematic comments\nChange-Id: If092ae7c72b66f172ae32fa6c7294a7ac250362e\nReviewed-on: https://go-review.googlesource.com/c/go/+/463995\nReviewed-by: Cherry Mui \nTryBot-Result: Gopher Robot \nReviewed-by: Than McIntosh \nRun-TryBot: Than McIntosh ","shortMessageHtmlLink":"all: fix problematic comments"}},{"before":"e07c3b04b98322bb369e3b3ee5ced7e27803d0c9","after":"e426190d57f6443930a8f9cf3acfbb1a40b1576e","ref":"refs/heads/main","pushedAt":"2023-08-28T17:12:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Allow fragmented REALITY Client Hello & Simplify logic\n\nIt's mainly for defending against certain attacks.","shortMessageHtmlLink":"Allow fragmented REALITY Client Hello & Simplify logic"}},{"before":"01117aad702c27f9ea511480c5f2b25fb16f3059","after":"e07c3b04b98322bb369e3b3ee5ced7e27803d0c9","ref":"refs/heads/main","pushedAt":"2023-08-28T13:32:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yuhan6665","name":null,"path":"/yuhan6665","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1588741?s=80&v=4"},"commit":{"message":"REALITY protocol: Add ChaCha20-Poly1305 auth mode (#4)\n\nCo-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>","shortMessageHtmlLink":"REALITY protocol: Add ChaCha20-Poly1305 auth mode (#4)"}},{"before":"e07c3b04b98322bb369e3b3ee5ced7e27803d0c9","after":"01117aad702c27f9ea511480c5f2b25fb16f3059","ref":"refs/heads/main","pushedAt":"2023-08-28T12:39:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Allow fragmented Client Hello & Simplify logic","shortMessageHtmlLink":"Allow fragmented Client Hello & Simplify logic"}},{"before":"176a94313edafd2484d50fabc37f50d255a74b82","after":"e07c3b04b98322bb369e3b3ee5ced7e27803d0c9","ref":"refs/heads/main","pushedAt":"2023-06-13T07:58:28.332Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"REALITY protocol: Add ChaCha20-Poly1305 auth mode (#4)\n\nCo-authored-by: RPRX <63339210+RPRX@users.noreply.github.com>","shortMessageHtmlLink":"REALITY protocol: Add ChaCha20-Poly1305 auth mode (#4)"}},{"before":"d3d37610da233a15ddbba944cab03921331c59d2","after":"176a94313edafd2484d50fabc37f50d255a74b82","ref":"refs/heads/main","pushedAt":"2023-03-31T22:31:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"REALITY protocol: Set the fourth byte as reserved","shortMessageHtmlLink":"REALITY protocol: Set the fourth byte as reserved"}},{"before":"442d33ede91e2efcd5982102abc0c37c56453537","after":"d3d37610da233a15ddbba944cab03921331c59d2","ref":"refs/heads/main","pushedAt":"2023-03-31T19:11:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Allow Client Hello with other data attached & Simplify logic","shortMessageHtmlLink":"Allow Client Hello with other data attached & Simplify logic"}},{"before":"0d0713b108c8451d9a40fdbc3cb279681bcc1203","after":"442d33ede91e2efcd5982102abc0c37c56453537","ref":"refs/heads/main","pushedAt":"2023-03-20T15:37:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Do not show ciphertext SessionID or full AuthKey","shortMessageHtmlLink":"Do not show ciphertext SessionID or full AuthKey"}},{"before":"2c01033f9f8f2efcedd17a1998dc5b8f735aee66","after":"0d0713b108c8451d9a40fdbc3cb279681bcc1203","ref":"refs/heads/main","pushedAt":"2023-03-20T15:34:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Replace `bytes.Clone()` with `append()`","shortMessageHtmlLink":"Replace bytes.Clone() with append()"}},{"before":"0d0713b108c8451d9a40fdbc3cb279681bcc1203","after":"2c01033f9f8f2efcedd17a1998dc5b8f735aee66","ref":"refs/heads/main","pushedAt":"2023-03-20T15:10:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Do not output ciphertext SessionID or full AuthKey","shortMessageHtmlLink":"Do not output ciphertext SessionID or full AuthKey"}},{"before":"a7ae8b57f1a468c02a7c290f80699e145d5d443c","after":"0d0713b108c8451d9a40fdbc3cb279681bcc1203","ref":"refs/heads/main","pushedAt":"2023-03-09T12:52:56.814Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Replace `bytes.Clone()` with `append()`","shortMessageHtmlLink":"Replace bytes.Clone() with append()"}},{"before":"6288e760a9567d840f071a69ee3f768bc966a33d","after":"a7ae8b57f1a468c02a7c290f80699e145d5d443c","ref":"refs/heads/main","pushedAt":"2023-03-09T12:51:17.152Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Apply target's time-out to `hs.readClientFinished()`","shortMessageHtmlLink":"Apply target's time-out to hs.readClientFinished()"}},{"before":"c48e1105968281374dff9724fa7c6b50235f7ab8","after":"6288e760a9567d840f071a69ee3f768bc966a33d","ref":"refs/heads/main","pushedAt":"2023-03-09T12:43:31.421Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Reuse `buf` (though `io.CopyBuffer()` is not likely to actually use it)","shortMessageHtmlLink":"Reuse buf (though io.CopyBuffer() is not likely to actually use it)"}},{"before":"6288e760a9567d840f071a69ee3f768bc966a33d","after":"c48e1105968281374dff9724fa7c6b50235f7ab8","ref":"refs/heads/main","pushedAt":"2023-03-09T12:39:07.515Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Apply target's time-out to `hs.readClientFinished()`","shortMessageHtmlLink":"Apply target's time-out to hs.readClientFinished()"}},{"before":"1c3141866eb7c5ef4c6af7c6b217e75c229924a3","after":"6288e760a9567d840f071a69ee3f768bc966a33d","ref":"refs/heads/main","pushedAt":"2023-03-09T12:38:07.130Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Reuse `buf` (though `io.CopyBuffer()` is not likely to actually use it)","shortMessageHtmlLink":"Reuse buf (though io.CopyBuffer() is not likely to actually use it)"}},{"before":"6288e760a9567d840f071a69ee3f768bc966a33d","after":"1c3141866eb7c5ef4c6af7c6b217e75c229924a3","ref":"refs/heads/main","pushedAt":"2023-03-08T17:05:57.351Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Apply target's time-out to `hs.readClientFinished()`","shortMessageHtmlLink":"Apply target's time-out to hs.readClientFinished()"}},{"before":"dc9a7cef8e8007bce8f73fc2957e57a8b70a4f82","after":"6288e760a9567d840f071a69ee3f768bc966a33d","ref":"refs/heads/main","pushedAt":"2023-03-08T15:19:09.098Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"Reuse `buf` (though `io.CopyBuffer()` is not likely to actually use it)","shortMessageHtmlLink":"Reuse buf (though io.CopyBuffer() is not likely to actually use it)"}},{"before":"15efa424b2b31763a22d364accdd30e03612d5dc","after":"dc9a7cef8e8007bce8f73fc2957e57a8b70a4f82","ref":"refs/heads/main","pushedAt":"2023-03-07T15:20:57.863Z","pushType":"push","commitsCount":1,"pusher":{"login":"RPRX","name":null,"path":"/RPRX","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63339210?s=80&v=4"},"commit":{"message":"crypto/tls: set const maxUselessRecords to 32 (the same with OpenSSL)\n\nhttps://github.com/golang/go/pull/58913","shortMessageHtmlLink":"crypto/tls: set const maxUselessRecords to 32 (the same with OpenSSL)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPXOsmwA","startCursor":null,"endCursor":null}},"title":"Activity · XTLS/REALITY"}