Add wsl linter and fix

Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
Émile Ré
2026-05-19 14:51:08 +04:00
parent eedfdcecc8
commit 9156d6a16a
882 changed files with 6068 additions and 574 deletions

View File

@@ -52,6 +52,7 @@ func (k *EncryptionKey) UnmarshalText(text []byte) error {
}
copy(k[:], decoded)
return nil
}
@@ -94,6 +95,7 @@ func Decrypt(data []byte, key EncryptionKey) ([]byte, error) {
if len(data) < 12 {
return nil, fmt.Errorf("ciphertext too short")
}
nonce, ciphertext := data[:12], data[12:]
plaintext, err := aesgcm.Open(nil, nonce, ciphertext, nil)

View File

@@ -87,6 +87,7 @@ func SignJWT(privateKey *rsa.PrivateKey, kid string, claims any) (string, error)
signingInput := headerB64 + "." + claimsB64
h := sha256.Sum256([]byte(signingInput))
signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, h[:])
if err != nil {
return "", fmt.Errorf("cannot sign jwt: %w", err)

View File

@@ -140,6 +140,7 @@ func TestSignJWT(t *testing.T) {
require.NoError(t, err)
var header jose.JWTHeader
err = json.Unmarshal(headerJSON, &header)
require.NoError(t, err)
@@ -168,6 +169,7 @@ func TestSignJWT(t *testing.T) {
require.NoError(t, err)
var decoded map[string]any
err = json.Unmarshal(claimsJSON, &decoded)
require.NoError(t, err)
@@ -215,6 +217,7 @@ func TestJWK_JSON(t *testing.T) {
require.NoError(t, err)
var raw map[string]string
err = json.Unmarshal(data, &raw)
require.NoError(t, err)
@@ -251,6 +254,7 @@ func TestJWKS_JSON(t *testing.T) {
var raw struct {
Keys []json.RawMessage `json:"keys"`
}
err = json.Unmarshal(data, &raw)
require.NoError(t, err)
@@ -277,6 +281,7 @@ func TestJWTHeader_JSON(t *testing.T) {
require.NoError(t, err)
var raw map[string]string
err = json.Unmarshal(data, &raw)
require.NoError(t, err)

View File

@@ -57,6 +57,7 @@ func TestGenerate(t *testing.T) {
checkFunc: func(t *testing.T, key any) {
rsaKey, ok := key.(*rsa.PrivateKey)
require.True(t, ok, "expected *rsa.PrivateKey, got %T", key)
bitSize := rsaKey.N.BitLen()
assert.GreaterOrEqual(t, bitSize, 2047, "RSA key too small")
assert.LessOrEqual(t, bitSize, 2048, "RSA key too large")
@@ -68,6 +69,7 @@ func TestGenerate(t *testing.T) {
checkFunc: func(t *testing.T, key any) {
rsaKey, ok := key.(*rsa.PrivateKey)
require.True(t, ok, "expected *rsa.PrivateKey, got %T", key)
bitSize := rsaKey.N.BitLen()
assert.GreaterOrEqual(t, bitSize, 4095, "RSA key too small")
assert.LessOrEqual(t, bitSize, 4096, "RSA key too large")
@@ -116,6 +118,7 @@ func TestGenerateConcurrency(t *testing.T) {
t.Parallel()
const numGoroutines = 10
errorsChan := make(chan error, numGoroutines)
for range numGoroutines {
@@ -125,10 +128,12 @@ func TestGenerateConcurrency(t *testing.T) {
errorsChan <- err
return
}
if key == nil {
errorsChan <- errors.New("generated key is nil")
return
}
errorsChan <- nil
}()
}

View File

@@ -61,6 +61,7 @@ func NewProfile(pepper []byte, iterations uint32) (*Profile, error) {
func (hp Profile) applyPepper(input []byte) []byte {
mac := hmac.New(sha256.New, hp.pepper)
mac.Write(input)
return mac.Sum(nil)
}

View File

@@ -36,6 +36,7 @@ func EncodeCertificate(der []byte) []byte {
Type: BlockTypeCertificate,
Bytes: der,
}
return pem.EncodeToMemory(block)
}
@@ -44,12 +45,15 @@ func EncodeCertificateChain(derCerts [][]byte) []byte {
for _, der := range derCerts {
chain = append(chain, EncodeCertificate(der)...)
}
return chain
}
func EncodePrivateKey(key crypto.Signer) ([]byte, error) {
var keyDER []byte
var keyType string
var (
keyDER []byte
keyType string
)
switch k := key.(type) {
case *ecdsa.PrivateKey:
@@ -57,6 +61,7 @@ func EncodePrivateKey(key crypto.Signer) ([]byte, error) {
if err != nil {
return nil, fmt.Errorf("cannot marshal EC private key: %w", err)
}
keyDER = der
keyType = BlockTypeECPrivateKey
case *rsa.PrivateKey:
@@ -67,6 +72,7 @@ func EncodePrivateKey(key crypto.Signer) ([]byte, error) {
if err != nil {
return nil, fmt.Errorf("cannot marshal ED25519 private key: %w", err)
}
keyDER = der
keyType = BlockTypePKCS8PrivateKey
default:
@@ -97,10 +103,12 @@ func DecodePrivateKey(pemData []byte) (crypto.Signer, error) {
if err != nil {
return nil, fmt.Errorf("cannot parse PKCS8 private key: %w", err)
}
signer, ok := key.(crypto.Signer)
if !ok {
return nil, fmt.Errorf("key is not a crypto.Signer")
}
return signer, nil
default:
return nil, fmt.Errorf("unsupported PEM block type: %s", block.Type)

View File

@@ -122,10 +122,12 @@ func TestEncodePrivateKey(t *testing.T) {
if err != nil {
return nil, err
}
signer, ok := key.(crypto.Signer)
if !ok {
return nil, errors.New("key is not a crypto.Signer")
}
return signer, nil
},
},
@@ -205,6 +207,7 @@ func TestRoundTrip(t *testing.T) {
// Parse key based on type
var parsedKey crypto.Signer
switch block.Type {
case "EC PRIVATE KEY":
parsedKey, err = x509.ParseECPrivateKey(block.Bytes)
@@ -228,8 +231,10 @@ func TestRoundTrip(t *testing.T) {
h.Write(testData)
hashed := h.Sum(nil)
var dataToSign []byte
var hashFunc crypto.Hash
var (
dataToSign []byte
hashFunc crypto.Hash
)
switch originalKey.(type) {
case *rsa.PrivateKey:
@@ -309,6 +314,7 @@ func BenchmarkEncodeCertificate(b *testing.B) {
certDER, _ := x509.CreateCertificate(rand.Reader, &template, &template, &priv.PublicKey, priv)
b.ResetTimer()
for i := 0; i < b.N; i++ {
_ = pem.EncodeCertificate(certDER)
}
@@ -344,5 +350,6 @@ func mustGenerateKey(gen func() (crypto.Signer, error)) crypto.Signer {
if err != nil {
panic(err)
}
return key
}