{"id":1950,"url":"https://github.com/cossacklabs/themis","last_synced_at":"2026-01-12T10:01:02.233Z","repository":{"id":31595092,"uuid":"35159920","full_name":"cossacklabs/themis","owner":"cossacklabs","description":"Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.","archived":false,"fork":false,"pushed_at":"2025-07-16T10:17:22.000Z","size":50061,"stargazers_count":1946,"open_issues_count":31,"forks_count":155,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-11-29T04:39:57.584Z","etag":null,"topics":["asymmetric-cryptography","authentication","cryptography","cryptography-library","encryption","golang","ios","java","javascript","objective-c","owasp","php","python","ruby","rust","secure-messenger","secure-storage","security","swift","symmetric-cryptography"],"latest_commit_sha":null,"homepage":"https://www.cossacklabs.com/themis","language":"C","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/cossacklabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-05-06T13:25:25.000Z","updated_at":"2025-11-27T21:41:14.000Z","dependencies_parsed_at":"2023-01-14T19:30:48.550Z","dependency_job_id":"d595fbe5-daa8-4e99-9aef-57acc62eeed1","html_url":"https://github.com/cossacklabs/themis","commit_stats":{"total_commits":1583,"total_committers":39,"mean_commits":40.58974358974359,"dds":0.6999368288060644,"last_synced_commit":"031d177b6fd3b23d023a6e68dff1aa6b56bf7318"},"previous_names":[],"tags_count":51,"template":false,"template_full_name":null,"purl":"pkg:github/cossacklabs/themis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Fthemis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Fthemis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Fthemis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Fthemis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cossacklabs","download_url":"https://codeload.github.com/cossacklabs/themis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cossacklabs%2Fthemis/sbom","scorecard":{"id":305723,"data":{"date":"2025-08-11","repo":{"name":"github.com/cossacklabs/themis","commit":"dc37d03de5069874c2a33223fc947c23b2fa9812"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.9,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":10,"reason":"all changesets reviewed","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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/code-style.yaml:1","Warn: no topLevel permission defined: .github/workflows/integration.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-core.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-cpp.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-go.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-java.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-nodejs.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-objc.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-php.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-python.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-ruby.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-rust.yaml:1","Warn: no topLevel permission defined: .github/workflows/test-wasm.yaml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":4,"reason":"binaries present in source code","details":["Warn: binary detected: docs/examples/android/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: docs/examples/java/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: docs/examples/react-native/ThemisTest/android/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: docs/examples/react-native/react-native-example/android/gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: gradle/wrapper/gradle-wrapper.jar:1","Warn: binary detected: src/wrappers/themis/react-native-themis/android/gradle/wrapper/gradle-wrapper.jar:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 0.15.4 not signed: https://api.github.com/repos/cossacklabs/themis/releases/157086047","Warn: release artifact 0.15.3 not signed: https://api.github.com/repos/cossacklabs/themis/releases/153472862","Warn: release artifact 0.15.1 not signed: https://api.github.com/repos/cossacklabs/themis/releases/121125677","Warn: release artifact 0.15.4 does not have provenance: https://api.github.com/repos/cossacklabs/themis/releases/157086047","Warn: release artifact 0.15.3 does not have provenance: https://api.github.com/repos/cossacklabs/themis/releases/153472862","Warn: release artifact 0.15.1 does not have provenance: https://api.github.com/repos/cossacklabs/themis/releases/121125677"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/code-style.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/code-style.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/integration.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/integration.yaml:65: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/integration.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yaml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/integration.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yaml:108: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/integration.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yaml:114: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/integration.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/integration.yaml:120: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/integration.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-core.yaml:191: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:196: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:204: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:210: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:216: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:245: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:270: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:302: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:328: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:382: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-core.yaml:396: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-core.yaml:416: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:430: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:130: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:159: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:344: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-core.yaml:464: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-core.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-cpp.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-cpp.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-cpp.yaml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-cpp.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-go.yaml:74: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-go.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-go.yaml:78: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-go.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-go.yaml:132: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-go.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-go.yaml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-go.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-go.yaml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-go.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-java.yaml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-java.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-java.yaml:123: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-java.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-java.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-java.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-java.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-java.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-java.yaml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-java.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-nodejs.yaml:45: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-nodejs.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-nodejs.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-nodejs.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-nodejs.yaml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-nodejs.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-nodejs.yaml:85: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-nodejs.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-objc.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-objc.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-objc.yaml:105: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-objc.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-objc.yaml:171: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-objc.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-objc.yaml:195: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-objc.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-objc.yaml:240: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-objc.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-php.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-php.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-php.yaml:136: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-php.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yaml:39: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-python.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yaml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-python.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yaml:94: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-python.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-python.yaml:143: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-python.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-ruby.yaml:50: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-ruby.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-ruby.yaml:79: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-ruby.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:190: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:198: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:204: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:210: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:220: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:63: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:69: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:99: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:107: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-rust.yaml:119: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-rust.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:89: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:93: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:95: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:128: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:132: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/test-wasm.yaml:134: update your workflow using https://app.stepsecurity.io/secureworkflow/cossacklabs/themis/test-wasm.yaml/master?enable=pin","Warn: npmCommand not pinned by hash: src/wrappers/themis/jsthemis/install_centos7_specific_deps.sh:15","Warn: downloadThenRun not pinned by hash: tests/check_ios_test.sh:5","Warn: downloadThenRun not pinned by hash: tests/start_ios_test.sh:3","Warn: pipCommand not pinned by hash: .github/workflows/test-python.yaml:141","Warn: npmCommand not pinned by hash: .github/workflows/test-wasm.yaml:141","Info:   0 out of  69 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   8 third-party GitHubAction dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned","Info:   0 out of   2 downloadThenRun dependencies pinned","Info:   0 out of   1 pipCommand 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/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 30 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"63 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-c2jc-4fpr-4vhg","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-78xj-cgh5-2h22","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-76c9-3jph-rj3q","Warn: Project is vulnerable to: GHSA-rxrc-rgv4-jpvx","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-cr5q-6q9f-rq6q","Warn: Project is vulnerable to: GHSA-j6gc-792m-qgm2","Warn: Project is vulnerable to: GHSA-pj73-v5mw-pm9j","Warn: Project is vulnerable to: GHSA-7627-mp87-jf6q","Warn: Project is vulnerable to: GHSA-g397-v4w5-4m79","Warn: Project is vulnerable to: GHSA-2rxp-v6pw-ch6m","Warn: Project is vulnerable to: GHSA-4xqq-m2hx-25v8","Warn: Project is vulnerable to: GHSA-5866-49gr-22v4","Warn: Project is vulnerable to: GHSA-r55c-59qm-vjw6","Warn: Project is vulnerable to: GHSA-vg3r-rm7w-2xgh","Warn: Project is vulnerable to: GHSA-vmwr-mc7x-5vc3","Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-fwr7-v2mv-hh25","Warn: Project is vulnerable to: GHSA-7mhc-prgv-r3q4","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-4cpg-3vgw-4877","Warn: Project is vulnerable to: GHSA-g4rg-993r-mgx7","Warn: Project is vulnerable to: GHSA-gff7-g5r8-mg8m","Warn: Project is vulnerable to: GHSA-qwcr-r2fm-qrc7","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-rv95-896h-c2vc","Warn: Project is vulnerable to: GHSA-qw6h-vgh9-j6wx","Warn: Project is vulnerable to: GHSA-pw2r-vq6v-hr8c","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-f8q6-p94x-37v3","Warn: Project is vulnerable to: GHSA-2r2c-g63r-vccr","Warn: Project is vulnerable to: GHSA-cfm4-qjh2-4765","Warn: Project is vulnerable to: GHSA-x4jg-mjrx-434g","Warn: Project is vulnerable to: GHSA-9wv6-86v2-598j","Warn: Project is vulnerable to: GHSA-rhx6-c78j-4q9w","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-76p7-773f-r4q5","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-hc6q-2mpp-qw7j","Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986","Warn: Project is vulnerable to: GHSA-wr3j-pwj9-hqq6","Warn: Project is vulnerable to: GHSA-4v9v-hfq4-rm2v","Warn: Project is vulnerable to: GHSA-9jgg-88mc-972h","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T21:58:57.906Z","repository_id":31595092,"created_at":"2025-08-17T21:58:57.906Z","updated_at":"2025-08-17T21:58:57.906Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["asymmetric-cryptography","authentication","cryptography","cryptography-library","encryption","golang","ios","java","javascript","objective-c","owasp","php","python","ruby","rust","secure-messenger","secure-storage","security","swift","symmetric-cryptography"],"created_at":"2024-01-05T20:15:59.705Z","updated_at":"2026-01-12T10:01:02.195Z","avatar_url":"https://github.com/cossacklabs.png","language":"C","funding_links":[],"categories":["Security","Libs","Cryptography","C","项目","目录","Endpoint","Libraries","Projects","包","Encryption","Packages","安全","库 Libraries","Frameworks and Libs","\u003ca id=\"c49aef477cf3397f97f8b72185c3d100\"\u003e\u003c/a\u003e密码\u0026\u0026凭证","安全领域相关库","\u003ca id=\"862af330f45f21fbb0d495837fc7e879\"\u003e\u003c/a\u003e工具","swift","Relational Databases","Security [🔝](#readme)","iOS Security"],"sub_categories":["Encryption","Security","安全","安全相关","Mobile / Android / iOS","HTTP Clients","Cryptography","HTTP客户端","Other free courses","运维\\\u0026DevOps","密码学 Cryptography","C","\u003ca id=\"20bf2e2fefd6de7aadbf0774f4921824\"\u003e\u003c/a\u003e未分类-Password","查询语"],"readme":"\u003ch3 align=\"center\"\u003e\n  \u003ca href=\"https://www.cossacklabs.com/themis/\"\u003e\u003cimg src=\"https://github.com/cossacklabs/themis/wiki/images/logo.png\" alt=\"Themis provides strong, usable cryptography for busy people\" width=\"420\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n  Themis provides strong, usable cryptography for busy people\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/h3\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/cossacklabs/themis/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/cossacklabs/themis.svg\" alt=\"GitHub release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/cossacklabs/themis/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/badge/platform-Android%20%7C%20iOS%20%7C%20macOS%20%7C%20Linux%20%7C%20Java%20%7C%20WASM-green.svg\" alt=\"Platforms\"\u003e\u003c/a\u003e\n  \u003ca href='https://coveralls.io/github/cossacklabs/themis'\u003e\u003cimg src='https://coveralls.io/repos/github/cossacklabs/themis/badge.svg?branch=master' alt='Coverage Status' /\u003e\u003c/a\u003e\n  \u003ca href='https://goreportcard.com/report/github.com/cossacklabs/themis'\u003e\u003cimg class=\"badge\" tag=\"github.com/cossacklabs/themis\" src=\"https://goreportcard.com/badge/github.com/cossacklabs/themis\"\u003e\u003c/a\u003e\n  \u003cbr\u003e\n  \u003ca href=\"https://github.com/cossacklabs/themis/actions?query=workflow%3A%22Themis+Core%22\"\u003e\u003cimg src=\"https://github.com/cossacklabs/themis/workflows/Themis%20Core/badge.svg\" alt=\"Themis Core\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/cossacklabs/themis/actions?query=workflow%3A%22Integration+testing%22\"\u003e\u003cimg src=\"https://github.com/cossacklabs/themis/workflows/Integration%20testing/badge.svg\" alt=\"Integration testing\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/cossacklabs/themis/actions?query=workflow%3A%22Code+style%22\"\u003e\u003cimg src=\"https://github.com/cossacklabs/themis/workflows/Code%20style/badge.svg\" alt=\"Code style\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://circleci.com/gh/cossacklabs/themis\"\u003e\u003cimg src=\"https://circleci.com/gh/cossacklabs/themis/tree/master.svg?style=shield\" alt=\"Circle CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.bitrise.io/app/69a1d5c9d42fa60f\"\u003e\u003cimg src=\"https://app.bitrise.io/app/69a1d5c9d42fa60f/status.svg?token=Fp_06Ema5PgzBbZQyQy1bA\u0026branch=master\" alt=\"Bitrise\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003ch4 align=\"center\"\u003eGeneral purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), Android (Java, Kotlin), React Native (iOS, Android), desktop Java, С/С++, Node.js, Python, Ruby, PHP, Go, Rust, WASM.\u003c/h4\u003e\n\u003ch4 align=\"center\"\u003ePerfect fit for multi-platform apps. Hides cryptographic details. Made by cryptographers for developers 🧡\u003c/h4\u003e\n\n\n\n## What Themis is\n\nThemis is an open-source high-level cryptographic services library for securing data during authentication, storage, messaging, network exchange, etc. Themis solves 90% of typical data protection use cases that are common for most apps. \n\nThemis helps to build both simple and complex cryptographic features easily, quickly, and securely. Themis allows developers to focus on the main thing: developing their applications.\n\n## Use cases that Themis solves\n\n* **Encrypt stored secrets** in your apps and backend: API keys, session tokens, files.\n\n* **Encrypt sensitive data fields** before storing in database (_\"application-side field-level encryption\"_).\n\n* Support **searchable encryption**, data tokenization and data masking using Themis and [Acra](https://www.cossacklabs.com/acra/).\n\n* Exchange secrets securely: **share sensitive data** between parties, build simple chat app between patients and doctors.\n\n* Build **end-to-end encryption schemes** with centralised or decentralised architecture: encrypt data locally on one app, use it encrypted everywhere, decrypt only for authenticated user.\n\n* Maintain **real-time secure sessions**: send encrypted messages to control connected devices from your app, receive real-time sensitive data from your apps to your backend.\n\n* **Compare secrets** between parties without revealing them (zero-knowledge proof-based authentication).\n\n* **One cryptographic library that fits them all**: Themis is the best fit for multi-platform apps (e.g., iOS+Android+Electron app with Node.js backend) because it provides 100% compatible API and works in the same way across all supported platforms.\n\n\n## Cryptosystems\n\nThemis provides ready-made building blocks *([“cryptosystems”](https://docs.cossacklabs.com/themis/#cryptosystems))* which simplify usage of core cryptographic security operations.\n\nThemis provides 4 important cryptographic services:\n\n* **[Secure Cell](https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-cell/)**: a multi-mode cryptographic container suitable for **storing anything** from encrypted files to database records and format-preserved strings. Secure Cell is built around AES-256-GCM, AES-256-CTR.\n* **[Secure Message](https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-message/)**: a simple **encrypted messaging** solution for the widest scope of applications. Exchange the keys between the parties and you're good to go. Two pairs of underlying cryptosystems: ECC + ECDSA / RSA + PSS + PKCS#7.\n* **[Secure Session](https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-session/)**: **session-oriented encrypted data exchange** with forward secrecy for better security guarantees and more demanding infrastructures. Secure Session can perfectly function as socket encryption, session security, or a high-level messaging primitive (with some additional infrastructure like PKI). ECDH key agreement, ECC \u0026 AES encryption.\n* **[Secure Comparator](https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/secure-comparator/)**: Zero knowledge proofs-based cryptographic protocol for **authentication** and comparing secrets.\n\nWe created Themis to build other products on top of it - i.e. [Acra](https://www.cossacklabs.com/acra/) and [Hermes](https://www.cossacklabs.com/hermes/).\n\n# Installation\n\nRefer to the [Installation](https://docs.cossacklabs.com/themis/installation/) page to install Themis for your mobile, web, desktop, or server-side application.\nWe highly recommend [installation packages](https://docs.cossacklabs.com/themis/installation/installation-from-packages/) instead of building from source.\n\n\n# Languages\n\nThemis is available for the following languages/platforms, refer to [language howtos](https://docs.cossacklabs.com/themis/getting-started/#language-howtos) for each: \n\n| Platform | Documentation | Examples | Version |\n| :----- | :----- | :------ | :--- |\n| ⚛️ React Native (iOS, Android) | [React Native Howto](https://docs.cossacklabs.com/themis/languages/react-native/) | [docs/examples/react-native](https://github.com/cossacklabs/themis/tree/master/docs/examples/react-native) | [![npm](https://img.shields.io/npm/v/react-native-themis.svg)](https://www.npmjs.com/package/react-native-themis) |\n| 🔶 Swift (iOS, macOS) | [Swift Howto](https://docs.cossacklabs.com/themis/languages/swift/) | [docs/examples/swift](https://github.com/cossacklabs/themis/tree/master/docs/examples/swift) | [![CocoaPods](https://img.shields.io/cocoapods/v/themis.svg)](https://cocoapods.org/pods/themis) |\n| 📱 Objective-C (iOS, macOS) | [Objective-C Howto](https://docs.cossacklabs.com/themis/languages/objc/) | [docs/examples/objc](https://github.com/cossacklabs/themis/tree/master/docs/examples/objc)| [![CocoaPods](https://img.shields.io/cocoapods/v/themis.svg)](https://cocoapods.org/pods/themis) |\n| ☕️ Java (Desktop) | [Java (Desktop) Howto](https://docs.cossacklabs.com/themis/languages/java/installation-desktop/) | [docs/examples/java](https://github.com/cossacklabs/themis/tree/master/docs/examples/java) | [![maven](https://img.shields.io/maven-central/v/com.cossacklabs.com/java-themis )](https://central.sonatype.com/artifact/com.cossacklabs.com/java-themis/) |\n| ☎️ Java (Android) | [Java (Android) Howto](https://docs.cossacklabs.com/themis/languages/java/installation-android/) | [docs/examples/android](https://github.com/cossacklabs/themis/tree/master/docs/examples/android) | [![maven](https://img.shields.io/maven-central/v/com.cossacklabs.com/java-themis )](https://central.sonatype.com/artifact/com.cossacklabs.com/java-themis/) |\n| 📞 Kotlin (Android) | [Kotlin (Android) Howto](https://docs.cossacklabs.com/themis/languages/kotlin/installation-android/) | [docs/examples/android](https://github.com/cossacklabs/themis/tree/master/docs/examples/android) | [![maven](https://img.shields.io/maven-central/v/com.cossacklabs.com/themis)](https://central.sonatype.com/artifact/com.cossacklabs.com/themis) |\n| 🔻 Ruby | [Ruby Howto](https://docs.cossacklabs.com/themis/languages/ruby/) | [docs/examples/ruby](https://github.com/cossacklabs/themis/tree/master/docs/examples/ruby) | [![Gem](https://img.shields.io/gem/v/rbthemis.svg)](https://rubygems.org/gems/rbthemis) |\n| 🐍 Python | [Python Howto](https://docs.cossacklabs.com/themis/languages/python/) | [docs/examples/python](https://github.com/cossacklabs/themis/tree/master/docs/examples/python) | [![PyPI](https://img.shields.io/pypi/v/pythemis.svg)](https://pypi.python.org/pypi?%3Aaction=search\u0026term=pythemis\u0026submit=search) |\n| 🐘 PHP | [PHP Howto](https://docs.cossacklabs.com/themis/languages/php/) | [docs/examples/php](https://github.com/cossacklabs/themis/tree/master/docs/examples/php) | |\n| ➕ C++ | [CPP Howto](https://docs.cossacklabs.com/themis/languages/cpp/) | [docs/examples/c++](https://github.com/cossacklabs/themis/tree/master/docs/examples/c%2B%2B) ||\n| 🍭 Node.js | [Javascript (Node.js) Howto](https://docs.cossacklabs.com/themis/languages/nodejs/) | [docs/examples/js](https://github.com/cossacklabs/themis/tree/master/docs/examples/js) | [![npm](https://img.shields.io/npm/v/jsthemis.svg)](https://www.npmjs.com/package/jsthemis) |\n| 🖥 WebAssembly | [Javascript (WebAssembly) Howto](https://docs.cossacklabs.com/themis/languages/wasm/)| [docs/examples/js](https://github.com/cossacklabs/themis/tree/master/docs/examples/js) | [![npm](https://img.shields.io/npm/v/wasm-themis.svg)](https://www.npmjs.com/package/wasm-themis) |\n| 🐹 Go | [Go Howto](https://docs.cossacklabs.com/themis/languages/go/)| [docs/examples/go](https://github.com/cossacklabs/themis/tree/master/docs/examples/go) | [![go.dev](https://img.shields.io/badge/go.dev-v0.14.0-007d9c)](https://pkg.go.dev/mod/github.com/cossacklabs/themis/gothemis) |\n| 🦀 Rust | [Rust Howto](https://docs.cossacklabs.com/themis/languages/rust/)| [docs/examples/rust](https://github.com/cossacklabs/themis/tree/master/docs/examples/rust) | [![crates](https://img.shields.io/crates/v/themis.svg)](https://crates.io/crates/themis)|\n| 🕸 С++ PNaCl for Google Chrome||[WebThemis project](https://github.com/cossacklabs/webthemis)|\n\n# Availability\n\nThemis supports following CPU architectures: x86_64/i386, ARM, Apple Silicon (ARM64), various Android architectures.\n\nWe build and verify Themis on the latest stable OS versions:\n\n  - Debian (10, 11, 12), CentOS 8, Ubuntu (20.04, 22.04, 24.04)\n  - macOS (10.12–10.15, 11.*)\n  - Android (7–12)\n  - iOS (11–15)\n  - Windows (experimental MSYS2 support)\n\nWe plan to expand this list with a broader set of platforms.\nIf you'd like to help improve or bring Themis to your favourite platform or language —\n[get in touch](mailto:dev@cossacklabs.com).\n\n# Documentation\n\n[Documentation for Themis](https://docs.cossacklabs.com/themis/) contains the ever-evolving official docs, which covers everything from deployment guidelines to use cases, with brief explanations of cryptosystems and architecture behind the main Themis library. \n\nRefer to the documentation to learn more about:\n- [cryptography in Themis](https://docs.cossacklabs.com/themis/crypto-theory/) ([Themis cryptosystems and attacks on them](https://docs.cossacklabs.com/themis/crypto-theory/cryptosystems/), [cryptography donors](https://docs.cossacklabs.com/themis/crypto-theory/cryptography-donors/), [key management advice](https://docs.cossacklabs.com/themis/crypto-theory/key-management/), [FIPS 140-2 and GOST](https://docs.cossacklabs.com/themis/crypto-theory/fips-and-gost/)),\n- [debugging and troubleshooting Themis](https://docs.cossacklabs.com/themis/debugging/) ([command-line utilities](https://docs.cossacklabs.com/themis/debugging/cli-utilities/), [thread safety](https://docs.cossacklabs.com/themis/debugging/thread-safety/), [migration guidelines between Themis versions](https://docs.cossacklabs.com/themis/debugging/migration-guides/)),  \n- [Themis architecture](https://docs.cossacklabs.com/themis/architecture/),\n- [Themis security](https://docs.cossacklabs.com/themis/security/) ([Themis and OWASP](https://docs.cossacklabs.com/themis/security/owasp/), [Themis development security practices](https://docs.cossacklabs.com/themis/security/dev-security-practices/)),\n- [community behind Themis](https://docs.cossacklabs.com/themis/community/) ([contributing guidelines](https://docs.cossacklabs.com/themis/community/contributing/), [credits and honorable mentions](https://docs.cossacklabs.com/themis/community/credits/),  [projects that use Themis](https://docs.cossacklabs.com/themis/community/projects-that-use-themis/), [tutorials](https://docs.cossacklabs.com/themis/community/tutorials-workshops-talks/), [workshops and talks](https://docs.cossacklabs.com/themis/community/tutorials-workshops-talks/)).\n\n# Cryptography\n\nThemis relies on proven cryptographic algorithms implemented by well-known cryptography libraries such as OpenSSL, LibreSSL, BoringSSL. Refer to [Cryptography in Themis](https://docs.cossacklabs.com/themis/crypto-theory/) docs to learn more.\n\n\nThis distribution includes cryptographic software. The country in which you currently reside may have restrictions on the import, possession, use, and/or re-export to another country, of encryption software. BEFORE using any encryption software, please check your country's laws, regulations, and policies concerning the import, possession, or use, and re-export of encryption software, to see if this is permitted. See http://www.wassenaar.org/ for more information.\n\nThe U.S. Government Department of Commerce, Bureau of Industry and Security (BIS), has classified this software as Export Commodity Control Number (ECCN) 5D002.C.1, which includes information security software using or performing cryptographic functions with asymmetric algorithms. The form and manner of this distribution make it eligible for export under the License Exception ENC Technology Software Unrestricted (TSU) exception (see the BIS Export Administration Regulations, Section 740.13) for both object code and source code.\n\n# Submitting apps to the App Store\n\nIf your application uses Themis and you want to submit it to the Apple App Store, there are certain requirements towards declaring use of any cryptography.\n\nRead about [Apple export regulations on cryptography for Themis](https://docs.cossacklabs.com/themis/regulations/apple-crypto-regulations/) to find out what to do.\n\n# Security\n\nEach change in Themis core library is being reviewed and approved by our internal team of cryptographers and security engineers. For every release, we perform internal audits by cryptographers who don't work on Themis.\n\nWe use a lot of automated security testing, i.e. static code analysers, fuzzing tools, memory analysers, unit tests (per each platform), integration tests (to find compatibility issues between different Themis-supported languages, OS and x86/x64 architectures). Read more about our security testing practices in [Themis security docs](https://docs.cossacklabs.com/themis/security/).\n\nIf you believe that you've found a security-related issue, please drop us an email to [dev@cossacklabs.com](mailto:dev@cossacklabs.com). Bug bounty program may apply.\n\n# GDPR, HIPAA, CCPA  \n\nAs a cryptographic services library for mobile and server platforms, Themis is a [\"state of the art\"](https://gdpr-info.eu/art-32-gdpr/) encryption tool, which provides secure data exchange and storage. \n\nUsing Themis, you can reach better compliance with the current data privacy regulations, such as:     \n* [General Data Protection Regulation (GDPR)](https://gdpr-info.eu/)   \n* [HIPAA (Health Insurance Portability and Accountability Act)](https://en.wikipedia.org/wiki/Health_Insurance_Portability_and_Accountability_Act)        \n* [DPA (Data Protection Act)](http://www.legislation.gov.uk/ukpga/2018/12/contents/enacted)     \n* [CCPA (California Consumer Privacy Act)](https://en.wikipedia.org/wiki/California_Consumer_Privacy_Act)      \n\nRead more about [Regulations](https://docs.cossacklabs.com/themis/regulations/) in docs.\n\n# Community\n\nThemis is [recommended by OWASP](https://github.com/OWASP/owasp-mstg/blob/1.1.0/Document/0x06e-Testing-Cryptography.md#third-party-libraries) as data encryption library for mobile platforms.\n\n\nThemis is widely-used for both non-commercial and commercial projects, [some public applications and libraries can be found here](https://docs.cossacklabs.com/themis/community/projects-that-use-themis/).\n\nWant to be featured on our blog and on the list of contributors, too? [Write us](mailto:dev@cossacklabs.com) about the project you’ve created using Themis!\n\n# Contributing\n\nIf you're looking for something to contribute to and gain eternal respect, just pick the things in the [list of issues](https://github.com/cossacklabs/themis/issues). Head over to our [Contribution guidelines](https://docs.cossacklabs.com/themis/community/contributing/) as your starting point.\n\nSupporting Themis for all these numerous platforms is hard work, but we try to do our best to make using Themis convenient for everyone. Most issues that our users encounter are connected with the installation process and dependency management. If you face any challenges, please [let us know](https://github.com/cossacklabs/themis/issues).\n\n# Commercial support\n\nAt Cossack Labs, we offer professional support services for Themis and applications using Themis. \n\nThis support includes, but is not limited to the library integration, with a focus on web and mobile applications; designing and building end-to-end encryption schemes for mobile applications; security audits, for in-house library integrations or high-level protocol; custom application development that requires cryptography; consulting and [training services](https://training.cossacklabs.com).\n\nDrop us an email to [info@cossacklabs.com](mailto:info@cossacklabs.com) or check out the [Cossack Labs cybersecurity services](https://www.cossacklabs.com/services/overview/).\n\n# Contacts\n\nIf you want to ask a technical question, report a bug or suggest a feature,\nfeel free to [start a discussion on GitHub](https://github.com/cossacklabs/themis/discussions),\nraise an issue in the [issue tracker](https://github.com/cossacklabs/themis/issues),\nor write to [dev@cossacklabs.com](mailto:dev@cossacklabs.com).\n\nTo talk to the business wing of Cossack Labs Limited, drop us an email to [info@cossacklabs.com](mailto:info@cossacklabs.com).\n\n[![Blog](https://img.shields.io/badge/blog-cossacklabs.com-7a7c98.svg)](https://cossacklabs.com/) [![Twitter CossackLabs](https://img.shields.io/badge/twitter-cossacklabs-fbb03b.svg)](http://twitter.com/cossacklabs) [![Dev.to CossackLabs](https://img.shields.io/badge/dev.to-%40cossacklabs-orange.svg)](https://dev.to/@cossacklabs/) [![Medium CossackLabs](https://img.shields.io/badge/medium-%40cossacklabs-orange.svg)](https://medium.com/@cossacklabs/) \n\n[![Closed pull requests with Bitcode-related changes](https://img.shields.io/github/issues-pr-closed/cossacklabs/themis/Bitcode%20%F0%9F%90%99?color=informational\u0026label=Bitcode-related%20issues)](https://github.com/cossacklabs/themis/pulls?q=is%3Apr+is%3Aclosed+label%3A%22Bitcode+%F0%9F%90%99%22)\n\n\u003c!--[![Join the chat at https://gitter.im/cossacklabs/themis](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cossacklabs/themis?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge) --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcossacklabs%2Fthemis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcossacklabs%2Fthemis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcossacklabs%2Fthemis/lists"}