mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-10 23:13:24 +09:00
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:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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 "<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>
|
||||
|
||||
Reference in New Issue
Block a user