{"id":28042329,"url":"https://github.com/parallaxsecond/parsec-client-java","last_synced_at":"2025-05-11T14:26:12.495Z","repository":{"id":43012328,"uuid":"408599483","full_name":"parallaxsecond/parsec-client-java","owner":"parallaxsecond","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-08T16:16:45.000Z","size":1787,"stargazers_count":5,"open_issues_count":5,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-09T19:59:06.648Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","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/parallaxsecond.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-20T21:02:52.000Z","updated_at":"2025-05-08T16:16:49.000Z","dependencies_parsed_at":"2023-01-20T05:03:32.046Z","dependency_job_id":null,"html_url":"https://github.com/parallaxsecond/parsec-client-java","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parallaxsecond%2Fparsec-client-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parallaxsecond%2Fparsec-client-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parallaxsecond%2Fparsec-client-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/parallaxsecond%2Fparsec-client-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/parallaxsecond","download_url":"https://codeload.github.com/parallaxsecond/parsec-client-java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253578793,"owners_count":21930603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-05-11T14:26:11.831Z","updated_at":"2025-05-11T14:26:12.490Z","avatar_url":"https://github.com/parallaxsecond.png","language":"Java","readme":"# Parsec Java Client\n\nThis repository contains a Java Client and a [JCA provider](https://docs.oracle.com/javase/8/docs/technotes/guides/security/crypto/CryptoSpec.html) for Parsec. The client exposes the [PSA Crypto API](https://github.com/ARMmbed/mbed-crypto/blob/psa-crypto-api/docs/PSA_Cryptography_API_Specification.pdf) to Java Applications and the JCA Provider allows existing applications that employ JCA to switch to Parsec.\n\n_Note_: this client is at an early stage of development and not yet ready for production use. We welcome contributions!\n\n## In this repository\n\nThe repository contains the following packages:\n\n- parsec-client-java : PSA Crypto API Client\n- parsec-jca-java: JCA Provider\n- parsec-interface-java: Private wrapper for protobuf classes and socket communication\n- parsec-protobuf-java: Java Protobuf classes (generated)\n- parsec-testcontainers: Collection of Docker test containers for development \u0026 testing\n\n# How to use this library\n\nTo use the Parsec JCA provider in your Maven project, you need to:\n\n1.  **Configure GitHub Packages Repository:**\n    Add the following repository configuration to your project's `pom.xml`. This allows Maven to find and download Parsec Java Client artifacts from GitHub Packages.\n\n    ```xml\n    \u003cproject\u003e\n        ...\n        \u003crepositories\u003e\n            \u003crepository\u003e\n                \u003cid\u003egithub-parallaxsecond\u003c/id\u003e\n                \u003cname\u003eGitHub Parallax Second Apache Maven Packages\u003c/name\u003e\n                \u003curl\u003ehttps://maven.pkg.github.com/parallaxsecond/parsec-client-java\u003c/url\u003e\n            \u003c/repository\u003e\n        \u003c/repositories\u003e\n        ...\n    \u003c/project\u003e\n    ```\n\n2.  **Add the Dependency:**\n    Add the `parsec-jca-java` artifact as a dependency in your `pom.xml`:\n\n    ```xml\n    \u003cdependencies\u003e\n        ...\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.parallaxsecond\u003c/groupId\u003e\n            \u003cartifactId\u003eparsec-jca-java\u003c/artifactId\u003e\n            \u003cversion\u003e0.1.0\u003c/version\u003e \u003c!-- Replace with the desired version --\u003e\n        \u003c/dependency\u003e\n        ...\n    \u003c/dependencies\u003e\n    ```\n\n    This will also bring in the necessary transitive dependencies: `parsec-client-java`, `parsec-interface-java`, and `parsec-protobuf-java`. For other JVM build systems, please take the necessary coordinates (`groupId`, `artifactId`, `version`) and adapt to your dependency management syntax. You can find the latest available version on the [project's GitHub Packages page](https://github.com/parallaxsecond/parsec-client-java/packages).\n\n    If you don't want to use the JCA, you can employ this library in a more parsec-idiomatic way by depending directly on `parsec-client-java`. _Note:_ this is not a recommendation either way.\n\n# How to develop the Parsec Java Client\n\nCheck out this repo's submodules:\n\n```sh\ngit submodule update --init --recursive\n```\n\nDevelop with Maven in the usual way, but use the `./mvnw` wrapper.\n\nExamples:\n\n- Full build: `./mvnw clean verify`\n- Run all tests: `./mvnw clean test`\n- Run single test: `./mvnw test -pl parsec-jca-java-test -Dtest=org.parallaxsecond.parsec.jce.provider.SecureRandomParsecTest`\n  Note: if you have container changes, clean out docker images and prefix your test run with `./mvnw install -pl parsec-testcontainers -am -Ddocker.nocache=true -Dtestcontainers.reuse.enable=false`\n\nYou can also use `act` to run the github action locally. On OSX, you need to set the container architecture, and for testcontainers to work, you may need to set the env var `TESTCONTAINERS_HOST_OVERRIDE`.\n\nExample:\n\n```sh\nact --container-architecture linux/amd64 --env TESTCONTAINERS_HOST_OVERRIDE=`ipconfig getifaddr en0`\n```\n\n# Example Implementations\n\nThere are a number of example implementations of both the basic java client and JCA provider as well as a demo (separate repository). The Greengrass Parsec Provider uses Parsec for client certificate rotation:\n\n- Parsec JCA Tests [**Link**](/parsec-jca-java-test/src/test/java/org/parallaxsecond/parsec/jce/provider/)\n- Parsec Client Tests [**Link**](/parsec-client-java/src/test/java/org/parallaxsecond/parsec/client/core/)\n- Parsec Workshop Demos (External Repository) [**Link**](https://github.com/56kcloud/parsec-workshop)\n- AWS Greengrass Parsec Provider [**Link**](https://github.com/awslabs/aws-greengrass-labs-parsec-provider)\n\n## License\n\nThe software is provided under Apache-2.0. Contributions to this project are accepted under the same license.\n\n## Contributing\n\nWe welcome contributing, both in the use of this client library and programming,extending of this library code base.\nPlease check the [**Contribution Guidelines**](https://parallaxsecond.github.io/parsec-book/contributing/index.html)\nto know more about the contribution process.\n\n_Copyright 2021 Contributors to the Parsec project._\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparallaxsecond%2Fparsec-client-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fparallaxsecond%2Fparsec-client-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fparallaxsecond%2Fparsec-client-java/lists"}