{"id":16420445,"url":"https://github.com/grindsa/xca_template_parser","last_synced_at":"2026-05-15T17:07:30.301Z","repository":{"id":133221852,"uuid":"297026423","full_name":"grindsa/xca_template_parser","owner":"grindsa","description":"little helper to parse xca templates","archived":false,"fork":false,"pushed_at":"2020-09-21T08:15:56.000Z","size":72,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-26T07:06:50.906Z","etag":null,"topics":["certificate-authority","xca","xca-template"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grindsa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2020-09-20T07:41:03.000Z","updated_at":"2022-03-07T12:12:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"223aff62-b148-45b3-978a-8c718b1e9cb2","html_url":"https://github.com/grindsa/xca_template_parser","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/grindsa/xca_template_parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grindsa%2Fxca_template_parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grindsa%2Fxca_template_parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grindsa%2Fxca_template_parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grindsa%2Fxca_template_parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grindsa","download_url":"https://codeload.github.com/grindsa/xca_template_parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grindsa%2Fxca_template_parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33072994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"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":["certificate-authority","xca","xca-template"],"created_at":"2024-10-11T07:28:02.614Z","updated_at":"2026-05-15T17:07:30.295Z","avatar_url":"https://github.com/grindsa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable  MD013 --\u003e\n# xca_template_parser\n\n`xca_template_helper.py` can be used to decode certificate templates used by [XCA](https://github.com/chris2511/xca) which is a great tool for managing certificates for home- and small enterprise networks.\n\n[XCA templates](https://www.hohnstaedt.de/xca/index.php/documentation/manual) are stored in a proprietary format. I tried to reverse-engineer the format as my [request for documentation](https://github.com/chris2511/xca/issues/197) has unfortunately not been answered.\n\nSpecial thanks to [@mpeylo](https://github.com/mpeylo) for the initial analysis.\n\n## Usage\n\nBefore running the tool you need to export the template into a file.\n\n![xca-ca-list](xca.png)\n\nAfter export you can run the parse to get the details.\n\n```bash\ngrindsa@ub18-04:~$ py ./xca_template_parser.py example/example.xca\n```\n\nThe script will print two dictionaries on std-out:\n\n- a list of dn attributes taken from the template\n- a list of certificate attributes and extensions\n\n```python\n# DN attributes\n{'commonName': 'cn',\n 'countryName': 'co',\n 'localityName': 'locality',\n 'organizationName': 'organization',\n 'organizationalUnitName': 'ou',\n 'stateOrProvinceName': 'state'}\n\n# certificate extensions and attributes\n{'adv_ext': None,\n 'authInfAcc': None,\n 'authKey': '1',\n 'basicPath': None,\n 'bcCritical': '1',\n 'ca': '2',\n 'crlDist': 'URI:http://foo.bar',\n 'eKeyUse': 'serverAuth, clientAuth, ipsecEndSystem, ipsecTunnel, ipsecUser',\n 'ekuCritical': '1',\n 'issAltName': None,\n 'keyUse': '3',\n 'kuCritical': '1',\n 'noWellDefinedExpDate': '0',\n 'nsBaseUrl': None,\n 'nsCARevocationUrl': None,\n 'nsCaPolicyUrl': None,\n 'nsCertType': '5',\n 'nsComment': 'xca certificate',\n 'nsRenewalUrl': None,\n 'nsRevocationUrl': None,\n 'nsSslServerName': None,\n 'subAltName': None,\n 'subKey': '1',\n 'validM': '1',\n 'validMidn': '0',\n 'validN': '1'}\n```\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on my code of\nconduct, and the process for submitting pull requests.\nPlease note that I have a life besides programming. Thus, expect a delay\nin answering.\n\n## Versioning\n\nI use [SemVer](http://semver.org/) for versioning. For the versions available,\nsee the [tags on this repository](https://github.com/grindsa/xca_template_parser/tags).\n\n## License\n\nThis project is licensed under the GPLv3 - see the [LICENSE](LICENSE) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrindsa%2Fxca_template_parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrindsa%2Fxca_template_parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrindsa%2Fxca_template_parser/lists"}