E hele i ka 1.24

E hele i ka 1.24

ʻO kahi hoʻokuʻu hou o ka ʻōlelo Go, version 1.24, hiki mai ʻeono mahina ma hope E hele i ka 1.23. ʻO ka hapa nui o nā hoʻololi i ka hoʻokō ʻana i ka mea hana, runtime a me nā hale waihona puke. E like me nā manawa a pau, hāʻawi ka hoʻokuʻu olelo hoopomaikai Hele 1. Manaʻo ka poʻe hoʻolālā ʻōlelo ʻaneʻane e hoʻomau ʻia nā polokalamu Go āpau e hoʻohui a holo e like me ka wā ma mua.

Hoʻololi i ka ʻōlelo

E hele 1.24 i kēia manawa kākoʻo piha nā inoa inoa maʻamau: hiki ke hoʻohālikelike ʻia kahi ʻano inoa ma ke ʻano he ʻano i haʻi ʻia. Nā kikoʻī ma ʻōlelo kikoʻī. I kēia manawa, hiki ke hoʻopau ʻia kēia hiʻohiʻona ma ka hoʻonohonoho ʻana iā GOEXPERIMENT=noaliastypeparams; Eia naʻe, e wehe ʻia ke koho aliastypeparams ma Go 1.25.

Nā Mea Hana

E hele kauoha

Hiki i nā modula hele ke hahai i nā hilinaʻi hoʻokō me ka hoʻohana ʻana i ke kuhikuhi mea hana ma go.mod. Hoʻopau kēia i ka pono no ka hana mua o ka hoʻohui ʻana i nā mea hana e like me ka lawe ʻole ʻana mai i kahi faila i kapa ʻia ʻo "tools.go". Hiki i ke kauoha go tool ke holo i kēia mau mea hana me ka hoʻohui i nā mea hana e hele mai me Go. Hiki ke loaʻa nā ʻike hou aku ma palapala.

ʻO ka hae -tool hou no go get ke kumu e hoʻohui ʻia ai nā kuhikuhi mea hana i ka module o kēia manawa no nā pūʻolo i ʻōlelo ʻia me ka hoʻohui ʻana i nā kuhikuhi koi.

Mea hou mea hana hoʻohālike meta pili i nā mea hana a pau i loko o ka module o kēia manawa. Hiki ke hoʻohana ʻia kēia e hoʻohou iā lākou a pau ma o ka go get tool, a i ʻole e hoʻokomo iā lākou i kāu papa kuhikuhi GOBIN ma o ka go install tool.

Hoʻokumu ʻia nā mea hoʻokō ma o ka holo holo ʻana a ua hūnā ʻia ke ʻano mea hana go hou i loko o ka Go build cache. Hiki i kēia ke hoʻokuʻu hou ʻia ma muli o ka hoʻonui ʻia o ka cache. #69290.

ʻO ka hele e kūkulu a hele e hoʻokomo i nā kauoha i kēia manawa e ʻae i ka hae -json, e hōʻike ana i ke kūkulu ʻana i nā huahana a me nā hewa e like me ka hoʻokumu ʻia ʻana o ka puka JSON ma ka puka maʻamau. Hiki ke ʻike ʻia nā kikoʻī format ma go help buildjson.

Eia kekahi, e hele i ka test -json i kēia manawa e hōʻike i ka hopena a kūkulu i nā hewa i JSON, i hui pū ʻia me ka hopena hōʻike JSON. Hiki ke hoʻokaʻawale ʻia lākou e nā ʻano hana hou, akā inā pilikia lākou i ka ʻōnaehana hoʻohui hoʻāʻo, hiki iā ʻoe ke hāʻule i hope i ka huaʻōlelo o ke kūkulu ʻana ma o Hoʻonohonoho GODEBUG gotestjsonbuildtext=1.

Hāʻawi ka hoʻololi kaiapuni GOAUTH hou i kahi ala maʻalahi e ʻae i ka huki ʻana i nā module pilikino. Hiki iā ʻoe ke ʻike i nā kikoʻī ma go help goauth.

Ua hoʻokomo ʻia ke kauoha hele build mana o ka module nui i loko o ka binary i hōʻuluʻulu ʻia, e pili ana i kahi hōʻailona a/a i kahi mana mana mana. E hoʻohui ʻia ka ʻōlelo + lepo inā loaʻa nā hoʻololi ʻole. Hiki ke hoʻohana ʻia ka hae -buildvcs=false e haʻalele i ka ʻike mana mana mai ka binary.

Mea hou Hoʻonohonoho GODEBUG toolchaintrace=1 hiki ke hoʻohana ʻia i kēia manawa no ka hahai ʻana i ke kaʻina hana koho ʻana i ke kauoha hele.

Cgo

Kākoʻo ʻo Cgo i nā annotations hou no nā hana C e hoʻomaikaʻi i ka hana holo. #cgo noescape cFunctionName haʻi aku i ka mea hōʻuluʻulu ʻaʻole i pakele ka hoʻomanaʻo i ka hana C cFunctionName. #cgo nocallback cFunctionName haʻi aku i ka mea hōʻuluʻulu ʻaʻole e kāhea ka hana C cFunctionName i nā hana Go. Hiki ke loaʻa nā ʻike hou aku ma palapala cgo.

Hōʻole ʻo Cgo i kēia manawa e hoʻopili i nā kelepona i kahi hana C i loaʻa nā ʻōlelo hoʻolaha like ʻole. No ka laʻana, inā hōʻike ʻia ka f ma ke ʻano he void f(int) a me ka void f(double), e hōʻike ana ʻo cgo i kahi hewa ma mua o ka hana ʻana i kahi kaʻina kelepona hewa ʻole f(0). ʻO ka mea hou i kēia hoʻokuʻu ʻana ua hoʻomaikaʻi ʻia ka ʻike ʻana i kēia kūlana hewa ke ʻike ʻia nā ʻōlelo hoʻolaha like ʻole i nā faila like ʻole. #67699.

Objdump

Kākoʻo ka mea hana objdump i ka wehe ʻana ma 64-bit LoongArch (GOARCH=loong64), RISC-V (GOARCH=riscv64), a me S390X (GOARCH=s390x).

Vet

Hōʻike ka mea hōʻike hoʻāʻo hou i nā hewa maʻamau i ka hoʻāʻo, fuzzer, benchmark, a me nā ʻōlelo hoʻohālike i nā suites hoʻāʻo, e like me nā inoa hewa, nā pūlima kūpono ʻole, a i ʻole nā ​​​​laʻana i palapala i nā mea ʻike ʻole. Hiki i kekahi o kēia mau hewa ke hoʻopau i nā hoʻokolohua.

Ke hōʻike nei ka parser printf i kēia manawa i nā diagnostics no nā kelepona o ke ʻano fmt.Printf(s), kahi s he kaula hōʻano maʻamau ʻole me nā kumu ʻē aʻe. Aneane he hewa ia mau kelepona, no ka mea, aia paha i ka waiwai o s ka % ano; hoʻohana i ka fmt.Print. 60529. ʻIke ʻia kēia ʻike e ʻimi i nā mea i loko o ke code i loaʻa, a no laila e hoʻohana wale ʻia ke ʻano o ka ʻōlelo (e like me ka mea i kuhikuhi ʻia e ka go directive o ka go.mod file a i ʻole ka `//go:build` manaʻo) ma ka liʻiliʻi Go 1.24, e pale i ka hoʻopau ʻana i ka hoʻohui ʻana i ka wā e hoʻonui ai i ka Go 1.24 toolchain.

Ke hōʻike nei ka mea hōʻike buildtag i kēia manawa i nā diagnostics inā loaʻa kahi buildtag hewa ka palena kūkulu mana kahiko E hele i ke kuhikuhi //go:build. No ka laʻana, //go:build go1.23.1 pili i kahi hoʻokuʻu kiko; e hoʻohana i //go:build go1.23. #64127.

Ke hōʻike nei ka mea nāna e hoʻopaʻa kope kope i kēia manawa i kahi diagnostic ke hōʻike ʻia kahi hoʻololi i loko o ka loop "no" ʻekolu, e like me i: = iter(); hana (i); i = aʻe(i) { … }, loaʻa iā sync.Locker, e like me sync.Mutex. E hele i ka 1.22 hoʻololi i ke ʻano o ia mau puka lou e hana i kahi loli hou no kēlā me kēia hoʻololi, e kope ana i nā waiwai mai ka ʻike mua; ʻAʻole palekana kēia kope no nā laka. #66387.

GOCACHEPROG

Hiki ke hoʻokō ʻia ka ʻōnaehana cmd/go a me ka hoʻāʻo ʻana i ka caching e nā kaʻina keiki e hoʻokō ana i kahi protocol JSON ma waena o ka mea hana cmd/go a me ke kaʻina hana keiki i kapa ʻia e ka mea hoʻololi kaiapuni GOCACHEPROG. Ma mua, no GOEXPERIMENT. Hiki ke ʻike ʻia nā kikoʻī o ka protocol ma palapala.

Manawa o ka pau ana

Ua hoʻemi ʻia kekahi mau hana hoʻomaikaʻi runtime ma luna o ka CPU e 2-3% ma ka awelika ma waena o kahi hoʻonohonoho o nā ʻelele. Hiki ke ʻokoʻa nā hopena ma muli o ka noi. Loaʻa kēia mau hoʻomaikaʻi i kahi hoʻokō palapala palapala i kūkulu ʻia ma muli o Nā Papa Kuekene, ʻoi aku ka maikaʻi o ka hoʻokaʻawale ʻana i ka hoʻomanaʻo mea liʻiliʻi, a me ka hoʻokō ʻana i ka wā holo kūloko hou o ka mutex.

Hiki ke hoʻopau ʻia ka hoʻokō palapala ʻāina hou a me ka mutex runtime hou ma ka hoʻonohonoho ʻana iā GOEXPERIMENT=noswissmap a me GOEXPERIMENT=nospinbitmutex i ka manawa kūkulu, kēlā me kēia.

Mea hōʻuluʻulu

Ua pāpā ʻia ka mea hōʻuluʻulu i ka wehewehe ʻana i nā ʻano hou me nā ʻano mea hoʻokipa i hana ʻia e cgo, akā hiki ke hana a puni kēia palena ma o kahi inoa inoa. E hōʻike mau ana ʻo Go 1.24 i kēia manawa i kahi hewa inā hōʻike ka mea hoʻokipa i kahi ʻano cgo i hana ʻia, ma ke ʻano pololei a ʻole paha (ma ke ʻano inoa inoa).

Mea hoʻopili

Hoʻopuka ka mea hoʻopili i kēia manawa i kahi GNU build identifier (ELF komo NT_GNU_BUILD_ID) ma nā kahua ELF a me kahi UUID (Mach-O load command LC_UUID) ma macOS ma ka paʻamau. Loaʻa ka ID kūkulu a i ʻole UUID mai ka Go build ID. Hiki ke hoʻopau ʻia kēia me ka hae linker -B none, a i ʻole ke kāʻei ʻia me ka hae linker -B 0xNNNN me kahi waiwai hexadecimal i kuhikuhi ʻia e ka mea hoʻohana.

Hoʻolaha

E like me ka olelo ma Hele 1.22 memo hoʻokuʻu, E hele 1.24 i kēia manawa e pono e hoʻokomo iā Go 1.22.6 a i ʻole ma hope. Manaʻo nā mea hoʻomohala e koi ʻo Go 1.26 i kahi hoʻokuʻu o Go 1.24 a i ʻole ma hope e ʻōwili ʻia.

Hale Waihona Puke

Loaʻa i ka ʻōnaehana waihona papa kuhikuhi

ʻAno hou os.root Hāʻawi i ka hiki ke hana i nā hana ʻōnaehana faila i loko o kahi papa kuhikuhi kikoʻī.

kuleana pili i os.OpenRoot wehe i ka papa kuhikuhi a hoʻi mai os.root. Nā hana ma os.root hana i loko o ia papa kuhikuhi a ʻaʻole e ʻae i nā ala e kuhikuhi i nā wahi ma waho o ka papa kuhikuhi, me nā mea e hahai ana i nā loulou hōʻailona ma waho o ka papa kuhikuhi. Hōʻike nā ʻano hana ma os.Root i ka hapa nui o nā hana filesystem i loaʻa i ka pūʻolo os, me ka laʻana, os.Root.Open, os.Root.Create, os.Root.Mkdir и os.Root.Stat.

Hiʻona paena hou

Hiki i nā Benchmarks ke hoʻohana i kahi ala ʻoi aku ka wikiwiki o ka hewa hoao.B.Loop e hoʻomaʻamaʻa ma luna o kahi hōʻailona e like me ka b.Loop() { … } ma kahi o nā hale loop maʻamau e pili ana i ka bN e like me ka laulā bN Hāʻawi kēia i ʻelua mau pono nui:

  • Hoʻokō ʻia ka hana benchmark i hoʻokahi manawa i kēlā me kēia helu, no laila, hoʻokahi wale nō hana ʻana o ka hoʻonohonoho hoʻonohonoho a me ka hoʻomaʻemaʻe.
  • Ke ola nei nā ʻāpana kelepona hana a me nā hopena, e pale ana i ka compiler mai ka hoʻonui ʻana i ke kino loop.

Hoʻomaikaʻi ʻia nā mea hoʻopau

Hōʻailona hou runtime.AddCleanup he mīkini hoʻopau i ʻoi aku ka maʻalahi, ʻoi aku ka maikaʻi, a me ka liʻiliʻi o ka hewa ma mua o runtime.SetFinalizer. Hoʻopili ʻo AddCleanup i kahi hana hoʻomaʻemaʻe i kahi mea e holo koke ʻia ke loaʻa ʻole ka mea. Eia nō naʻe, ʻaʻole like me SetFinalizer, hiki ke hoʻopili ʻia nā hoʻomaʻemaʻe lehulehu i kahi mea hoʻokahi, hiki ke hoʻopili ʻia ka hoʻomaʻemaʻe ʻana i nā kuhikuhi kūloko, ʻaʻole maʻamau ka hoʻomaʻemaʻe ʻana i nā leaka ke hana nā mea i kahi pōʻai, a ʻaʻole hoʻopaneʻe ka hoʻomaʻemaʻe ʻana i ka hoʻokaʻawale ʻana o ka mea a i ʻole nā ​​​​mea āna e kuhikuhi ai. Pono ke code hou e makemake iā AddCleanup ma mua o SetFinalizer.

Pūʻolo nāwaliwali hou

Pūʻolo hou nāwaliwali hāʻawi i nā kuhikuhi nāwaliwali.

ʻO nā kuhikuhina nāwaliwali kahi haʻahaʻa haʻahaʻa haʻahaʻa i hāʻawi ʻia no ka hana ʻana i nā hale hoʻomanaʻo maikaʻi e like me nā puke wehewehe ʻōlelo nāwaliwali no ka palapala ʻana i nā waiwai, nā puke wehewehe ʻōlelo canonicalization no kekahi mea ʻaʻole i uhi ʻia e kahi pūʻolo. kū hoʻokahi, a me nā ʻano huna huna. No ke kākoʻo ʻana i kēia mau hihia hoʻohana, hāʻawi pū kēia hoʻokuʻu runtime.AddCleanup и maphash.Hoʻohālikelike.

Pūʻolo crypto/mlkem hou

Pūʻolo hou crypto/mlkem hoʻohana i ka ML-KEM-768 a me ML-KEM-1024.

ʻO ML-KEM kahi mīkini hoʻololi kī post-quantum, i ʻike mua ʻia ʻo Kyber a i kuhikuhi ʻia ma ʻĀpana 203.

Nā pūʻolo hou crypto/hkdf, crypto/pbkdf2 a me crypto/sha3

Pūʻolo hou crypto/hkdf hoʻokō i ka HMAC-based "Extract-and-Expand" kiʻi derivation function HKDF e like me ka wehewehe ʻana ma RFC 5869.

Pūʻolo hou crypto/pbkdf2 hoʻokō i ka hana hoʻoili kī kī ʻōlelo PBKDF2 e like me ka wehewehe ʻana ma RFC 8018.

Pūʻolo hou crypto/sha3 hoʻokō i ka SHA-3 hash hana a me ka SHAKE a me cSHAKE extensible hana puka e like me ia i hoakakaia ma ʻĀpana 202.

Hoʻokumu ʻia nā pūʻolo ʻekolu i nā pūʻolo golang.org/x/crypto/…

FIPS 140-3 Hoʻokō

Aia kēia hoʻokuʻu he pūʻulu hana hou e hōʻoia i ka hoʻokō ʻana o FIPS 140-3.

ʻO ka module Go crypto he pūʻolo o nā pūʻolo waihona waihona maʻamau i hoʻohana ʻia e hoʻokō i nā algorithm i ʻae ʻia ʻo FIPS 140-3. ʻAʻole koi nā noi i nā loli e hoʻohana i ka module Go crypto no nā algorithm i ʻae ʻia.

Hiki ke hoʻohana ʻia ka hoʻololi kaiapuni hou ʻo GOFIPS140 e koho i ka mana o ka module Go crypto e hoʻohana ai i kahi kūkulu. Hou Hoʻonohonoho GODEBUG Hiki ke hoʻohana i ka fips140 e hiki ai ke ʻano FIPS 140-3 i ka wā holo.

Loaʻa i ka Go 1.24 ka module Go crypto v1.0.0, kahi e hoʻāʻo ʻia nei me kahi lab i ʻae ʻia e CMVP.

Hoʻāʻo/synctest pūʻolo hoʻokolohua hou

Pūʻolo hoʻokolohua hou hoʻāʻo/synctest Hāʻawi i ke kākoʻo no ka hoʻāʻo ʻana i ka code concurrent.

  • kuleana pili i synctest.run holo i kahi hui o nā goroutine i loko o kahi "bubble" kaʻawale. I ka ʻōhū o ka hana pūʻolo manawa hana ma na wati hoopunipuni.
  • Nā hana synctest.kali e kali a paʻa ʻia nā goroutine a pau i ka ʻōhū o kēia manawa.

Hiki ke loaʻa nā kikoʻī ma ka palapala pūʻolo.

He hoʻokolohua ka pūʻolo synctest a pono e ʻae ʻia ma ka hoʻonohonoho ʻana iā GOEXPERIMENT=synctest. Hiki ke loli ka API pūʻolo i nā hoʻopuka e hiki mai ana. IN #67434 Hiki iā ʻoe ke ʻike i nā kikoʻī hou aku a hāʻawi i nā manaʻo.

Nā hoʻololi liʻiliʻi ma ka waihona

Ahu

ʻO nā hana (*Writer.AddFS) i loko o ka waihona/zip a me ka waihona/tar i kēia manawa e kākau i ke poʻo kuhikuhi no kahi papa kuhikuhi ʻole.

pili

Hoʻolapala pili hoʻohui i kekahi mau hana e hana pū me nā iterator:

  • laina Hoʻihoʻi hou i kahi mea hoʻoponopono ma luna o nā kaula i hoʻokaʻawale ʻia i ka laina hou ma kahi ʻāpana byte.
  • SplitSeq e hoʻihoʻi i ka mea hoʻololi ma luna o nā subslices āpau o kahi ʻāpana byte i hoʻokaʻawale ʻia e kahi mea hoʻokaʻawale.
  • SplitAfterSeq e hoʻihoʻi i ka mea hoʻololi ma luna o nā subslices o kahi ʻāpana byte, e māhele ʻia ma hope o kēlā me kēia hanana o ka mea hoʻokaʻawale.
  • FieldsSeq e hoʻihoʻi i kahi mea hoʻololi ma luna o nā subslices o kahi ʻāpana byte a puni nā kaʻina o nā huaʻōlelo ākea, e like me ka wehewehe ʻana unicode.IsSpace
  • FieldsFuncSeq e hoʻihoʻi i ka mea hoʻololi ma luna o nā subslices o kahi ʻāpana byte a puni nā kaʻina o nā helu code Unicode e hoʻokō ana i kahi predicate.

crypto/aes

Hoʻihoʻi waiwai NewChipher ʻaʻole hoʻokō hou i nā ʻano NewCTR, NewGCM, NewCBCEncrypter, a me NewCBCDecrypter. ʻAʻole i palapala ʻia kēia mau ʻano hana a ʻaʻole i loaʻa ma nā hale hana a pau. I kēia manawa ka manaʻo kal pono e hāʻawi pololei i nā hana kūpono crypto/cipher. I kēia manawa, nānā mau ka crypto/cipher i kēia mau ʻano ma nā waiwai Block, ʻoiai ʻaʻole lākou i kākoʻo hou ʻia e ka waihona maʻamau.

crypto/cipher

Hōʻailona hou NewGCMWithRandomNonce hoʻi AEAD, ka mea e hoʻokō ai i ka AES-GCM ma ka hana ʻana i kahi nonce maʻamau i ka wā Sila a hoʻomaka i ka ciphertext.

Ka hoʻokō Stream, hoi mai NewCTR ke hoohanaia me crypto/aes i kēia manawa ʻoi aku ka wikiwiki ma amd64 a me arm64.

HouOFB, NewCFBEncrypter и NewCFBDecrypter i kēia manawa ua haʻi ʻia i ka wā kahiko. ʻAʻole i hōʻoia ʻia nā mode OFB a me CFB, ka mea maʻamau e ʻae i nā hoʻouka kaua e hoʻoponopono a hoʻihoʻi i ka plaintext. Paipai ʻia nā noi e hoʻohana AEAD i ka hoihoi ana. Inā hōʻoia ʻole ke ʻano Stream pono, hiki ke hoʻohana NewCTR i ka hoihoi ana.

crypto/ecdsa

PrivateKey.Sign i kēia manawa hana i kahi pūlima deterministic e like me RFC 6979, ina he nil ke kumu randomness.

crypto/md5

Hoʻihoʻi waiwai md5.hou, i kēia manawa hoʻokō i ka interface encoding.binaryappender.

crypto/rand

kuleana pili i heluhelu mai o i kēia manawa ʻaʻohe hemahema. Inā loaʻa ka hewa i ka heluhelu ʻana heluhelu, e hoʻopau mau ka polokalamu. E hoʻomanaʻo, ua kākau ʻia ka mea heluhelu paʻamau e hana maikaʻi i nā manawa a pau, no laila e hoʻopili wale kēia hoʻololi i nā polokalamu e hoʻopau ana i ka loli Reader. Hoʻokahi ʻokoʻa nā kernels Linux ma mua o 3.17, kahi e wehe mau ai ka mea heluhelu paʻamau / dev / urandom a hiki ke hāʻule.

Ma Linux 6.11 a ma hope, ua hoʻohana ʻo Reader i ke kelepona ʻōnaehana getrandom ma o vDSO. ʻOi aku ka wikiwiki o kēia, no ka heluhelu liʻiliʻi.

Ma ka OpenBSD Reader ke hoʻohana nei i ka arc4random_buf(3).

Hōʻailona hou Text hiki i kēia manawa ke hana i nā kaula kikokikona paʻa cryptographically.

crypto/rsa

GenerateKey i kēia manawa e hoʻihoʻi i kahi kuhi inā noi ʻia kahi lōʻihi kī ma lalo o 1024 bits. Hoʻihoʻi nā ʻano hana āpau e hōʻailona, ​​hōʻoia, hoʻopaʻa, a me Decrypt i kahi hewa inā hoʻohana ʻia me ka nui kī ma lalo o 1024 bits. ʻAʻole palekana ia mau kī a ʻaʻole pono e hoʻohana ʻia. Hoʻonohonoho i GODEBUG Hoʻihoʻi hou ʻo rsa1024min=0 i ka hana kahiko, akā ʻōlelo nā mea hoʻomohala Go e hana i kēia wale nō inā pono a ma nā hoʻāʻo wale nō, no ka laʻana ma ka hoʻohui ʻana i ka laina //go:debug rsa1024min=0 i ka faila hoʻāʻo. Hou hiʻohiʻona Hāʻawi ʻo GenerateKey i kahi kī hōʻike maʻamau 2024-bit maʻalahi.

ʻOi aku ka palekana a ʻoi aku ka maikaʻi o ke kelepona ʻana PrivateKey.Precompute i luna PrivateKey.Validate. ʻOi aku ka wikiwiki o ka precompute ma mua o ka hoʻopiha hapa PrecomputedValues, no ka laʻana i ka unuhi ʻana i kahi kī mai JSON.

Hōʻole ka pūʻolo i nā kī hewa ʻole inā ʻaʻole kāhea ʻia ʻo Validate, a GenerateKey hiki i kēia manawa ke hoʻihoʻi i nā hewa hou no nā kumu randomness haki. Māhele Nā lālā и Hoʻopili mua ʻia ka hoolālā PrivateKey hoʻohana ʻia a hoʻopaʻa ʻia i kēia manawa inā nalo kekahi mau waiwai. Aia kekahi mau hoʻololi i ka crypto/x509 no ka hoʻopau ʻana a me ka unuhi ʻana i nā kī RSA, i wehewehe ʻia ma lalo nei.

HoailonaPKCS1v15 и E hōʻoiaPKCS1v15 i kēia manawa kākoʻo iā SHA-512/224, SHA-512/256 a me SHA-3.

GenerateKey Ke hoʻohana nei kēia manawa i kahi ala ʻokoʻa e hoʻopuka i ka exponent pilikino (hana Carmichael ma kahi o ka hana Euler). Hiki i nā noi laha e hoʻopuka hou i nā kī mai nā helu prima wale nō ke hana i nā hopena like ʻole.

ʻO nā hana ma nā kī ākea a me nā kī pilikino a hiki i ʻelua manawa wikiwiki ma wasm.

crypto/sha*

crypto / maʻalahi

Hōʻailona hou WithDataIndependentTime hiki i ka mea hoʻohana ke hoʻokō i kahi hana me nā hiʻohiʻona kikoʻī i hiki ke hōʻoia i ka hoʻololi ʻole ʻia o kekahi mau kuhikuhi pili i ka manawa o ka waiwai ʻikepili. Hiki ke hoʻohana ʻia kēia no ka hōʻoia ʻana ʻaʻole i hoʻopaʻa ʻia ke code i kākau ʻia e holo i ka manawa mau e nā hana pae kaʻina hana i hiki ke holo i ka manawa loli. I kēia manawa, hoʻohana ʻo WithDataIndependentTiming i ka bit PSTATE.DIT ma arm64 a ʻaʻohe mea e hana ai ma nā hale hana ʻē aʻe. Hoʻonohonoho i GODEBUG hiki i ka dataindependenttiming=1 ke ʻano DIT no ka polokalamu holo holoʻokoʻa.

hopena XORBytes pono e uhi piha a ʻaʻole loa me ka hoʻokomo. Ma mua, ʻaʻole i wehewehe ʻia ka ʻano, akā i kēia manawa e hopohopo ʻo XORBytes.

crypto/tls

Kākoʻo ke kikowaena TLS i ka Encrypted Client Hello (ECH). Hiki ke hoʻohana ʻia kēia hiʻohiʻona ma ka hoʻopiha ʻana i ke kahua. Config.EncryptedClientHelloKeys.

He Mechanism Hoʻololi Kiʻi Post-Quantum Hou X25519MLKEM768 kākoʻo ʻia a hiki i kēia manawa ma ka paʻamau i ka wā Config.CurvePreferences ʻaʻole. Hoʻonohonoho i GODEBUG tlsmlkem=0 hoʻihoʻi paʻamau.

Ua wehe ʻia ke kākoʻo no ka hoʻokolohua hoʻololi kī X25519Kyber768Draft00.

Hoʻohana piha ʻia ke kauoha hoʻololi kī e ka pūʻolo crypto/tls. Kauoha Config.CurvePreferences ʻaʻole mālama ʻia i kēia manawa a hoʻohana wale ʻia nā mea i loko e hoʻoholo ai i nā hoʻololi kī e hoʻokomo ʻia ke hoʻopiha ʻia ke kahua.

kahua hou ClientHelloInfo.Extensions Hoʻopaʻa inoa i ka papa inoa o nā mea hōʻailona hoʻonui i loaʻa ma ka memo Hello Client. Hiki ke hoʻohana ʻia kēia no ka paʻi lima ʻana i nā mea kūʻai aku TLS.

crypto/x509

Hoʻonohonoho i GODEBUG Ua wehe ʻia ʻo x509sha1. Hōʻoia. Hōʻoia ʻaʻole kākoʻo hou i nā pūlima ma muli o SHA-1.

OID ke hoʻokō nei i nā interface encoding.binaryappender и hoʻopili.TextAppender.

Ua hoʻololi ʻia ke kahua kulekele palapala hōʻoia mai Palapala.PolicyIdentifiers maluna o Palapala. Ke hoʻopau i nā palapala hōʻoia, e hoʻopiha ʻia nā kahua ʻelua, akā i ka wā e hana ai i kahi kulekele palapala, e lawe ʻia mai ka palapala Certificate.Policies ma kahi o Certificate.PolicyIdentifiers. Hiki ke hoʻihoʻi ʻia kēia hoʻololi. Hoʻonohonoho GODEBUG x509usepolicies=0.

CreateCertificate e hoʻopuka i kēia manawa i kahi helu serial me ka hoʻohana ʻana i kahi ala hoʻokō RFC 5280 i ka wā e hele ai i kahi kahua hoʻohālike Palapala.SerialNumber nil, ma kahi o ka hina.

Palapala.E hōʻoia i kēia manawa ke kākoʻo nei i ka hōʻoia kulekele e like me ka wehewehe ʻana ma RFC 5280 a me RFC 9618. kahua hou VerifyOptions.CertificatePolicies hiki ke hoʻonohonoho i kahi hoʻonohonoho pono o nā kulekele OID. E hoʻihoʻi ʻia mai nā kaulahao palapala me nā kiʻi kulekele kūpono Palapala.E hōʻoia.

MarshalPKCS8PrivateKey i kēia manawa e hoʻihoʻi i kahi hewa ma mua o ka hoʻihoʻi ʻana i kahi kī RSA kūpono ʻole. (MarshalPKCS1PrivateKey ʻaʻohe hoʻihoʻi hewa a ʻaʻole i wehewehe ʻia kāna hana inā hāʻawi ʻia nā kī kīnā ʻole.)

ParsePKCS1PrivateKey и ParsePKCS8PrivateKey i kēia manawa e hoʻohana a hōʻoia i nā waiwai CRT i hoʻopili ʻia, no laila hiki ke hōʻole i nā kī RSA pono ʻole i ʻae ʻia ma mua. Hoʻohana Nā hoʻonohonoho GODEBUG x509rsacrt=0 e hoʻi i ka helu hou ʻana i nā waiwai CRT.

debug/elf

Hoʻolapala debug/elf Hoʻohui i ke kākoʻo no ka lawelawe ʻana i nā mana hōʻailona ma nā faila ELF (Executable and Linkable Format). ʻAno hou Kōnae.DynamicVersions Hoʻihoʻi i kahi papa inoa o nā mana hoʻoikaika i wehewehe ʻia ma kahi faila ELF. ʻAno hou Kōnae.DynamicVersionNeeds Hoʻihoʻi i ka papa inoa o nā mana ikaika i koi ʻia e kēia faila ELF i wehewehe ʻia ma nā mea ELF ʻē aʻe. ʻO ka hope, nā kahua hou Hōʻailona.HasVersion и Hōʻailona.VersionIndex hōʻike i ka mana o ka hōʻailona.

hoʻopā'ālua

ʻElua mau kikowaena hou TextAppender и BinaryAppender ua hoʻokomo ʻia e hoʻohui i kahi kikokikona a i ʻole ka hōʻike binary o kahi mea i kahi ʻāpana byte. Hāʻawi kēia mau kikowaena i ka hana like me TextMarshaler и BinaryMarshaler, akā ma kahi o ka hoʻokaʻawale ʻana i kahi ʻāpana hou i kēlā me kēia manawa, hoʻopili pololei lākou i ka ʻikepili i kahi ʻāpana i loaʻa. Hoʻokomo ʻia kēia mau loulou e nā ʻano waihona waihona maʻamau i hoʻokō mua i ka TextMarshaler a/a i ʻole BinaryMarshaler.

hoʻopāpā/json

I ke kūkulu ʻana, e kāpae ʻia kahi kahua kūkulu me ka koho omitzero hou i ka hōʻailona kahua kūkulu inā ʻaʻole kāna waiwai. Inā he IsZero() bool ka ʻano kahua, e hoʻohana ʻia ia e hoʻoholo inā he ʻole ka waiwai. Inā ʻaʻole, e lilo ka waiwai i ʻole inā waiwai null no kona ʻano. ʻOi aku ka maʻemaʻe o ka hōʻailona kahua omitzero a emi iki ka hewa ma mua o ka omitempty inā makemake ʻia e haʻalele i nā waiwai null. ʻO ka mea nui, ʻaʻole like me ka omitempty, omitzero e kāpae i nā zeros manawa. manawa nā waiwai, kahi kumu maʻamau o nā pilikia.

Inā hōʻike ʻia ka omitempty a me ka omitzero, e kāpae ʻia ke kahua inā nele ka waiwai a i ʻole ʻole (a i ʻole nā ​​​​mea ʻelua).

UnmarshalTypeError.Field aia i kēia manawa nā hale i kūkulu ʻia e hāʻawi i nā memo hewa kikoʻī.

hele/ʻano

Loaʻa nā ʻano hana ʻikepili hele/types e hōʻike ana i nā kaʻina o nā ʻano pai like, e like me Len() int a me At(int) T, i kēia manawa ua loaʻa nā ala e hoʻihoʻi ai i nā iterators, e ʻae ana i nā code maʻalahi e like me kēia:

params := fn.Type.(*types.Signature).Params() for i := 0; i < params.Len(); i++ { hoʻohana(params.At(i)) }

Ma keia:

no ka param: = ka laulā fn.Signature().Params().Variables() { ho'ohana(param) }

Nā hana: Interface.EmbeddedTypes Interface.ExplicitMethods Interface.Methods MethodSet.Methods Kapa ʻia.Methods Kakau.Na keiki Kahua.Kihapai Tuple.Variables TypeList.Nano TypeParamList.TypeParams Hui

hash/*

log/slog

Mea hou HoʻoleiHandler he mea hoʻohana ʻaʻole hiki ke hoʻohana ʻia a hoʻolei mau i kāna huahana.

Papa и LevelVar i kēia manawa e hoʻokō i ka interface hoʻopili.TextAppender.

makemakika/*

upena

ListenCondig ke hoʻohana nei i ka MPTCP ma ka paʻamau ma nā ʻōnaehana kahi i kākoʻo ʻia (ʻo Linux wale nō i kēia manawa).

IP i kēia manawa hoʻokō i ka interface hoʻopili.TextAppender.

net/http

Ua loli ke kapu amo i nā pane ʻike 1xx i loaʻa i ka pane i ka noi. Ma mua e hoʻopau kēia i ka noi a hoʻihoʻi i kahi hewa ma hope o ka loaʻa ʻana o nā pane ʻoi aku ma mua o 5 1xx. Hoʻihoʻi wale kēia i kahi hewa inā ʻoi aku ka nui o nā pane 1xx āpau ma mua o ka hoʻonohonoho hoʻonohonoho Transport.MaxResponseHeaderBytes.

Eia kekahi, ke loaʻa i kahi noi kahi makau net/http/httptrace.ClientTrace.Got1xxResponse, ʻaʻohe palena o ka huina o nā pane 1xx. Hiki i ka makau Got1xxResponse ke hoʻihoʻi i kahi hewa e hoʻōki i ka noi.

amo и Kuʻia i kēia manawa he kahua HTTP2 e hiki ai ke hoʻonohonoho i nā hoʻonohonoho protocol HTTP/2.

Nā kahua hou Server.Protocols и Kaʻa hāʻawi i kahi ala maʻalahi e hoʻonohonoho i nā protocols HTTP e hoʻohana ai ke kikowaena a mea kūʻai paha.

Hiki ke hoʻonohonoho ʻia ke kikowaena a me ka mea kūʻai aku e kākoʻo i nā pilina HTTP/2 unencrypted.

Inā Server.Protocols loaʻa iā UnencrypterHTTP2, e ʻae ke kikowaena i nā pilina HTTP/2 ma nā awa i hoʻopili ʻole ʻia. Hiki i ke kikowaena ke ʻae i ka HTTP/1 a me ka HTTP/2 unencrypted ma ka awa like.

Inā Kaʻa Loaʻa iā UnencryptedHTTP2 a ʻaʻohe HTTP1, e hoʻohana ka halihali i ka HTTP/2 unencrypted no nā helu wahi http://. Inā hoʻonohonoho ʻia kahi kaʻa e hoʻohana i ka HTTP/1 a me ka HTTP/2 unencrypted, e hoʻohana ia i ka HTTP/1.

Kākoʻo no ka HTTP/2 i hoʻopili ʻole ʻia e hoʻohana i "HTTP/2 me ke aʻo mua" (RFC 9113, pauku 3.3). ʻAʻole kākoʻo ʻia ke poʻomanaʻo i hoʻopau ʻia "Hoʻonui: h2c".

ʻupena/netip

Addr, AddrPort и ʻO ke prefix i kēia manawa e hoʻokō i nā interface encoding.binaryappender и hoʻopili.TextAppender.

net/url

URL i kēia manawa hoʻokō i ka interface encoding.binaryappender.

os/mea hoʻohana

Ma Windows o kēia hiki ke hoʻohana ʻia i kēia manawa ma Windows Nano Server. Ua hoʻonui ʻia ka hoʻokō ʻana e pale aku i ka hoʻohana ʻana i nā hana mai ka waihona NetApi32, ka mea i nalowale mai Nano Server.

Ma Windows o kēia, E nānā и LookupId ke kākoʻo nei i kēia mau moʻokāki lawelawe mea hoʻohana i kūkulu ʻia:

  • KOHO LANAINA
  • NT AUTHORITY LOCAL SERVICE
  • NV AUTHORITYNETWORK SERVICE

Ma Windows o kēia Ua holo wikiwiki ʻia ke hoʻohui ʻia ka mea hoʻohana i kēia manawa i kahi kikowaena lohi, kahi hihia maʻamau no nā mea hoʻohana hui. ʻO ka hana o ka hoʻokō hou i kēia manawa ma ke ʻano o nā milliseconds, i hoʻohālikelike ʻia me ka hoʻokō mua, hiki ke lawe i kekahi mau kekona, a me nā minuke, e hoʻopau.

Ma Windows o kēia i kēia manawa e hoʻihoʻi i ka mea hoʻohana kaʻina hana i ka wā e hoʻohālike ana ka pae o kēia manawa i kahi mea hoʻohana ʻē aʻe. Ma mua, ua hoʻihoʻi kēia i kahi hewa.

regexp

Regexp i kēia manawa hoʻokō i ka interface hoʻopili.TextAdapter.

Runtime

kuleana pili i GOROOT ua hoopauia. Ma nā kaiapuni hou, pono ʻoe e hoʻohana i ke ala ʻōnaehana e hoʻoholo ai i ka "go" binary, a hoʻohana i go env GOROOT e hoʻoholo ai iā GOROOT.

nā aho

Hoʻolapala nā aho hoʻohui i kekahi mau hana no ka hana ʻana me nā iterator:

  • laina Hoʻihoʻi hou i kahi mea hoʻoponopono ma luna o nā laina i hoʻokaʻawale ʻia i ka laina hou ma kahi kaula.
  • SplitSeq hoʻihoʻi i ka mea hoʻololi ma luna o nā substrings āpau o kahi kaula i hoʻokaʻawale ʻia e kahi mea hoʻokaʻawale.
  • SplitAfterSeq e hoʻihoʻi i kahi mea hoʻololi ma luna o nā substrings o kahi kaula, e hoʻokaʻawale ma hope o kēlā me kēia hanana o ka mea hoʻokaʻawale.
  • FieldsSeq hoʻihoʻi i ka mea hoʻololi ma luna o nā substrings o kahi kaula a puni nā kaʻina o nā huaʻōlelo keʻokeʻo, e like me ka wehewehe ʻanaunicode.IsSpace
  • FieldsFuncSeq E hoʻihoʻi i kahi mea hoʻololi ma luna o nā substrings o ke kaula a puni nā kaʻina o nā helu Unicode code e hoʻokō i kahi predicate.

lōkahi

Ka hoʻokō sync.map ua hoʻololi ʻia e hoʻomaikaʻi i ka hana, ʻoi aku ka nui o nā hoʻololi puke wehewehe. No ka laʻana, ʻoi aku ka liʻiliʻi o ka hoʻopaʻapaʻa hoʻonohonoho hoʻokaʻawale ʻana ma nā puke wehewehe ʻōlelo nui, a ʻaʻole ia e koi hou i ka manawa kūkulu no ka loaʻa ʻana o ka haʻahaʻa puke wehewehe haʻahaʻa.

Inā pilikia ʻoe, e hoʻonoho iā GOEXPERIMENT=nosynchashtriemap i ka wā kūkulu e hoʻi hou i ka hoʻokō kahiko a ʻoluʻolu. hoʻopiha i ka palapala pilikia.

ikea ai

Nā ala hou T.Context и B.Context e hoʻihoʻi i kahi pōʻaiapili i hoʻolei ʻia ma hope o ka pau ʻana o ka hoʻāʻo a ma mua o ka hoʻokō ʻana i nā hana hoʻomaʻemaʻe hoʻāʻo.

Nā ala hou T.Chdir и ʻO B.Chdir hiki ke hoʻohana ʻia e hoʻololi i ka papa kuhikuhi hana no ka lōʻihi o kahi hoʻokolohua a i ʻole benchmark.

kikokikona/manaʻo

Kākoʻo nā templates i kēia manawa i ka range-over-func a me ka range-over-int.

manawa

manawa ke hoʻokō nei i nā interface encoding.binaryappender и hoʻopili.TextAppender.

Ports

Linux

E like me ia kūkala ʻia Wahi a ka Go 1.23 hoʻokuʻu memo, hele 1.24 koi Linux kernel version 3.2 a i ʻole.

Darwin

ʻO Go 1.24 ka hoʻokuʻu hope loa e holo ma macOS 11 Big Sur. E koi ʻo Go 1.25 i ka macOS 12 Monterey a i ʻole ma hope.

Pūnaewele

Ua hoʻohui ʻia ka go: wasmexport compiler directive i nā polokalamu Go e hoʻokuʻu aku i nā hana i ka host WebAssembly.

Ma ka WebAssembly System Interface Preview 1 (GOOS=wasip1 GOARCH=wasm), kākoʻo ʻo Go 1.24 i ke kūkulu ʻana i kahi papahana Go e like me reactor/hale waihona puke ma ka wehewehe ʻana i ka hae kūkulu -buildmode=c-shared.

Ua ʻae ʻia nā ʻano ʻē aʻe ma ke ʻano he hoʻopaʻapaʻa a i ʻole nā ​​​​ʻano hopena no nā hana go:wasmimport. ʻO ka mea kūikawā, ʻae ʻia ka bool, string, uintptr a me nā kuhikuhi i kekahi mau ʻano (e ʻike i nā kikoʻī ma palapala), me ka 32-bit a me ka 64-bit integer a me ka floating-point type, a safe.Pointer, i aeia. ʻAe ʻia kēia mau ʻano ma ke ʻano he hoʻopaʻapaʻa a i ʻole nā ​​​​ʻano hopena no nā hana go:wasmexport.

Ua hoʻoneʻe ʻia nā faila kākoʻo no WebAssembly i lib/wasm mai misc/wasm.

Hoʻemi nui ʻia ka wāwae hoʻomanaʻo mua, ʻoi aku hoʻi no nā noi WebAssembly liʻiliʻi.

Windows

Ua hōʻailona ʻia ka 32-bit windows/arm port (GOOS=windows GOARCH=arm). Nā kikoʻī ma #70705

Source: linux.org.ru

Pākuʻi i ka manaʻo hoʻopuka