1.24 рдЬрд╛рдиреБрд╣реЛрд╕реН

1.24 рдЬрд╛рдиреБрд╣реЛрд╕реН

рдЧреЛ рднрд╛рд╖рд╛рдХреЛ рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬ, рд╕рдВрд╕реНрдХрд░рдг рез.реирек, рдЫ рдорд╣рд┐рдирд╛ рдкрдЫрд┐ рдЖрдЙрдБрдЫ 1.23 рдЬрд╛рдиреБрд╣реЛрд╕реНред рдзреЗрд░реИрдЬрд╕реЛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЯреВрд▓рдЪреЗрди, рд░рдирдЯрд╛рдЗрдо рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдЫрдиреНред рд╕рдзреИрдВ рдЬрд╕реНрддреИ, рд░рд┐рд▓рд┐рдЬрд▓реЗ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЕрдиреБрдХреВрд▓рддрд╛рдХреЛ рдкреНрд░рддрд┐рдЬреНрдЮрд╛ рдЧреЛ резред рднрд╛рд╖рд╛ рдбрд┐рдЬрд╛рдЗрдирд░рд╣рд░реВрд▓реЗ рд▓рдЧрднрдЧ рд╕рдмреИ рдЧреЛ рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ рдХрдореНрдкрд╛рдЗрд▓ рд░ рдЪрд▓реНрди рдЬрд╛рд░реА рд░рд╣рдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрдЫрдиреНред

рднрд╛рд╖рд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди

рдЧреЛ рез.реирек рд▓реЗ рдЕрдм рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░рдХрд╛ рдЙрдкрдирд╛рдорд╣рд░реВ: рдПрдХ рдкреНрд░рдХрд╛рд░ рдЙрдкрдирд╛рдорд▓рд╛рдИ рдШреЛрд╖рд┐рдд рдкреНрд░рдХрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╛рдЗрдЬ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдпрд╣рд╛рдБ рдЫрдиреН рднрд╛рд╖рд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯреАрдХрд░рдгрд╣рд░реВред рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рд╕реБрд╡рд┐рдзрд╛рд▓рд╛рдИ GOEXPERIMENT=noaliastypeparams; рд╕реЗрдЯ рдЧрд░реЗрд░ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдпрджреНрдпрдкрд┐, Go рез.реирел рдорд╛ aliastypeparams рд╡рд┐рдХрд▓реНрдк рд╣рдЯрд╛рдЗрдиреЗрдЫред

рдЙрдкрдХрд░рдгрд╣рд░реВ

рдЬрд╛рдиреБрд╣реЛрд╕реН рдЖрджреЗрд╢

рдЧреЛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВрд▓реЗ рдЕрдм go.mod рдорд╛ рд░рд╣реЗрдХреЛ рдЙрдкрдХрд░рдг рдирд┐рд░реНрджреЗрд╢рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рдпрд╕рд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ "tools.go" рднрдирд┐рдиреЗ рдлрд╛рдЗрд▓рдорд╛ рдЦрд╛рд▓реА рдЖрдпрд╛рддрдХреЛ рд░реВрдкрдорд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ рдердкреНрдиреЗ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛рд▓рд╛рдИ рд╣рдЯрд╛рдЙрдБрдЫред рдЧреЛ рдЯреВрд▓ рдХрдорд╛рдгреНрдбрд▓реЗ рдЕрдм рдЧреЛ рд╕рдБрдЧ рдЖрдЙрдиреЗ рдЙрдкрдХрд░рдгрд╣рд░реВ рдмрд╛рд╣реЗрдХ рдпреА рдЙрдкрдХрд░рдгрд╣рд░реВ рдЪрд▓рд╛рдЙрди рд╕рдХреНрдЫред рдердк рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рдХрд╛рдЧрдЬрд╛рдд.

go get рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ -tool рдлреНрд▓реНрдпрд╛рдЧрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рд▓рдХреЛ рдореЛрдбреНрдпреБрд▓рдорд╛ рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдердкреНрдиреБрдХреЛ рд╕рд╛рдереИ рдЙрдкрдХрд░рдг рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдердкреНрди рдмрд╛рдзреНрдп рдкрд╛рд░реНрдЫред

рдирдпрд╛рдБ рдореЗрдЯрд╛-рдкреНрдпрд╛рдЯрд░реНрди рдЙрдкрдХрд░рдг рд╣рд╛рд▓рдХреЛ рдореЛрдбреНрдпреБрд▓рдорд╛ рд░рд╣реЗрдХрд╛ рд╕рдмреИ рдЙрдкрдХрд░рдгрд╣рд░реВрд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫред рдпреЛ рд╕рдмреИрд▓рд╛рдИ рдЧреЛ рдЧреЗрдЯ рдЯреВрд▓ рдорд╛рд░реНрдлрдд рдЕрдкрдбреЗрдЯ рдЧрд░реНрди рд╡рд╛ рдЧреЛ рдЗрдиреНрд╕реНрдЯрд▓ рдЯреВрд▓ рдорд╛рд░реНрдлрдд рддрдкрд╛рдИрдВрдХреЛ GOBIN рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдЧреЛ рд░рди рдорд╛рд░реНрдлрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдПрдХреНрдЬрд┐рдХреНрдпреБрдЯреЗрдмрд▓рд╣рд░реВ рд░ рдирдпрд╛рдБ рдЧреЛ рдЯреВрд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдм рдЧреЛ рдмрд┐рд▓реНрдб рдХреНрдпрд╛рд╕рдорд╛ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдпрд╕рд▓реЗ рдмрдвреЗрдХреЛ рдХреНрдпрд╛рд╕рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рдмрд╛рд░рдореНрдмрд╛рд░ рд╕реБрд░реБрд╡рд╛рддрд╣рд░реВ рд╕рдореНрднрд╡ рдмрдирд╛рдЙрдБрдЫред #69290.

рдЧреЛ рдмрд┐рд▓реНрдб рд░ рдЧреЛ рдЗрдиреНрд╕реНрдЯрд▓ рдХрдорд╛рдгреНрдбрд╣рд░реВрд▓реЗ рдЕрдм -json рдлреНрд▓реНрдпрд╛рдЧ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫрдиреН, рдЬрд╕рд▓реЗ рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рд░ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдорд╛рдирдХ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рд╕рдВрд░рдЪрд┐рдд JSON рдЖрдЙрдЯрдкреБрдЯрдХреЛ рд░реВрдкрдорд╛ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫред рдврд╛рдБрдЪрд╛ рд╡рд┐рд╡рд░рдгрд╣рд░реВ go help buildjson рдорд╛ рд╣реЗрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдпрд╕рдмрд╛рд╣реЗрдХ, go test -json рд▓реЗ рдЕрдм JSON рдорд╛ рдЖрдЙрдЯрдкреБрдЯ рд░ рдмрд┐рд▓реНрдб рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫ, рдЬреБрди рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рдгрд╛рдо JSON рд╕рдБрдЧ рдорд┐рд╕рд╛рдЗрдиреНрдЫред рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдирдпрд╛рдБ рдХрд╛рд░реНрдп рдкреНрд░рдХрд╛рд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдПрдХреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫрдиреН рднрдиреЗ, рддрдкрд╛рдИрдВ рдмрд┐рд▓реНрдбрдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рдлрд░реНрдХрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред GODEBUG рд╕реЗрдЯрдЕрдк gotestjsonbuildtext=рез.

рдирдпрд╛рдБ GOAUTH рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рд▓реЗ рдирд┐рдЬреА рдореЛрдбреНрдпреБрд▓ рдкреБрд▓рд╣рд░реВрд▓рд╛рдИ рдЕрдзрд┐рдХреГрдд рдЧрд░реНрдиреЗ рд▓рдЪрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рддрдкрд╛рдИрдВрд▓реЗ go help goauth рдорд╛ рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдЧреЛ рдмрд┐рд▓реНрдб рдХрдорд╛рдгреНрдб рдЕрдм рд╕реНрдерд╛рдкрдирд╛ рднрдПрдХреЛ рдЫред рдореБрдЦреНрдп рдореЛрдбреНрдпреБрд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдЯреНрдпрд╛рдЧ рд░/рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдХрдорд┐рдЯрдорд╛ рдЖрдзрд╛рд░рд┐рдд, рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░рд┐рдПрдХреЛ рдмрд╛рдЗрдирд░реАрдорд╛ред рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рднрдиреЗ +dirty рдкреНрд░рддреНрдпрдп рдердкрд┐рдиреЗрдЫред рдмрд╛рдЗрдирд░реАрдмрд╛рдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдЬрд╛рдирдХрд╛рд░реА рд╣рдЯрд╛рдЙрди -buildvcs=false рдлреНрд▓реНрдпрд╛рдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдирдпрд╛рдБ GODEBUG рд╕реЗрдЯрдЕрдк рдЯреВрд▓рдЪреЗрдирдЯреНрд░реЗрд╕=рез рдЕрдм go рдХрдорд╛рдгреНрдбрдорд╛ рдЯреВрд▓рдЪреЗрди рдЪрдпрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

Cgo

рд░рдирдЯрд╛рдЗрдо рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░реНрди Cgo рд▓реЗ C рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдПрдиреЛрдЯреЗрд╕рдирд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред #cgo noescape cFunctionName рд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ C рдлрдВрдХреНрд╢рди cFunctionName рдорд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдореЗрдореЛрд░реА рдПрд╕реНрдХреЗрдк рднрдПрдХреЛ рдЫреИрди рднрдиреА рдмрддрд╛рдЙрдБрдЫред #cgo nocallback cFunctionName рд▓реЗ рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫ рдХрд┐ C рдлрдВрдХреНрд╢рди cFunctionName рд▓реЗ рдХреБрдиреИ рдкрдирд┐ Go рдлрдВрдХреНрд╢рдирд▓рд╛рдИ рдХрд▓ рдмреНрдпрд╛рдХ рдЧрд░реНрджреИрдиред рдердк рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ cgo рдХрд╛рдЧрдЬрд╛рдд.

Cgo рд▓реЗ рд╣рд╛рд▓ рдзреЗрд░реИ рдЕрд╕рдВрдЧрдд рдШреЛрд╖рдгрд╛рд╣рд░реВ рднрдПрдХреЛ C рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рдХрд▓рд╣рд░реВ рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ f рд▓рд╛рдИ void f(int) рд░ void f(double) рджреБрд╡реИрдХреЛ рд░реВрдкрдорд╛ рдШреЛрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, cgo рд▓реЗ рд╕рдореНрднрд╡рддрдГ рдЕрдорд╛рдиреНрдп рдХрд▓рд┐рдЩ рдЕрдиреБрдХреНрд░рдо f(0) рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрдиреЗрдЫред рдпрд╕ рд░рд┐рд▓реАрдЬрдорд╛ рдирдпрд╛рдБ рдХреБрд░рд╛ рднрдиреЗрдХреЛ рдлрд░рдХ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЕрд╕рдВрдЧрдд рдШреЛрд╖рдгрд╛рд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрджрд╛ рдпреЛ рддреНрд░реБрдЯрд┐ рдЕрд╡рд╕реНрдерд╛рдХреЛ рдкрд╣рд┐рдЪрд╛рди рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред #67699.

рдУрдмреНрдЬрдбрдореНрдк

objdump рдЙрдкрдХрд░рдгрд▓реЗ рдЕрдм ремрек-рдмрд┐рдЯ LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), рд░ S64X (GOARCH=s390x) рдорд╛ рд╡рд┐рдЪреНрдЫреЗрджрдирд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рднрд┐рддреНрддрд╛

рдирдпрд╛рдБ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдкрд░реАрдХреНрд╖рдг рд╕реБрдЗрдЯрд╣рд░реВрдорд╛ рдкрд░реАрдХреНрд╖рдг, рдлрдЬрд░, рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ, рд░ рдЙрджрд╛рд╣рд░рдг рдШреЛрд╖рдгрд╛рд╣рд░реВрдорд╛ рд╕рд╛рдорд╛рдиреНрдп рддреНрд░реБрдЯрд┐рд╣рд░реВ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ рд╡рд┐рдХреГрдд рдирд╛рдорд╣рд░реВ, рдЕрдорд╛рдиреНрдп рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ, рд╡рд╛ рдЕрд╡рд╕реНрдерд┐рдд рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдХрд╛рдЧрдЬрд╛рдд рдЧрд░реНрдиреЗ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВред рдпреА рдордзреНрдпреЗ рдХреЗрд╣реА рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓реЗ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдЕрд╕рдлрд▓ рд╣реБрди рд╕рдХреНрдЫрдиреНред

рдЕрд╡рд╕реНрдерд┐рдд printf рдкрд╛рд░реНрд╕рд░рд▓реЗ рдЕрдм fmt.Printf(s) рдлрд╛рд░рдордХреЛ рдХрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рджрд╛рди рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫ, рдЬрд╣рд╛рдБ s рдХреБрдиреИ рдЕрдиреНрдп рдЖрд░реНрдЧреБрдореЗрдиреНрдЯ рдмрд┐рдирд╛рдХреЛ рдЧреИрд░-рд╕реНрдерд┐рд░ рдврд╛рдБрдЪрд╛ рд╕реНрдЯреНрд░рд┐рдЩ рд╣реЛред рддреНрдпрд╕реНрддрд╛ рдХрд▓рд╣рд░реВ рд▓рдЧрднрдЧ рд╕рдзреИрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдиреНрдЫрдиреН, рдХрд┐рдирдХрд┐ s рдХреЛ рдорд╛рдирдорд╛ % рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рд╣реБрди рд╕рдХреНрдЫ; рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ fmt.Print рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред 60529ред рдпреЛ рдЬрд╛рдБрдЪрд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рдХреЛрдбрдорд╛ рдЪреАрдЬрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рдЧрд░реНрдЫ, рд░ рддреНрдпрд╕реИрд▓реЗ рднрд╛рд╖рд╛ рд╕рдВрд╕реНрдХрд░рдг (go.mod рдлрд╛рдЗрд▓рдХреЛ go рдирд┐рд░реНрджреЗрд╢рди рд╡рд╛ `//go:build` рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░) рдХрдореНрддрд┐рдорд╛ Go 1.24 рд╣реБрдБрджрд╛ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫ, Go 1.24 рдЯреВрд▓рдЪреЗрдирдорд╛ рдЕрдкрдЧреНрд░реЗрдб рдЧрд░реНрджрд╛ рд▓рд╛рдореЛ рдПрдХреАрдХрд░рдг рдмреНрд░реЗрдХрд╣рд░реВ рд╣реБрдирдмрд╛рдЯ рдмрдЪреНрдиред

рдЕрд╡рд╕реНрдерд┐рдд рдмрд┐рд▓реНрдбрдЯреНрдпрд╛рдЧ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдЕрдм рдЧрд▓рдд рдмрд┐рд▓реНрдбрдЯреНрдпрд╛рдЧ рд╣реБрдБрджрд╛ рдирд┐рджрд╛рди рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫред рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдорд╛рдг рд╕реАрдорд╛ //go:build рдирд┐рд░реНрджреЗрд╢рдирдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, //go:build go1.23.1 рд▓реЗ рдкреЛрдЗрдиреНрдЯ рд░рд┐рд▓реАрдЬрд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ; рдмрд░реБ //go:build go1.23 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред #64127.

рдЕрд╡рд╕реНрдерд┐рдд рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рд▓рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдХрд▓реЗ рдЕрдм рдирд┐рджрд╛рди рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫ рдЬрдм рдЪрд░рд▓рд╛рдИ рдЯреНрд░рд┐рдкрд▓ "for" рд▓реВрдкрдорд╛ рдШреЛрд╖рд┐рдд рдЧрд░рд┐рдиреНрдЫ, рдЬрд╕реНрддреИ for i := iter(); рд╕рдореНрдкрдиреНрди(i); i = next(i) { тАж }, рдорд╛ sync.Locker рд╕рдорд╛рд╡реЗрд╢ рдЫ, рдЬрд╕реНрддреИ sync.Mutexред 1.22 рдЬрд╛рдиреБрд╣реЛрд╕реН рдЕрдШрд┐рд▓реНрд▓реЛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдмрд╛рдЯ рдорд╛рдирд╣рд░реВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрджреИ, рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЪрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рддреНрдпрд╕реНрддрд╛ рд▓реВрдкрд╣рд░реВрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдпреЛ; рдпреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рддрд╛рд▓рд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫреИрдиред #66387.

рдЧреЛрдХрд╛рдЪреЗрдкреНрд░реЛрдЧ

рдЖрдиреНрддрд░рд┐рдХ cmd/go рдмрд╛рдЗрдирд░реА рд░ рдкрд░реАрдХреНрд╖рдг рдХреНрдпрд╛рд╕рд┐рдЩ рд╕рдВрдпрдиреНрддреНрд░ рдЕрдм cmd/go рдЙрдкрдХрд░рдг рд░ GOCACHEPROG рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рджреНрд╡рд╛рд░рд╛ рдирд╛рдо рджрд┐рдЗрдПрдХреЛ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмреАрдЪ JSON рдкреНрд░реЛрдЯреЛрдХрд▓ рд▓рд╛рдЧреВ рдЧрд░реНрдиреЗ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдкрд╣рд┐рд▓реЗ рдпреЛ GOEXPERIMENT рдХреЛ рд▓рд╛рдЧрд┐ рдерд┐рдпреЛред рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рд╡рд┐рд╡рд░рдг рдирд┐рдореНрдирдорд╛ рд╣реЗрд░реНрди рд╕рдХрд┐рдиреНрдЫ: рдХрд╛рдЧрдЬрд╛рдд.

рдкреВрд░рд╛ рд╣реБрдиреЗ рд╕рдордп

рдзреЗрд░реИ рд░рдирдЯрд╛рдЗрдо рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░рд╣рд░реВрд▓реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХрд╣рд░реВрдХреЛ рд╕реЗрдЯрдорд╛ рдФрд╕рддрдорд╛ CPU рдУрднрд░рд╣реЗрдб реи-рей% рд▓реЗ рдШрдЯрд╛рдПред рдЖрд╡реЗрджрди рдЕрдиреБрд╕рд╛рд░ рдирддрд┐рдЬрд╛ рдлрд░рдХ рд╣реБрди рд╕рдХреНрдЫред рдпреА рд╕реБрдзрд╛рд░рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдирдпрд╛рдБ рдирд┐рд░реНрдорд┐рдд рдирдХреНрд╕рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рд╡реЗрд╢ рдЫ рд╕реНрд╡рд┐рдбрд┐рд╢ рдЯреЗрдмрд▓рд╣рд░реВ, рд╕рд╛рдиреЛ рд╡рд╕реНрддреБ рдореЗрдореЛрд░реАрдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдЖрд╡рдВрдЯрди, рд░ рдореНрдпреБрдЯреЗрдХреНрд╕рдХреЛ рдирдпрд╛рдБ рдЖрдиреНрддрд░рд┐рдХ рд░рдирдЯрд╛рдЗрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдирдпрд╛рдБ рдмрд┐рд▓реНрдЯ-рдЗрди рдирдХреНрд╕рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░ рдирдпрд╛рдБ рдЖрдиреНрддрд░рд┐рдХ рд░рдирдЯрд╛рдЗрдо рдореНрдпреБрдЯреЗрдХреНрд╕рд▓рд╛рдИ рдХреНрд░рдорд╢рдГ рдирд┐рд░реНрдорд╛рдг рд╕рдордпрдорд╛ GOEXPERIMENT=noswissmap рд░ GOEXPERIMENT=nospinbitmutex рд╕реЗрдЯ рдЧрд░реЗрд░ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдХрдореНрдкрд╛рдЗрд▓рд░

рдХрдореНрдкрд╛рдЗрд▓рд░рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ cgo рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЧрд░рд┐рдПрдХрд╛ рд░рд┐рд╕реАрднрд░ рдкреНрд░рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рдирдпрд╛рдБ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдирд┐рд╖реЗрдз рдЧрд░реЗрдХреЛ рдерд┐рдпреЛ, рддрд░ рдкреНрд░рдХрд╛рд░ рдЙрдкрдирд╛рдо рдорд╛рд░реНрдлрдд рдпреЛ рдкреНрд░рддрд┐рдмрдиреНрдзрдХреЛ рд╡рд░рд┐рдкрд░рд┐ рдХрд╛рдо рдЧрд░реНрди рд╕рдореНрднрд╡ рдерд┐рдпреЛред рдпрджрд┐ рд░рд┐рд╕реАрднрд░рд▓реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдкрдорд╛ (рдкреНрд░рдХрд╛рд░ рдЙрдкрдирд╛рдо рдорд╛рд░реНрдлрдд) cgo-рдЙрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░рд▓рд╛рдИ рдЬрдирд╛рдЙрдБрдЫ рднрдиреЗ Go 1.24 рд▓реЗ рдЕрдм рд╕рдзреИрдВ рддреНрд░реБрдЯрд┐ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрджрдЫред

рд▓рд┐рдЩреНрдХрд░

рд▓рд┐рдЩреНрдХрд░рд▓реЗ рдЕрдм ELF рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдорд╛ GNU рдмрд┐рд▓реНрдб рдЖрдЗрдбреЗрдиреНрдЯрд┐рдлрд╛рдпрд░ (ELF рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ NT_GNU_BUILD_ID) рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ macOS рдорд╛ UUID (Mach-O рд▓реЛрдб рдХрдорд╛рдгреНрдб LC_UUID) рдЙрддреНрдкрдиреНрди рдЧрд░реНрдЫред рдмрд┐рд▓реНрдб рдЖрдИрдбреА рд╡рд╛ UUID рдЧреЛ рдмрд┐рд▓реНрдб рдЖрдИрдбреАрдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛред рдпрд╕рд▓рд╛рдИ -B none linker рдЭрдгреНрдбрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмрдиреНрдж рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд╡рд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдорд╛рди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ -B 0xNNNN linker рдЭрдгреНрдбрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдкрджреЛрдиреНрдирддрд┐

рдорд╛ рднрдирд┐рдПрдХреЛ рдЫ рдЧреЛ рез.реиреи рд░рд┐рд▓рд┐рдЬ рдиреЛрдЯрд╣рд░реВ, Go рез.реирек рд▓рд╛рдИ рдЕрдм Go рез.реиреи.рем рд╡рд╛ рд╕реЛрднрдиреНрджрд╛ рдкрдЫрд┐рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ Go рез.реирем рд▓рд╛рдИ рд░реЛрд▓ рдЖрдЙрдЯ рдЧрд░реНрди Go рез.реирек рд╡рд╛ рд╕реЛрднрдиреНрджрд╛ рдкрдЫрд┐рдХреЛ рдкреЛрдЗрдиреНрдЯ рд░рд┐рд▓реАрдЬ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реНрдЫрдиреНред

рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп

рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛-рдкреНрд░рддрд┐рдмрдиреНрдзрд┐рдд рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдкрд╣реБрдБрдЪ

рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░ рдУрдПрд╕.рд░реВрдЯ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рднрд┐рддреНрд░ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рд╕рдорд╛рд░реЛрд╣ рдУрдПрд╕.рдУрдкрдирд░реВрдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдЦреЛрд▓реНрдЫ рд░ рдлрд░реНрдХрд╛рдЙрдБрдЫ рдУрдПрд╕.рд░реВрдЯред рд╡рд┐рдзрд┐рд╣рд░реВ рдУрдПрд╕.рд░реВрдЯ рддреНрдпреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдмрд╛рд╣рд┐рд░рдХрд╛ рд╕реНрдерд╛рдирд╣рд░реВрдорд╛ рдкрдерд╣рд░реВрд▓рд╛рдИ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рдирджрд┐рдиреБрд╣реЛрд╕реН, рдЬрд╕рдорд╛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдмрд╛рд╣рд┐рд░рдХрд╛ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рд▓рд┐рдЩреНрдХрд╣рд░реВ рдкрдЫреНрдпрд╛рдЙрдиреЗрд╣рд░реВ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреНред os.Root рдорд╛ рднрдПрдХрд╛ рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ os рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдЙрдкрд▓рдмреНрдз рдЕрдзрд┐рдХрд╛рдВрд╢ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╕рдЮреНрдЪрд╛рд▓рдирд╣рд░реВ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рдЧрд░реНрджрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдУрдПрд╕.рд░реВрдЯ.рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН, os.Root.Create рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, рдУрдПрд╕.рд░реВрдЯ.рдПрдордХреЗрдбрд┐рд░ ╨╕ os.Root.Stat рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реНред.

рдирдпрд╛рдБ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рд╕реБрд╡рд┐рдзрд╛

рдмреЗрдиреНрдЪрдорд╛рд░реНрдХрд╣рд░реВрд▓реЗ рдЕрдм рдЫрд┐рдЯреЛ, рдХрдо рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН рдкрд░реАрдХреНрд╖рдгред B. рд▓реВрдк рджрд╛рдпрд░рд╛ bN рдЬрд╕реНрддреИ bN рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реВрдк рд╕рдВрд░рдЪрдирд╛рд╣рд░реВрдХреЛ рд╕рдЯреНрдЯрд╛ b.Loop() { тАж } рдЬрд╕реНрддреИ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХрдорд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЧрд░реНрди рдпрд╕рд▓реЗ рджреБрдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдлрд╛рдЗрджрд╛рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ:

  • рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рддрд┐-рдХрд╛рдЙрдиреНрдЯ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдорд╣рдБрдЧреЛ рд╕реЗрдЯрдЕрдк рд░ рд╕рдлрд╛рдИ рдЪрд░рдгрд╣рд░реВ рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫред
  • рдХрдореНрдкрд╛рдЗрд▓рд░рд▓рд╛рдИ рд▓реВрдк рдмрдбреАрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдЕрдкреНрдЯрд┐рдорд╛рдЗрдЬ рдЧрд░реНрдирдмрд╛рдЯ рд░реЛрдХреНрджреИ, рдлрдВрдХреНрд╢рди рдХрд▓ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд▓рд╛рдЗрдн рд╣реБрдиреНрдЫрдиреНред

рд╕реБрдзрд╛рд░рд┐рдПрдХрд╛ рдлрд╛рдЗрдирд▓рд╛рдЗрдЬрд░рд╣рд░реВ

рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рд░рдирдЯрд╛рдЗрдоред рдХреНрд▓рд┐рдирдЕрдк рдердкреНрдиреБрд╣реЛрд╕реН рдПрдХ рдкреВрд░реНрдгрддрд╛ рд╕рдВрдпрдиреНрддреНрд░ рд╣реЛ рдЬреБрди рднрдиреНрджрд╛ рдмрдвреА рд▓рдЪрд┐рд▓реЛ, рдмрдвреА рдХреБрд╢рд▓, рд░ рдХрдо рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рдЫ рд░рдирдЯрд╛рдЗрдоредрд╕реЗрдЯрдлрд╛рдЗрдирд▓рд╛рдЗрдЬрд░ред AddCleanup рд▓реЗ рд╡рд╕реНрддреБрдорд╛ рдХреНрд▓рд┐рдирдЕрдк рдкреНрд░рдХрд╛рд░реНрдп рд╕рдВрд▓рдЧреНрди рдЧрд░реНрджрдЫ рдЬреБрди рд╡рд╕реНрддреБ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реБрдиреЗ рдмрд┐рддреНрддрд┐рдХреИ рдЪрд▓рд╛рдЗрдиреЗрдЫред рдпрджреНрдпрдкрд┐, SetFinalizer рднрдиреНрджрд╛ рдлрд░рдХ, рдПрдЙрдЯреИ рд╡рд╕реНрддреБрдорд╛ рдзреЗрд░реИ рд╕рдлрд╛рдИрд╣рд░реВ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд╕рдлрд╛рдИрд╣рд░реВ рдЖрдиреНрддрд░рд┐рдХ рдкреЛрдЗрдиреНрдЯрд░рд╣рд░реВрдорд╛ рдЬреЛрдбреНрди рд╕рдХрд┐рдиреНрдЫ, рд╕рдлрд╛рдИрд╣рд░реВрд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╡рд╕реНрддреБрд╣рд░реВрд▓реЗ рдЪрдХреНрд░ рдмрдирд╛рдЙрдБрджрд╛ рдЪреБрд╣рд╛рд╡рдЯ рдЧрд░реНрджреИрдирдиреН, рд░ рд╕рдлрд╛рдИрд╣рд░реВрд▓реЗ рд╡рд╕реНрддреБ рд╡рд╛ рд╡рд╕реНрддреБрд╣рд░реВрд▓реЗ рдФрдВрд▓реНрдпрд╛рдЙрдиреЗ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рдбрд┐рд▓реЛрдХреЗрд╢рдирдорд╛ рдврд┐рд▓рд╛рдЗ рдЧрд░реНрджреИрдирдиреНред рдирдпрд╛рдБ рдХреЛрдбрд▓реЗ SetFinalizer рднрдиреНрджрд╛ AddCleanup рд▓рд╛рдИ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджрд┐рдиреБрдкрд░реНрдЫред

рдирдпрд╛рдБ рдХрдордЬреЛрд░ рдкреНрдпрд╛рдХреЗрдЬ

рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬ рдХрдордЬреЛрд░ рдХрдордЬреЛрд░ рд╕реВрдЪрдХрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рдХрдордЬреЛрд░ рдкреЛрдЗрдиреНрдЯрд░рд╣рд░реВ рдореЗрдореЛрд░реА-рдХреБрд╢рд▓ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдХрдо-рд╕реНрддрд░рдХреЛ рдЖрджрд┐рдо рд╣реЛ рдЬрд╕реНрддреИ рдореНрдпрд╛рдкрд┐рдЩ рдорд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрдордЬреЛрд░ рд╢рдмреНрджрдХреЛрд╢рд╣рд░реВ, рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рд╕рдореЗрдЯреЗрдХреЛ рдЫреИрди рднрдиреНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рдЪреАрдЬрдХреЛ рд▓рд╛рдЧрд┐ рдХреНрдпрд╛рдиреЛрдирд┐рдХрд▓рд╛рдЗрдЬреЗрд╕рди рд╢рдмреНрджрдХреЛрд╢рд╣рд░реВред рдЕрджреНрд╡рд┐рддреАрдп, рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рдХреНрдпрд╛рд╕рд╣рд░реВред рдпреА рдкреНрд░рдпреЛрдЧрдХрд╛ рдХреЗрд╕рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди, рдпреЛ рд╡рд┐рдЬреНрдЮрдкреНрддрд┐рд▓реЗ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рд░рдирдЯрд╛рдЗрдоред рдХреНрд▓рд┐рдирдЕрдк рдердкреНрдиреБрд╣реЛрд╕реН ╨╕ maphash.рддреБрд▓рдиреАрдп.

рдирдпрд╛рдБ рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдордПрд▓рдХреЗрдПрдо рдкреНрдпрд╛рдХреЗрдЬ

рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдордПрд▓рдХреЗрдПрдо ML-KEM-768 рд░ ML-KEM-1024 рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред

ML-KEM рдПрдХ рдкреЛрд╕реНрдЯ-рдХреНрд╡рд╛рдиреНрдЯрдо рдХреБрдЮреНрдЬреА рд╡рд┐рдирд┐рдордп рд╕рдВрдпрдиреНрддреНрд░ рд╣реЛ, рдЬреБрди рдкрд╣рд┐рд▓реЗ Kyber рдХреЛ рд░реВрдкрдорд╛ рдЪрд┐рдирд┐рдиреНрдереНрдпреЛ рд░ рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ FIPS резред.

рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ crypto/hkdf, crypto/pbkdf2 рд░ crypto/sha3

рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/hkdf рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ HMAC-рдЖрдзрд╛рд░рд┐рдд "Extract-and-Expand" рдХреБрдЮреНрдЬреА рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░реНрдп HKDF рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред RFC 5869.

рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/pbkdf2 рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ рдкрд╛рд╕рд╡рд░реНрдб-рдЖрдзрд╛рд░рд┐рдд рдХреБрдЮреНрдЬреА рд╡реНрдпреБрддреНрдкрдиреНрди рдкреНрд░рдХрд╛рд░реНрдп PBKDF2 рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ RFC 8018.

рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬ рдХреНрд░рд┐рдкреНрдЯреЛ/sha3 рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ SHA-3 рд╣реНрдпрд╛рд╕ рдкреНрд░рдХрд╛рд░реНрдп рд░ SHAKE рд░ cSHAKE рдПрдХреНрд╕реНрдЯреЗрдиреНрд╕рд┐рдмрд▓ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред FIPS резред.

рддреАрдирд╡рдЯреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдЕрд╡рд╕реНрдерд┐рдд golang.org/x/crypto/тАж рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреНред

FIPS резрекреж-рей рдЕрдиреБрдкрд╛рд▓рди

рдпрд╕ рд╡рд┐рдореЛрдЪрдирдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ FIPS резрекреж-рей рдЕрдиреБрдкрд╛рд▓рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВрдХреЛ рдирдпрд╛рдБ рд╕реЗрдЯ.

рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЛрдбреНрдпреБрд▓ рдЖрдиреНрддрд░рд┐рдХ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрдХреЛ рд╕реЗрдЯ рд╣реЛ рдЬреБрди рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдкрдорд╛ FIPS резрекреж-рей рдЕрдиреБрдореЛрджрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдЕрдиреБрдореЛрджрд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдорд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЛрдбреНрдпреБрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рдирдпрд╛рдБ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ GOFIPS140 рд▓рд╛рдИ рдирд┐рд░реНрдорд╛рдгрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЛрдбреНрдпреБрд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдЪрдпрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдирдпрд╛рдБ GODEBUG рд╕реЗрдЯрдЕрдк рд░рдирдЯрд╛рдЗрдордорд╛ FIPS резрекреж-рей рдореЛрдб рд╕рдХреНрд╖рдо рдкрд╛рд░реНрди fipsрезрекреж рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдЧреЛ рез.реирек рдорд╛ рдЧреЛ рдХреНрд░рд┐рдкреНрдЯреЛ рдореЛрдбреНрдпреБрд▓ vрез.реж.реж рд╕рдорд╛рд╡реЗрд╢ рдЫ, рдЬреБрди рд╣рд╛рд▓ CMVP- рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдорд╛ рдкрд░реАрдХреНрд╖рдг рднрдЗрд░рд╣реЗрдХреЛ рдЫред

рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдкреНрдпрд╛рдХреЗрдЬ рдкрд░реАрдХреНрд╖рдг/рд╕рд┐рдВрдХрдЯреЗрд╕реНрдЯ

рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдкреНрдпрд╛рдХреЗрдЬ рдкрд░реАрдХреНрд╖рдг/рд╕рд┐рдВрдХрдЯреЗрд╕реНрдЯ рд╕рдорд╡рд░реНрддреА рдХреЛрдб рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

  • рд╕рдорд╛рд░реЛрд╣ рд╕рд┐рдЩреНрдХрдЯреЗрд╕реНрдЯ.рд░рди рдПрдХрд╛рдиреНрдд "рдмрдмрд▓" рдорд╛ рдЧреЛрд░реЛрдЯрд┐рдирд╣рд░реВрдХреЛ рд╕рдореВрд╣ рдЪрд▓рд╛рдЙрдБрдЫред рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рдмрдмрд▓рдорд╛ рд╕рдордп рдирдХреНрдХрд▓реА рдШрдбреАрд╣рд░реВрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  • рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рд┐рдЩреНрдХрдЯреЗрд╕реНрдЯ.рд╡реЗрдЯ рд╣рд╛рд▓рдХреЛ рдмрдмрд▓рдорд╛ рд╕рдмреИ рдЧреЛрд░реЛрдЯрд┐рдирд╣рд░реВ рдЕрд╡рд░реБрджреНрдз рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрдиреБрд╣реЛрд╕реНред

рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдкреНрдпрд╛рдХреЗрдЬ рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдкрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред

synctest рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЫ рд░ GOEXPERIMENT=synctest рд╕реЗрдЯ рдЧрд░реЗрд░ рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред рдкреНрдпрд╛рдХреЗрдЬ API рднрд╡рд┐рд╖реНрдпрдХрд╛ рд░рд┐рд▓реАрдЬрд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫред рднрд┐рддреНрд░ #67434 рддрдкрд╛рдИрдВ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╣реЗрд░реНрди рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рднрдПрдХрд╛ рд╕рд╛рдирд╛рддрд┐рдирд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ

рдЕрднрд┐рд▓реЗрдЦ

archive/zip рд░ archive/tar рдорд╛ рд░рд╣реЗрдХрд╛ (*Writer.AddFS) рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВрд▓реЗ рдЕрдм рдЦрд╛рд▓реА рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдХреЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╣реЗрдбрд░ рд▓реЗрдЦреНрдЫрдиреНред

рдмрд╛рдЗрдЯреНрд╕

рдкреНрдпрд╛рдХреЗрдЬ рдмрд╛рдЗрдЯреНрд╕ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдердкреНрдЫ:

  • рд▓рд╛рдЗрдиреНрд╕ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдорд╛ рдирдпрд╛рдБрд▓рд╛рдЗрди-рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред
  • рд╕реНрдкреНрд▓рд┐рдЯрд╕реЗрдХ рд╡рд┐рднрд╛рдЬрдХрджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдЗрдПрдХреЛ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдХреЛ рд╕рдмреИ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред
  • рд╡рд┐рднрд╛рдЬрдирдкрдЫрд┐рдХреЛрд╕реЗрдХреНрд╕ рд╡рд┐рднрд╛рдЬрдХрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдирд╛ рдкрдЫрд┐ рд╡рд┐рднрд╛рдЬрд┐рдд рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдХреЛ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред
  • рдлрд┐рд▓реНрдбрд╕реЗрдХреНрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рд╕реНрдкреЗрд╕ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╡рд░рд┐рдкрд░рд┐ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдХреЛ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред рдпреБрдирд┐рдХреЛрдб.рдЗрд╕рд╕реНрдкреЗрд╕
  • рдлрд┐рд▓реНрдбреНрд╕рдлрдЩреНрдХрд╕реЗрдХ рдкреНрд░реЗрдбрд┐рдХреЗрдЯрд▓рд╛рдИ рд╕рдиреНрддреБрд╖реНрдЯ рдкрд╛рд░реНрдиреЗ рдпреБрдирд┐рдХреЛрдб рдХреЛрдб рдкреЛрдЗрдиреНрдЯрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╡рд░рд┐рдкрд░рд┐ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдХреЛ рд╕рдмрд╕реНрд▓рд╛рдЗрд╕рд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред

рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдИрдПрд╕

рдлрд┐рд░реНрддрд╛ рдорд╛рди рдирдпрд╛рдБрдЪрд╛рдЗрдлрд░ рдЕрдм NewCTR, NewGCM, NewCBCEncrypter, рд░ NewCBCDecrypter рд╡рд┐рдзрд┐рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрджреИрдиред рдпреА рд╡рд┐рдзрд┐рд╣рд░реВ рдХрд╛рдЧрдЬрд╛рддрд╡рд┐рд╣реАрди рдерд┐рдП рд░ рд╕рдмреИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд╣рд░реВрдорд╛ рдЙрдкрд▓рдмреНрдз рдерд┐рдПрдирдиреНред рдЕрдм рдЕрд░реНрде рдмреНрд▓рдХ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рд╕рд┐рдзреИ рд╣рд╕реНрддрд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреБрдкрд░реНрдЫ рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕рд╛рдЗрдлрд░ред рд╣рд╛рд▓, рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕рд╛рдЗрдлрд░рд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдпреА рд╡рд┐рдзрд┐рд╣рд░реВрд▓рд╛рдИ рдмреНрд▓рдХ рдорд╛рдирд╣рд░реВрдорд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ, рдпрджреНрдпрдкрд┐ рддрд┐рдиреАрд╣рд░реВ рдЕрдм рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЫреИрдирдиреНред

рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕рд╛рдЗрдлрд░

рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдирдпрд╛рдБGCMрдЕрдирд┐рдпрдорд┐рддрд╕рдБрдЧрдирдХреНрдХрд▓ рдлрд░реНрдХрд╛рдЙрдБрдЫ AEAD, рдЬрд╕рд▓реЗ рд╕рд┐рд▓рдХреЛ рд╕рдордпрдорд╛ рдЕрдирд┐рдпрдорд┐рдд рдиреЛрдиреНрд╕ рдЙрддреНрдкрдиреНрди рдЧрд░реЗрд░ рд░ рдпрд╕рд▓рд╛рдИ рд╕рд┐рдлрд░рдЯреЗрдХреНрд╕реНрдЯрдорд╛ рдкреНрд░рд┐рдкреЗрдиреНрдб рдЧрд░реЗрд░ AES-GCM рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдзрд╛рд░рд╛, рдлрд░реНрдХрд╛рдЗрдпреЛ рдирдпрд╛рдБCTR рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдИрдПрд╕ рдЕрдм amd64 рд░ arm64 рдорд╛ рдзреЗрд░реИ рдЧреБрдгрд╛ рдЫрд┐рдЯреЛред

рдирдпрд╛рдБOFB, рдирдпрд╛рдБCFBEncrypter ╨╕ рдирдпрд╛рдБCFBрдбрд┐рдХреНрд░рд┐рдкреНрдЯрд░ рдЕрдм рдЕрдкреНрд░рдЪрд▓рд┐рдд рдШреЛрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред OFB рд░ CFB рдореЛрдбрд╣рд░реВ рдЕрдкреНрд░рдорд╛рдгрд┐рдд рдЫрдиреН, рдЬрд╕рд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рдХреНрд░рд┐рдп рдЖрдХреНрд░рдордгрд╣рд░реВрд▓рд╛рдИ рдкреНрд▓реЗрдирдЯреЗрдХреНрд╕реНрдЯ рд╣реЗрд░рдлреЗрд░ рд░ рдкреБрди: рдкреНрд░рд╛рдкреНрддрд┐ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдиреНрдЫ AEAD рдмрджрд▓рд╛рдорд╛ред рдпрджрд┐ рдЕрдкреНрд░рдорд╛рдгрд┐рдд рдореЛрдб рдзрд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдирдпрд╛рдБCTR рдмрджрд▓рд╛рдорд╛ред

рдХреНрд░рд┐рдкреНрдЯреЛ/ecdsa

рдирд┐рдЬреАрдХреБрдЮреНрдЬреАредрд╕рд╛рдЗрди рдЕрдм рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рдгрд╛рддреНрдордХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ RFC 6979, рдпрджрд┐ рдЕрдирд┐рдпрдорд┐рддрддрд╛рдХреЛ рд╕реНрд░реЛрдд рд╢реВрдиреНрдп рдЫ рднрдиреЗред

рдХреНрд░рд┐рдкреНрдЯреЛ/рдПрдордбреАрел

рдлрд┐рд░реНрддрд╛ рдорд╛рди md5.рдирдпрд╛рдБ, рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкрдирд┐ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ рдЗрдиреНрдХреЛрдбрд┐рдЩ.рдмрд╛рдЗрдирд░реАрдПрдкреЗрдиреНрдбрд░.

рдХреНрд░рд┐рдкреНрдЯреЛ/рд░реНтАНрдпрд╛рдиреНрдб

рд╕рдорд╛рд░реЛрд╣ рдкрдвреНрдиреБрд╣реЛрд╕реН рдЕрдм рдХреБрдиреИ рдкрдирд┐ рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рджрд┐рдиреНрдЫред рдпрджрд┐ рдкрдвреНрдиреЗ рдХреНрд░рдордорд╛ рд░рд┐рдбрд▓реЗ рддреНрд░реБрдЯрд┐рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрдЫ рднрдиреЗ рдкрд╛рдардХ, рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реНрдерд╛рдпреА рд░реВрдкрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫред рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд┐рдбрд░ рд╕рдзреИрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдкрд░рд┐рд╡рд░реНрддрдирд▓реЗ рд░рд┐рдбрд░ рдЪрд░рд▓рд╛рдИ рдУрднрд░рд░рд╛рдЗрдб рдЧрд░реНрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВрд▓рд╛рдИ рдорд╛рддреНрд░ рдЕрд╕рд░ рдЧрд░реНрдиреБрдкрд░реНрдЫред рдПрдЙрдЯрд╛ рдЕрдкрд╡рд╛рдж рей.резрен рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗрдХрд╛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд╣рд░реВ рд╣реБрдиреН, рдЬрд╣рд╛рдБ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд┐рдбрд░рд▓реЗ рдЕрдЭреИ рдкрдирд┐ /dev/urandom рдЦреЛрд▓реНрдЫ рд░ рдЕрд╕рдлрд▓ рд╣реБрди рд╕рдХреНрдЫред

Linux 6.11 рд░ рдкрдЫрд┐рд▓реНрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛, Reader рд▓реЗ рдЕрдм vDSO рдорд╛рд░реНрдлрдд getrandom рдкреНрд░рдгрд╛рд▓реА рдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдпреЛ рдзреЗрд░реИ рдЧреБрдгрд╛ рдЫрд┐рдЯреЛ рд╣реБрдиреНрдЫ, рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рд╛рдиреЛ рдкрдардирдХреЛ рд▓рд╛рдЧрд┐ред

OpenBSD Reader рдорд╛ рдЕрдм arc4random_buf(3) рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдкрд╛рда рдЕрдм рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдкрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЕрдирд┐рдпрдорд┐рдд рдкрд╛рда рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХреНрдЫред

рдХреНрд░рд┐рдкреНрдЯреЛ/рдЖрд░рдПрд╕рдП

рдЬреЗрдиреЗрд░реЗрдЯрдХреА рдпрджрд┐ резрежреирек рдмрд┐рдЯ рднрдиреНрджрд╛ рдХрдордХреЛ рдХреБрдЮреНрдЬреА рд▓рдореНрдмрд╛рдЗ рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ рдЕрдм рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫред рдЕрдм резрежреирек рдмрд┐рдЯ рднрдиреНрджрд╛ рдХрдо рдХреБрдЮреНрдЬреА рдЖрдХрд╛рд░рдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╕рдмреИ рд╕рд╛рдЗрди, рднреЗрд░рд┐рдлрд╛рдЗ, рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ, рд░ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫрдиреНред рддреНрдпрд╕реНрддрд╛ рд╕рд╛рдБрдЪреЛрд╣рд░реВ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реБрдиреНрдЫрдиреН рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрдиред GODEBUG рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ rsa1024min=0 рд▓реЗ рдкреБрд░рд╛рдиреЛ рд╡реНрдпрд╡рд╣рд╛рд░рд▓рд╛рдИ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдЧрд░реНрдЫ, рддрд░ Go рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрд╛ рд░ рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рдпреЛ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓рдорд╛ //go:debug rsa1024min=0 рд▓рд╛рдЗрди рдердкреЗрд░ред рдирдпрд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг GenerateKey рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдорд╛рдирдХ реирежреирек-рдмрд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдХреБрдЮреНрдЬреА рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рдЕрдм рдХрд▓ рдЧрд░реНрди рд╕реБрд░рдХреНрд╖рд┐рдд рд░ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рднрдПрдХреЛ рдЫ рдкреНрд░рд╛рдЗрднреЗрдЯрдХреАредрдкреНрд░рд┐рдХрдореНрдкреНрдпреБрдЯ рдЧрд░реНрди рдирд┐рдЬреАрдХреБрдЮреНрдЬреАредрдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЖрдВрд╢рд┐рдХ рд░реВрдкрдорд╛ рднрд░рд┐рдПрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдкреНрд░рд┐рдХрдореНрдкреНрдпреБрдЯ рдЕрдм рдЫрд┐рдЯреЛ рд╣реБрдиреНрдЫ рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХрд╛ рдорд╛рдирд╣рд░реВ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ JSON рдмрд╛рдЯ рдХреБрдЮреНрдЬреА рдирд┐рдХрд╛рд▓реНрджрд╛ред

рдкреНрдпрд╛рдХреЗрдЬрд▓реЗ рдЕрдм Validate рдХрд▓ рдирдЧрд░реНрджрд╛ рдкрдирд┐ рдзреЗрд░реИ рдЕрд╡реИрдз рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ, рд░ рдЬреЗрдиреЗрд░реЗрдЯрдХреА рдЕрдм рднрд╛рдБрдЪрд┐рдПрдХреЛ рдЕрдирд┐рдпрдорд┐рддрддрд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдЫред рдХреНрд╖реЗрддреНрд░рд╣рд░реВ Primes ╨╕ рдкреВрд░реНрд╡-рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдирд┐рдЬреА рдХреБрдЮреНрдЬреА рдХреЗрд╣реА рдорд╛рдирд╣рд░реВ рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ рдкрдирд┐ рдЕрдм рдкреНрд░рдпреЛрдЧ рд░ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░рд┐рдиреНрдЫред рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ RSA рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкрд╛рд░реНрд╕рд┐рдЩ рд░ рдирд┐рдХрд╛рд▓реНрдиреЗ рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ crypto/x509 рдорд╛ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЫрдиреНред

рд╕рд╛рдЗрдирдкреАрдХреЗрд╕реАрдПрд╕резрднрезрел ╨╕ PKCS1v15 рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЕрдм SHA-512/224, SHA-512/256 рд░ SHA-3 рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рдЬреЗрдиреЗрд░реЗрдЯрдХреА рдЕрдм рдирд┐рдЬреА рдШрд╛рддрд╛рдВрдХ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрд▓рд┐ рдлрд░рдХ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рдпреБрд▓рд░ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд╕рдЯреНрдЯрд╛ рдХрд╛рд░реНрдорд╛рдЗрдХрд▓ рдкреНрд░рдХрд╛рд░реНрдп)ред рдХреЗрд╡рд▓ рдЕрднрд╛рдЬреНрдп рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрд╛рд╣реНрдп рд░реВрдкрдорд╛ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреБрди: рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗ рджреБрд░реНрд▓рдн рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓реЗ рдлрд░рдХ рддрд░ рдЙрдкрдпреБрдХреНрдд рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░ рдирд┐рдЬреА рдХреБрдЮреНрдЬреАрд╣рд░реВрдорд╛ рд╕рдЮреНрдЪрд╛рд▓рди рдЕрдм wasm рдорд╛ рджреБрдИ рдЧреБрдгрд╛ рдЫрд┐рдЯреЛ рдЫред

рдХреНрд░рд┐рдкреНрдЯреЛ/рд╢рд╛*

рдХреНрд░рд┐рдкреНрдЯреЛ/рд╕реВрдХреНрд╖реНрдо

рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдбреЗрдЯрд╛ рд╕реНрд╡рддрдиреНрддреНрд░ рд╕рдордпрдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдПрдХреЛ рдкреНрд░рдХрд╛рд░реНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдбреЗрдЯрд╛ рдорд╛рдирдХреЛ рд╕рдордпрдХреЛ рд╕рд╛рдкреЗрдХреНрд╖рдорд╛ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдирднрдПрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫред рдпреЛ рдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдХрд┐ рд╕реНрдерд┐рд░ рд╕рдордпрдорд╛ рдЪрд▓рд╛рдЙрди рд▓реЗрдЦрд┐рдПрдХреЛ рдХреЛрдб рдкреНрд░реЛрд╕реЗрд╕рд░-рд╕реНрддрд░ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫреИрди рддрд╛рдХрд┐ рдпреЛ рдЪрд░ рд╕рдордпрдорд╛ рдЪрд▓реНрдЫред рд╣рд╛рд▓ WithDataIndependentTiming рд▓реЗ arm64 рдорд╛ PSTATE.DIT рдмрд┐рдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ рд░ рдЕрдиреНрдп рд╕рдмреИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╣рд░реВрдорд╛ рдХреЗрд╣реА рдЧрд░реНрджреИрдиред GODEBUG рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ dataindependenttiming=1 рд▓реЗ рд╕рдореНрдкреВрд░реНрдг Go рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд▓рд╛рдЧрд┐ DIT рдореЛрдб рд╕рдХреНрд╖рдо рдкрд╛рд░реНрдЫред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛ XORBytesName рдЗрдирдкреБрдЯрд╕рдБрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдУрднрд░рд▓реНрдпрд╛рдк рд╣реБрдиреБрдкрд░реНрдЫ рд╡рд╛ рдкрдЯрдХреНрдХреИ рд╣реЛрдЗрдиред рдкрд╣рд┐рд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдиреНрдпрдерд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрди, рдЬрдмрдХрд┐ рдЕрдм XORBytes рдЖрддрдВрдХрд┐рдд рд╣реБрдиреЗрдЫред

crypto/tls

TLS рд╕рд░реНрднрд░рд▓реЗ рдЕрдм рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╣реЗрд▓реЛ (ECH) рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рдпреЛ рд╕реБрд╡рд┐рдзрд╛ рдлрд┐рд▓реНрдб рднрд░реЗрд░ рд╕рдХреНрд╖рдо рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдХрдиреНрдлрд┐рдЧ.рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдбрдХреНрд▓рд╛рдпрдиреНрдЯрд╣реЗрд▓реЛрдХреАрд╣рд░реВ.

рдХреНрд╡рд╛рдиреНрдЯрдо рдкрдЫрд┐рдХреЛ рдирдпрд╛рдБ рдХреБрдЮреНрдЬреА рд╡рд┐рдирд┐рдордп рд╕рдВрдпрдиреНрддреНрд░ X25519MLKEM768 рдХреЛ рдкрд░рд┐рдЪрдп рдЕрдм рд╕рдорд░реНрдерд┐рдд рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдкрд╛рд░рд┐рдПрдХреЛ рдмреЗрд▓рд╛ рдХрдиреНрдлрд┐рдЧ.рдХрд░реНрднрдкреНрд░рд╛рдердорд┐рдХрддрд╛рд╣рд░реВ рд╢реВрдиреНрдп рдЫред GODEBUG рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ tlsmlkem=0 рд▓реЗ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдлрд░реНрдХрд╛рдЙрдБрдЫред

рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ X25519Kyber768Draft00 рдХреБрдЮреНрдЬреА рд╡рд┐рдирд┐рдордпрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред

рдХреБрдЮреНрдЬреА рд╡рд┐рдирд┐рдордп рдЕрд░реНрдбрд░ рдЕрдм рдкреВрд░реНрдг рд░реВрдкрдорд╛ рдХреНрд░рд┐рдкреНрдЯреЛ/рдЯреАрдПрд▓рдПрд╕ рдкреНрдпрд╛рдХреЗрдЬрджреНрд╡рд╛рд░рд╛ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░рд┐рдиреНрдЫред рдЕрд░реНрдбрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрдиреНрдлрд┐рдЧ.рдХрд░реНрднрдкреНрд░рд╛рдердорд┐рдХрддрд╛рд╣рд░реВ рдЕрдм рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдлрд┐рд▓реНрдб рднрд░реНрджрд╛ рдХреБрди рдХреБрдЮреНрдЬреА рдЖрджрд╛рдирдкреНрд░рджрд╛рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣реЗрд▓реНрд▓реЛрдЗрдиреНрдлреЛ.рдПрдХреНрд╕рдЯреЗрдиреНрд╕рдирд╣рд░реВ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╣реЗрд▓реЛ рд╕рдиреНрджреЗрд╢рдорд╛ рдкреНрд░рд╛рдкреНрдд рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪреА рд╕реВрдЪреАрдмрджреНрдз рдЧрд░реНрджрдЫред рдпреЛ TLS рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрдХреЛ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдиреНрдЯрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫред

рдХреНрд░рд┐рдкреНрдЯреЛ/xрелрежреп

GODEBUG рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ x509sha1 рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред рдкреНрд░рдорд╛рдгреАрдХрд░рдгред рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЕрдм SHA-1 рдЖрдзрд╛рд░рд┐рдд рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред

OID рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ рдЗрдиреНрдХреЛрдбрд┐рдЩ.рдмрд╛рдЗрдирд░реАрдПрдкреЗрдиреНрдбрд░ ╨╕ рдПрдиреНрдХреЛрдбрд┐рдЩред рдЯреЗрдХреНрд╕реНрдЯ рдПрдкреЗрдиреНрдбрд░.

рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдиреАрддрд┐ рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рдирд┐рдореНрдирдмрд╛рдЯ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫ: рдкреНрд░рдорд╛рдгрдкрддреНрд░ред рдиреАрддрд┐ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ рдорд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ред рдиреАрддрд┐рд╣рд░реВред рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рдкрд╛рд░реНрд╕ рдЧрд░реНрджрд╛, рджреБрд╡реИ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рднрд░рд┐рдиреЗрдЫрдиреН, рддрд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдиреАрддрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ Certificate.PolicyIdentifiers рдХреЛ рд╕рдЯреНрдЯрд╛ Certificate.Policies рдХреНрд╖реЗрддреНрд░рдмрд╛рдЯ рд▓рд┐рдЗрдиреЗрдЫред рдпреЛ рдкрд░рд┐рд╡рд░реНрддрди рдЙрд▓реНрдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред GODEBUG рд╕реЗрдЯрдЕрдк x509рдкреНрд░рдпреЛрдЧрдиреАрддрд┐рд╣рд░реВ=режред

рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЕрдм рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд┐рд▓реНрдб рдкрд╛рд╕ рдЧрд░реНрджрд╛ RFC 5280 рдЕрдиреБрд░реВрдк рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рд░рд┐рдпрд▓ рдирдореНрдмрд░ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗрдЫред рдкреНрд░рдорд╛рдгрдкрддреНрд░редрд╕рд┐рд░рд┐рдпрд▓ рдирдореНрдмрд░ рд╢реВрдиреНрдп, рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ред

рдкреНрд░рдорд╛рдгрдкрддреНрд░редрдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЕрдм RFC 5280 рд░ RFC 9618 рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░ рдиреАрддрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНредрдкреНрд░рдорд╛рдгрдкрддреНрд░рдиреАрддрд┐рд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдиреАрддрд┐рд╣рд░реВрдХреЛ рд╕реЗрдЯрдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ OID рд╣рд░реВред рд╡реИрдз рдиреАрддрд┐ рдЧреНрд░рд╛рдлрд╣рд░реВ рднрдПрдХрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╢реНрд░реГрдВрдЦрд▓рд╛рд╣рд░реВ рдорд╛рддреНрд░ рдлрд░реНрдХрд╛рдЗрдиреЗрдЫрдиреН рдкреНрд░рдорд╛рдгрдкрддреНрд░редрдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рдорд╛рд░реНрд╢рд▓PKCS8рдирд┐рдЬреАрдХреБрдЮреНрдЬреА рдЕрдм рдЕрд╡реИрдз RSA рдХреБрдЮреНрдЬреА рдкреБрди: рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫред (рдорд╛рд░реНрд╢рд▓PKCS1рдирд┐рдЬреАрдХреБрдЮреНрдЬреА рдХреБрдиреИ рддреНрд░реБрдЯрд┐ рдлрд┐рд░реНрддрд╛ рдЫреИрди рд░ рдЕрд╡реИрдз рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрд╛ рдпрд╕рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд░рд╣рдиреНрдЫред)

рдкрд╛рд░реНрд╕PKCS1рдкреНрд░рд╛рдЗрднреЗрдЯрдХреА ╨╕ рдкрд╛рд░реНрд╕PKCS8рдкреНрд░рд╛рдЗрднреЗрдЯрдХреА рдЕрдм рдПрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХреЛ CRT рдорд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рд░ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╕реИрд▓реЗ рдкрд╣рд┐рд▓реЗ рд╕реНрд╡реАрдХреГрдд рдЧрд░рд┐рдПрдХрд╛ рдЕрд╡реИрдз RSA рдХреБрдЮреНрдЬреАрд╣рд░реВ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫред рдкреНрд░рдпреЛрдЧ GODEBUG рд╕реЗрдЯрд┐рдЩрд╣рд░реВ x509rsacrt=0 рд▓реЗ CRT рдорд╛рдирд╣рд░реВрдХреЛ рдкреБрди: рдЧрдгрдирд╛рдорд╛ рдлрд░реНрдХрд╛рдЙрдБрдЫред

рдбрд┐рдмрдЧ/рдПрд▓реНрдл

рдкреНрдпрд╛рдХреЗрдЬ рдбрд┐рдмрдЧ/рдПрд▓реНрдл рдЧрддрд┐рд╢реАрд▓ ELF (рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдпреЛрдЧреНрдп рд░ рд▓рд┐рдЩреНрдХрдпреЛрдЧреНрдп рдврд╛рдБрдЪрд╛) рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдкреНрд░рддреАрдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрди рд╕рдорд░реНрдерди рдердкреНрдЫред рдирдпрд╛рдБ рд╡рд┐рдзрд┐ рдлрд╛рдЗрд▓редрдЧрддрд┐рд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ ELF рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрддрд┐рд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдлрд░реНрдХрд╛рдЙрдБрдЫред рдирдпрд╛рдБ рд╡рд┐рдзрд┐ рдлрд╛рдЗрд▓ред рдЧрддрд┐рд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдпрд╕ ELF рдлрд╛рдЗрд▓рд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рдЧрддрд┐рд╢реАрд▓ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдлрд░реНрдХрд╛рдЙрдБрдЫ рдЬреБрди рдЕрдиреНрдп ELF рд╡рд╕реНрддреБрд╣рд░реВрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдЕрдиреНрддрддрдГ, рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдкреНрд░рддреАрдХредрд╣рд╛рд╕рд╕рдВрд╕реНрдХрд░рдг ╨╕ рдкреНрд░рддреАрдХредрд╕рдВрд╕реНрдХрд░рдгрд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рддреАрдХрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдХреЗрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕рдЩреНрдХреЗрддрди

рджреБрдИ рдирдпрд╛рдБ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдЯреЗрдХреНрд╕реНрдЯрдПрдкреЗрдиреНрдбрд░ ╨╕ рдмрд╛рдЗрдирд░реА рдЕрдкреЗрдиреНрдбрд░ рдмрд╛рдЗрдЯ рд╕реНрд▓рд╛рдЗрд╕рдорд╛ рд╡рд╕реНрддреБрдХреЛ рдкрд╛рда рд╡рд╛ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдпреА рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВрд▓реЗ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдЫрдиреН рдЬрд╕реНрддреИ рдЯреЗрдХреНрд╕реНрдЯрдорд╛рд░реНрд╢рд▓рд░ ╨╕ рдмрд╛рдЗрдирд░реАрдорд╛рд░реНрд╢рд▓рд░, рддрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдирдпрд╛рдБ рд╕реНрд▓рд╛рдЗрд╕ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЕрд╡рд╕реНрдерд┐рдд рд╕реНрд▓рд╛рдЗрд╕рдорд╛ рд╕рд┐рдзреИ рдбреЗрдЯрд╛ рдердкреНрдЫрдиреНред рдпреА рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рд╣рд╛рд▓ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рдХрд╛рд░рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рдЬрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ TextMarshaler рд░/рд╡рд╛ BinaryMarshaler рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред

рдЗрдиреНрдХреЛрдбрд┐рдЩ/json

рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрджрд╛, рд╕рдВрд░рдЪрдирд╛ рдлрд┐рд▓реНрдб рдЯреНрдпрд╛рдЧрдорд╛ рдирдпрд╛рдБ omitzero рд╡рд┐рдХрд▓реНрдк рднрдПрдХреЛ рд╕рдВрд░рдЪрдирд╛ рдлрд┐рд▓реНрдбрдХреЛ рдорд╛рди рд╢реВрдиреНрдп рднрдПрдорд╛ рдпрд╕рд▓рд╛рдИ рд╣рдЯрд╛рдЗрдиреЗрдЫред рдпрджрд┐ рдлрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд░рдорд╛ IsZero() bool рд╡рд┐рдзрд┐ рдЫ рднрдиреЗ, рдпреЛ рдорд╛рди рд╢реВрдиреНрдп рдЫ рдХрд┐ рдЫреИрди рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗрдЫред рдЕрдиреНрдпрдерд╛ рдорд╛рди рд╢реВрдиреНрдп рд╣реБрдиреЗрдЫ рдпрджрд┐ рдпреЛ рдпрд╕рдХреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╢реВрдиреНрдп рдорд╛рдиред рдЬрдм рд╢реВрдиреНрдп рдорд╛рдирд╣рд░реВ рдЫреЛрдбреНрдиреЗ рдЙрджреНрджреЗрд╢реНрдп рд╣реБрдиреНрдЫ, рддрдм omitzero рдлрд┐рд▓реНрдб рдЯреНрдпрд╛рдЧ omitempty рднрдиреНрджрд╛ рд╕рдлрд╛ рд░ рдХрдо рддреНрд░реБрдЯрд┐-рдкреНрд░рд╡рдг рд╣реБрдиреНрдЫред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, omitempty рднрдиреНрджрд╛ рдлрд░рдХ, omitzero рд▓реЗ рд╢реВрдиреНрдпрд╣рд░реВ рдЫреЛрдбреНрдЫ рд╕рдордпредрд╕рдордп рдореВрд▓реНрдпрд╣рд░реВ, рдЬреБрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╕рд╛рдЭрд╛ рд╕реНрд░реЛрдд рд╣реЛред

рдпрджрд┐ omitempty рд░ omitzero рджреБрд╡реИ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдорд╛рди рдЦрд╛рд▓реА рд╡рд╛ рд╢реВрдиреНрдп (рд╡рд╛ рджреБрд╡реИ) рднрдПрдорд╛ рдлрд┐рд▓реНрдб рд╣рдЯрд╛рдЗрдиреЗрдЫред

рдЕрдирдорд╛рд░реНрд╢рд▓рдЯрд╛рдЗрдкрдПрд░рд░.рдлрд┐рд▓реНрдб рдЕрдм рдердк рд╡рд┐рд╕реНрддреГрдд рддреНрд░реБрдЯрд┐ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдирд┐рд░реНрдорд┐рдд рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рдЧреЛ/рдкреНрд░рдХрд╛рд░рд╣рд░реВ

рд╕рдмреИ go/types рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рд╣рд░реВ рдЬрд╕рд▓реЗ Len() int рд░ At(int) T рдЬрд╕реНрддрд╛ рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдЬреЛрдбреАрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдорд╣рд░реВ рдЙрдЬрд╛рдЧрд░ рдЧрд░реНрджрдЫ, рдЕрдм рдпрд╕реНрддрд╛ рд╡рд┐рдзрд┐рд╣рд░реВ рдкрдирд┐ рдЫрдиреН рдЬрд╕рд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рд╣рд░реВ рдлрд░реНрдХрд╛рдЙрдБрдЫ, рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рдпреЛ рдЬрд╕реНрддреИ рд╕рд░рд▓ рдХреЛрдб рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ:

рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ := fn.Type.(*types.Signature).Params() i рдХреЛ рд▓рд╛рдЧрд┐ := реж; i < рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░.рд▓реЗрди(); i++ { рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН (params.At(i)) }

рдпрд╕рдорд╛:

рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ := рджрд╛рдпрд░рд╛ fn.Signature().Params().Variables() { рдкреНрд░рдпреЛрдЧ(param) }

рд╡рд┐рдзрд┐рд╣рд░реВ: рдЗрдиреНрдЯрд░рдлреЗрд╕редрдПрдореНрдмреЗрдбреЗрдб рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЗрдиреНрдЯрд░рдлреЗрд╕ред рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдзрд┐рд╣рд░реВ рдЗрдиреНрдЯрд░рдлреЗрд╕ред рд╡рд┐рдзрд┐рд╣рд░реВ рд╡рд┐рдзрд┐рд╕реЗрдЯредрд╡рд┐рдзрд┐рд╣рд░реВ рдирд╛рдо рджрд┐рдЗрдПрдХреЛредрд╡рд┐рдзрд┐рд╣рд░реВ рд╕реНрдХреЛрдкредрдмрд╛рд▓рдмрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рд╕рдВрд░рдЪрдирд╛ред рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдЯреБрдкрд▓редрдЪрд░рд╣рд░реВ рдкреНрд░рдХрд╛рд░рд╕реВрдЪреАредрдкреНрд░рдХрд╛рд░рд╣рд░реВ рдкреНрд░рдХрд╛рд░ ParamList.TypeParams рд╕рдВрдШред рд╕рд░реНрддрд╣рд░реВ

рд╣реНрдпрд╛рд╕/*

рд▓рдЧ/рд╕реНрд▓рдЧ

рдирдпрд╛рдБ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рддреНрдпрд╛рдЧреНрдиреБрд╣реЛрд╕реН рдПрдЙрдЯрд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд╣реЛ рдЬреБрди рдХрд╣рд┐рд▓реНрдпреИ рд╕рдХреНрд╖рдо рд╣реБрдБрджреИрди рд░ рд╕рдзреИрдВ рдпрд╕рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдЦрд╛рд░реЗрдЬ рдЧрд░реНрджрдЫред

рд╕реНрддрд░ ╨╕ рд▓реЗрднрд▓рднрд░ рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рдПрдиреНрдХреЛрдбрд┐рдЩред рдЯреЗрдХреНрд╕реНрдЯ рдПрдкреЗрдиреНрдбрд░.

рдЧрдгрд┐рдд/*

рдиреЗрдЯ

рд▓рд┐рд╕рдирдХрдиреНрдбрд┐рдЧ рдЕрдм рд╕рдорд░реНрдерд┐рдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ MPTCP рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ (рд╣рд╛рд▓ рдХреЗрд╡рд▓ Linux рдорд╛)ред

IP рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ рдПрдиреНрдХреЛрдбрд┐рдЩред рдЯреЗрдХреНрд╕реНрдЯ рдПрдкреЗрдиреНрдбрд░.

рдиреЗрдЯ/http

рдкреНрд░рддрд┐рдмрдиреНрдз рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ рдкрд░рд┐рд╡рд╣рди рдЕрдиреБрд░реЛрдзрдХреЛ рдЬрд╡рд╛рдлрдорд╛ рдкреНрд░рд╛рдкреНрдд резxx рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ред рдкрд╣рд┐рд▓реЗ рдпрд╕рд▓реЗ рдЕрдиреБрд░реЛрдз рд░реЛрдХреНрдереНрдпреЛ рд░ рел резxx рднрдиреНрджрд╛ рдмрдвреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдереНрдпреЛред рдпрджрд┐ рд╕рдмреИ резxx рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдХреБрд▓ рдЖрдХрд╛рд░ рдХрдиреНрдлрд┐рдЧ рд╕реЗрдЯрд┐рдЩ рднрдиреНрджрд╛ рдмрдвреА рдЫ рднрдиреЗ рдорд╛рддреНрд░ рдпрд╕рд▓реЗ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрдБрдЫред рдЯреНрд░рд╛рдиреНрд╕рдкреЛрд░реНрдЯредрдореНрдпрд╛рдХреНрд╕рд░реЗрд╕реНрдкреЛрдиреНрд╕рд╣реЗрдбрд░рдмрд╛рдЗрдЯреНрд╕.

рд╕рд╛рдереИ, рдЬрдм рдЕрдиреБрд░реЛрдзрдорд╛ рдЯреНрд░реНрдпрд╛рдХрд┐рдЩ рд╣реБрдХ рд╣реБрдиреНрдЫ рдиреЗрдЯ/http/httptrace.ClientTrace.Got1xxрдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдЕрдм рдЙрддреНрддрд░рд╣рд░реВрдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ резxx рдорд╛ рдХреБрдиреИ рд╕реАрдорд╛ рдЫреИрдиред Got1xxResponse рд╣реБрдХрд▓реЗ рдЕрдиреБрд░реЛрдз рд░реЛрдХреНрди рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдЙрди рд╕рдХреНрдЫред

рдкрд░рд┐рд╡рд╣рди ╨╕ рд╕рд░реНрднрд░ рдЕрдм HTTP2 рдлрд┐рд▓реНрдб рдЫ рдЬрд╕рд▓реЗ HTTP/2 рдкреНрд░реЛрдЯреЛрдХрд▓ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдирдпрд╛рдБ рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕рд░реНрднрд░.рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ ╨╕ рдпрд╛рддрд╛рдпрд╛рддред рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ рд╕рд░реНрднрд░ рд╡рд╛ рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓реЗ рдХреБрди HTTP рдкреНрд░реЛрдЯреЛрдХрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫ рднрдиреЗрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рд╕рд░рд▓ рддрд░рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рд╕рд░реНрднрд░ рд░ рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓рд╛рдИ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рдЬрдбрд╛рдирд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрди рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдХрд╣рд┐рд▓реЗ рд╕рд░реНрднрд░.рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ UnencrypterHTTP2 рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рд╕рд░реНрднрд░рд▓реЗ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдкреЛрд░реНрдЯрд╣рд░реВрдорд╛ HTTP/2 рдЬрдбрд╛рдирд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗрдЫред рд╕рд░реНрднрд░рд▓реЗ рдПрдЙрдЯреИ рдкреЛрд░реНрдЯрдорд╛ HTTP/1 рд░ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рджреБрд╡реИ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫред

рдХрд╣рд┐рд▓реЗ рдпрд╛рддрд╛рдпрд╛рддред рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдбHTTP2 рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ рд░ HTTP1 рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИрди, рдпрд╛рддрд╛рдпрд╛рддрд▓реЗ рдареЗрдЧрд╛рдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫред http://. рдпрджрд┐ рдХреБрдиреИ рдпрд╛рддрд╛рдпрд╛рддрд▓рд╛рдИ HTTP/1 рд░ рдЕрдирдЗрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб HTTP/2 рджреБрд╡реИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдпрд╕рд▓реЗ HTTP/1 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫред

рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдирдЧрд░рд┐рдПрдХреЛ HTTP/2 рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирд▓реЗ "Forward-Learning рд╕рд╣рд┐рдд HTTP/2" (RFC 9113, рдЦрдгреНрдб 3.3) рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред рдЪрд▓реНрддреАрдмрд╛рдЯ рд╣рдЯрд╛рдЗрдПрдХреЛ рд╣реЗрдбрд░ тАЬрдЕрдкрдЧреНрд░реЗрдб: h2cтАЭ рд╕рдорд░реНрдерд┐рдд рдЫреИрдиред

рдиреЗрдЯ/рдиреЗрдЯрд┐рдк

Addr, рдПрдбреНрд░рдкреЛрд░реНрдЯ ╨╕ рдЙрдкрд╕рд░реНрдЧ рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЗрдиреНрдХреЛрдбрд┐рдЩ.рдмрд╛рдЗрдирд░реАрдПрдкреЗрдиреНрдбрд░ ╨╕ рдПрдиреНрдХреЛрдбрд┐рдЩред рдЯреЗрдХреНрд╕реНрдЯ рдПрдкреЗрдиреНрдбрд░.

рдиреЗрдЯ/рдпреВрдЖрд░рдПрд▓

URL рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкрдирд┐ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ рдЗрдиреНрдХреЛрдбрд┐рдЩ.рдмрд╛рдЗрдирд░реАрдПрдкреЗрдиреНрдбрд░.

рдУрдПрд╕/рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛

рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рд╡рд░реНрддрдорд╛рди рдЕрдм рд╡рд┐рдиреНрдбреЛрдЬ рдирд╛рдиреЛ рд╕рд░реНрднрд░рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдирд╛рдиреЛ рд╕рд░реНрднрд░рдмрд╛рдЯ рд╣рд░рд╛рдЗрд░рд╣реЗрдХреЛ NetApi32 рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдмрд╛рдЯ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдмрд╛рдЯ рдмрдЪреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдЫред

рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рд╡рд░реНрддрдорд╛рди, рдорд╛рдерд┐ рд╣реЗрд░ ╨╕ рд▓реБрдХрдЕрдкрдЖрдИрдбреА рдЕрдм рдирд┐рдореНрди рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВрд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ:

  • NT рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА
  • NT рдЕрдзрд┐рдХреГрдд рд╕реЗрд╡рд╛
  • рдПрдирдЯреА рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛

рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рд╡рд░реНрддрдорд╛рди рд╣рд╛рд▓рдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдврд┐рд▓реЛ рдбреЛрдореЗрдирдорд╛ рдЬреЛрдбреНрджрд╛ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЧрддрд┐ рдмрдвреЗрдХреЛ рдерд┐рдпреЛ, рдЬреБрди рдзреЗрд░реИ рдХрд░реНрдкреЛрд░реЗрдЯ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓рд╛ рд╣реЛред рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЕрдм рдЕрдШрд┐рд▓реНрд▓реЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рддреБрд▓рдирд╛рдорд╛ рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдХреНрд░рдордорд╛ рдЫ, рдЬреБрди рдкреВрд░рд╛ рд╣реБрди рдзреЗрд░реИ рд╕реЗрдХреЗрдиреНрдб, рдорд┐рдиреЗрдЯ рдкрдирд┐ рд▓рд╛рдЧреНрди рд╕рдХреНрдЫред

рд╡рд┐рдиреНрдбреЛрдЬрдорд╛ рд╡рд░реНрддрдорд╛рди рд╣рд╛рд▓рдХреЛ рдереНрд░реЗрдбрд▓реЗ рдЕрд░реНрдХреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдкреНрд░рддрд┐рд░реВрдкрдг рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдмреЗрд▓рд╛ рдЕрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдорд╛рд▓рд┐рдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдлрд░реНрдХрд╛рдЙрдБрдЫред рдкрд╣рд┐рд▓реЗ рдпрд╕рд▓реЗ рдПрдЙрдЯрд╛ рддреНрд░реБрдЯрд┐ рдлрд░реНрдХрд╛рдПрдХреЛ рдерд┐рдпреЛред

regexp

Regexp рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ рдПрдиреНрдХреЛрдбрд┐рдЩредрдЯреЗрдХреНрд╕реНрдЯрдПрдбрд╛рдкреНрдЯрд░.

runtime

рд╕рдорд╛рд░реЛрд╣ GOROOT рдЕрдм рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫред рдирдпрд╛рдБ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ "go" рдмрд╛рдЗрдирд░реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рдкреНрд░рдгрд╛рд▓реА рдорд╛рд░реНрдЧ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд░реБрдЪрд╛рдЙрдиреБ рдкрд░реНрдЫ, рд░ GOROOT рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди go env GOROOT рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫред

рддрд╛рд░

рдкреНрдпрд╛рдХреЗрдЬ рддрд╛рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдХрд░реНрддрд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдердкреНрдЫ:

  • рд▓рд╛рдЗрдиреНрд╕ рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ рдирдпрд╛рдБрд▓рд╛рдЗрди-рд╡рд┐рднрд╛рдЬрд┐рдд рд▓рд╛рдЗрдирд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред
  • рд╕реНрдкреНрд▓рд┐рдЯрд╕реЗрдХ рд╡рд┐рднрд╛рдЬрдХрджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдЗрдПрдХреЛ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рдмреИ рд╕рдмрд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред
  • рд╡рд┐рднрд╛рдЬрдирдкрдЫрд┐рдХреЛрд╕реЗрдХреНрд╕ рд╡рд┐рднрд╛рдЬрдХрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдирд╛ рдкрдЫрд┐ рд╡рд┐рднрд╛рдЬрд┐рдд рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред
  • рдлрд┐рд▓реНрдбрд╕реЗрдХреНрд╕ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░, рд╣реНрд╡рд╛рдЗрдЯрд╕реНрдкреЗрд╕ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╡рд░рд┐рдкрд░рд┐ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫредрдпреБрдирд┐рдХреЛрдб.рдЗрд╕рд╕реНрдкреЗрд╕
  • рдлрд┐рд▓реНрдбреНрд╕рдлрдЩреНрдХрд╕реЗрдХ рдкреНрд░реЗрдбрд┐рдХреЗрдЯрд▓рд╛рдИ рд╕рдиреНрддреБрд╖реНрдЯ рдкрд╛рд░реНрдиреЗ рдпреБрдирд┐рдХреЛрдб рдХреЛрдб рдкреЛрдЗрдиреНрдЯрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╡рд░рд┐рдкрд░рд┐ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд╕рдмрд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВрдорд╛ рдЗрдЯрд░реЗрдЯрд░ рдлрд░реНрдХрд╛рдЙрдБрдЫред

рд╕рд┐рдВрдХ

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд┐рдЩреНрдХ.рдирдХреНрд╕рд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░реНрди, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╢рдмреНрджрдХреЛрд╢ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдареВрд▓рд╛ рд╢рдмреНрджрдХреЛрд╢рд╣рд░реВрдорд╛ рдбрд┐рд╕рдЬреЛрдЗрдиреНрдЯ рд╕реЗрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХрдиреНрдЯреЗрдиреНрд╕рдирдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рдХрдо рд╣реБрдиреНрдЫ, рд░ рдХрдо рдХрдиреНрдЯреЗрдиреНрд╕рди рдбрд┐рдХреНрд╢рдирд░реА рд▓реЛрдб рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдм рдирд┐рд░реНрдорд╛рдг рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрдиред

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рд╕рд╛рдордирд╛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдкреБрд░рд╛рдиреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдлрд░реНрдХрди рдирд┐рд░реНрдорд╛рдгрдХреЛ рдХреНрд░рдордорд╛ GOEXPERIMENT=nosynchashtriemap рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдХреГрдкрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдлрд╛рд░рд╛рдо рднрд░реНрдиреБрд╣реЛрд╕реН.

рдкрд░реАрдХреНрд╖рдг

рдирдпрд╛рдБ рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рдиреНрджрд░реНрдн ╨╕ рдЦ. рд╕рдиреНрджрд░реНрдн рдкрд░реАрдХреНрд╖рдг рдкреВрд░рд╛ рднрдПрдкрдЫрд┐ рд░ рдкрд░реАрдХреНрд╖рдг рд╕рдлрд╛рдИ рдХрд╛рд░реНрдпрд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреБрднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ рдЦрд╛рд░реЗрдЬ рдЧрд░рд┐рдПрдХреЛ рд╕рдиреНрджрд░реНрдн рдлрд░реНрдХрд╛рдЙрдБрдЫред

рдирдпрд╛рдБ рд╡рд┐рдзрд┐рд╣рд░реВ рдЯрд┐.рдЪрд┐рджрд┐рд░ ╨╕ рдЦ. рдЫрджрд┐рд░ рдкрд░реАрдХреНрд╖рдг рд╡рд╛ рдмреЗрдиреНрдЪрдорд╛рд░реНрдХрдХреЛ рдЕрд╡рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдкрд╛рда/рдЯреЗрдореНрдкреНрд▓реЗрдЯ

рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВрд▓реЗ рдЕрдм range-over-func рд░ range-over-int рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред

рд╕рдордп

рд╕рдордп рдЕрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ рдЗрдиреНрдХреЛрдбрд┐рдЩ.рдмрд╛рдЗрдирд░реАрдПрдкреЗрдиреНрдбрд░ ╨╕ рдПрдиреНрдХреЛрдбрд┐рдЩред рдЯреЗрдХреНрд╕реНрдЯ рдПрдкреЗрдиреНрдбрд░.

рдкреЛрд░реНрдЯ

рд▓рд┐рдирдХреНрд╕

рдЬрд╕реНрддреИ рдерд┐рдпреЛ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ рдЧреЛ рез.реирей рд░рд┐рд▓рд┐рдЬ рдиреЛрдЯрдХрд╛ рдЕрдиреБрд╕рд╛рд░, рдЧреЛ рез.реирек рд▓рд╛рдИ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рей.реи рд╡рд╛ рдкрдЫрд┐рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫред

рдбрд╛рд░реНрд╡рд┐рди

рдЧреЛ рез.реирек рдореНрдпрд╛рдХреЛрд╕ резрез рдмрд┐рдЧ рд╕реБрд░рдорд╛ рдЪрд▓реНрдиреЗ рдЕрдиреНрддрд┐рдо рд░рд┐рд▓реАрдЬ рд╣реЛред Go рез.реирел рд▓рд╛рдИ macOS резреи рдореЛрдиреНрдЯреЗрд░реА рд╡рд╛ рдкрдЫрд┐рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рд┐рдиреНрдЫред

рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА

WebAssembly рд╣реЛрд╕реНрдЯрдорд╛ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдирд┐рд░реНрдпрд╛рдд рдЧрд░реНрди Go рдХрд╛рд░реНрдпрдХреНрд░рдорд╣рд░реВрдорд╛ go:wasmexport рдХрдореНрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджреЗрд╢рди рдердкрд┐рдПрдХреЛ рдЫред

WebAssembly рдкреНрд░рдгрд╛рд▓реА рдЗрдиреНрдЯрд░рдлреЗрд╕ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рез (GOOS=wasip1 GOARCH=wasm) рдорд╛, Go рез.реирек рд▓реЗ Go рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ рдХрд┐рдирдХрд┐ рд░рд┐рдПрдХреНрдЯрд░/рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд┐рд▓реНрдб рдлреНрд▓реНрдпрд╛рдЧ -buildmode=c-shared рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ред

go:wasmimport рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддрд░реНрдХ рд╡рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдЕрдм рдердк рдкреНрд░рдХрд╛рд░рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐ bool, string, uintptr рд░ рдкреЛрдЗрдиреНрдЯрд░рд╣рд░реВрд▓рд╛рдИ рдЕрдиреБрдорддрд┐ рдЫ (рд╡рд┐рд╡рд░рдгрд╣рд░реВ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдХрд╛рдЧрдЬрд╛рдд), рейреи-рдмрд┐рдЯ рд░ ремрек-рдмрд┐рдЯ рдЗрдиреНрдЯрд┐рдЬрд░ рд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЛрдЗрдиреНрдЯ рдкреНрд░рдХрд╛рд░рд╣рд░реВ, рд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд.рдкреЛрдЗрдиреНрдЯрд░рд╕рдБрдЧреИ, рдЬреБрди рдкрд╣рд┐рд▓реЗ рдиреИ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред рдпреА рдкреНрд░рдХрд╛рд░рд╣рд░реВрд▓рд╛рдИ go:wasmexport рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддрд░реНрдХ рд╡рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рдкрдирд┐ рдЕрдиреБрдорддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред

WebAssembly рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдлрд╛рдЗрд▓рд╣рд░реВ misc/wasm рдмрд╛рдЯ lib/wasm рдорд╛ рд╕рд╛рд░рд┐рдПрдХреЛ рдЫред

рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдореЗрдореЛрд░реА рдлреБрдЯрдкреНрд░рд┐рдиреНрдЯ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдХрдо рднрдПрдХреЛ рдЫ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд╕рд╛рдирд╛ WebAssembly рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ред

Windows

рейреи-рдмрд┐рдЯ рд╡рд┐рдиреНрдбреЛрдЬ/рдЖрд░реНрдо рдкреЛрд░реНрдЯ (GOOS=windows GOARCH=рдЖрд░реНрдо) рд▓рд╛рдИ рднрд╛рдБрдЪрд┐рдПрдХреЛ рднрдиреА рдЪрд┐рдиреНрд╣ рд▓рдЧрд╛рдЗрдПрдХреЛ рдЫред рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдпрд╣рд╛рдБ рдЫрдиреН #70705

рд╕реНрд░реЛрдд: linux.org.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди