Aller au contenu
ecdsa.com
Sigstore cosign (sign, sign-blob, attest, public-key with --key cosign.key)Autres outils

Message d’erreur

decrypt: encrypted: decryption failed

Également affiché sous la forme

  • Error: decrypt: encrypted: decryption failed
  • Error: signing artifact.txt: reading key: decrypt: encrypted: decryption failed

Le préfixe dépend de la commande, par exemple « signing artifact.txt: reading key: decrypt: … » pour `sign-blob`. Un `COSIGN_PASSWORD` vide est utilisé comme mot de passe, et non comme une demande de saisie interactive.

Ce que cela signifie

Les clés privées cosign (`cosign.key`, libellé `ENCRYPTED SIGSTORE PRIVATE KEY`) sont chiffrées avec un mot de passe via scrypt et secretbox. cosign a lu le mot de passe dans `COSIGN_PASSWORD` ou l’a demandé de façon interactive, et le déchiffrement a échoué : ce mot de passe n’est pas celui utilisé lors de la génération de la clé. Le fichier de clé lui-même est intact ; rien n’a été signé.

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Fournir la clé et le mot de passe depuis la même source

    Stockez-les tous deux comme secrets du même environnement et passez la clé via `env://`, afin qu’ils ne puissent pas se désynchroniser.

    yaml
    # GitHub Actions: key and its password from the same secret store
    - name: Sign
      env:
        COSIGN_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
        COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
      run: cosign sign-blob --yes --key env://COSIGN_KEY --bundle dist/app.sigstore.json dist/app.tar.gz
  2. 2.

    Envisager la signature sans clé en CI

    Avec une identité OIDC (GitHub Actions `id-token: write`), il n’y a ni clé à longue durée de vie ni mot de passe à gérer ; les vérificateurs fixent à la place l’identité du workflow.

    yaml
    # Or drop the long-lived key: keyless signing with the workflow's OIDC identity
    permissions:
      id-token: write
    steps:
      - run: cosign sign-blob --yes --bundle dist/app.sigstore.json dist/app.tar.gz

Erreurs associées

Parcourir toute la base de données des erreurs de signature