Skip to content

Commit

Permalink
Replace deprecated elliptic.Marshal (#26800)
Browse files Browse the repository at this point in the history
In PR #26786, the Go version for golangci-lint is bumped to 1.21. This
causes the following error:

```
models/migrations/v1_16/v210.go:132:23: SA1019: elliptic.Marshal has been deprecated since Go 1.21: for ECDH, use the crypto/ecdh package. This function returns an encoding equivalent to that of PublicKey.Bytes in crypto/ecdh. (staticcheck)
                                        PublicKey:       elliptic.Marshal(elliptic.P256(), parsed.PubKey.X, parsed.PubKey.Y),
```

The change now uses [func (*PublicKey)
ECDH](https://pkg.go.dev/crypto/ecdsa#PublicKey.ECDH), which is added in
Go 1.20.
  • Loading branch information
harryzcy authored Aug 29, 2023
1 parent 438c764 commit 2d9249b
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions models/migrations/v1_16/v210.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
package v1_16 //nolint

import (
"crypto/elliptic"
"encoding/base32"
"fmt"
"strings"
Expand Down Expand Up @@ -123,13 +122,17 @@ func RemigrateU2FCredentials(x *xorm.Engine) error {
if err != nil {
continue
}
pubKey, err := parsed.PubKey.ECDH()
if err != nil {
continue
}
remigrated := &webauthnCredential{
ID: reg.ID,
Name: reg.Name,
LowerName: strings.ToLower(reg.Name),
UserID: reg.UserID,
CredentialID: base32.HexEncoding.EncodeToString(parsed.KeyHandle),
PublicKey: elliptic.Marshal(elliptic.P256(), parsed.PubKey.X, parsed.PubKey.Y),
PublicKey: pubKey.Bytes(),
AttestationType: "fido-u2f",
AAGUID: []byte{},
SignCount: reg.Counter,
Expand Down

0 comments on commit 2d9249b

Please sign in to comment.