]> Cypherpunks.ru repositories - nncp.git/commitdiff
Update dependencies
authorSergey Matveev <stargrave@stargrave.org>
Tue, 31 Oct 2023 19:10:18 +0000 (22:10 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 31 Oct 2023 19:55:37 +0000 (22:55 +0300)
14 files changed:
bin/build
doc/download.texi
doc/news.ru.texi
doc/news.texi
makedist
src/cfg.go
src/cmd/nncp-cfgdir/main.go
src/cmd/nncp-cfgmin/main.go
src/cmd/nncp-cfgnew/main.go
src/go.mod
src/go.sum
src/nncp.go
src/pkt.go
src/yggdrasil/yggdrasil.go

index b2c0b1c6bc1377280454eeb48a9da6a5a336577e..340f1fed54cfaa3208fe790ddb547ec7bab5f48a 100755 (executable)
--- a/bin/build
+++ b/bin/build
@@ -12,4 +12,4 @@ GO_LDFLAGS="$GO_LDFLAGS -X $mod.DefaultLogPath=$LOGPATH"
 for cmd in `cat ../bin/cmd.list` ; do
     $GO build $vendor -o ../bin/$cmd $GO_CFLAGS -ldflags "$GO_LDFLAGS" ./cmd/$cmd
 done
-$GO build $vendor -o ../bin/hjson-cli $GO_CFLAGS github.com/hjson/hjson-go/hjson-cli
+$GO build $vendor -o ../bin/hjson-cli $GO_CFLAGS github.com/hjson/hjson-go/v4/hjson-cli
index d61f32d4529380a30196c0f0d400e27dd0a3d903..2e23b65301d1c4668bf313180ea1fbd1e947a5b3 100644 (file)
@@ -22,6 +22,7 @@ Tarballs include all necessary required libraries:
 @item @code{github.com/hjson/hjson-go} @tab Expat
 @item @code{github.com/klauspost/compress} @tab BSD 3-Clause
 @item @code{github.com/klauspost/cpuid} @tab BSD 3-Clause
+@item @code{github.com/quic-go/quic-go} @tab Expat
 @item @code{go.cypherpunks.ru/balloon} @tab GNU LGPLv3
 @item @code{go.cypherpunks.ru/recfile} @tab GNU GPLv3
 @item @code{golang.org/x/crypto} @tab BSD 3-Clause
index 0c5dd4ab32829888d2f2827bda9060d908dea568..0811856eba0c1fececc814dc6c9affdd047bc162 100644 (file)
@@ -1,6 +1,16 @@
 @node Новости
 @section Новости
 
+@node Релиз 8.10.0
+@subsection Релиз 8.10.0
+@itemize
+
+@item
+Обновлены зависимые библиотеки, включая Yggdrasil (его сеть начала
+использовать v0.5).
+
+@end itemize
+
 @node Релиз 8.9.0
 @subsection Релиз 8.9.0
 @itemize
index 664f176685a737721e1bc6e1a1fc1ca125b15564..d3c9edf88f3239f9f631dc9f33f6dae55137dd4d 100644 (file)
@@ -4,6 +4,15 @@
 
 See also this page @ref{Новости, on russian}.
 
+@node Release 8_10_0
+@section Release 8.10.0
+@itemize
+
+@item
+Updated dependant libraries, including Yggdrasil one (its network moved to v0.5).
+
+@end itemize
+
 @node Release 8_9_0
 @section Release 8.9.0
 @itemize
index 4833be044c5a9e91f0eac7f82398d7ce338bcfe5..1455f9d0035a8a3f010e6ba82192c78ede7f8d6e 100755 (executable)
--- a/makedist
+++ b/makedist
@@ -17,7 +17,7 @@ cd vendor
 rm -r \
     github.com/flynn/noise/vector* \
     github.com/gorhill/cronexpr/APLv2 \
-    github.com/hjson/hjson-go/build_release.sh \
+    github.com/hjson/hjson-go/v4/build_release.sh \
     github.com/klauspost/compress/gen.sh \
     github.com/klauspost/compress/gzhttp \
     github.com/klauspost/compress/internal/snapref \
index 8a7cb34ddc2099fea8f92b35333bad5d8a762f2d..f7237316c3e31aa9a1a5c64bdd882b34ec06c935 100644 (file)
@@ -29,7 +29,7 @@ import (
        "time"
 
        "github.com/gorhill/cronexpr"
-       "github.com/hjson/hjson-go"
+       "github.com/hjson/hjson-go/v4"
        "golang.org/x/crypto/ed25519"
        "golang.org/x/term"
 )
index c01d830e83d751840332a0f4e3d0383e352ff615..9c5b420d5fe865c488d5c3d959325ce5c48f6b00 100644 (file)
@@ -24,7 +24,7 @@ import (
        "log"
        "os"
 
-       "github.com/hjson/hjson-go"
+       "github.com/hjson/hjson-go/v4"
        "go.cypherpunks.ru/nncp/v8"
 )
 
@@ -86,7 +86,6 @@ func main() {
                        BracesSameLine: true,
                        QuoteAlways:    false,
                        IndentBy:       "  ",
-                       AllowMinusZero: false,
                })
                if err != nil {
                        log.Fatalln(err)
index d9ca8fe250eff9555804fd1605453decad80d271..2a1e9cca7881f31e1f573325fc02b7446adb0f89 100644 (file)
@@ -24,7 +24,7 @@ import (
        "log"
        "os"
 
-       "github.com/hjson/hjson-go"
+       "github.com/hjson/hjson-go/v4"
        "go.cypherpunks.ru/nncp/v8"
 )
 
index 0652424ab8b7cbd7b733d1fefb9818692b0e730d..5cc29dcfda33612bb805f67508cc5808bec8fea1 100644 (file)
@@ -28,7 +28,7 @@ import (
        "log"
        "os"
 
-       "github.com/hjson/hjson-go"
+       "github.com/hjson/hjson-go/v4"
        "golang.org/x/crypto/blake2b"
        "golang.org/x/crypto/nacl/box"
 
index 4c5f5be1e5b8758c136f45f89b79ce6ca2776db3..a663314a0174bc8218a68ed8d08d29b8a86f561c 100644 (file)
@@ -1,31 +1,43 @@
 module go.cypherpunks.ru/nncp/v8
 
 require (
-       github.com/Arceliar/ironwood v0.0.0-20221115123222-ec61cea2f439
+       github.com/Arceliar/ironwood v0.0.0-20231028101932-ceac99571f43
        github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892
        github.com/dustin/go-humanize v1.0.1
        github.com/flynn/noise v1.0.0
-       github.com/fsnotify/fsnotify v1.6.0
+       github.com/fsnotify/fsnotify v1.7.0
        github.com/gologme/log v1.3.0
        github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75
-       github.com/hjson/hjson-go v3.3.0+incompatible
-       github.com/klauspost/compress v1.16.7
-       github.com/yggdrasil-network/yggdrasil-go v0.4.7
+       github.com/hjson/hjson-go/v4 v4.3.1
+       github.com/klauspost/compress v1.17.2
+       github.com/yggdrasil-network/yggdrasil-go v0.5.1
        go.cypherpunks.ru/balloon v1.1.1
        go.cypherpunks.ru/recfile v0.7.0
-       golang.org/x/crypto v0.12.0
-       golang.org/x/net v0.10.0
-       golang.org/x/sys v0.11.0
-       golang.org/x/term v0.11.0
+       golang.org/x/crypto v0.14.0
+       golang.org/x/net v0.17.0
+       golang.org/x/sys v0.13.0
+       golang.org/x/term v0.13.0
        gvisor.dev/gvisor v0.0.0-20230428223346-f33f75cda699
        lukechampine.com/blake3 v1.2.1
 )
 
 require (
-       github.com/Arceliar/phony v0.0.0-20210209235338-dde1a8dca979 // indirect
+       github.com/Arceliar/phony v0.0.0-20220903101357-530938a4b13d // indirect
+       github.com/bits-and-blooms/bitset v1.5.0 // indirect
+       github.com/bits-and-blooms/bloom/v3 v3.3.1 // indirect
+       github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
        github.com/google/btree v1.0.1 // indirect
+       github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
        github.com/klauspost/cpuid/v2 v2.2.5 // indirect
+       github.com/onsi/ginkgo/v2 v2.9.5 // indirect
+       github.com/quic-go/qtls-go1-20 v0.3.4 // indirect
+       github.com/quic-go/quic-go v0.39.3 // indirect
+       go.uber.org/mock v0.3.0 // indirect
+       golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
+       golang.org/x/mod v0.13.0 // indirect
+       golang.org/x/text v0.13.0 // indirect
        golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect
+       golang.org/x/tools v0.14.0 // indirect
 )
 
-go 1.17
+go 1.20
index 5700aff423eb74e2a9e805444f74b9a44b04c33e..d4984ce040c7e6c41a2df0efea68777684318b95 100644 (file)
@@ -1,25 +1,44 @@
-github.com/Arceliar/ironwood v0.0.0-20221115123222-ec61cea2f439 h1:eOW6/XIs06TnUn9GPCnfv71CQZw8edP3u3mH3lZt6iM=
-github.com/Arceliar/ironwood v0.0.0-20221115123222-ec61cea2f439/go.mod h1:RP72rucOFm5udrnEzTmIWLRVGQiV/fSUAQXJ0RST/nk=
-github.com/Arceliar/phony v0.0.0-20210209235338-dde1a8dca979 h1:WndgpSW13S32VLQ3ugUxx2EnnWmgba1kCqPkd4Gk1yQ=
-github.com/Arceliar/phony v0.0.0-20210209235338-dde1a8dca979/go.mod h1:6Lkn+/zJilRMsKmbmG1RPoamiArC6HS73xbwRyp3UyI=
+github.com/Arceliar/ironwood v0.0.0-20231028101932-ceac99571f43 h1:M4NczBPk7Fy0Uy2YvNoXwSkk3dGoGTOYtUjyqpOC5ko=
+github.com/Arceliar/ironwood v0.0.0-20231028101932-ceac99571f43/go.mod h1:5x7fWW0mshe9WQ1lvSMmmHBYC3BeHH9gpwW5tz7cbfw=
+github.com/Arceliar/phony v0.0.0-20220903101357-530938a4b13d h1:UK9fsWbWqwIQkMCz1CP+v5pGbsGoWAw6g4AyvMpm1EM=
+github.com/Arceliar/phony v0.0.0-20220903101357-530938a4b13d/go.mod h1:BCnxhRf47C/dy/e/D2pmB8NkB3dQVIrkD98b220rx5Q=
+github.com/bits-and-blooms/bitset v1.3.1/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
+github.com/bits-and-blooms/bitset v1.5.0 h1:NpE8frKRLGHIcEzkR+gZhiioW1+WbYV6fKwD6ZIpQT8=
+github.com/bits-and-blooms/bitset v1.5.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA=
+github.com/bits-and-blooms/bloom/v3 v3.3.1 h1:K2+A19bXT8gJR5mU7y+1yW6hsKfNCjcP2uNfLFKncjQ=
+github.com/bits-and-blooms/bloom/v3 v3.3.1/go.mod h1:bhUUknWd5khVbTe4UgMCSiOOVJzr3tMoijSK3WwvW90=
+github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
+github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
+github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892 h1:qg9VbHo1TlL0KDM0vYvBG9EY0X0Yku5WYIPoFWt8f6o=
 github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892/go.mod h1:CTDl0pzVzE5DEzZhPfvhY/9sPFMQIxaJ9VAMs9AagrE=
 github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
 github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
 github.com/flynn/noise v1.0.0 h1:DlTHqmzmvcEiKj+4RYo/imoswx/4r6iBlCMfVtrMXpQ=
 github.com/flynn/noise v1.0.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag=
-github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
-github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
+github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
+github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
+github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
+github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
 github.com/gologme/log v1.3.0 h1:l781G4dE+pbigClDSDzSaaYKtiueHCILUa/qSDsmHAo=
 github.com/gologme/log v1.3.0/go.mod h1:yKT+DvIPdDdDoPtqFrFxheooyVmoqi0BAsw+erN3wA4=
 github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
 github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
+github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
+github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 h1:yAJXTCF9TqKcTiHJAE8dj7HMvPfh66eeA2JYW7eFpSE=
+github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
 github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75 h1:f0n1xnMSmBLzVfsMMvriDyA75NB/oBgILX2GcHXIQzY=
 github.com/gorhill/cronexpr v0.0.0-20180427100037-88b0669f7d75/go.mod h1:g2644b03hfBX9Ov0ZBDgXXens4rxSxmqFBbhvKv2yVA=
-github.com/hjson/hjson-go v3.3.0+incompatible h1:Rqr+Ya+0aCJMjaE4s8E9YKvuJLuLVpEvz4ONum52vnI=
-github.com/hjson/hjson-go v3.3.0+incompatible/go.mod h1:qsetwF8NlsTsOTwZTApNlTCerV+b2GjYRRcIk4JMFio=
-github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I=
-github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
+github.com/hjson/hjson-go/v4 v4.3.1 h1:wfmDwHGxjzmYKXRFL0Qr9nonY/Xxe5y7IalwjlY7ekA=
+github.com/hjson/hjson-go/v4 v4.3.1/go.mod h1:KaYt3bTw3zhBjYqnXkYywcYctk0A2nxeEFTse3rH13E=
+github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
+github.com/klauspost/compress v1.17.2 h1:RlWWUY/Dr4fL8qk9YG7DTZ7PDgME2V4csBXA8L/ixi4=
+github.com/klauspost/compress v1.17.2/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/klauspost/cpuid/v2 v2.2.5 h1:0E5MSMDEoAulmXNFquVs//DdoomxaoTY1kUhbc/qbZg=
 github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
 github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
@@ -27,33 +46,89 @@ github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfn
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/yggdrasil-network/yggdrasil-go v0.4.7 h1:1zFAsyHSgjQ2HGCsps1bK2EoUH3t0ZXfg+fEclPW0G8=
-github.com/yggdrasil-network/yggdrasil-go v0.4.7/go.mod h1:FjWmrJHR3To7qSAulXG23+WshFJSSRFiqqsNjxMEqgE=
+github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q=
+github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k=
+github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/quic-go/qtls-go1-20 v0.3.4 h1:MfFAPULvst4yoMgY9QmtpYmfij/em7O8UUi+bNVm7Cg=
+github.com/quic-go/qtls-go1-20 v0.3.4/go.mod h1:X9Nh97ZL80Z+bX/gUXMbipO6OxdiDi58b/fMC9mAL+k=
+github.com/quic-go/quic-go v0.39.3 h1:o3YB6t2SR+HU/pgwF29kJ6g4jJIJEwEZ8CKia1h1TKg=
+github.com/quic-go/quic-go v0.39.3/go.mod h1:T09QsDQWjLiQ74ZmacDfqZmhY/NLnw5BC40MANNNZ1Q=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/twmb/murmur3 v1.1.6 h1:mqrRot1BRxm+Yct+vavLMou2/iJt0tNVTTC0QoIjaZg=
+github.com/twmb/murmur3 v1.1.6/go.mod h1:Qq/R7NUyOfr65zD+6Q5IHKsJLwP7exErjN6lyyq3OSQ=
+github.com/yggdrasil-network/yggdrasil-go v0.5.1 h1:xH1j90WCgSgDT57HN8VfPqz2CmjgWo9nAvStwu8oWc0=
+github.com/yggdrasil-network/yggdrasil-go v0.5.1/go.mod h1:NXqj9rpVBdAIOvofnHjE4luG1tx4bqKblcS0nWM4nvQ=
+github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 go.cypherpunks.ru/balloon v1.1.1 h1:ypHM1DRf/XuCrp9pDkTHg00CqZX/Np/APb//iHvDJTA=
 go.cypherpunks.ru/balloon v1.1.1/go.mod h1:k4s4ozrIrhpBjj78Z7LX8ZHxMQ+XE7DZUWl8gP2ojCo=
 go.cypherpunks.ru/recfile v0.7.0 h1:0R1UnDGKccp7JnC66msslJMlSY02jHx/XkW+ISl0GuY=
 go.cypherpunks.ru/recfile v0.7.0/go.mod h1:sR+KajB+vzofL3SFVFwKt3Fke0FaCcN1g3YPNAhU3qI=
+go.uber.org/mock v0.3.0 h1:3mUxI1No2/60yUYax92Pt8eNOEecx2D3lcXZh2NEZJo=
+go.uber.org/mock v0.3.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
-golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk=
-golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
+golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
+golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
+golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
+golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
+golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o=
+golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
+golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
+golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY=
+golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M=
-golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
+golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
+golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
+golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
+golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM=
-golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
+golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0=
-golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
+golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
+golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
+golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
+golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek=
+golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
+golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
+golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
+golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
+golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
 golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44=
 golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
+golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
+golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc=
+golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg=
+golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+google.golang.org/protobuf v1.28.2-0.20230118093459-a9481185b34d h1:qp0AnQCvRCMlu9jBjtdbTaaEmThIgZOrbVyDEOcmKhQ=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+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=
 gvisor.dev/gvisor v0.0.0-20230428223346-f33f75cda699 h1:Ns93L6u6C3xgQY2eodedE2ZgIW8JaQYExfHdACX1BJc=
 gvisor.dev/gvisor v0.0.0-20230428223346-f33f75cda699/go.mod h1:pzr6sy8gDLfVmDAg8OYrlKvGEHw5C3PGTiBXBTCx76Q=
 lukechampine.com/blake3 v1.2.1 h1:YuqqRuaqsGV71BV/nm9xlI0MKUv4QC54jQnBChWbGnI=
index d52137260f20a16fb5edc9ba2f7c325b9b114d6f..2bb43082bce0444b71f5235589601cdbde573f0f 100644 (file)
@@ -41,7 +41,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.`
 )
 
 var (
-       Version string = "8.9.0"
+       Version string = "8.10.0"
 
        Base32Codec *base32.Encoding = base32.StdEncoding.WithPadding(base32.NoPadding)
 )
index 38e4659a0030f0d153e889d822ea83745abc6bf7..2a161f721c6a3e955ef57ba1b06b44ce022408b7 100644 (file)
@@ -250,12 +250,14 @@ func PktEncWrite(
                return
        }
 
-       sharedKey := new([32]byte)
-       curve25519.ScalarMult(sharedKey, prv, their.ExchPub)
+       sharedKey, err := curve25519.X25519(prv[:], their.ExchPub[:])
+       if err != nil {
+               return
+       }
        keyFull := make([]byte, chacha20poly1305.KeySize)
        keySize := make([]byte, chacha20poly1305.KeySize)
-       blake3.DeriveKey(keyFull, DeriveKeyFullCtx, sharedKey[:])
-       blake3.DeriveKey(keySize, DeriveKeySizeCtx, sharedKey[:])
+       blake3.DeriveKey(keyFull, DeriveKeyFullCtx, sharedKey)
+       blake3.DeriveKey(keySize, DeriveKeySizeCtx, sharedKey)
        aeadFull, err := chacha20poly1305.New(keyFull)
        if err != nil {
                return
@@ -403,8 +405,11 @@ func PktEncRead(
        }
        ad := blake3.Sum256(tbsRaw)
        if sharedKeyCached == nil {
-               key := new([32]byte)
-               curve25519.ScalarMult(key, our.ExchPrv, &pktEnc.ExchPub)
+               var key []byte
+               key, err = curve25519.X25519(our.ExchPrv[:], pktEnc.ExchPub[:])
+               if err != nil {
+                       return
+               }
                sharedKey = key[:]
        } else {
                sharedKey = sharedKeyCached
index ad52744b2ec52140524d1f48223bcf8c64eb82fd..010e4159ba2f2609540e0cc7c2c31fcd5fa0d088 100644 (file)
@@ -42,14 +42,6 @@ import (
 
 const DefaultPort = 5400
 
-// Copy-pasted from yggdrasil-go/src/ipv6rwc/ipv6rwc.go,
-// because they are non-exportable.
-const (
-       typeKeyDummy = iota
-       typeKeyLookup
-       typeKeyResponse
-)
-
 var (
        glog *gologme.Logger
 
@@ -87,10 +79,6 @@ func ycoreStart(cfg *ycfg.NodeConfig, port int, mcasts []string) (*ycore.Core, e
                )
        }
 
-       sk, err := hex.DecodeString(cfg.PrivateKey)
-       if err != nil {
-               panic(err)
-       }
        options := []ycore.SetupOption{
                ycore.NodeInfo(cfg.NodeInfo),
                ycore.NodeInfoPrivacy(cfg.NodeInfoPrivacy),
@@ -114,7 +102,11 @@ func ycoreStart(cfg *ycfg.NodeConfig, port int, mcasts []string) (*ycore.Core, e
                options = append(options, ycore.AllowedPublicKey(k[:]))
        }
 
-       core, err := ycore.New(sk[:], glog, options...)
+       err = cfg.GenerateSelfSignedCertificate()
+       if err != nil {
+               return nil, err
+       }
+       core, err := ycore.New(cfg.Certificate, glog, options...)
        if err != nil {
                return nil, err
        }
@@ -215,7 +207,7 @@ func NewConn(aliases map[string]string, in string) (net.Conn, error) {
                return e.DialTCP(&net.TCPAddr{IP: ipTheir, Port: port})
        }
        cfg := ycfg.NodeConfig{
-               PrivateKey:      prvHex,
+               PrivateKey:      prvRaw,
                Peers:           peers,
                NodeInfo:        map[string]interface{}{"name": "NNCP"},
                NodeInfoPrivacy: true,
@@ -233,27 +225,6 @@ func NewConn(aliases map[string]string, in string) (net.Conn, error) {
        return e.DialTCP(&net.TCPAddr{IP: ipTheir, Port: port})
 }
 
-type OOBState struct {
-       c      *ycore.Core
-       subnet yaddr.Subnet
-}
-
-func (state *OOBState) Handler(fromKey, toKey ed25519.PublicKey, data []byte) {
-       if len(data) != 1+ed25519.SignatureSize {
-               return
-       }
-       if data[0] == typeKeyLookup {
-               snet := *yaddr.SubnetForKey(toKey)
-               sig := data[1:]
-               if snet == state.subnet && ed25519.Verify(fromKey, toKey[:], sig) {
-                       state.c.SendOutOfBand(fromKey, append(
-                               []byte{typeKeyResponse},
-                               ed25519.Sign(state.c.PrivateKey(), fromKey[:])...,
-                       ))
-               }
-       }
-}
-
 func NewListener(aliases map[string]string, in string) (net.Listener, error) {
        // yggdrasils://PRV[:PORT]?[bind=BIND][&pub=PUB][&peer=PEER][&mcast=REGEX[:PORT]]
        u, err := url.Parse(in)
@@ -326,7 +297,7 @@ func NewListener(aliases map[string]string, in string) (net.Listener, error) {
                return e.ListenTCP(&net.TCPAddr{IP: ipOur, Port: port})
        }
        cfg := ycfg.NodeConfig{
-               PrivateKey:        prvHex,
+               PrivateKey:        ycfg.KeyBytes(prvRaw),
                Listen:            binds,
                AllowedPublicKeys: pubs,
                Peers:             peers,
@@ -337,11 +308,6 @@ func NewListener(aliases map[string]string, in string) (net.Listener, error) {
        if err != nil {
                return nil, err
        }
-       oobState := OOBState{core, *yaddr.SubnetForKey(core.PublicKey())}
-       if err := core.SetOutOfBandHandler(oobState.Handler); err != nil {
-               core.Stop()
-               return nil, err
-       }
        e, err = NewTCPIPEndpoint(core, ipOur, uint32(core.MTU()))
        if err != nil {
                core.Stop()