{"id":23204650,"url":"https://github.com/leplusorg/docker-crypt","last_synced_at":"2026-06-11T00:01:29.256Z","repository":{"id":267932083,"uuid":"902791626","full_name":"leplusorg/docker-crypt","owner":"leplusorg","description":"Multi-platform Docker container with utilities to cipher/decipher/sign data (gnupg, openssl, age, jose, xmlsec...).","archived":false,"fork":false,"pushed_at":"2026-06-09T06:51:59.000Z","size":502,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-09T08:28:31.191Z","etag":null,"topics":["cipher","crypto","cryptography","decipher","decrypt","decryption","digital-signature","docker","docker-image","dockerfile","encrypt","encryption","encryption-decryption","hmac"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/leplusorg/crypt","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leplusorg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-13T09:24:03.000Z","updated_at":"2026-06-09T06:52:02.000Z","dependencies_parsed_at":"2024-12-13T10:41:02.201Z","dependency_job_id":"7ee72751-30d0-4433-b141-c8fc6c7156f7","html_url":"https://github.com/leplusorg/docker-crypt","commit_stats":null,"previous_names":["leplusorg/docker-crypt"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/leplusorg/docker-crypt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-crypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-crypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-crypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-crypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leplusorg","download_url":"https://codeload.github.com/leplusorg/docker-crypt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leplusorg%2Fdocker-crypt/sbom","scorecard":{"id":712263,"data":{"date":"2025-08-19T16:09:20Z","repo":{"name":"github.com/leplusorg/docker-crypt","commit":"42d0aa709dfcacd683c5f77ad19678615a825bf1"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":7.2,"checks":[{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: Dependabot: .github/dependabot.yml:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/27 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'packages' permission set to 'read': .github/workflows/codeql-analysis.yml:27","Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql-analysis.yml:30","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql-analysis.yml:31","Info: jobLevel 'actions' permission set to 'read': .github/workflows/devskim.yml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/devskim.yml:25","Warn: jobLevel 'statuses' permission set to 'write': .github/workflows/super-linter.yml:42","Info: jobLevel 'contents' permission set to 'read': .github/workflows/super-linter.yml:40","Info: jobLevel 'packages' permission set to 'read': .github/workflows/super-linter.yml:41","Warn: topLevel 'actions' permission set to 'write': .github/workflows/automerge.yml:6","Warn: topLevel 'contents' permission set to 'write': .github/workflows/automerge.yml:7","Warn: topLevel 'actions' permission set to 'write': .github/workflows/check-pr.yml:6","Warn: topLevel 'contents' permission set to 'write': .github/workflows/check-pr.yml:7","Info: found token with 'none' permissions: .github/workflows/codeql-analysis.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/dependency-review.yml:6","Info: found token with 'none' permissions: .github/workflows/devskim.yml:1","Info: found token with 'none' permissions: .github/workflows/dockerhub.yml:1","Info: found token with 'none' permissions: .github/workflows/msdo.yml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/osv-scanner.yml:28","Info: topLevel 'actions' permission set to 'read': .github/workflows/osv-scanner.yml:30","Warn: topLevel 'security-events' permission set to 'write': .github/workflows/osv-scanner.yml:26","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yml:12","Info: found token with 'none' permissions: .github/workflows/super-linter.yml:1","Warn: topLevel 'contents' permission set to 'write': .github/workflows/update-prs.yml:12"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  19 out of  19 GitHub-owned GitHubAction dependencies pinned","Info:  17 out of  17 third-party GitHubAction dependencies pinned","Info:   1 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"CII-Best-Practices","score":2,"reason":"badge detected: InProgress","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/docker-build-push.yml:16"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 5 commits out of 6 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"CI-Tests","score":8,"reason":"5 out of 6 merged PRs checked by a CI test -- score normalized to 8","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: found contributions from: leplusorg"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}}]},"last_synced_at":"2025-08-22T08:28:47.473Z","repository_id":267932083,"created_at":"2025-08-22T08:28:47.473Z","updated_at":"2025-08-22T08:28:47.473Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34175887,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cipher","crypto","cryptography","decipher","decrypt","decryption","digital-signature","docker","docker-image","dockerfile","encrypt","encryption","encryption-decryption","hmac"],"created_at":"2024-12-18T16:19:36.241Z","updated_at":"2026-06-11T00:01:29.221Z","avatar_url":"https://github.com/leplusorg.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cipher/decipher/sign\n\nMulti-platform Docker container with utilities to cipher/decipher/sign data (`gnupg`, `openssl`, `age`, `jose`, `xmlsec`...).\n\n[![Dockerfile](https://img.shields.io/badge/GitHub-Dockerfile-blue)](crypt/Dockerfile)\n[![Docker Build](https://github.com/leplusorg/docker-crypt/workflows/Docker/badge.svg)](https://github.com/leplusorg/docker-crypt/actions?query=workflow:\"Docker\")\n[![Docker Stars](https://img.shields.io/docker/stars/leplusorg/crypt)](https://hub.docker.com/r/leplusorg/crypt)\n[![Docker Pulls](https://img.shields.io/docker/pulls/leplusorg/crypt)](https://hub.docker.com/r/leplusorg/crypt)\n[![Docker Version](https://img.shields.io/docker/v/leplusorg/crypt?sort=semver)](https://hub.docker.com/r/leplusorg/crypt)\n[![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/10083/badge)](https://bestpractices.coreinfrastructure.org/projects/10083)\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/leplusorg/docker-crypt/badge)](https://securityscorecards.dev/viewer/?uri=github.com/leplusorg/docker-crypt)\n\n## Example without using the filesystem\n\nLet's say that you have a file `foo.txt` in your current working directory that you want to encrypt with a public key `age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7`:\n\n**Mac/Linux**\n\n```bash\ncat foo.txt | docker run --rm -i --net=none leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 \u003e foo.age\n```\n\n**Windows**\n\n```batch\ntype foo.txt | docker run --rm -i --net=none leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 \u003e foo.age\n```\n\n## Example using the filesystem\n\nSame thing, assuming that you have a file `foo.txt` in your current working directory that you want to encrypt with a public key `age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7`:\n\n**Mac/Linux**\n\n```bash\ndocker run --rm -t --user=\"$(id -u):$(id -g)\" --net=none -v \"$(pwd):/tmp\" leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 --output /tmp/foo.age /tmp/foo.txt\n```\n\n**Windows**\n\nIn `cmd`:\n\n```batch\ndocker run --rm -t --net=none -v \"%cd%:/tmp\" leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 --output /tmp/foo.age /tmp/foo.txt\n```\n\nIn PowerShell:\n\n```pwsh\ndocker run --rm -t --net=none -v \"${PWD}:/tmp\" leplusorg/crypt age --recipient age1u9wu5f2eajlqluhra0jx6qxjeyyr2jygh6vguacrp9pd63kljsesam7cg7 --output /tmp/foo.age /tmp/foo.txt\n```\n\n## Software Bill of Materials (SBOM)\n\nTo get the SBOM for the latest image (in SPDX JSON format), use the\nfollowing command:\n\n```bash\ndocker buildx imagetools inspect leplusorg/crypt --format '{{ json (index .SBOM \"linux/amd64\").SPDX }}'\n```\n\nReplace `linux/amd64` by the desired platform (`linux/amd64`, `linux/arm64` etc.).\n\n## Provenance\n\nTo get the provenance for the latest image (in JSON format), use the\nfollowing command:\n\n```bash\ndocker buildx imagetools inspect leplusorg/crypt --format '{{ json .Provenance }}'\n```\n\n## Sigstore\n\n[Sigstore](https://docs.sigstore.dev) is trying to improve supply\nchain security by allowing you to verify the origin of an\nartifact. You can verify that the image that you use was actually\nproduced by this repository. This means that if you verify the\nsignature of the Docker image, you can trust the integrity of the\nwhole supply chain from code source, to CI/CD build, to distribution\non Maven Central or wherever you got the image from.\n\nYou can use the following command to verify the latest image using its\nsigstore signature attestation:\n\n```bash\ncosign verify leplusorg/crypt --certificate-identity-regexp 'https://github\\.com/leplusorg/docker-crypt/\\.github/workflows/.+' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'\n```\n\nThe output should look something like this:\n\n```text\nVerification for index.docker.io/leplusorg/xml:main --\nThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - Existence of the claims in the transparency log was verified offline\n  - The code-signing certificate was verified using trusted certificate authority certificates\n\n[{\"critical\":...\n```\n\nFor instructions on how to install `cosign`, please read this [documentation](https://docs.sigstore.dev/cosign/system_config/installation/).\n\n## Request new tool\n\nPlease use [this link](https://github.com/leplusorg/docker-crypt/issues/new?assignees=thomasleplus\u0026labels=enhancement\u0026template=feature_request.md\u0026title=%5BFEAT%5D) (GitHub account required) to request that a new tool be added to the image. I am always interested in adding new capabilities to these images.\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\n\n## Security\n\nPlease read [SECURITY.md](SECURITY.md) for details on our security policy and how to report security vulnerabilities.\n\n## Code of Conduct\n\nPlease read [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for details on our code of conduct.\n\n## License\n\nThis project is licensed under the terms of the [LICENSE](LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleplusorg%2Fdocker-crypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleplusorg%2Fdocker-crypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleplusorg%2Fdocker-crypt/lists"}