Skip to content

Complete release signature evidence for the remaining 3 projects #4

Description

@kriptoburak

Goal

Provide project-controlled cryptographic release evidence for the remaining public projects.

See the release verification guide.

Remaining Projects

  • C#: attest a downloadable .nupkg and document consumer verification.
  • Go: attest a canonical released artifact and document consumer verification.
  • PHP: attest a canonical Composer release artifact and verification steps.

Verified During This Audit

  • Ruby: verify the exact published gem against its RubyGems Sigstore bundle.
  • Java: verify all 15 Maven files against the project OpenPGP key.
  • Kotlin: verify all 15 Maven files against the project OpenPGP key.

The Ruby x-twitter-scraper-0.5.5.gem bundle verifies this workflow identity:

https://github.com/Xquik-dev/x-twitter-scraper-ruby/.github/workflows/publish-gem.yml@refs/tags/v0.5.5

The verified Ruby SHA-256 digest is:

6dfdcabd408a330d80ef87f4e650aca0004ba8a0eb8b49cb92e06a97a7cf5502

Java and Kotlin use this OpenPGP fingerprint:

6965 E561 C0AC EE32 060A B961 D203 7E41 57E6 2A59

The verified root JAR SHA-256 digests are:

  • Java 0.6.0: 17aaf5366ab6ad65869e5fb4f92acb2351bb08e0a12a0d4fcab6de8875193916
  • Kotlin 0.5.2: 912278aac18d6e78b0f56e790eb3cdb387d1bf30e7b188086bc86095b9201734

Consumer-side CI passed for both SDKs:

Acceptance Criteria

  • The signed subject is the exact artifact users can download.
  • Verification checks the Xquik-dev repository or approved signing identity.
  • Public instructions include one reproducible verification command.
  • Signing authority stays separate from the distribution path.
  • CI verifies one published artifact from the consumer side.
  • Failed verification blocks the release.
  • No long-lived signing secret is added when keyless signing works.
  • Existing package names and release contracts remain unchanged.

Evidence Rules

  • A checksum alone is not a cryptographic signature.
  • A registry signature alone may not prove project identity.
  • An attestation does not make an unsigned Git tag signed.
  • Keep OpenSSF answers Unmet until evidence reaches the default branch.

This issue coordinates the missing release controls. It does not itself satisfy Silver.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is neededopenssfOpenSSF Best Practices evidence and remediationsecuritySecurity controls, reviews, and vulnerability handling

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions