mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Add option to provide signature for a token to verify key ownership (#14054)
* Add option to provide signed token to verify key ownership Currently we will only allow a key to be matched to a user if it matches an activated email address. This PR provides a different mechanism - if the user provides a signature for automatically generated token (based on the timestamp, user creation time, user ID, username and primary email. * Ensure verified keys can act for all active emails for the user * Add code to mark keys as verified * Slight UI adjustments * Slight UI adjustments 2 * Simplify signature verification slightly * fix postgres test * add api routes * handle swapped primary-keys * Verify the no-reply address for verified keys * Only add email addresses that are activated to keys * Fix committer shortcut properly * Restructure gpg_keys.go * Use common Verification Token code Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
@@ -10714,6 +10714,52 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/gpg_key_token": {
|
||||
"get": {
|
||||
"produces": [
|
||||
"text/plain"
|
||||
],
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "Get a Token to verify",
|
||||
"operationId": "getVerificationToken",
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/string"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/responses/notFound"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/gpg_key_verify": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"user"
|
||||
],
|
||||
"summary": "Verify a GPG key",
|
||||
"operationId": "userVerifyGPGKey",
|
||||
"responses": {
|
||||
"201": {
|
||||
"$ref": "#/responses/GPGKey"
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/responses/notFound"
|
||||
},
|
||||
"422": {
|
||||
"$ref": "#/responses/validationError"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/user/gpg_keys": {
|
||||
"get": {
|
||||
"produces": [
|
||||
@@ -12826,6 +12872,10 @@
|
||||
"type": "string",
|
||||
"uniqueItems": true,
|
||||
"x-go-name": "ArmoredKey"
|
||||
},
|
||||
"armored_signature": {
|
||||
"type": "string",
|
||||
"x-go-name": "Signature"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
@@ -14484,6 +14534,10 @@
|
||||
"$ref": "#/definitions/GPGKey"
|
||||
},
|
||||
"x-go-name": "SubsKey"
|
||||
},
|
||||
"verified": {
|
||||
"type": "boolean",
|
||||
"x-go-name": "Verified"
|
||||
}
|
||||
},
|
||||
"x-go-package": "code.gitea.io/gitea/modules/structs"
|
||||
|
Reference in New Issue
Block a user