]> 127.0.0.1 Git - part/.git/commitdiff
Fix CVE-2024-45337 (#5) v0.28.20241212155801
authorqydysky <qydysky@foxmail.com>
Thu, 12 Dec 2024 15:52:42 +0000 (23:52 +0800)
committerGitHub <noreply@github.com>
Thu, 12 Dec 2024 15:52:42 +0000 (23:52 +0800)
* dep update

* fix pipeline

.github/workflows/test.yml
.github/workflows/test1.yml [new file with mode: 0644]
crypto/Gcm.go
crypto/Gcm_test.go
go.mod
go.sum
web/Web.go

index fd495114060378aa8551d9798d609c42c7686936..b7b0d59cc757f908301fbb7606b9a4bce1462c4f 100644 (file)
@@ -3,8 +3,6 @@ name: test
 on:
   push:
     branches: [ master ]
-  pull_request:
-    branches: [ master ]
 
 jobs:
   mac-test:
@@ -15,7 +13,7 @@ jobs:
     - name: Set up Go 1.x
       uses: actions/setup-go@v5
       with:
-        go-version: '1.22'
+        go-version: '1.23'
 
     - name: Check out code into the Go module directory
       uses: actions/checkout@v4
@@ -43,6 +41,7 @@ jobs:
         go test -count 1 -timeout 7s -v -race github.com/qydysky/part/slice
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/errors
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/crypto
 
   w-test:
     name: w-test
@@ -52,7 +51,7 @@ jobs:
     - name: Set up Go 1.x
       uses: actions/setup-go@v5
       with:
-        go-version: '1.22'
+        go-version: '1.23'
 
     - name: Check out code into the Go module directory
       uses: actions/checkout@v4
@@ -80,6 +79,7 @@ jobs:
         go test -count 1 -timeout 7s -v -race github.com/qydysky/part/slice
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/errors
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/crypto
 
   u-test:
     name: u-test
@@ -89,7 +89,7 @@ jobs:
     - name: Set up Go 1.x
       uses: actions/setup-go@v5
       with:
-        go-version: '1.22'
+        go-version: '1.23'
 
     - name: Check out code into the Go module directory
       uses: actions/checkout@v4
@@ -117,6 +117,7 @@ jobs:
         go test -count 1 -timeout 7s -v -race github.com/qydysky/part/slice
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
         go test -count 1 -timeout 5s -v -race github.com/qydysky/part/errors
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/crypto
 
   test:
     name: test
diff --git a/.github/workflows/test1.yml b/.github/workflows/test1.yml
new file mode 100644 (file)
index 0000000..59a2861
--- /dev/null
@@ -0,0 +1,120 @@
+name: test
+
+on:
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  mac-test:
+    name: mac-test
+    runs-on: macos-latest
+    steps:
+
+    - name: Set up Go 1.x
+      uses: actions/setup-go@v5
+      with:
+        go-version: '1.23'
+
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v4
+
+    - name: Test
+      run: |
+        go test -count 1 -timeout 30s -v .
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/signal
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/log
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/reqf
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/limit
+        go test -count 1 -timeout 20s -v -race github.com/qydysky/part/file
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/pool
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/funcCtrl
+        go test -count 1 -timeout 50s -v -race github.com/qydysky/part/msgq
+        go test -count 10 -race -timeout 10s -run ^Test_3$ github.com/qydysky/part/msgq
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/sync
+        go test -count 1 -timeout 20s -v -race github.com/qydysky/part/web
+        go test -count 1 -timeout 10s -v -run "Test_Client" -race github.com/qydysky/part/websocket
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/sql
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/rpc
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component2
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/ctx
+        go test -count 1 -timeout 7s -v -race github.com/qydysky/part/slice
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/errors
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/crypto
+
+  w-test:
+    name: w-test
+    runs-on: windows-latest
+    steps:
+
+    - name: Set up Go 1.x
+      uses: actions/setup-go@v5
+      with:
+        go-version: '1.23'
+
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v4
+
+    - name: Test
+      run: |
+        go test -count 1 -timeout 30s -v .
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/signal
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/log
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/reqf
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/limit
+        go test -count 1 -timeout 20s -v -race github.com/qydysky/part/file
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/pool
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/funcCtrl
+        go test -count 1 -timeout 50s -v -race github.com/qydysky/part/msgq
+        go test -count 10 -race -timeout 10s -run ^Test_3$ github.com/qydysky/part/msgq
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/sync
+        go test -count 1 -timeout 20s -v -race github.com/qydysky/part/web
+        go test -count 1 -timeout 10s -v -run "Test_Client" -race github.com/qydysky/part/websocket
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/sql
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/rpc
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component2
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/ctx
+        go test -count 1 -timeout 7s -v -race github.com/qydysky/part/slice
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/errors
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/crypto
+
+  u-test:
+    name: u-test
+    runs-on: ubuntu-latest
+    steps:
+
+    - name: Set up Go 1.x
+      uses: actions/setup-go@v5
+      with:
+        go-version: '1.23'
+
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v4
+
+    - name: Test
+      run: |
+        go test -count 1 -timeout 30s -v .
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/signal
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/log
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/reqf
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/limit
+        go test -count 1 -timeout 20s -v -race github.com/qydysky/part/file
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/pool
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/funcCtrl
+        go test -count 1 -timeout 50s -v -race github.com/qydysky/part/msgq
+        go test -count 10 -race -timeout 10s -run ^Test_3$ github.com/qydysky/part/msgq
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/sync
+        go test -count 1 -timeout 20s -v -race github.com/qydysky/part/web
+        go test -count 1 -timeout 10s -v -run "Test_Client" -race github.com/qydysky/part/websocket
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/sql
+        go test -count 1 -timeout 10s -v -race github.com/qydysky/part/rpc
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/component2
+        go test -count 1 -timeout 15s -v -race github.com/qydysky/part/ctx
+        go test -count 1 -timeout 7s -v -race github.com/qydysky/part/slice
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/bools
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/errors
+        go test -count 1 -timeout 5s -v -race github.com/qydysky/part/crypto
index 9362e2229ac4a6ea76bdb86ee3524278915037c5..a1441c57f823123e829100ec9d891890230ddcef 100644 (file)
@@ -5,22 +5,25 @@ import (
        "crypto/cipher"
        "crypto/rand"
        "encoding/hex"
-       "io"
        "errors"
+       "io"
 )
 
 type Gcm struct {
        aead *cipher.AEAD
 }
 
-func (t *Gcm) Init(key string) (error) {
-       tkey,_ := hex.DecodeString(key)
+func (t *Gcm) Init(key string) error {
+       tkey, _ := hex.DecodeString(key)
+       if len(tkey) < 32 {
+               return aes.KeySizeError(len(tkey))
+       }
        block, err := aes.NewCipher(tkey[:32])
        if err != nil {
                return err
        }
 
-       if aesgcm, err := cipher.NewGCM(block);err != nil {
+       if aesgcm, err := cipher.NewGCM(block); err != nil {
                return err
        } else {
                t.aead = &aesgcm
@@ -28,18 +31,22 @@ func (t *Gcm) Init(key string) (error) {
        return nil
 }
 
-func (t *Gcm) Encrypt(source []byte) (r []byte,e error) {
-       if t.aead == nil {return []byte{},errors.New(`Encrypt not init`)}
+func (t *Gcm) Encrypt(source []byte) (r []byte, e error) {
+       if t.aead == nil {
+               return []byte{}, errors.New(`Encrypt not init`)
+       }
 
        nonce := make([]byte, 12)
        if _, err := io.ReadFull(rand.Reader, nonce); err != nil {
-               return []byte{},err
+               return []byte{}, err
        }
 
-       return append(nonce,(*t.aead).Seal(nil, nonce, source, nil)...),nil
+       return append(nonce, (*t.aead).Seal(nil, nonce, source, nil)...), nil
 }
 
-func (t *Gcm) Decrypt(source []byte) (r []byte,e error) {
-       if t.aead == nil {return []byte{},errors.New(`Decrypt not init`)}
+func (t *Gcm) Decrypt(source []byte) (r []byte, e error) {
+       if t.aead == nil {
+               return []byte{}, errors.New(`Decrypt not init`)
+       }
        return (*t.aead).Open(nil, source[:12], source[12:], nil)
-}
\ No newline at end of file
+}
index 2c3b3eb986deb03d2c093e9a0aeea0bc492f81f0..e08598094f9d5323757186914c604f66af41ad2c 100644 (file)
@@ -1,26 +1,30 @@
 package part
 
 import (
+       "encoding/hex"
        "testing"
 )
 
-func Test_GCM(t *testing.T){
+func Test_GCM(t *testing.T) {
+       key := hex.EncodeToString([]byte("12345678901234567890123456789012"))
        var s []byte
        {
                var gcm Gcm
-               if e := gcm.Init(`sdifw023jfa;oo`);e != nil{
+               if e := gcm.Init(key); e != nil {
                        t.Error(e)
-               } else if s,e = gcm.Encrypt([]byte(`12345`));e != nil{
+               } else if s, e = gcm.Encrypt([]byte(`12345`)); e != nil {
                        t.Error(e)
                }
        }
-       
+
        var gcm Gcm
-       if e := gcm.Init(`sdifw023jfa;oo`);e != nil{
+       if e := gcm.Init(key); e != nil {
                t.Error(e)
-       } else if ss,e := gcm.Decrypt(s);e != nil{
+       } else if ss, e := gcm.Decrypt(s); e != nil {
                t.Error(e)
        } else {
-               if string(ss) != `12345` {t.Error(string(ss))}
+               if string(ss) != `12345` {
+                       t.Error(string(ss))
+               }
        }
-}
\ No newline at end of file
+}
diff --git a/go.mod b/go.mod
index 4f4410bfa9a5bf961083947dc819ccedf3370363..c49505b733e2d86caa350fa7b6d864e586633185 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -4,23 +4,24 @@ go 1.23
 
 require (
        github.com/gorilla/websocket v1.5.3
-       github.com/klauspost/compress v1.17.9
+       github.com/klauspost/compress v1.17.11
        github.com/miekg/dns v1.1.62
        github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9
        github.com/shirou/gopsutil v3.21.11+incompatible
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
-       golang.org/x/crypto v0.26.0
-       golang.org/x/text v0.17.0
+       golang.org/x/crypto v0.31.0
+       golang.org/x/text v0.21.0
 )
 
 require (
        github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
        github.com/jackc/pgpassfile v1.0.0 // indirect
        github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
-       github.com/jackc/puddle/v2 v2.2.1 // indirect
+       github.com/jackc/puddle/v2 v2.2.2 // indirect
        github.com/ncruces/go-strftime v0.1.9 // indirect
-       golang.org/x/sync v0.8.0 // indirect
-       modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a // indirect
+       golang.org/x/exp v0.0.0-20241210194714-1829a127f884 // indirect
+       golang.org/x/sync v0.10.0 // indirect
+       modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 // indirect
 )
 
 require (
@@ -28,11 +29,11 @@ require (
        github.com/mattn/go-isatty v0.0.20 // indirect
        github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
        github.com/tklauser/go-sysconf v0.3.14 // indirect
-       github.com/tklauser/numcpus v0.8.0 // indirect
+       github.com/tklauser/numcpus v0.9.0 // indirect
        github.com/yusufpapurcu/wmi v1.2.4 // indirect
-       golang.org/x/mod v0.20.0 // indirect
-       golang.org/x/tools v0.24.0 // indirect
-       modernc.org/libc v1.59.9 // indirect
+       golang.org/x/mod v0.22.0 // indirect
+       golang.org/x/tools v0.28.0 // indirect
+       modernc.org/libc v1.61.4 // indirect
        modernc.org/mathutil v1.6.0 // indirect
        modernc.org/memory v1.8.0 // indirect
        modernc.org/strutil v1.2.0 // indirect
@@ -42,11 +43,11 @@ require (
 require (
        github.com/dustin/go-humanize v1.0.1
        github.com/go-ole/go-ole v1.3.0 // indirect
-       github.com/jackc/pgx/v5 v5.6.0
-       github.com/stretchr/testify v1.9.0 // indirect
-       golang.org/x/net v0.28.0 // indirect
-       golang.org/x/sys v0.24.0 // indirect
-       modernc.org/sqlite v1.32.0
+       github.com/jackc/pgx/v5 v5.7.1
+       github.com/stretchr/testify v1.10.0 // indirect
+       golang.org/x/net v0.32.0 // indirect
+       golang.org/x/sys v0.28.0 // indirect
+       modernc.org/sqlite v1.34.2
 )
 
 //replace github.com/thedevsaddam/gojsonq v2.3.0+incompatible => github.com/thedevsaddam/gojsonq/v2 v2.5.2
diff --git a/go.sum b/go.sum
index bfef3c72ccef6e9046d409e68830a928b3571739..c6439ec90428b534e29fc2a7cc15f74531c978cd 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -6,6 +6,8 @@ github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+m
 github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
 github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE=
 github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78=
+github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
 github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo=
 github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
 github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
@@ -18,12 +20,12 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
 github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
 github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
 github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
-github.com/jackc/pgx/v5 v5.6.0 h1:SWJzexBzPL5jb0GEsrPMLIsi/3jOo7RHlzTjcAeDrPY=
-github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgtQdTw=
-github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk=
-github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
-github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
-github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/jackc/pgx/v5 v5.7.1 h1:x7SYsPBYDkHDksogeSmZZ5xzThcTgRz++I5E+ePFUcs=
+github.com/jackc/pgx/v5 v5.7.1/go.mod h1:e7O26IywZZ+naJtWWos6i6fvWK+29etgITqrqHLfoZA=
+github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
+github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
+github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
+github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
 github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
 github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
 github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ=
@@ -43,49 +45,51 @@ github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:s
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 github.com/tklauser/go-sysconf v0.3.14 h1:g5vzr9iPFFz24v2KZXs/pvpvh8/V9Fw6vQK5ZZb78yU=
 github.com/tklauser/go-sysconf v0.3.14/go.mod h1:1ym4lWMLUOhuBOPGtRcJm7tEGX4SCYNEEEtghGG/8uY=
-github.com/tklauser/numcpus v0.8.0 h1:Mx4Wwe/FjZLeQsK/6kt2EOepwwSl7SmJrK5bV/dXYgY=
-github.com/tklauser/numcpus v0.8.0/go.mod h1:ZJZlAY+dmR4eut8epnzf0u/VwodKmryxR8txiloSqBE=
+github.com/tklauser/numcpus v0.9.0 h1:lmyCHtANi8aRUgkckBgoDk1nHCux3n2cgkJLXdQGPDo=
+github.com/tklauser/numcpus v0.9.0/go.mod h1:SN6Nq1O3VychhC1npsWostA+oW+VOQTxZrS604NSRyI=
 github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
 github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
 github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
 github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
-golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
-golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
-golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0=
-golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
-golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
-golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
-golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
+golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
+golang.org/x/exp v0.0.0-20241210194714-1829a127f884 h1:Y/Mj/94zIQQGHVSv1tTtQBDaQaJe62U9bkDZKKyhPCU=
+golang.org/x/exp v0.0.0-20241210194714-1829a127f884/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
+golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
+golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/net v0.32.0 h1:ZqPmj8Kzc+Y6e0+skZsuACbx+wzMgo5MQsJh9Qd6aYI=
+golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs=
+golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
+golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg=
-golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
-golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
-golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24=
-golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ=
+golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
+golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
+golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
+golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
+golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ=
-modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
-modernc.org/ccgo/v4 v4.20.7 h1:skrinQsjxWfvj6nbC3ztZPJy+NuwmB3hV9zX/pthNYQ=
-modernc.org/ccgo/v4 v4.20.7/go.mod h1:UOkI3JSG2zT4E2ioHlncSOZsXbuDCZLvPi3uMlZT5GY=
+modernc.org/cc/v4 v4.23.1 h1:WqJoPL3x4cUufQVHkXpXX7ThFJ1C4ik80i2eXEXbhD8=
+modernc.org/cc/v4 v4.23.1/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ=
+modernc.org/ccgo/v4 v4.23.1 h1:N49a7JiWGWV7lkPE4yYcvjkBGZQi93/JabRYjdWmJXc=
+modernc.org/ccgo/v4 v4.23.1/go.mod h1:JoIUegEIfutvoWV/BBfDFpPpfR2nc3U0jKucGcbmwDU=
 modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE=
 modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ=
 modernc.org/gc/v2 v2.5.0 h1:bJ9ChznK1L1mUtAQtxi0wi5AtAs5jQuw4PrPHO5pb6M=
 modernc.org/gc/v2 v2.5.0/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU=
-modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a h1:CfbpOLEo2IwNzJdMvE8aiRbPMxoTpgAJeyePh0SmO8M=
-modernc.org/gc/v3 v3.0.0-20240801135723-a856999a2e4a/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
-modernc.org/libc v1.59.9 h1:k+nNDDakwipimgmJ1D9H466LhFeSkaPPycAs1OZiDmY=
-modernc.org/libc v1.59.9/go.mod h1:EY/egGEU7Ju66eU6SBqCNYaFUDuc4npICkMWnU5EE3A=
+modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852 h1:IYXPPTTjjoSHvUClZIYexDiO7g+4x+XveKT4gCIAwiY=
+modernc.org/gc/v3 v3.0.0-20241004144649-1aea3fae8852/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4=
+modernc.org/libc v1.61.4 h1:wVyqEx6tlltte9lPTjq0kDAdtdM9c4JH8rU6M1ZVawA=
+modernc.org/libc v1.61.4/go.mod h1:VfXVuM/Shh5XsMNrh3C6OkfL78G3loa4ZC/Ljv9k7xc=
 modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4=
 modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo=
 modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E=
@@ -94,8 +98,8 @@ modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
 modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
 modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
 modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
-modernc.org/sqlite v1.32.0 h1:6BM4uGza7bWypsw4fdLRsLxut6bHe4c58VeqjRgST8s=
-modernc.org/sqlite v1.32.0/go.mod h1:UqoylwmTb9F+IqXERT8bW9zzOWN8qwAIcLdzeBZs4hA=
+modernc.org/sqlite v1.34.2 h1:J9n76TPsfYYkFkZ9Uy1QphILYifiVEwwOT7yP5b++2Y=
+modernc.org/sqlite v1.34.2/go.mod h1:dnR723UrTtjKpoHCAMN0Q/gZ9MT4r+iRvIBb9umWFkU=
 modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=
 modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0=
 modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
index 23f70985e38f2b84114eee2caa6ff0c3f2f5dee2..f261ca874621bd28141324768ac7ad9bc895670f 100644 (file)
@@ -705,7 +705,6 @@ func NotModified(r *http.Request, w http.ResponseWriter, modTime time.Time) (not
        modTimeS := modTime.Format(time.RFC1123)
        modTimeE := modTime.Format(time.RFC3339)
 
-       w.Header().Add(`Cache-Control`, `private`)
        w.Header().Add(`ETag`, modTimeE)
        w.Header().Add(`Last-Modified`, modTimeS)