Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package go-sendxmpp for openSUSE:Factory checked in at 2022-11-14 14:28:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/go-sendxmpp (Old) and /work/SRC/openSUSE:Factory/.go-sendxmpp.new.1597 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "go-sendxmpp" Mon Nov 14 14:28:57 2022 rev:5 rq:1035535 version:0.5.6 Changes: -------- --- /work/SRC/openSUSE:Factory/go-sendxmpp/go-sendxmpp.changes 2022-10-19 13:17:56.957255961 +0200 +++ /work/SRC/openSUSE:Factory/.go-sendxmpp.new.1597/go-sendxmpp.changes 2022-11-14 14:29:06.747005447 +0100 @@ -1,0 +2,9 @@ +Sun Nov 13 20:12:18 UTC 2022 - Michael Vetter <mvet...@suse.com> + +- Update to 0.5.6: + Added: + * Add short option -h for http-upload. + Changed: + * Fix Ox key generation. + +------------------------------------------------------------------- Old: ---- go-sendxmpp-0.5.5.tar.gz New: ---- go-sendxmpp-0.5.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ go-sendxmpp.spec ++++++ --- /var/tmp/diff_new_pack.yXHA1o/_old 2022-11-14 14:29:07.515009003 +0100 +++ /var/tmp/diff_new_pack.yXHA1o/_new 2022-11-14 14:29:07.519009021 +0100 @@ -17,7 +17,7 @@ Name: go-sendxmpp -Version: 0.5.5 +Version: 0.5.6 Release: 0 Summary: A little tool to send messages to an XMPP contact or MUC License: BSD-2-Clause ++++++ _service ++++++ --- /var/tmp/diff_new_pack.yXHA1o/_old 2022-11-14 14:29:07.555009188 +0100 +++ /var/tmp/diff_new_pack.yXHA1o/_new 2022-11-14 14:29:07.559009207 +0100 @@ -3,7 +3,7 @@ <param name="url">https://salsa.debian.org/mdosch/go-sendxmpp.git</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.5.5</param> + <param name="revision">v0.5.6</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">disable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ go-sendxmpp-0.5.5.tar.gz -> go-sendxmpp-0.5.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/CHANGELOG.md new/go-sendxmpp-0.5.6/CHANGELOG.md --- old/go-sendxmpp-0.5.5/CHANGELOG.md 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/CHANGELOG.md 2022-11-11 18:24:49.000000000 +0100 @@ -1,7 +1,13 @@ # Changelog +## [v0.5.6] 2022-11-11 +### Added +- Add short option `-h` for http-upload. +### Changed +- Fix Ox key generation. + ## [v0.5.5] 2022-10-16 -## Changed +### Changed - Improve interactive mode. ## [v0.5.4] 2022-09-30 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/README.md new/go-sendxmpp-0.5.6/README.md --- old/go-sendxmpp-0.5.5/README.md 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/README.md 2022-11-11 18:24:49.000000000 +0100 @@ -90,7 +90,7 @@ -f, --file=value Set configuration file. (Default: ~/.config/go-sendxmpp/sendxmpprc) --help Show help. - --http-upload=value + -h, --http-upload=value Send a file via http-upload. -i, --interactive Interactive mode (for use with e.g. 'tail -f'). -j, --jserver=value diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/const.go new/go-sendxmpp-0.5.6/const.go --- old/go-sendxmpp-0.5.5/const.go 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/const.go 2022-11-11 18:24:49.000000000 +0100 @@ -5,7 +5,7 @@ package main const ( - version = "0.5.5" + version = "0.5.6" nsDiscoInfo = "http://jabber.org/protocol/disco#info" nsDiscoItems = "http://jabber.org/protocol/disco#items" nsEme = "urn:xmpp:eme:0" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/go.mod new/go-sendxmpp-0.5.6/go.mod --- old/go-sendxmpp-0.5.5/go.mod 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/go.mod 2022-11-11 18:24:49.000000000 +0100 @@ -12,12 +12,12 @@ ) require ( - github.com/ProtonMail/go-crypto v0.0.0-20220930113650-c6815a8c17ad // indirect - github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f // indirect - github.com/cloudflare/circl v1.2.0 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 // indirect + github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08 // indirect + github.com/cloudflare/circl v1.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect - golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect - golang.org/x/net v0.0.0-20221014081412-f15817d10f9b // indirect - golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect - golang.org/x/text v0.3.8 // indirect + golang.org/x/crypto v0.2.0 // indirect + golang.org/x/net v0.2.0 // indirect + golang.org/x/sys v0.2.0 // indirect + golang.org/x/text v0.4.0 // indirect ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/go.sum new/go-sendxmpp-0.5.6/go.sum --- old/go-sendxmpp-0.5.5/go.sum 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/go.sum 2022-11-11 18:24:49.000000000 +0100 @@ -1,19 +1,19 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ProtonMail/go-crypto v0.0.0-20220822140716-1678d6eb0cbe/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= -github.com/ProtonMail/go-crypto v0.0.0-20220930113650-c6815a8c17ad h1:QeeqI2zxxgZVe11UrYFXXx6gVxPVF40ygekjBzEg4XY= -github.com/ProtonMail/go-crypto v0.0.0-20220930113650-c6815a8c17ad/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= +github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= +github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= github.com/ProtonMail/go-mime v0.0.0-20220302105931-303f85f7fe0f/go.mod h1:NYt+V3/4rEeDuaev/zw1zCq8uqVEuPHzDPo3OZrlGJ4= -github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f h1:4IWzKjHzZxdrW9k4zl/qCwenOVHDbVDADPPHFLjs0Oc= -github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f/go.mod h1:qRZgbeASl2a9OwmsV85aWwRqic0NHPh+9ewGAzb4cgM= +github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08 h1:dS7r5z4iGS0qCjM7UwWdsEMzQesUQbGcXdSm2/tWboA= +github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08/go.mod h1:qRZgbeASl2a9OwmsV85aWwRqic0NHPh+9ewGAzb4cgM= github.com/ProtonMail/gopenpgp/v2 v2.4.10 h1:EYgkxzwmQvsa6kxxkgP1AwzkFqKHscF2UINxaSn6rdI= github.com/ProtonMail/gopenpgp/v2 v2.4.10/go.mod h1:CTRA7/toc/4DxDy5Du4hPDnIZnJvXSeQ8LsRTOUJoyc= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/bwesterb/go-ristretto v1.2.1/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= +github.com/bwesterb/go-ristretto v1.2.2/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= -github.com/cloudflare/circl v1.2.0 h1:NheeISPSUcYftKlfrLuOo4T62FkmD4t4jviLfFFYaec= -github.com/cloudflare/circl v1.2.0/go.mod h1:Ch2UgYr6ti2KTtlejELlROl0YIYj7SLjAC8M+INXlMk= +github.com/cloudflare/circl v1.3.0 h1:Anq00jxDtoyX3+aCaYUZ0vXC5r4k4epberfWGDXV1zE= +github.com/cloudflare/circl v1.3.0/go.mod h1:+CauBF6R70Jqcyl8N2hC8pAXYbWkGIezuSbuGLtRhnw= 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= @@ -39,9 +39,9 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a h1:NmSIgad6KjE6VvHciPZuNRTKxGhlPfD6OA87W/PLkqg= -golang.org/x/crypto v0.0.0-20221012134737-56aed061732a/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.2.0 h1:BRXPfhNivWL5Yq0BGQ39a2sW6t44aODpfxkWjYdzewE= +golang.org/x/crypto v0.2.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -58,8 +58,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.0.0-20221014081412-f15817d10f9b h1:tvrvnPFcdzp294diPnrdZZZ8XUt2Tyj7svb7X52iDuU= -golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= 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/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -69,21 +69,21 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/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.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4= -golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/helpers.go new/go-sendxmpp-0.5.6/helpers.go --- old/go-sendxmpp-0.5.5/helpers.go 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/helpers.go 2022-11-11 18:24:49.000000000 +0100 @@ -10,8 +10,19 @@ "fmt" "log" "os" + "regexp" + "strings" ) +func validUTF8(s string) string { + // Remove invalid code points. + s = strings.ToValidUTF8(s, "") + reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) + s = reg.ReplaceAllString(s, "") + + return s +} + func readFile(path string) (*bytes.Buffer, error) { file, err := os.Open(path) if err != nil { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/main.go new/go-sendxmpp-0.5.6/main.go --- old/go-sendxmpp-0.5.5/main.go 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/main.go 2022-11-11 18:24:49.000000000 +0100 @@ -12,7 +12,6 @@ "log" "net" "os" - "regexp" "strings" "time" @@ -85,7 +84,7 @@ // Define command line flags. flagHelp := getopt.BoolLong("help", 0, "Show help.") - flagHTTPUpload := getopt.StringLong("http-upload", 0, "", "Send a file via http-upload.") + flagHTTPUpload := getopt.StringLong("http-upload", 'h', "", "Send a file via http-upload.") flagDebug := getopt.BoolLong("debug", 'd', "Show debugging info.") flagServer := getopt.StringLong("jserver", 'j', "", "XMPP server address.") flagUser := getopt.StringLong("username", 'u', "", "Username for XMPP account.") @@ -268,35 +267,35 @@ } // Skip reading message if '-i' or '--interactive' is set to work with e.g. 'tail -f'. - // Also for listening mode. - if !*flagInteractive && !*flagListen && *flagHTTPUpload == "" { - if message == "" { + // Also for listening mode and Ox key handling. + if !*flagInteractive && !*flagListen && *flagHTTPUpload == "" && + !*flagOxDeleteNodes && *flagOxImportPrivKey == "" && + !*flagOxGenPrivKeyX25519 && !*flagOxGenPrivKeyRSA && + message == "" { - scanner := bufio.NewScanner(os.Stdin) - for scanner.Scan() { + scanner := bufio.NewScanner(os.Stdin) + for scanner.Scan() { - if message == "" { - message = scanner.Text() - } else { - message = message + "\n" + scanner.Text() - } + if message == "" { + message = scanner.Text() + } else { + message = message + "\n" + scanner.Text() } + } - if err := scanner.Err(); err != nil { - if err != io.EOF { - log.Fatal(err) - } + if err := scanner.Err(); err != nil { + if err != io.EOF { + log.Fatal(err) } } } // Remove invalid code points. - message = strings.ToValidUTF8(message, "") - reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) - message = reg.ReplaceAllString(message, "") - + message = validUTF8(message) // Exit if message is empty. - if message == "" && !*flagInteractive && !*flagListen && *flagHTTPUpload == "" { + if message == "" && !*flagInteractive && !*flagListen && !*flagOxGenPrivKeyRSA && + !*flagOxGenPrivKeyX25519 && *flagOxImportPrivKey == "" && + !*flagOxDeleteNodes && *flagHTTPUpload == "" { os.Exit(0) } @@ -428,9 +427,7 @@ } // Remove invalid code points. - message = strings.ToValidUTF8(message, "") - reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) - message = reg.ReplaceAllString(message, "") + message = validUTF8(message) if message == "" { continue } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/man/go-sendxmpp.1 new/go-sendxmpp-0.5.6/man/go-sendxmpp.1 --- old/go-sendxmpp-0.5.5/man/go-sendxmpp.1 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/man/go-sendxmpp.1 2022-11-11 18:24:49.000000000 +0100 @@ -1,6 +1,6 @@ .\" generated with Ronn-NG/v0.9.1 .\" http://github.com/apjanke/ronn-ng/tree/0.9.1 -.TH "GO\-SENDXMPP" "1" "September 2022" "" +.TH "GO\-SENDXMPP" "1" "November 2022" "" .SH "NAME" \fBgo\-sendxmpp\fR \- A tool to send messages to an XMPP contact or MUC\. .SH "SYNOPSIS" @@ -10,63 +10,142 @@ .br You can either pipe a programs output to \fBgo\-sendxmpp\fR, write in your terminal (put \fB^D\fR in a new line to finish) or send the input from a file (\fB\-m\fR or \fB\-\-message\fR)\. The account data is expected at \fB~/\.config/go\-sendxmpp/config\fR (preferred), \fB~/\.config/go\-sendxmpp/sendxmpprc\fR (deprecated) \fB~/\.sendxmpprc\fR (for compatibility with the original perl sendxmpp) if no other configuration file location is specified with \fB\-f\fR or \fB\-\-file\fR\. .SH "OPTIONS" -\fB\-a\fR, \fB\-\-alias\fR=[\fIvalue\fR]: Set alias/nickname for chatrooms\. +.TP +\fB\-a\fR, \fB\-\-alias\fR=[\fIvalue\fR]: + +.P +Set alias/nickname for chatrooms\. +.TP +\fB\-c\fR, \fB\-\-chatroom\fR=[\fIvalue\fR]: + +.P +Send message to a chatroom\. +.TP +\fB\-d\fR, \fB\-\-debug\fR: + +.P +Show debugging info\. +.TP +\fB\-f\fR, \fB\-\-file\fR=[\fIvalue\fR]: + +.P +Set configuration file\. (Default: ~/\.config/go\-sendxmpp/config) +.TP +\fB\-\-help\fR: + +.P +Show help\. +.TP +\fB\-h\fR, \fB\-\-http\-upload=\fR[\fIvalue\fR]: + +.P +Send a file via http\-upload\. +.TP +\fB\-i\fR, \fB\-\-interactive\fR: + +.P +Interactive mode (for use with e\.g\. \fBtail \-f\fR)\. +.TP +\fB\-j\fR, \fB\-\-jserver\fR=[\fIvalue\fR]: + +.P +XMPP server address\. +.TP +\fB\-l\fR, \fB\-\-listen\fR: + +.P +Listen for messages and print them to stdout\. If JIDs are specified only messages from those contacts are shown\. If no JIDs are specified all received messages will be shown\. +.TP +\fB\-m\fR, \fB\-\-message\fR=[\fIvalue\fR]: + +.P +Set file including the message\. +.TP +\fB\-\-muc\-password\fR=[\fIvalue\fR]: + +.P +Password for password protected MUCs\. +.TP +\fB\-n\fR, \fB\-\-no\-tls\-verify\fR: + +.P +Skip verification of TLS certificates (not recommended)\. +.TP +\fB\-\-ox\fR: + .P -\fB\-c\fR, \fB\-\-chatroom\fR=[\fIvalue\fR]: Send message to a chatroom\. -.P -\fB\-d\fR, \fB\-\-debug\fR: Show debugging info\. -.P -\fB\-f\fR, \fB\-\-file\fR=[\fIvalue\fR]: Set configuration file\. (Default: ~/\.config/go\-sendxmpp/config) -.P -\fB\-\-help\fR: Show help\. -.P -\fB\-\-http\-upload=\fR[\fIvalue\fR]: Send a file via http\-upload\. -.P -\fB\-i\fR, \fB\-\-interactive\fR: Interactive mode (for use with e\.g\. \fBtail \-f\fR)\. -.P -\fB\-j\fR, \fB\-\-jserver\fR=[\fIvalue\fR]: XMPP server address\. -.P -\fB\-l\fR, \fB\-\-listen\fR: Listen for messages and print them to stdout\. If JIDs are specified only messages from those contacts are shown\. If no JIDs are specified all received messages will be shown\. -.P -\fB\-m\fR, \fB\-\-message\fR=[\fIvalue\fR]: Set file including the message\. -.P -\fB\-\-muc\-password\fR=[\fIvalue\fR]: Password for password protected MUCs\. -.P -\fB\-n\fR, \fB\-\-no\-tls\-verify\fR: Skip verification of TLS certificates (not recommended)\. -.P -\fB\-\-ox\fR: Use "OpenPGP for XMPP" encryption (experimental)\. +Use "OpenPGP for XMPP" encryption (experimental)\. .br Ox in go\-sendxmpp only supports sending encrypted 1\-1 messages\. Sending to groupchats and sending encrypted files is not supported\. There is no check whether the recipients key is trusted as there is no local keyring used\. Go\-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not expired\. As a user facing client a notification would be shown that a new key is available and ask the user whether to use the new key or stick to the old one\. As go\-sendxmpp is usually used in scripts it just accepts the new key to prevent the user from missing a new notification due to changed keys\. +.TP +\fB\-\-ox\-delete\-nodes\fR: + +.P +Delete existing OpenPGP nodes on the server\. +.TP +\fB\-\-ox\-genprivkey\-rsa\fR: + .P -\fB\-\-ox\-delete\-nodes\fR: Delete existing OpenPGP nodes on the server\. -.P -\fB\-\-ox\-genprivkey\-rsa\fR: Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or \fB\-u\fR and \fB\-p\fR) and publish the corresponding public key\. Go\-sendxmpp will save the key in \fB$XDG_DATA_HOME/go\-sendxmpp/oxprivkeys\fR or \fB$HOME/\.local/share/go\-sendxmpp/oxprivkeys\fR\. To protect the key a passphrase might be set using \fB\-\-ox\-passphrase\fR while generating the key\. +Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or \fB\-u\fR and \fB\-p\fR) and publish the corresponding public key\. Go\-sendxmpp will save the key in \fB$XDG_DATA_HOME/go\-sendxmpp/oxprivkeys\fR or \fB$HOME/\.local/share/go\-sendxmpp/oxprivkeys\fR\. To protect the key a passphrase might be set using \fB\-\-ox\-passphrase\fR while generating the key\. .br If there is an existing private key for "OpenPGP for XMPP" created by another client (e\.g\. profanity) it might be imported using \fB\-\-ox\-import\-privkey\fR\. +.TP +\fB\-\-ox\-genprivkey\-x25519\fR: + .P -\fB\-\-ox\-genprivkey\-x25519\fR: Generate a private OpenPGP key (X25519) for the configured account (via config file or \fB\-u\fR and \fB\-p\fR) and publish the corresponding public key\. Go\-sendxmpp will save the key in \fB$XDG_DATA_HOME/go\-sendxmpp/oxprivkeys\fR or \fB$HOME/\.local/share/go\-sendxmpp/oxprivkeys\fR\. To protect the key a passphrase might be set using \fB\-\-ox\-passphrase\fR while generating the key\. +Generate a private OpenPGP key (X25519) for the configured account (via config file or \fB\-u\fR and \fB\-p\fR) and publish the corresponding public key\. Go\-sendxmpp will save the key in \fB$XDG_DATA_HOME/go\-sendxmpp/oxprivkeys\fR or \fB$HOME/\.local/share/go\-sendxmpp/oxprivkeys\fR\. To protect the key a passphrase might be set using \fB\-\-ox\-passphrase\fR while generating the key\. .br If there is an existing private key for "OpenPGP for XMPP" created by another client (e\.g\. profanity) it might be imported using \fB\-\-ox\-import\-privkey\fR\. +.TP +\fB\-\-ox\-import\-privkey\fR=[\fIvalue\fR]: + +.P +Import an existing private OpenPGP key\. +.TP +\fB\-\-ox\-passphrase\fR=[\fIvalue\fR]: + +.P +Passphrase for locking and unlocking the private OpenPGP key\. +.TP +\fB\-\-tls\-version\fR=[\fIvalue\fR]: + +.P +Minimal TLS version\. 10 (TLSv1\.0), 11 (TLSv1\.1), 12 (TLSv1\.2), 13 (TLSv1\.3) (Default: 12) +.TP +\fB\-p\fR, \fB\-\-password\fR=[\fIvalue\fR]: + +.P +Password for XMPP account\. +.TP +\fB\-\-raw\fR: + +.P +Send raw XML\. To send raw XML to a contact as normal chat message no contact must be specified\. To send raw XML to a MUC you have to specify the MUC via \fB\-c\fR and go\-sendxmpp will join the MUC\. +.TP +\fB\-r\fR, \fB\-\-resource\fR=[\fIvalue\fR]: + +.P +DEPRECATED: Set resource\. When sending to a chatroom this is used as 'alias'\. +.TP +\fB\-\-timeout=\fR[\fIvalue\fR]: + +.P +Connection timeout in seconds\. (Default: 10) +.TP +\fB\-t\fR, \fB\-\-tls\fR: + +.P +Use direct TLS\. +.TP +\fB\-u\fR, \fB\-\-username\fR=[\fIvalue\fR]: + +.P +Username for XMPP account (JID)\. +.TP +\fB\-\-version\fR: + .P -\fB\-\-ox\-import\-privkey\fR=[\fIvalue\fR]: Import an existing private OpenPGP key\. -.P -\fB\-\-ox\-passphrase\fR=[\fIvalue\fR]: Passphrase for locking and unlocking the private OpenPGP key\. -.P -\fB\-\-tls\-version\fR=[\fIvalue\fR]: Minimal TLS version\. 10 (TLSv1\.0), 11 (TLSv1\.1), 12 (TLSv1\.2), 13 (TLSv1\.3) (Default: 12) -.P -\fB\-p\fR, \fB\-\-password\fR=[\fIvalue\fR]: Password for XMPP account\. -.P -\fB\-\-raw\fR: Send raw XML\. To send raw XML to a contact as normal chat message no contact must be specified\. To send raw XML to a MUC you have to specify the MUC via \fB\-c\fR and go\-sendxmpp will join the MUC\. -.P -\fB\-r\fR, \fB\-\-resource\fR=[\fIvalue\fR]: DEPRECATED: Set resource\. When sending to a chatroom this is used as 'alias'\. -.P -\fB\-\-timeout=\fR[\fIvalue\fR]: Connection timeout in seconds\. (Default: 10) -.P -\fB\-t\fR, \fB\-\-tls\fR: Use direct TLS\. -.P -\fB\-u\fR, \fB\-\-username\fR=[\fIvalue\fR]: Username for XMPP account (JID)\. -.P -\fB\-\-version\fR: Show version information\. +Show version information\. .SH "CHAT" Feel free to join \fIhttps://join\.jabber\.network/#go\-sendxmpp@chat\.mdosch\.de?join\fR\. .SH "AUTHOR" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/man/go-sendxmpp.1.html new/go-sendxmpp-0.5.6/man/go-sendxmpp.1.html --- old/go-sendxmpp-0.5.5/man/go-sendxmpp.1.html 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/man/go-sendxmpp.1.html 2022-11-11 18:24:49.000000000 +0100 @@ -91,104 +91,235 @@ <h2 id="OPTIONS">OPTIONS</h2> -<p><code>-a</code>, <code>--alias</code>=[<var>value</var>]: - Set alias/nickname for chatrooms.</p> +<dl> +<dt> +<code>-a</code>, <code>--alias</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Set alias/nickname for chatrooms.</p> + +<dl> +<dt> +<code>-c</code>, <code>--chatroom</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Send message to a chatroom.</p> + +<dl> +<dt> +<code>-d</code>, <code>--debug</code>:</dt> +<dd></dd> +</dl> + +<p>Show debugging info.</p> + +<dl> +<dt> +<code>-f</code>, <code>--file</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Set configuration file. (Default: ~/.config/go-sendxmpp/config)</p> + +<dl> +<dt> +<code>--help</code>:</dt> +<dd></dd> +</dl> + +<p>Show help.</p> + +<dl> +<dt> +<code>-h</code>, <code>--http-upload=</code>[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Send a file via http-upload.</p> + +<dl> +<dt> +<code>-i</code>, <code>--interactive</code>:</dt> +<dd></dd> +</dl> + +<p>Interactive mode (for use with e.g. <code>tail -f</code>).</p> + +<dl> +<dt> +<code>-j</code>, <code>--jserver</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>XMPP server address.</p> + +<dl> +<dt> +<code>-l</code>, <code>--listen</code>:</dt> +<dd></dd> +</dl> + +<p>Listen for messages and print them to stdout. If JIDs are specified only messages from those contacts +are shown. If no JIDs are specified all received messages will be shown.</p> + +<dl> +<dt> +<code>-m</code>, <code>--message</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Set file including the message.</p> + +<dl> +<dt> +<code>--muc-password</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Password for password protected MUCs.</p> + +<dl> +<dt> +<code>-n</code>, <code>--no-tls-verify</code>:</dt> +<dd></dd> +</dl> + +<p>Skip verification of TLS certificates (not recommended).</p> + +<dl> +<dt> +<code>--ox</code>:</dt> +<dd></dd> +</dl> + +<p>Use "OpenPGP for XMPP" encryption (experimental). <br> +Ox in go-sendxmpp only supports sending encrypted 1-1 messages. Sending to groupchats and +sending encrypted files is not supported. +There is no check whether the recipients key is trusted as there is no local keyring used. +Go-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not +expired. As a user facing client a notification would be shown that a new key is available and +ask the user whether to use the new key or stick to the old one. As go-sendxmpp is usually +used in scripts it just accepts the new key to prevent the user from missing a new notification +due to changed keys.</p> + +<dl> +<dt> +<code>--ox-delete-nodes</code>:</dt> +<dd></dd> +</dl> + +<p>Delete existing OpenPGP nodes on the server.</p> + +<dl> +<dt> +<code>--ox-genprivkey-rsa</code>:</dt> +<dd></dd> +</dl> + +<p>Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or <code>-u</code> and <code>-p</code>) +and publish the corresponding public key. +Go-sendxmpp will save the key in <code>$XDG_DATA_HOME/go-sendxmpp/oxprivkeys</code> or +<code>$HOME/.local/share/go-sendxmpp/oxprivkeys</code>. To protect the key a passphrase might be set +using <code>--ox-passphrase</code> while generating the key. <br> +If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) +it might be imported using <code>--ox-import-privkey</code>.</p> + +<dl> +<dt> +<code>--ox-genprivkey-x25519</code>:</dt> +<dd></dd> +</dl> + +<p>Generate a private OpenPGP key (X25519) for the configured account (via config file or <code>-u</code> and <code>-p</code>) +and publish the corresponding public key. +Go-sendxmpp will save the key in <code>$XDG_DATA_HOME/go-sendxmpp/oxprivkeys</code> or +<code>$HOME/.local/share/go-sendxmpp/oxprivkeys</code>. To protect the key a passphrase might be set +using <code>--ox-passphrase</code> while generating the key. <br> +If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) +it might be imported using <code>--ox-import-privkey</code>.</p> + +<dl> +<dt> +<code>--ox-import-privkey</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Import an existing private OpenPGP key.</p> + +<dl> +<dt> +<code>--ox-passphrase</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Passphrase for locking and unlocking the private OpenPGP key.</p> + +<dl> +<dt> +<code>--tls-version</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13 (TLSv1.3) (Default: 12)</p> + +<dl> +<dt> +<code>-p</code>, <code>--password</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Password for XMPP account.</p> + +<dl> +<dt> +<code>--raw</code>:</dt> +<dd></dd> +</dl> + +<p>Send raw XML. To send raw XML to a contact as normal chat message no contact must be specified. +To send raw XML to a MUC you have to specify the MUC via <code>-c</code> and go-sendxmpp will join the MUC.</p> + +<dl> +<dt> +<code>-r</code>, <code>--resource</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'.</p> + +<dl> +<dt> +<code>--timeout=</code>[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Connection timeout in seconds. (Default: 10)</p> + +<dl> +<dt> +<code>-t</code>, <code>--tls</code>:</dt> +<dd></dd> +</dl> + +<p>Use direct TLS.</p> + +<dl> +<dt> +<code>-u</code>, <code>--username</code>=[<var>value</var>]:</dt> +<dd></dd> +</dl> + +<p>Username for XMPP account (JID).</p> + +<dl> +<dt> +<code>--version</code>:</dt> +<dd></dd> +</dl> -<p><code>-c</code>, <code>--chatroom</code>=[<var>value</var>]: - Send message to a chatroom.</p> - -<p><code>-d</code>, <code>--debug</code>: - Show debugging info.</p> - -<p><code>-f</code>, <code>--file</code>=[<var>value</var>]: - Set configuration file. (Default: ~/.config/go-sendxmpp/config)</p> - -<p><code>--help</code>: - Show help.</p> - -<p><code>--http-upload=</code>[<var>value</var>]: - Send a file via http-upload.</p> - -<p><code>-i</code>, <code>--interactive</code>: - Interactive mode (for use with e.g. <code>tail -f</code>).</p> - -<p><code>-j</code>, <code>--jserver</code>=[<var>value</var>]: - XMPP server address.</p> - -<p><code>-l</code>, <code>--listen</code>: - Listen for messages and print them to stdout. If JIDs are specified only messages from those contacts - are shown. If no JIDs are specified all received messages will be shown.</p> - -<p><code>-m</code>, <code>--message</code>=[<var>value</var>]: - Set file including the message.</p> - -<p><code>--muc-password</code>=[<var>value</var>]: - Password for password protected MUCs.</p> - -<p><code>-n</code>, <code>--no-tls-verify</code>: - Skip verification of TLS certificates (not recommended).</p> - -<p><code>--ox</code>: - Use "OpenPGP for XMPP" encryption (experimental). <br> - Ox in go-sendxmpp only supports sending encrypted 1-1 messages. Sending to groupchats and - sending encrypted files is not supported. - There is no check whether the recipients key is trusted as there is no local keyring used. - Go-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not - expired. As a user facing client a notification would be shown that a new key is available and - ask the user whether to use the new key or stick to the old one. As go-sendxmpp is usually - used in scripts it just accepts the new key to prevent the user from missing a new notification - due to changed keys.</p> - -<p><code>--ox-delete-nodes</code>: - Delete existing OpenPGP nodes on the server.</p> - -<p><code>--ox-genprivkey-rsa</code>: - Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or <code>-u</code> and <code>-p</code>) - and publish the corresponding public key. - Go-sendxmpp will save the key in <code>$XDG_DATA_HOME/go-sendxmpp/oxprivkeys</code> or - <code>$HOME/.local/share/go-sendxmpp/oxprivkeys</code>. To protect the key a passphrase might be set - using <code>--ox-passphrase</code> while generating the key. <br> - If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) - it might be imported using <code>--ox-import-privkey</code>.</p> - -<p><code>--ox-genprivkey-x25519</code>: - Generate a private OpenPGP key (X25519) for the configured account (via config file or <code>-u</code> and <code>-p</code>) - and publish the corresponding public key. - Go-sendxmpp will save the key in <code>$XDG_DATA_HOME/go-sendxmpp/oxprivkeys</code> or - <code>$HOME/.local/share/go-sendxmpp/oxprivkeys</code>. To protect the key a passphrase might be set - using <code>--ox-passphrase</code> while generating the key. <br> - If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) - it might be imported using <code>--ox-import-privkey</code>.</p> - -<p><code>--ox-import-privkey</code>=[<var>value</var>]: - Import an existing private OpenPGP key.</p> - -<p><code>--ox-passphrase</code>=[<var>value</var>]: - Passphrase for locking and unlocking the private OpenPGP key.</p> - -<p><code>--tls-version</code>=[<var>value</var>]: - Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13 (TLSv1.3) (Default: 12)</p> - -<p><code>-p</code>, <code>--password</code>=[<var>value</var>]: - Password for XMPP account.</p> - -<p><code>--raw</code>: - Send raw XML. To send raw XML to a contact as normal chat message no contact must be specified. - To send raw XML to a MUC you have to specify the MUC via <code>-c</code> and go-sendxmpp will join the MUC.</p> - -<p><code>-r</code>, <code>--resource</code>=[<var>value</var>]: - DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'.</p> - -<p><code>--timeout=</code>[<var>value</var>]: - Connection timeout in seconds. (Default: 10)</p> - -<p><code>-t</code>, <code>--tls</code>: - Use direct TLS.</p> - -<p><code>-u</code>, <code>--username</code>=[<var>value</var>]: - Username for XMPP account (JID).</p> - -<p><code>--version</code>: Show version information.</p> +<p>Show version information.</p> <h2 id="CHAT">CHAT</h2> @@ -213,7 +344,7 @@ <ol class='man-decor man-foot man foot'> <li class='tl'></li> - <li class='tc'>September 2022</li> + <li class='tc'>November 2022</li> <li class='tr'>go-sendxmpp(1)</li> </ol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/man/go-sendxmpp.1.ronn new/go-sendxmpp-0.5.6/man/go-sendxmpp.1.ronn --- old/go-sendxmpp-0.5.5/man/go-sendxmpp.1.ronn 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/man/go-sendxmpp.1.ronn 2022-11-11 18:24:49.000000000 +0100 @@ -16,104 +16,131 @@ ## OPTIONS - `-a`, `--alias`=[<value>]: - Set alias/nickname for chatrooms. +* `-a`, `--alias`=[<value>]: - `-c`, `--chatroom`=[<value>]: - Send message to a chatroom. +Set alias/nickname for chatrooms. - `-d`, `--debug`: - Show debugging info. +* `-c`, `--chatroom`=[<value>]: - `-f`, `--file`=[<value>]: - Set configuration file. (Default: ~/.config/go-sendxmpp/config) +Send message to a chatroom. - `--help`: - Show help. +* `-d`, `--debug`: - `--http-upload=`[<value>]: - Send a file via http-upload. +Show debugging info. - `-i`, `--interactive`: - Interactive mode (for use with e.g. `tail -f`). +* `-f`, `--file`=[<value>]: - `-j`, `--jserver`=[<value>]: - XMPP server address. +Set configuration file. (Default: ~/.config/go-sendxmpp/config) - `-l`, `--listen`: - Listen for messages and print them to stdout. If JIDs are specified only messages from those contacts - are shown. If no JIDs are specified all received messages will be shown. +* `--help`: - `-m`, `--message`=[<value>]: - Set file including the message. +Show help. - `--muc-password`=[<value>]: - Password for password protected MUCs. +* `-h`, `--http-upload=`[<value>]: - `-n`, `--no-tls-verify`: - Skip verification of TLS certificates (not recommended). +Send a file via http-upload. - `--ox`: - Use "OpenPGP for XMPP" encryption (experimental). - Ox in go-sendxmpp only supports sending encrypted 1-1 messages. Sending to groupchats and - sending encrypted files is not supported. - There is no check whether the recipients key is trusted as there is no local keyring used. - Go-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not - expired. As a user facing client a notification would be shown that a new key is available and - ask the user whether to use the new key or stick to the old one. As go-sendxmpp is usually - used in scripts it just accepts the new key to prevent the user from missing a new notification - due to changed keys. +* `-i`, `--interactive`: - `--ox-delete-nodes`: - Delete existing OpenPGP nodes on the server. +Interactive mode (for use with e.g. `tail -f`). - `--ox-genprivkey-rsa`: - Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or `-u` and `-p`) - and publish the corresponding public key. - Go-sendxmpp will save the key in `$XDG_DATA_HOME/go-sendxmpp/oxprivkeys` or - `$HOME/.local/share/go-sendxmpp/oxprivkeys`. To protect the key a passphrase might be set - using `--ox-passphrase` while generating the key. - If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) - it might be imported using `--ox-import-privkey`. +* `-j`, `--jserver`=[<value>]: - `--ox-genprivkey-x25519`: - Generate a private OpenPGP key (X25519) for the configured account (via config file or `-u` and `-p`) - and publish the corresponding public key. - Go-sendxmpp will save the key in `$XDG_DATA_HOME/go-sendxmpp/oxprivkeys` or - `$HOME/.local/share/go-sendxmpp/oxprivkeys`. To protect the key a passphrase might be set - using `--ox-passphrase` while generating the key. - If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) - it might be imported using `--ox-import-privkey`. +XMPP server address. - `--ox-import-privkey`=[<value>]: - Import an existing private OpenPGP key. +* `-l`, `--listen`: - `--ox-passphrase`=[<value>]: - Passphrase for locking and unlocking the private OpenPGP key. +Listen for messages and print them to stdout. If JIDs are specified only messages from those contacts +are shown. If no JIDs are specified all received messages will be shown. - `--tls-version`=[<value>]: - Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13 (TLSv1.3) (Default: 12) +* `-m`, `--message`=[<value>]: - `-p`, `--password`=[<value>]: - Password for XMPP account. +Set file including the message. - `--raw`: - Send raw XML. To send raw XML to a contact as normal chat message no contact must be specified. - To send raw XML to a MUC you have to specify the MUC via `-c` and go-sendxmpp will join the MUC. +* `--muc-password`=[<value>]: - `-r`, `--resource`=[<value>]: - DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'. +Password for password protected MUCs. - `--timeout=`[<value>]: - Connection timeout in seconds. (Default: 10) +* `-n`, `--no-tls-verify`: - `-t`, `--tls`: - Use direct TLS. +Skip verification of TLS certificates (not recommended). - `-u`, `--username`=[<value>]: - Username for XMPP account (JID). +* `--ox`: - `--version`: Show version information. +Use "OpenPGP for XMPP" encryption (experimental). +Ox in go-sendxmpp only supports sending encrypted 1-1 messages. Sending to groupchats and +sending encrypted files is not supported. +There is no check whether the recipients key is trusted as there is no local keyring used. +Go-sendxmpp just uses the most recent key that is provided via pubsub and checks that it is not +expired. As a user facing client a notification would be shown that a new key is available and +ask the user whether to use the new key or stick to the old one. As go-sendxmpp is usually +used in scripts it just accepts the new key to prevent the user from missing a new notification +due to changed keys. + +* `--ox-delete-nodes`: + +Delete existing OpenPGP nodes on the server. + +* `--ox-genprivkey-rsa`: + +Generate a private OpenPGP key (RSA 4096 bit) for the configured account (via config file or `-u` and `-p`) +and publish the corresponding public key. +Go-sendxmpp will save the key in `$XDG_DATA_HOME/go-sendxmpp/oxprivkeys` or +`$HOME/.local/share/go-sendxmpp/oxprivkeys`. To protect the key a passphrase might be set +using `--ox-passphrase` while generating the key. +If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) +it might be imported using `--ox-import-privkey`. + +* `--ox-genprivkey-x25519`: + +Generate a private OpenPGP key (X25519) for the configured account (via config file or `-u` and `-p`) +and publish the corresponding public key. +Go-sendxmpp will save the key in `$XDG_DATA_HOME/go-sendxmpp/oxprivkeys` or +`$HOME/.local/share/go-sendxmpp/oxprivkeys`. To protect the key a passphrase might be set +using `--ox-passphrase` while generating the key. +If there is an existing private key for "OpenPGP for XMPP" created by another client (e.g. profanity) +it might be imported using `--ox-import-privkey`. + +* `--ox-import-privkey`=[<value>]: + +Import an existing private OpenPGP key. + +* `--ox-passphrase`=[<value>]: + +Passphrase for locking and unlocking the private OpenPGP key. + +* `--tls-version`=[<value>]: + +Minimal TLS version. 10 (TLSv1.0), 11 (TLSv1.1), 12 (TLSv1.2), 13 (TLSv1.3) (Default: 12) + +* `-p`, `--password`=[<value>]: + +Password for XMPP account. + +* `--raw`: + +Send raw XML. To send raw XML to a contact as normal chat message no contact must be specified. +To send raw XML to a MUC you have to specify the MUC via `-c` and go-sendxmpp will join the MUC. + +* `-r`, `--resource`=[<value>]: + +DEPRECATED: Set resource. When sending to a chatroom this is used as 'alias'. + +* `--timeout=`[<value>]: + +Connection timeout in seconds. (Default: 10) + +* `-t`, `--tls`: + +Use direct TLS. + +* `-u`, `--username`=[<value>]: + +Username for XMPP account (JID). + +* `--version`: + +Show version information. ## CHAT diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/go-sendxmpp-0.5.5/ox.go new/go-sendxmpp-0.5.6/ox.go --- old/go-sendxmpp-0.5.5/ox.go 2022-10-16 11:58:37.000000000 +0200 +++ new/go-sendxmpp-0.5.6/ox.go 2022-11-11 18:24:49.000000000 +0100 @@ -9,7 +9,6 @@ "errors" "log" "os" - "regexp" "runtime" "strings" "time" @@ -99,9 +98,7 @@ return "error", time.Now(), err } // Remove invalid code points. - message := strings.ToValidUTF8(string(decryptMsg.Data), "") - reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) - message = reg.ReplaceAllString(message, "") + message := validUTF8(string(decryptMsg.Data)) doc := etree.NewDocument() err = doc.ReadFromString(message) if err != nil { ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go new/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go --- old/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/opaque.go 2022-11-13 21:12:06.000000000 +0100 @@ -84,8 +84,9 @@ // OpaqueSubpacket represents an unparsed OpenPGP subpacket, // as found in signature and user attribute packets. type OpaqueSubpacket struct { - SubType uint8 - Contents []byte + SubType uint8 + EncodedLength []byte // Store the original encoded length for signature verifications. + Contents []byte } // OpaqueSubpackets extracts opaque, unparsed OpenPGP subpackets from @@ -109,6 +110,7 @@ func nextSubpacket(contents []byte) (subHeaderLen int, subPacket *OpaqueSubpacket, err error) { // RFC 4880, section 5.2.3.1 var subLen uint32 + var encodedLength []byte if len(contents) < 1 { goto Truncated } @@ -119,6 +121,7 @@ if len(contents) < subHeaderLen { goto Truncated } + encodedLength = contents[0:1] subLen = uint32(contents[0]) contents = contents[1:] case contents[0] < 255: @@ -126,6 +129,7 @@ if len(contents) < subHeaderLen { goto Truncated } + encodedLength = contents[0:2] subLen = uint32(contents[0]-192)<<8 + uint32(contents[1]) + 192 contents = contents[2:] default: @@ -133,16 +137,19 @@ if len(contents) < subHeaderLen { goto Truncated } + encodedLength = contents[0:5] subLen = uint32(contents[1])<<24 | uint32(contents[2])<<16 | uint32(contents[3])<<8 | uint32(contents[4]) contents = contents[5:] + } if subLen > uint32(len(contents)) || subLen == 0 { goto Truncated } subPacket.SubType = contents[0] + subPacket.EncodedLength = encodedLength subPacket.Contents = contents[1:subLen] return Truncated: @@ -152,7 +159,9 @@ func (osp *OpaqueSubpacket) Serialize(w io.Writer) (err error) { buf := make([]byte, 6) - n := serializeSubpacketLength(buf, len(osp.Contents)+1) + copy(buf, osp.EncodedLength) + n := len(osp.EncodedLength) + buf[n] = osp.SubType if _, err = w.Write(buf[:n+1]); err != nil { return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go new/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go --- old/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/ProtonMail/go-crypto/openpgp/packet/userattribute.go 2022-11-13 21:12:06.000000000 +0100 @@ -42,9 +42,16 @@ if err = jpeg.Encode(&buf, photo, nil); err != nil { return } + + lengthBuf := make([]byte, 5) + n := serializeSubpacketLength(lengthBuf, len(buf.Bytes())+1) + lengthBuf = lengthBuf[:n] + uat.Contents = append(uat.Contents, &OpaqueSubpacket{ - SubType: UserAttrImageSubpacket, - Contents: buf.Bytes()}) + SubType: UserAttrImageSubpacket, + EncodedLength: lengthBuf, + Contents: buf.Bytes(), + }) } return } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/ProtonMail/go-mime/parser.go new/vendor/github.com/ProtonMail/go-mime/parser.go --- old/vendor/github.com/ProtonMail/go-mime/parser.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/ProtonMail/go-mime/parser.go 2022-11-13 21:12:06.000000000 +0100 @@ -180,7 +180,7 @@ headers = []textproto.MIMEHeader{} var p *multipart.Part for { - p, err = mr.NextPart() + p, err = mr.NextRawPart() if err == io.EOF { err = nil break diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/dh/x25519/doc.go new/vendor/github.com/cloudflare/circl/dh/x25519/doc.go --- old/vendor/github.com/cloudflare/circl/dh/x25519/doc.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/dh/x25519/doc.go 2022-11-13 21:12:06.000000000 +0100 @@ -11,10 +11,9 @@ is a low-order point). References: - - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) - - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) - - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) - - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) - + - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) + - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) + - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) + - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) */ package x25519 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/dh/x25519/table.go new/vendor/github.com/cloudflare/circl/dh/x25519/table.go --- old/vendor/github.com/cloudflare/circl/dh/x25519/table.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/dh/x25519/table.go 2022-11-13 21:12:06.000000000 +0100 @@ -3,7 +3,9 @@ import "github.com/cloudflare/circl/math/fp25519" // tableGenerator contains the set of points: -// t[i] = (xi+1)/(xi-1), +// +// t[i] = (xi+1)/(xi-1), +// // where (xi,yi) = 2^iG and G is the generator point // Size = (256)*(256/8) = 8192 bytes. var tableGenerator = [256 * fp25519.Size]byte{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/dh/x448/doc.go new/vendor/github.com/cloudflare/circl/dh/x448/doc.go --- old/vendor/github.com/cloudflare/circl/dh/x448/doc.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/dh/x448/doc.go 2022-11-13 21:12:06.000000000 +0100 @@ -11,10 +11,9 @@ is a low-order point). References: - - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) - - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) - - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) - - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) - + - [1] RFC7748 by Langley, Hamburg, Turner (https://rfc-editor.org/rfc/rfc7748.txt) + - [2] Curve25519 by Bernstein (https://cr.yp.to/ecdh.html) + - [3] Bernstein (https://cr.yp.to/ecdh.html#validate) + - [4] Cremers&Jackson (https://eprint.iacr.org/2019/526) */ package x448 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/dh/x448/table.go new/vendor/github.com/cloudflare/circl/dh/x448/table.go --- old/vendor/github.com/cloudflare/circl/dh/x448/table.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/dh/x448/table.go 2022-11-13 21:12:06.000000000 +0100 @@ -3,7 +3,9 @@ import fp "github.com/cloudflare/circl/math/fp448" // tableGenerator contains the set of points: -// t[i] = (xi+1)/(xi-1), +// +// t[i] = (xi+1)/(xi-1), +// // where (xi,yi) = 2^iG and G is the generator point // Size = (448)*(448/8) = 25088 bytes. var tableGenerator = [448 * fp.Size]byte{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go new/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go --- old/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/ecc/goldilocks/scalar.go 2022-11-13 21:12:06.000000000 +0100 @@ -8,7 +8,7 @@ // ScalarSize is the size (in bytes) of scalars. const ScalarSize = 56 // 448 / 8 -//_N is the number of 64-bit words to store scalars. +// _N is the number of 64-bit words to store scalars. const _N = 7 // 448 / 64 // Scalar represents a positive integer stored in little-endian order. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/internal/sha3/doc.go new/vendor/github.com/cloudflare/circl/internal/sha3/doc.go --- old/vendor/github.com/cloudflare/circl/internal/sha3/doc.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/internal/sha3/doc.go 2022-11-13 21:12:06.000000000 +0100 @@ -8,8 +8,7 @@ // Both types of hash function use the "sponge" construction and the Keccak // permutation. For a detailed specification see http://keccak.noekeon.org/ // -// -// Guidance +// # Guidance // // If you aren't sure what function you need, use SHAKE256 with at least 64 // bytes of output. The SHAKE instances are faster than the SHA3 instances; @@ -19,8 +18,7 @@ // secret key to the input, hash with SHAKE256 and read at least 32 bytes of // output. // -// -// Security strengths +// # Security strengths // // The SHA3-x (x equals 224, 256, 384, or 512) functions have a security // strength against preimage attacks of x bits. Since they only produce "x" @@ -31,8 +29,7 @@ // is used. Requesting more than 64 or 32 bytes of output, respectively, does // not increase the collision-resistance of the SHAKE functions. // -// -// The sponge construction +// # The sponge construction // // A sponge builds a pseudo-random function from a public pseudo-random // permutation, by applying the permutation to a state of "rate + capacity" @@ -50,8 +47,7 @@ // Since the KeccakF-1600 permutation is 1600 bits (200 bytes) wide, this means // that the security strength of a sponge instance is equal to (1600 - bitrate) / 2. // -// -// Recommendations +// # Recommendations // // The SHAKE functions are recommended for most new uses. They can produce // output of arbitrary length. SHAKE256, with an output length of at least diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go new/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go --- old/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/math/fp448/fuzzer.go 2022-11-13 21:12:06.000000000 +0100 @@ -2,11 +2,12 @@ // +build gofuzz // How to run the fuzzer: -// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz -// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz-build -// $ go-fuzz-build -libfuzzer -func FuzzReduction -o lib.a -// $ clang -fsanitize=fuzzer lib.a -o fu.exe -// $ ./fu.exe +// +// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz +// $ go get -u github.com/dvyukov/go-fuzz/go-fuzz-build +// $ go-fuzz-build -libfuzzer -func FuzzReduction -o lib.a +// $ clang -fsanitize=fuzzer lib.a -o fu.exe +// $ ./fu.exe package fp448 import ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go new/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go --- old/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/math/mlsbset/mlsbset.go 2022-11-13 21:12:06.000000000 +0100 @@ -2,8 +2,8 @@ // // References: "Efficient and secure algorithms for GLV-based scalar // multiplication and their implementation on GLVâGLS curves" by (Faz-Hernandez et al.) -// - https://doi.org/10.1007/s13389-014-0085-7 -// - https://eprint.iacr.org/2013/158 +// - https://doi.org/10.1007/s13389-014-0085-7 +// - https://eprint.iacr.org/2013/158 package mlsbset import ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/math/wnaf.go new/vendor/github.com/cloudflare/circl/math/wnaf.go --- old/vendor/github.com/cloudflare/circl/math/wnaf.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/math/wnaf.go 2022-11-13 21:12:06.000000000 +0100 @@ -9,15 +9,15 @@ // output has ceil(l/(w-1)) digits. // // Restrictions: -// - n is odd and n > 0. -// - 1 < w < 32. -// - l >= bit length of n. +// - n is odd and n > 0. +// - 1 < w < 32. +// - l >= bit length of n. // // References: -// - Alg.6 in "Exponent Recoding and Regular Exponentiation Algorithms" -// by Joye-Tunstall. http://doi.org/10.1007/978-3-642-02384-2_21 -// - Alg.6 in "Selecting Elliptic Curves for Cryptography: An Efficiency and -// Security Analysis" by Bos et al. http://doi.org/10.1007/s13389-015-0097-y +// - Alg.6 in "Exponent Recoding and Regular Exponentiation Algorithms" +// by Joye-Tunstall. http://doi.org/10.1007/978-3-642-02384-2_21 +// - Alg.6 in "Selecting Elliptic Curves for Cryptography: An Efficiency and +// Security Analysis" by Bos et al. http://doi.org/10.1007/s13389-015-0097-y func SignedDigit(n *big.Int, w, l uint) []int32 { if n.Sign() <= 0 || n.Bit(0) == 0 { panic("n must be non-zero, odd, and positive") @@ -51,8 +51,8 @@ // 1 < w < 32. The returned slice L holds n = sum( L[i]*2^i ). // // Reference: -// - Alg.9 "Efficient arithmetic on Koblitz curves" by Solinas. -// http://doi.org/10.1023/A:1008306223194 +// - Alg.9 "Efficient arithmetic on Koblitz curves" by Solinas. +// http://doi.org/10.1023/A:1008306223194 func OmegaNAF(n *big.Int, w uint) (L []int32) { if n.Sign() < 0 { panic("n must be positive") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go new/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go --- old/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/sign/ed25519/ed25519.go 2022-11-13 21:12:06.000000000 +0100 @@ -3,12 +3,12 @@ // This package provides optimized implementations of the three signature // variants and maintaining closer compatiblilty with crypto/ed25519. // -// | Scheme Name | Sign Function | Verification | Context | -// |-------------|-------------------|---------------|-------------------| -// | Ed25519 | Sign | Verify | None | -// | Ed25519Ph | SignPh | VerifyPh | Yes, can be empty | -// | Ed25519Ctx | SignWithCtx | VerifyWithCtx | Yes, non-empty | -// | All above | (PrivateKey).Sign | VerifyAny | As above | +// | Scheme Name | Sign Function | Verification | Context | +// |-------------|-------------------|---------------|-------------------| +// | Ed25519 | Sign | Verify | None | +// | Ed25519Ph | SignPh | VerifyPh | Yes, can be empty | +// | Ed25519Ctx | SignWithCtx | VerifyWithCtx | Yes, non-empty | +// | All above | (PrivateKey).Sign | VerifyAny | As above | // // Specific functions for sign and verify are defined. A generic signing // function for all schemes is available through the crypto.Signer interface, @@ -20,7 +20,7 @@ // in this package. While Ed25519Ph accepts an empty context, Ed25519Ctx // enforces non-empty context strings. // -// Compatibility with crypto.ed25519 +// # Compatibility with crypto.ed25519 // // These functions are compatible with the âEd25519â function defined in // RFC-8032. However, unlike RFC 8032's formulation, this package's private @@ -30,9 +30,9 @@ // // References // -// - RFC-8032: https://rfc-editor.org/rfc/rfc8032.txt -// - Ed25519: https://ed25519.cr.yp.to/ -// - EdDSA: High-speed high-security signatures. https://doi.org/10.1007/s13389-012-0027-1 +// - RFC-8032: https://rfc-editor.org/rfc/rfc8032.txt +// - Ed25519: https://ed25519.cr.yp.to/ +// - EdDSA: High-speed high-security signatures. https://doi.org/10.1007/s13389-012-0027-1 package ed25519 import ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go new/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go --- old/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/sign/ed25519/mult.go 2022-11-13 21:12:06.000000000 +0100 @@ -29,9 +29,10 @@ // mLSBRecoding is the odd-only modified LSB-set. // // Reference: -// "Efficient and secure algorithms for GLV-based scalar multiplication and -// their implementation on GLVâGLS curves" by (Faz-Hernandez et al.) -// http://doi.org/10.1007/s13389-014-0085-7. +// +// "Efficient and secure algorithms for GLV-based scalar multiplication and +// their implementation on GLVâGLS curves" by (Faz-Hernandez et al.) +// http://doi.org/10.1007/s13389-014-0085-7. func mLSBRecoding(L []int8, k []byte) { const ee = (fxT + fxW*fxV - 1) / (fxW * fxV) const dd = ee * fxV diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go new/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go --- old/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/sign/ed448/ed448.go 2022-11-13 21:12:06.000000000 +0100 @@ -2,11 +2,11 @@ // // This package implements two signature variants. // -// | Scheme Name | Sign Function | Verification | Context | -// |-------------|-------------------|---------------|-------------------| -// | Ed448 | Sign | Verify | Yes, can be empty | -// | Ed448Ph | SignPh | VerifyPh | Yes, can be empty | -// | All above | (PrivateKey).Sign | VerifyAny | As above | +// | Scheme Name | Sign Function | Verification | Context | +// |-------------|-------------------|---------------|-------------------| +// | Ed448 | Sign | Verify | Yes, can be empty | +// | Ed448Ph | SignPh | VerifyPh | Yes, can be empty | +// | All above | (PrivateKey).Sign | VerifyAny | As above | // // Specific functions for sign and verify are defined. A generic signing // function for all schemes is available through the crypto.Signer interface, @@ -18,9 +18,9 @@ // // References: // -// - RFC8032 https://rfc-editor.org/rfc/rfc8032.txt -// - EdDSA for more curves https://eprint.iacr.org/2015/677 -// - High-speed high-security signatures. https://doi.org/10.1007/s13389-012-0027-1 +// - RFC8032: https://rfc-editor.org/rfc/rfc8032.txt +// - EdDSA for more curves: https://eprint.iacr.org/2015/677 +// - High-speed high-security signatures: https://doi.org/10.1007/s13389-012-0027-1 package ed448 import ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/cloudflare/circl/sign/sign.go new/vendor/github.com/cloudflare/circl/sign/sign.go --- old/vendor/github.com/cloudflare/circl/sign/sign.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/github.com/cloudflare/circl/sign/sign.go 2022-11-13 21:12:06.000000000 +0100 @@ -2,7 +2,7 @@ // // A register of schemes is available in the package // -// github.com/cloudflare/circl/sign/schemes +// github.com/cloudflare/circl/sign/schemes package sign import ( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/crypto/cast5/cast5.go new/vendor/golang.org/x/crypto/cast5/cast5.go --- old/vendor/golang.org/x/crypto/cast5/cast5.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/crypto/cast5/cast5.go 2022-11-13 21:12:06.000000000 +0100 @@ -13,7 +13,10 @@ // golang.org/x/crypto/chacha20poly1305). package cast5 // import "golang.org/x/crypto/cast5" -import "errors" +import ( + "errors" + "math/bits" +) const BlockSize = 8 const KeySize = 16 @@ -241,19 +244,19 @@ // These are the three 'f' functions. See RFC 2144, section 2.2. func f1(d, m uint32, r uint8) uint32 { t := m + d - I := (t << r) | (t >> (32 - r)) + I := bits.RotateLeft32(t, int(r)) return ((sBox[0][I>>24] ^ sBox[1][(I>>16)&0xff]) - sBox[2][(I>>8)&0xff]) + sBox[3][I&0xff] } func f2(d, m uint32, r uint8) uint32 { t := m ^ d - I := (t << r) | (t >> (32 - r)) + I := bits.RotateLeft32(t, int(r)) return ((sBox[0][I>>24] - sBox[1][(I>>16)&0xff]) + sBox[2][(I>>8)&0xff]) ^ sBox[3][I&0xff] } func f3(d, m uint32, r uint8) uint32 { t := m - d - I := (t << r) | (t >> (32 - r)) + I := bits.RotateLeft32(t, int(r)) return ((sBox[0][I>>24] + sBox[1][(I>>16)&0xff]) ^ sBox[2][(I>>8)&0xff]) - sBox[3][I&0xff] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/net/html/token.go new/vendor/golang.org/x/net/html/token.go --- old/vendor/golang.org/x/net/html/token.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/net/html/token.go 2022-11-13 21:12:06.000000000 +0100 @@ -605,7 +605,10 @@ z.data.end = z.data.start } }() - for dashCount := 2; ; { + + var dashCount int + beginning := true + for { c := z.readByte() if z.err != nil { // Ignore up to two dashes at EOF. @@ -620,7 +623,7 @@ dashCount++ continue case '>': - if dashCount >= 2 { + if dashCount >= 2 || beginning { z.data.end = z.raw.end - len("-->") return } @@ -638,6 +641,7 @@ } } dashCount = 0 + beginning = false } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/internal/language/lookup.go new/vendor/golang.org/x/text/internal/language/lookup.go --- old/vendor/golang.org/x/text/internal/language/lookup.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/text/internal/language/lookup.go 2022-11-13 21:12:06.000000000 +0100 @@ -50,7 +50,7 @@ return normLang(id) } -// mapLang returns the mapped langID of id according to mapping m. +// normLang returns the mapped langID of id according to mapping m. func normLang(id Language) (Language, AliasType) { k := sort.Search(len(AliasMap), func(i int) bool { return AliasMap[i].From >= uint16(id) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/language/go1_1.go new/vendor/golang.org/x/text/language/go1_1.go --- old/vendor/golang.org/x/text/language/go1_1.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/text/language/go1_1.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,39 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.2 -// +build !go1.2 - -package language - -import "sort" - -func sortStable(s sort.Interface) { - ss := stableSort{ - s: s, - pos: make([]int, s.Len()), - } - for i := range ss.pos { - ss.pos[i] = i - } - sort.Sort(&ss) -} - -type stableSort struct { - s sort.Interface - pos []int -} - -func (s *stableSort) Len() int { - return len(s.pos) -} - -func (s *stableSort) Less(i, j int) bool { - return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j] -} - -func (s *stableSort) Swap(i, j int) { - s.s.Swap(i, j) - s.pos[i], s.pos[j] = s.pos[j], s.pos[i] -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/language/go1_2.go new/vendor/golang.org/x/text/language/go1_2.go --- old/vendor/golang.org/x/text/language/go1_2.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/text/language/go1_2.go 1970-01-01 01:00:00.000000000 +0100 @@ -1,12 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.2 -// +build go1.2 - -package language - -import "sort" - -var sortStable = sort.Stable diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/language/parse.go new/vendor/golang.org/x/text/language/parse.go --- old/vendor/golang.org/x/text/language/parse.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/text/language/parse.go 2022-11-13 21:12:06.000000000 +0100 @@ -6,6 +6,7 @@ import ( "errors" + "sort" "strconv" "strings" @@ -206,7 +207,7 @@ tag = append(tag, t) q = append(q, float32(w)) } - sortStable(&tagSort{tag, q}) + sort.Stable(&tagSort{tag, q}) return tag, q, nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/text/runes/runes.go new/vendor/golang.org/x/text/runes/runes.go --- old/vendor/golang.org/x/text/runes/runes.go 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/golang.org/x/text/runes/runes.go 2022-11-13 21:12:06.000000000 +0100 @@ -33,7 +33,7 @@ return setFunc(func(r rune) bool { return unicode.Is(rt, r) }) } -// In creates a Set with a Contains method that returns true for all runes not +// NotIn creates a Set with a Contains method that returns true for all runes not // in the given RangeTable. func NotIn(rt *unicode.RangeTable) Set { return setFunc(func(r rune) bool { return !unicode.Is(rt, r) }) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2022-10-18 13:59:43.000000000 +0200 +++ new/vendor/modules.txt 2022-11-13 21:12:06.000000000 +0100 @@ -1,4 +1,4 @@ -# github.com/ProtonMail/go-crypto v0.0.0-20220930113650-c6815a8c17ad +# github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 ## explicit; go 1.13 github.com/ProtonMail/go-crypto/bitcurves github.com/ProtonMail/go-crypto/brainpool @@ -19,7 +19,7 @@ github.com/ProtonMail/go-crypto/openpgp/internal/encoding github.com/ProtonMail/go-crypto/openpgp/packet github.com/ProtonMail/go-crypto/openpgp/s2k -# github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f +# github.com/ProtonMail/go-mime v0.0.0-20221031134845-8fd9bc37cf08 ## explicit; go 1.12 github.com/ProtonMail/go-mime # github.com/ProtonMail/gopenpgp/v2 v2.4.10 @@ -31,8 +31,8 @@ # github.com/beevik/etree v1.1.0 ## explicit github.com/beevik/etree -# github.com/cloudflare/circl v1.2.0 -## explicit; go 1.16 +# github.com/cloudflare/circl v1.3.0 +## explicit; go 1.17 github.com/cloudflare/circl/dh/x25519 github.com/cloudflare/circl/dh/x448 github.com/cloudflare/circl/ecc/goldilocks @@ -60,17 +60,17 @@ # github.com/pkg/errors v0.9.1 ## explicit github.com/pkg/errors -# golang.org/x/crypto v0.0.0-20221012134737-56aed061732a +# golang.org/x/crypto v0.2.0 ## explicit; go 1.17 golang.org/x/crypto/cast5 -# golang.org/x/net v0.0.0-20221014081412-f15817d10f9b +# golang.org/x/net v0.2.0 ## explicit; go 1.17 golang.org/x/net/html golang.org/x/net/html/atom -# golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 +# golang.org/x/sys v0.2.0 ## explicit; go 1.17 golang.org/x/sys/cpu -# golang.org/x/text v0.3.8 +# golang.org/x/text v0.4.0 ## explicit; go 1.17 golang.org/x/text/encoding golang.org/x/text/encoding/charmap