You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Benchmarks may now use the faster and less error-prone [`testing.B.Loop`](/pkg/testing#B.Loop) method to perform benchmark iterations like `for b.Loop() { ... }` in place of the typical loop structures involving `b.N` like `for i := n; i < b.N; i++ { ... }` or `for range b.N`. This offers two significant advantages:
191
+
- The benchmark function will execute exactly once per -count, so expensive setup and cleanup steps execute only once.
192
+
- Function call parameters and results are kept alive, preventing the compiler from fully optimizing away the loop body.
193
193
194
-
A new `crypto/mlkem` package was added, implementing ML-KEM (formerly known as
195
-
Kyber), as specified in [NIST FIPS 203](https://doi.org/10.6028/NIST.FIPS.203).
196
-
<!-- go.dev/issue/70122 -->
194
+
### New crypto/hkdf package {#crypto-hkdf}
197
195
198
-
### New sha3 package
196
+
<!-- go.dev/issue/61477 -->
197
+
The new [`crypto/hkdf`](/pkg/crypto/hkdf/) package implements the HMAC-based Extract-and-Expand
198
+
Key Derivation Function (HKDF) as defined in RFC 5869. It is based on the pre-existing
The new [`crypto/sha3`](/pkg/crypto/sha3) package implements the SHA-3 hash function, and SHAKE and
202
-
cSHAKE extendable-output functions.
201
+
### New crypto/mlkem package {#crypto-mlkem}
203
202
204
-
It was imported from `golang.org/x/crypto/sha3`.
203
+
<!-- go.dev/issue/70122 -->
204
+
The new [`crypto/mlkem`](/pkg/crypto/mlkem/) package implements ML-KEM (formerly known as
205
+
Kyber), as specified in [NIST FIPS 203](https://doi.org/10.6028/NIST.FIPS.203).
205
206
206
-
### New benchmark function
207
+
### New crypto/pbkdf2 package {#crypto-pbkdf2}
207
208
208
-
Benchmarks may now use the faster and less error-prone [`testing.B.Loop`](/pkg/testing#B.Loop) method to perform benchmark iterations like `for b.Loop() { ... }` in place of the typical loop structures involving `b.N` like `for i := n; i < b.N; i++ { ... }` or `for range b.N`. This offers two significant advantages:
209
-
- The benchmark function will execute exactly once per -count, so expensive setup and cleanup steps execute only once.
210
-
- Function call parameters and results are kept alive, preventing the compiler from fully optimizing away the loop body.
209
+
<!-- go.dev/issue/69488 -->
210
+
The new [`crypto/pbkdf2`](/pkg/crypto/pbkdf2/) package implements the key derivation function
211
+
PBKDF2 as defined in RFC 2898 / PKCS #5 v2.0. It is based on the pre-existing
The new [`crypto/sha3`](/pkg/crypto/sha3/) package implements the SHA-3 hash function, and SHAKE and
218
+
cSHAKE extendable-output functions. It is based on the pre-existing
219
+
`golang.org/x/crypto/sha3` package.
220
+
221
+
### New weak package {#weak}
213
222
214
-
The new [weak](/pkg/weak) package provides weak pointers.
223
+
The new [`weak`](/pkg/weak/) package provides weak pointers.
215
224
216
225
Weak pointers are a low-level primitive provided to enable the
217
226
creation of memory-efficient structures, such as weak maps for
218
227
associating values, canonicalization maps for anything not
219
-
covered by package [unique](/pkg/unique), and various kinds
228
+
covered by package [`unique`](/pkg/unique/), and various kinds
220
229
of caches.
221
230
For supporting these use-cases, this release also provides
222
-
[runtime.AddCleanup](/pkg/runtime#AddCleanup) and
223
-
[maphash.Comparable](/pkg/maphash#Comparable).
231
+
[`runtime.AddCleanup`](/pkg/runtime/#AddCleanup) and
232
+
[`maphash.Comparable`](/pkg/maphash/#Comparable).
224
233
225
234
### Minor changes to the library {#minor_library_changes}
226
235
@@ -258,24 +267,12 @@ ciphertext.
258
267
259
268
#### [`crypto/fips140`](/pkg/crypto/fips140/)
260
269
261
-
<!-- FIPS 140 will be covered in its own section. -->
262
-
263
-
#### [`crypto/hkdf`](/pkg/crypto/hkdf/)
264
-
265
-
<!-- This is a new package; covered in 6-stdlib/3-hkdf.md. -->
270
+
TODO: FIPS 140 will be covered in its own section.
266
271
267
272
#### [`crypto/md5`](/pkg/crypto/md5/)
268
273
269
274
The value returned by [`md5.New`](/pkg/md5#New) now also implements the [`encoding.BinaryAppender`](/pkg/encoding#BinaryAppender) interface.
270
275
271
-
#### [`crypto/mlkem`](/pkg/crypto/mlkem/)
272
-
273
-
<!-- This is a new package; covered in 6-stdlib/4-mlkem.md. -->
274
-
275
-
#### [`crypto/pbkdf2`](/pkg/crypto/pbkdf2/)
276
-
277
-
<!-- This is a new package; covered in 6-stdlib/2-pbkdf2.md. -->
278
-
279
276
#### [`crypto/rand`](/pkg/crypto/rand/)
280
277
281
278
The [`Read`](/pkg/crypto/rand#Read) function, and the `Read` method of [`Reader`](/pkg/crypto/rand#Reader), are now
@@ -306,10 +303,6 @@ The value returned by [`sha1.New`](/pkg/sha1#New) now also implements the [`enco
306
303
307
304
The values returned by [`sha256.New`](/pkg/sha256#New) and [`sha256.New224`](/pkg/sha256#New224) now also implement the [`encoding.BinaryAppender`](/pkg/encoding#BinaryAppender) interface
308
305
309
-
#### [`crypto/sha3`](/pkg/crypto/sha3/)
310
-
311
-
<!-- This is a new package; covered in 6-stdlib/5-sha3.md. -->
312
-
313
306
#### [`crypto/sha512`](/pkg/crypto/sha512/)
314
307
315
308
The values returned by [`sha512.New`](/pkg/sha512#New), [`sha512.New384`](/pkg/sha512#New384), [`sha512.New512_224`](/pkg/sha512#New512_224) and [`sha512.New512_256`](/pkg/sha512#New512_256) now also implement the [`encoding.BinaryAppender`](/pkg/encoding#BinaryAppender) interface.
@@ -536,10 +529,6 @@ is not supported.
536
529
537
530
[`URL`](/pkg/net/url#URL) now also implements the [`encoding.BinaryAppender`](/pkg/encoding#BinaryAppender) interface.
538
531
539
-
#### [`os`](/pkg/os/)
540
-
541
-
<!-- os.Root -->
542
-
543
532
#### [`os/user`](/pkg/os/user/)
544
533
545
534
On Windows, [`Current`](/pkg/os/user#Current) can now be used in Windows Nano Server.
@@ -621,10 +610,6 @@ Templates now support range-over-func and range-over-int.
621
610
622
611
[`Time`](/pkg/time#Time) now implements the [`encoding.BinaryAppender`](/pkg/encoding#BinaryAppender) and [`encoding.TextAppender`](/pkg/encoding#TextAppender) interfaces.
623
612
624
-
#### [`weak`](/pkg/weak/)
625
-
626
-
<!-- This is a new package; covered in 6-stdlib/1-weak.md. -->
627
-
628
613
## Ports {#ports}
629
614
630
615
### Linux {#linux}
@@ -663,11 +648,7 @@ The support files for WebAssembly have been moved to `lib/wasm` from `misc/wasm`
663
648
<!-- Needs to be documented and tracked via a release-blocking issue.
664
649
665
650
accepted proposal https://go.dev/issue/26232 (from https://go.dev/cl/605256, https://go.dev/cl/605275, https://go.dev/cl/605298, https://go.dev/cl/625036) - cmd/go's HTTP auth is tracked in proposal 26232 itself as a release blocker
666
-
accepted proposal https://go.dev/issue/48429 (from https://go.dev/cl/521958, https://go.dev/cl/521959, https://go.dev/cl/534817, https://go.dev/cl/563175, https://go.dev/cl/613095, https://go.dev/cl/614555, https://go.dev/cl/630695) - cmd/go support for tracking tool dependencies in go.mod is tracked in proposal 48429 itself as a release blocker
667
651
accepted proposal https://go.dev/issue/50603 (from https://go.dev/cl/595376, https://go.dev/cl/596035, https://go.dev/cl/609155, https://go.dev/cl/611916, https://go.dev/cl/627295) - cmd/go support for stamping pseudo-version in go build is tracked in proposal 50603 itself as a release blocker
668
-
accepted proposal https://go.dev/issue/64127 (from https://go.dev/cl/597576) - mentioning the new vet check to report invalid Go versions in build tags is tracked in proposal 64127 itself as a release blocker
669
-
accepted proposal https://go.dev/issue/66387 (from https://go.dev/cl/569955) - extending the copylock analyzer in cmd/vet is now tracked in proposal 66387 itself as a release blocker
670
-
accepted proposal https://go.dev/issue/69290 (from https://go.dev/cl/613095) - cmd/go caching link output binaries is now tracked in proposal 69290 itself as a release blocker
671
652
accepted proposal https://go.dev/issue/69393 (from https://go.dev/cl/630775) - automatic crypto/tls.CurvePreferences ordering is now tracked in proposal 69393 itself as a release blocker
0 commit comments