fix(auth): fix ssh and gpg key verification on windows (#39283)

Signed-off-by: Francesco Passaquindici <k3n.solver@gmail.com>
Signed-off-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
k3n
2026-09-09 20:42:29 +00:00
committed by GitHub
co-authored by wxiaoguang
parent 81dee529ed
commit 79fc119641
3 changed files with 25 additions and 21 deletions
+5 -17
View File
@@ -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
}
}
+18 -2
View File
@@ -21,7 +21,15 @@
<input readonly="" value="{{.TokenToSign}}">
<div class="help">
{{ctx.Locale.Tr "settings.gpg_token_help"}}
<pre class="command-block">{{printf `echo "%s" | gpg -a --default-key %s --detach-sig` .TokenToSign .PaddedKeyID}}</pre>
<pre class="command-block">echo {{.TokenToSign}} | gpg -a --default-key {{.PaddedKeyID}} --detach-sig</pre>
<details>
<summary>Windows PowerShell</summary>
<pre class="command-block">'{{.TokenToSign}}' | gpg -a --default-key {{.PaddedKeyID}} --detach-sig</pre>
</details>
<details>
<summary>Windows CMD</summary>
<pre class="command-block">echo {{.TokenToSign}}| gpg -a --default-key {{.PaddedKeyID}} --detach-sig</pre>
</details>
</div>
</div>
<div class="field">
@@ -88,7 +96,15 @@
<input readonly="" value="{{$.TokenToSign}}">
<div class="help">
{{ctx.Locale.Tr "settings.gpg_token_help"}}
<pre class="command-block">{{printf `echo "%s" | gpg -a --default-key %s --detach-sig` $.TokenToSign .PaddedKeyID}}</pre>
<pre class="command-block">echo {{$.TokenToSign}} | gpg -a --default-key {{.PaddedKeyID}} --detach-sig</pre>
<details>
<summary>Windows PowerShell</summary>
<pre class="command-block">'{{$.TokenToSign}}' | gpg -a --default-key {{.PaddedKeyID}} --detach-sig</pre>
</details>
<details>
<summary>Windows CMD</summary>
<pre class="command-block">echo {{$.TokenToSign}}| gpg -a --default-key {{.PaddedKeyID}} --detach-sig</pre>
</details>
</div>
</div>
<div class="field">
+2 -2
View File
@@ -79,11 +79,11 @@
<pre class="command-block">echo -n '{{$.TokenToSign}}' | ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey</pre>
<details>
<summary>Windows PowerShell</summary>
<pre class="command-block">cmd /c "&lt;NUL set /p=`"{{$.TokenToSign}}`"| ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey"</pre>
<pre class="command-block">'{{$.TokenToSign}}' | ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey</pre>
</details>
<details>
<summary>Windows CMD</summary>
<pre class="command-block">set /p={{$.TokenToSign}}| ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey</pre>
<pre class="command-block">echo {{$.TokenToSign}}| ssh-keygen -Y sign -n gitea -f /path_to_PrivateKey_or_RelatedPublicKey</pre>
</details>
</div>
</div>