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

Reply via email to