{"id":25190189,"url":"https://github.com/keyfactor/ejbca-java-client-sdk","last_synced_at":"2025-08-02T10:12:46.803Z","repository":{"id":104073162,"uuid":"545726424","full_name":"Keyfactor/ejbca-java-client-sdk","owner":"Keyfactor","description":"Client SDK in Java for the EJBCA Web API","archived":false,"fork":false,"pushed_at":"2022-11-10T18:13:44.000Z","size":838,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-05-25T12:02:23.068Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/Keyfactor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-04T21:56:06.000Z","updated_at":"2025-04-07T08:37:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"16bbc4f8-4d4e-42b4-b229-df737a7b5299","html_url":"https://github.com/Keyfactor/ejbca-java-client-sdk","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Keyfactor/ejbca-java-client-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keyfactor%2Fejbca-java-client-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keyfactor%2Fejbca-java-client-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keyfactor%2Fejbca-java-client-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keyfactor%2Fejbca-java-client-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Keyfactor","download_url":"https://codeload.github.com/Keyfactor/ejbca-java-client-sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Keyfactor%2Fejbca-java-client-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268370180,"owners_count":24239766,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"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":[],"created_at":"2025-02-09T21:19:11.068Z","updated_at":"2025-08-02T10:12:46.795Z","avatar_url":"https://github.com/Keyfactor.png","language":"Java","readme":"# Community supported\nWe welcome contributions.\n\nThe Keyfactor EJBCA Java SDK is open source and community supported, meaning that there is **no SLA** applicable for these tools.\n\nTo report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab.\n\n# ejbca-java-client-sdk\n\n## Requirements\n\nBuilding the API client library requires:\n1. Java 1.8+\n2. Maven (3.8.3+)/Gradle (7.2+)\n\n## Installation\n\nTo install the API client library to your local Maven repository, simply execute:\n\n```shell\nmvn clean install\n```\n\nTo deploy it to a remote Maven repository instead, configure the settings of the repository and execute:\n\n```shell\nmvn clean deploy\n```\n\nRefer to the [OSSRH Guide](http://central.sonatype.org/pages/ossrh-guide.html) for more information.\n\n### Maven users\n\nAdd this dependency to your project's POM:\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.keyfactor.ejbca\u003c/groupId\u003e\n  \u003cartifactId\u003eejbca-java-client-sdk\u003c/artifactId\u003e\n  \u003cversion\u003e1.0\u003c/version\u003e\n  \u003cscope\u003ecompile\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n### Gradle users\n\nAdd this dependency to your project's build file:\n\n```groovy\n  repositories {\n    mavenCentral()     // Needed if the 'ejbca-java-client-sdk' jar has been published to maven central.\n    mavenLocal()       // Needed if the 'ejbca-java-client-sdk' jar has been published to the local maven repo.\n  }\n\n  dependencies {\n     implementation \"com.keyfactor.ejbca:ejbca-java-client-sdk:1.0\"\n  }\n```\n\n### Others\n\nAt first generate the JAR by executing:\n\n```shell\nmvn clean package\n```\n\nThen manually install the following JARs:\n\n* `target/ejbca-java-client-sdk-1.0.jar`\n* `target/lib/*.jar`\n\n## Getting Started\n\nPlease follow the [installation](#installation) instruction and execute the following Java code:\n\n```java\n\n// Import classes:\nimport com.keyfactor.ejbca.client.ApiClient;\nimport com.keyfactor.ejbca.client.ApiException;\nimport com.keyfactor.ejbca.client.Configuration;\nimport com.keyfactor.ejbca.client.model.*;\nimport com.keyfactor.ejbca.client.api.V1CaApi;\n\nimport java.nio.file.Path;\n\npublic class Example {\n  public static void main(String[] args) {\n    ApiClient defaultClient = Configuration.getDefaultApiClient();\n    // Set base path to EJBCA REST API\n    defaultClient.setBasePath(\"http://localhost/ejbca/ejbca-rest-api\");\n\n    // Retrieve client certificate and key\n    Path cert = Paths.get(\"path/to/clientcertificate\");\n    Path key = Paths.get(\"path/to/key\");\n    defaultClient.setClientCert(cert, key);\n\n    V1CaApi apiInstance = new V1CaApi(defaultClient);\n    String issuerDn = \"issuerDn_example\"; // String | the CRL issuers DN (CAs subject DN)\n    Boolean deltacrl = false; // Boolean | true to also create the deltaCRL, false to only create the base CRL\n    try {\n      CreateCrlRestResponse result = apiInstance.createCrl(issuerDn, deltacrl);\n      System.out.println(result);\n    } catch (ApiException e) {\n      System.err.println(\"Exception when calling V1CaApi#createCrl\");\n      System.err.println(\"Status code: \" + e.getCode());\n      System.err.println(\"Reason: \" + e.getResponseBody());\n      System.err.println(\"Response headers: \" + e.getResponseHeaders());\n      e.printStackTrace();\n    }\n  }\n}\n\n```\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *http://localhost/ejbca/ejbca-rest-api*\n\n| Class | Method | HTTP request | Description |\n| ------------ | ------------- | ------------- | ------------- |\n| *V1CaApi* | [**createCrl**](docs/V1CaApi.md#createCrl) | **POST** /v1/ca/{issuer_dn}/createcrl | Create CRL(main, partition and delta) issued by this CA |\n| *V1CaApi* | [**getCertificateAsPem**](docs/V1CaApi.md#getCertificateAsPem) | **GET** /v1/ca/{subject_dn}/certificate/download | Get PEM file with the active CA certificate chain |\n| *V1CaApi* | [**getLatestCrl**](docs/V1CaApi.md#getLatestCrl) | **GET** /v1/ca/{issuer_dn}/getLatestCrl | Returns the latest CRL issued by this CA |\n| *V1CaApi* | [**importCrl**](docs/V1CaApi.md#importCrl) | **POST** /v1/ca/{issuer_dn}/importcrl | Import a certificate revocation list (CRL) for a CA |\n| *V1CaApi* | [**listCas**](docs/V1CaApi.md#listCas) | **GET** /v1/ca | Returns the Response containing the list of CAs with general information per CA as Json |\n| *V1CaApi* | [**status1**](docs/V1CaApi.md#status1) | **GET** /v1/ca/status | Get the status of this REST Resource |\n| *V1CaManagementApi* | [**activate**](docs/V1CaManagementApi.md#activate) | **PUT** /v1/ca_management/{ca_name}/activate | Activate a CA |\n| *V1CaManagementApi* | [**deactivate**](docs/V1CaManagementApi.md#deactivate) | **PUT** /v1/ca_management/{ca_name}/deactivate | Deactivate a CA |\n| *V1CaManagementApi* | [**status**](docs/V1CaManagementApi.md#status) | **GET** /v1/ca_management/status | Get the status of this REST Resource |\n| *V1CertificateApi* | [**certificateRequest**](docs/V1CertificateApi.md#certificateRequest) | **POST** /v1/certificate/certificaterequest | Enrollment with client generated keys for an existing End Entity |\n| *V1CertificateApi* | [**enrollKeystore**](docs/V1CertificateApi.md#enrollKeystore) | **POST** /v1/certificate/enrollkeystore | Keystore enrollment |\n| *V1CertificateApi* | [**enrollPkcs10Certificate**](docs/V1CertificateApi.md#enrollPkcs10Certificate) | **POST** /v1/certificate/pkcs10enroll | Enrollment with client generated keys, using CSR subject |\n| *V1CertificateApi* | [**finalizeEnrollment**](docs/V1CertificateApi.md#finalizeEnrollment) | **POST** /v1/certificate/{request_id}/finalize | Finalize enrollment |\n| *V1CertificateApi* | [**getCertificatesAboutToExpire**](docs/V1CertificateApi.md#getCertificatesAboutToExpire) | **GET** /v1/certificate/expire | Get a list of certificates that are about to expire |\n| *V1CertificateApi* | [**revocationStatus**](docs/V1CertificateApi.md#revocationStatus) | **GET** /v1/certificate/{issuer_dn}/{certificate_serial_number}/revocationstatus | Checks revocation status of the specified certificate |\n| *V1CertificateApi* | [**revokeCertificate**](docs/V1CertificateApi.md#revokeCertificate) | **PUT** /v1/certificate/{issuer_dn}/{certificate_serial_number}/revoke | Revokes the specified certificate |\n| *V1CertificateApi* | [**searchCertificates**](docs/V1CertificateApi.md#searchCertificates) | **POST** /v1/certificate/search | Searches for certificates confirming given criteria. |\n| *V1CertificateApi* | [**status2**](docs/V1CertificateApi.md#status2) | **GET** /v1/certificate/status | Get the status of this REST Resource |\n| *V1CryptotokenApi* | [**activate1**](docs/V1CryptotokenApi.md#activate1) | **PUT** /v1/cryptotoken/{cryptotoken_name}/activate | Activate a Crypto Token |\n| *V1CryptotokenApi* | [**deactivate1**](docs/V1CryptotokenApi.md#deactivate1) | **PUT** /v1/cryptotoken/{cryptotoken_name}/deactivate | Deactivate a Crypto Token |\n| *V1CryptotokenApi* | [**generateKeys**](docs/V1CryptotokenApi.md#generateKeys) | **POST** /v1/cryptotoken/{cryptotoken_name}/generatekeys | Generate keys |\n| *V1CryptotokenApi* | [**removeKeys**](docs/V1CryptotokenApi.md#removeKeys) | **POST** /v1/cryptotoken/{cryptotoken_name}/{key_pair_alias}/removekeys | Remove keys |\n| *V1CryptotokenApi* | [**status5**](docs/V1CryptotokenApi.md#status5) | **GET** /v1/cryptotoken/status | Get the status of this REST Resource |\n| *V1EndentityApi* | [**add**](docs/V1EndentityApi.md#add) | **POST** /v1/endentity | Add new end entity, if it does not exist |\n| *V1EndentityApi* | [**delete**](docs/V1EndentityApi.md#delete) | **DELETE** /v1/endentity/{endentity_name} | Deletes end entity |\n| *V1EndentityApi* | [**revoke**](docs/V1EndentityApi.md#revoke) | **PUT** /v1/endentity/{endentity_name}/revoke | Revokes all end entity certificates |\n| *V1EndentityApi* | [**search**](docs/V1EndentityApi.md#search) | **POST** /v1/endentity/search | Searches for end entity confirming given criteria. |\n| *V1EndentityApi* | [**setstatus**](docs/V1EndentityApi.md#setstatus) | **POST** /v1/endentity/{endentity_name}/setstatus | Edits end entity setting new status |\n| *V1EndentityApi* | [**status6**](docs/V1EndentityApi.md#status6) | **GET** /v1/endentity/status | Get the status of this REST Resource |\n| *V1SshApi* | [**pubkey**](docs/V1SshApi.md#pubkey) | **GET** /v1/ssh/{ca_name}/pubkey | Retrieves a CA\u0026#39;s public key in SSH format. |\n| *V1SshApi* | [**status8**](docs/V1SshApi.md#status8) | **GET** /v1/ssh/status | Get the status of this REST Resource |\n| *V2CertificateApi* | [**getCertificateProfileInfo**](docs/V2CertificateApi.md#getCertificateProfileInfo) | **GET** /v2/certificate/profile/{profile_name} | Get Certificate Profile Info. |\n| *V2CertificateApi* | [**searchCertificates1**](docs/V2CertificateApi.md#searchCertificates1) | **POST** /v2/certificate/search | Searches for certificates confirming given criteria and pagination. |\n| *V2CertificateApi* | [**status3**](docs/V2CertificateApi.md#status3) | **GET** /v2/certificate/status | Get the status of this REST Resource |\n| *V2EndentityApi* | [**getAuthorizedEndEntityProfiles**](docs/V2EndentityApi.md#getAuthorizedEndEntityProfiles) | **GET** /v2/endentity/profiles/authorized | List of authorized end entity profiles for the current admin. |\n| *V2EndentityApi* | [**profile**](docs/V2EndentityApi.md#profile) | **GET** /v2/endentity/profile/{endentity_profile_name} | Get End Entity Profile content |\n| *V2EndentityApi* | [**sortedSearch**](docs/V2EndentityApi.md#sortedSearch) | **POST** /v2/endentity/search | Searches and sorts for end entity conforming given criteria. |\n| *V2EndentityApi* | [**status7**](docs/V2EndentityApi.md#status7) | **GET** /v2/endentity/status | Get the status of this REST Resource |\n\n\n## Documentation for Models\n\n - [AddEndEntityRestRequest](docs/AddEndEntityRestRequest.md)\n - [AuthorizedEEPsRestResponse](docs/AuthorizedEEPsRestResponse.md)\n - [CaInfoRestResponse](docs/CaInfoRestResponse.md)\n - [CaInfosRestResponse](docs/CaInfosRestResponse.md)\n - [CertificateProfileInfoRestResponseV2](docs/CertificateProfileInfoRestResponseV2.md)\n - [CertificateRequestRestRequest](docs/CertificateRequestRestRequest.md)\n - [CertificateRestResponse](docs/CertificateRestResponse.md)\n - [CertificateRestResponseV2](docs/CertificateRestResponseV2.md)\n - [CertificatesRestResponse](docs/CertificatesRestResponse.md)\n - [CreateCrlRestResponse](docs/CreateCrlRestResponse.md)\n - [CrlRestResponse](docs/CrlRestResponse.md)\n - [CryptoTokenActivationRestRequest](docs/CryptoTokenActivationRestRequest.md)\n - [CryptoTokenKeyGenerationRestRequest](docs/CryptoTokenKeyGenerationRestRequest.md)\n - [EndEntityProfileResponse](docs/EndEntityProfileResponse.md)\n - [EndEntityProfileRestResponse](docs/EndEntityProfileRestResponse.md)\n - [EndEntityRestResponse](docs/EndEntityRestResponse.md)\n - [EndEntityRevocationRestRequest](docs/EndEntityRevocationRestRequest.md)\n - [EnrollCertificateRestRequest](docs/EnrollCertificateRestRequest.md)\n - [ExpiringCertificatesRestResponse](docs/ExpiringCertificatesRestResponse.md)\n - [ExtendedInformationRestRequestComponent](docs/ExtendedInformationRestRequestComponent.md)\n - [ExtendedInformationRestResponseComponent](docs/ExtendedInformationRestResponseComponent.md)\n - [FinalizeRestRequest](docs/FinalizeRestRequest.md)\n - [KeyStoreRestRequest](docs/KeyStoreRestRequest.md)\n - [Pagination](docs/Pagination.md)\n - [PaginationRestResponseComponent](docs/PaginationRestResponseComponent.md)\n - [PaginationSummary](docs/PaginationSummary.md)\n - [RestResourceStatusRestResponse](docs/RestResourceStatusRestResponse.md)\n - [RevokeStatusRestResponse](docs/RevokeStatusRestResponse.md)\n - [SearchCertificateCriteriaRestRequest](docs/SearchCertificateCriteriaRestRequest.md)\n - [SearchCertificateSortRestRequest](docs/SearchCertificateSortRestRequest.md)\n - [SearchCertificatesRestRequest](docs/SearchCertificatesRestRequest.md)\n - [SearchCertificatesRestRequestV2](docs/SearchCertificatesRestRequestV2.md)\n - [SearchCertificatesRestResponse](docs/SearchCertificatesRestResponse.md)\n - [SearchCertificatesRestResponseV2](docs/SearchCertificatesRestResponseV2.md)\n - [SearchEndEntitiesRestRequest](docs/SearchEndEntitiesRestRequest.md)\n - [SearchEndEntitiesRestRequestV2](docs/SearchEndEntitiesRestRequestV2.md)\n - [SearchEndEntitiesRestResponse](docs/SearchEndEntitiesRestResponse.md)\n - [SearchEndEntitiesSortRestRequest](docs/SearchEndEntitiesSortRestRequest.md)\n - [SearchEndEntityCriteriaRestRequest](docs/SearchEndEntityCriteriaRestRequest.md)\n - [SetEndEntityStatusRestRequest](docs/SetEndEntityStatusRestRequest.md)\n - [SshPublicKeyRestResponse](docs/SshPublicKeyRestResponse.md)\n\n\n## Documentation for Authorization\n\nAll endpoints do not require authorization.\nAuthentication schemes defined for the API:\n\nEJBCA REST Interface\n- API version: 1.0\n\nAPI reference documentation.\n\n\n## Recommendation\n\nIt's recommended to create an instance of `ApiClient` per thread in a multithreaded environment to avoid any potential issues.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyfactor%2Fejbca-java-client-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeyfactor%2Fejbca-java-client-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeyfactor%2Fejbca-java-client-sdk/lists"}