{"id":30648142,"url":"https://github.com/authgear/authgear-widget-jwk-generator","last_synced_at":"2025-10-03T12:40:07.375Z","repository":{"id":306143141,"uuid":"1025148519","full_name":"authgear/authgear-widget-jwk-generator","owner":"authgear","description":null,"archived":false,"fork":false,"pushed_at":"2025-08-13T14:40:16.000Z","size":106,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-13T16:32:02.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/authgear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-07-23T19:56:30.000Z","updated_at":"2025-08-13T14:40:19.000Z","dependencies_parsed_at":"2025-07-28T18:29:28.994Z","dependency_job_id":"6d97b4e9-5b07-48ca-a3ac-882cea63efd9","html_url":"https://github.com/authgear/authgear-widget-jwk-generator","commit_stats":null,"previous_names":["fungc-io/authgear-widget-jwk-generator","authgear/authgear-widget-jwk-generator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/authgear/authgear-widget-jwk-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authgear%2Fauthgear-widget-jwk-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authgear%2Fauthgear-widget-jwk-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authgear%2Fauthgear-widget-jwk-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authgear%2Fauthgear-widget-jwk-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/authgear","download_url":"https://codeload.github.com/authgear/authgear-widget-jwk-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/authgear%2Fauthgear-widget-jwk-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272944214,"owners_count":25019514,"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-31T02:00:09.071Z","response_time":79,"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-08-31T05:44:55.379Z","updated_at":"2025-10-03T12:40:07.287Z","avatar_url":"https://github.com/authgear.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JWK Generator Widget\n\nA web-based tool for converting between PEM-formatted keys and JSON Web Keys (JWK) format. This widget provides three main functionalities:\n\n- **PEM to JWK**: Convert PEM-encoded keys and certificates to JWK format\n- **JWK to PEM**: Convert JWK format back to PEM encoding\n- **Generate New Key**: Create new cryptographic keys in various formats\n\n## 🌐 Live Demo\n\n**[Try the tool online at https://www.authgear.com/tools/jwk-generator](https://www.authgear.com/tools/jwk-generator)**\n\n## Features\n\n- **PEM to JWK Conversion**: Convert PEM-encoded keys and certificates to JWK format\n- **Key Fingerprint Generation**: Generate SHA-256 fingerprints for keys\n- **Multiple Key Types**: Support for RSA, ECDSA, EdDSA, and X25519 keys\n- **Customizable Metadata**: Add key ID, algorithm, usage, and operations\n- **Syntax Highlighting**: JSON output with syntax highlighting\n\n## Quick Start\n\n1. **Install dependencies**:\n   ```bash\n   npm install\n   ```\n\n2. **Start development server**:\n   ```bash\n   npm run dev\n   ```\n\n3. **Build for production**:\n   ```bash\n   npm run build\n   ```\n\n## Usage\n\n1. Open the application in your browser\n2. Select \"PEM to JWK\" tab\n3. Paste your PEM-encoded key or certificate\n4. Optionally configure:\n   - Key ID (kid)\n   - Algorithm (alg)\n   - Key usage (use)\n   - Key operations (key_ops)\n5. Click \"Generate JWK\" to convert\n\n## Supported Formats\n\n- **PEM Encoded Keys**: Traditional Privacy-Enhanced Mail format\n  - Public keys (RSA, EC, Ed25519, Ed448, X25519, X448)\n  - Private keys (RSA, EC, Ed25519, Ed448, X25519, X448)\n  - Encrypted private keys (PKCS#8 with password protection)\n- **X.509 Certificates**: Digital certificates in PEM format\n- **JSON Web Keys (JWK)**: RFC 7517 compliant key format\n  - Individual keys\n  - JWK Sets (multiple keys)\n- **Key Generation**: Create new keys in various formats and sizes\n\n## Supported Key Types\n\n- **RSA**: Digital signatures and encryption (RS256, RS384, RS512, PS256, PS384, PS512)\n- **ECDSA**: Digital signatures with elliptic curves (ES256, ES384, ES512)\n- **Ed25519**: Modern digital signatures using EdDSA algorithm\n- **Ed448**: High-security digital signatures using EdDSA algorithm\n- **X25519**: Key exchange and encryption using Curve25519\n- **X448**: High-security key exchange using Curve448\n\n## Technologies\n\n- React 18\n- TypeScript\n- Vite\n- jose (JWT/WebCrypto library)\n- Prism.js (syntax highlighting)\n\n## Development\n\n```bash\nnpm run type-check  # Type checking\nnpm run preview     # Preview production build\n```\n\n## Deployment\n\nThis project is automatically deployed to GitHub Pages using GitHub Actions. The deployment workflow:\n\n- Triggers on pushes to the `main` branch and pull requests\n- Builds the project using `npm run build`\n- Deploys to GitHub Pages using the `actions/deploy-pages` action\n- Uses a single job for building and deploying (no artifacts between jobs)\n\nThe workflow file is located at `.github/workflows/deploy.yml`.\n\n### Manual Deployment\n\nTo deploy manually:\n\n1. Build the project: `npm run build`\n2. The built files will be in the `dist/` directory\n3. Deploy the contents of `dist/` to your web server ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauthgear%2Fauthgear-widget-jwk-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fauthgear%2Fauthgear-widget-jwk-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fauthgear%2Fauthgear-widget-jwk-generator/lists"}