You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gitea/models
Leon Busch-George 7a8a4f5432
Prefer native parser for SSH public key parsing (#23798)
Without this patch, the setting SSH.StartBuiltinServer decides whether
the native (Go) implementation is used rather than calling 'ssh-keygen'.
It's possible for 'using ssh-keygen' and 'using the built-in server' to
be independent.
In fact, the gitea rootless container doesn't ship ssh-keygen and can be
configured to use the host's SSH server - which will cause the public
key parsing mechanism to break.

This commit changes the decision to be based on SSH.KeygenPath instead.
Any existing configurations with a custom KeygenPath set will continue
to function. The new default value of '' selects the native version. The
downside of this approach is that anyone who has relying on plain
'ssh-keygen' to have special properties will now be using the native
version instead.
I assume the exec-variant is only there because /x/crypto/ssh didn't
support ssh-ed25519 until 2016. I don't see any other reason for using
it so it might be an acceptable risk.

Fixes #23363

EDIT: this message was garbled when I tried to get the commit
description back in.. Trying to reconstruct it:

## ⚠️ BREAKING ⚠️ Users who don't have SSH.KeygenPath
explicitly set and rely on the ssh-keygen binary need to set
SSH.KeygenPath to 'ssh-keygen' in order to be able to continue using it
for public key parsing.

There was something else but I can't remember at the moment.

EDIT2: It was about `make test` and `make lint`. Can't get them to run.
To reproduce the issue, I installed `golang` in `docker.io/node:16` and
got:
```
...
go: mvdan.cc/xurls/v2@v2.4.0: unknown revision mvdan.cc/xurls/v2.4.0
go: gotest.tools/v3@v3.4.0: unknown revision gotest.tools/v3.4.0
...
go: gotest.tools/v3@v3.0.3: unknown revision gotest.tools/v3.0.3
...
go: error loading module requirements
```

Signed-off-by: Leon M. Busch-George <leon@georgemail.eu>
2 years ago
..
actions Treat PRs with agit flow as fork PRs when triggering actions. (#23884) 2 years ago
activities Add activity feeds API (#23494) 2 years ago
admin Implement FSFE REUSE for golang files (#21840) 2 years ago
asymkey Prefer native parser for SSH public key parsing (#23798) 2 years ago
auth Fix 500 error if there is a name conflict when edit authentication source (#23832) 2 years ago
avatars Avoid warning for system setting when start up (#23054) 2 years ago
db Test renderReadmeFile (#23185) 2 years ago
dbfs Refactor the setting to make unit test easier (#22405) 2 years ago
fixtures Support "." char as user name for User/Orgs in RSS/ATOM/GPG/KEYS path ... (#23874) 2 years ago
git Introduce path Clean/Join helper functions (#23495) 2 years ago
issues Add API to manage issue dependencies (#17935) 2 years ago
migrations Fix owner team access mode value in team_unit table (#23675) 2 years ago
organization Allow repo admins too to delete the repo (#23940) 2 years ago
packages Use ghost user if package creator does not exist (#23822) 2 years ago
perm Rename `repo.GetOwner` to `repo.LoadOwner` (#22967) 2 years ago
project Improve GetBoards and getDefaultBoard (#22981) 2 years ago
pull refactor some functions to support ctx as first parameter (#21878) 2 years ago
repo Refactor authors dropdown (send get request from frontend to avoid long wait time) (#23890) 2 years ago
secret Secrets storage with SecretKey encrypted (#22142) 2 years ago
system Avoid warning for system setting when start up (#23054) 2 years ago
unit Improve LoadUnitConfig to handle invalid or duplicate units (#23736) 2 years ago
unittest Refactor `setting.Database.UseXXX` to methods (#23354) 2 years ago
user Reserve ".png" suffix for user/org names (#23992) 2 years ago
webhook Add user webhooks (#21563) 2 years ago
error.go Implement FSFE REUSE for golang files (#21840) 2 years ago
fixture_generation.go Implement FSFE REUSE for golang files (#21840) 2 years ago
fixture_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
main_test.go Refactor the setting to make unit test easier (#22405) 2 years ago
migrate.go Check primary keys for all tables and drop ForeignReference (#21721) 2 years ago
migrate_test.go Check primary keys for all tables and drop ForeignReference (#21721) 2 years ago
org.go refactor some functions to support ctx as first parameter (#21878) 2 years ago
org_team.go Supports wildcard protected branch (#20825) 2 years ago
org_team_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
org_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
repo.go Avoid warning for system setting when start up (#23054) 2 years ago
repo_collaboration.go refactor some functions to support ctx as first parameter (#21878) 2 years ago
repo_collaboration_test.go Rename `repo.GetOwner` to `repo.LoadOwner` (#22967) 2 years ago
repo_test.go Implement FSFE REUSE for golang files (#21840) 2 years ago
repo_transfer.go Always reuse transaction (#22362) 2 years ago
repo_transfer_test.go Rename almost all Ctx functions (#22071) 2 years ago