diff --git a/models/asymkey/gpg_key_verify.go b/models/asymkey/gpg_key_verify.go index b699a1d3cb..77481c84e9 100644 --- a/models/asymkey/gpg_key_verify.go +++ b/models/asymkey/gpg_key_verify.go @@ -40,29 +40,17 @@ func VerifyGPGKey(ctx context.Context, ownerID int64, keyID, token, signature st } } - signer, err := hashAndVerifyWithSubKeys(sig, token, key) - if err != nil { - return "", ErrGPGInvalidTokenSignature{ - ID: key.KeyID, - Wrapped: err, - } - } - if signer == nil { - signer, err = hashAndVerifyWithSubKeys(sig, token+"\n", key) + var signer *GPGKey + for _, tokenCandidate := range []string{token, token + "\n", token + "\n\n", token + "\r\n", token + "\r\n\r\n"} { + signer, err = hashAndVerifyWithSubKeys(sig, tokenCandidate, key) if err != nil { return "", ErrGPGInvalidTokenSignature{ ID: key.KeyID, Wrapped: err, } } - } - if signer == nil { - signer, err = hashAndVerifyWithSubKeys(sig, token+"\n\n", key) - if err != nil { - return "", ErrGPGInvalidTokenSignature{ - ID: key.KeyID, - Wrapped: err, - } + if signer != nil { + break } } diff --git a/templates/user/settings/keys_gpg.tmpl b/templates/user/settings/keys_gpg.tmpl index 8f738d7a6f..0589308d43 100644 --- a/templates/user/settings/keys_gpg.tmpl +++ b/templates/user/settings/keys_gpg.tmpl @@ -21,7 +21,15 @@
{{printf `echo "%s" | gpg -a --default-key %s --detach-sig` .TokenToSign .PaddedKeyID}}
+ echo {{.TokenToSign}} | gpg -a --default-key {{.PaddedKeyID}} --detach-sig
+ '{{.TokenToSign}}' | gpg -a --default-key {{.PaddedKeyID}} --detach-sig
+ echo {{.TokenToSign}}| gpg -a --default-key {{.PaddedKeyID}} --detach-sig
+ {{printf `echo "%s" | gpg -a --default-key %s --detach-sig` $.TokenToSign .PaddedKeyID}}
+ echo {{$.TokenToSign}} | gpg -a --default-key {{.PaddedKeyID}} --detach-sig
+ '{{$.TokenToSign}}' | gpg -a --default-key {{.PaddedKeyID}} --detach-sig
+ echo {{$.TokenToSign}}| gpg -a --default-key {{.PaddedKeyID}} --detach-sig
+ echo -n '{{$.TokenToSign}}' | ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey
cmd /c "<NUL set /p=`"{{$.TokenToSign}}`"| ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey"
+ '{{$.TokenToSign}}' | ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey
set /p={{$.TokenToSign}}| ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey
+ echo {{$.TokenToSign}}| ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey