{"id":50605222,"url":"https://github.com/arham09/paman","last_synced_at":"2026-06-05T22:01:40.165Z","repository":{"id":335270455,"uuid":"1143820403","full_name":"arham09/paman","owner":"arham09","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-29T10:36:50.000Z","size":95,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-30T01:30:20.516Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/arham09.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-28T02:14:36.000Z","updated_at":"2026-01-29T10:37:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/arham09/paman","commit_stats":null,"previous_names":["arham09/paman"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/arham09/paman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arham09%2Fpaman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arham09%2Fpaman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arham09%2Fpaman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arham09%2Fpaman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arham09","download_url":"https://codeload.github.com/arham09/paman/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arham09%2Fpaman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33961252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"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":"2026-06-05T22:01:40.069Z","updated_at":"2026-06-05T22:01:40.139Z","avatar_url":"https://github.com/arham09.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Paman - Password Manager\n\nA secure CLI password manager written in Go with RSA-4096 encryption and SQLite storage.\n\n## Features\n\n- **RSA-4096 Encryption**: All passwords encrypted using RSA-OAEP\n- **Encrypted Private Key**: Private key protected with PBKDF2 (100k iterations) + AES-256-GCM\n- **SQLite Storage**: Fast, embedded database with full-text search\n- **Secure by Default**: 0600 permissions on sensitive files\n- **Full-Text Search**: Search across title, address, and username fields\n\n## Installation\n\n```bash\ngo build -o paman ./cmd/paman\n```\n\n## Usage\n\n### Initialize\n\nFirst time setup generates RSA keys and creates the database:\n\n```bash\n./paman init\n```\n\nYou'll be prompted for a passphrase (minimum 12 characters). This passphrase encrypts your private key.\n\n### Add Credential\n\n```bash\n./paman add --title \"GitHub\" \\\n  --address \"https://github.com\" \\\n  --username \"user@example.com\" \\\n  --password \"secret123\"\n```\n\n### List All Credentials\n\n```bash\n./paman list\n```\n\n### Get Specific Credential\n\n```bash\n./paman get 1 --show-password\n```\n\n### Search Credentials\n\n```bash\n./paman search github\n```\n\n### Update Credential\n\n```bash\n./paman update 1 --username \"newuser@example.com\"\n```\n\n### Delete Credential\n\n```bash\n./paman delete 1\n```\n\n## Project Structure\n\n```\n.\n├── cmd/paman/main.go              # Entry point\n├── internal/\n│   ├── cli/                       # CLI commands\n│   │   ├── root.go               # Root command\n│   │   ├── init.go               # Initialize keys \u0026 database\n│   │   ├── add.go                # Add credential\n│   │   ├── get.go                # Get credential\n│   │   ├── list.go               # List all\n│   │   ├── search.go             # Search credentials\n│   │   ├── update.go             # Update credential\n│   │   ├── delete.go             # Delete credential\n│   │   └── utils.go              # Helper functions\n│   ├── crypto/                    # Cryptography\n│   │   ├── rsa.go                # RSA key generation\n│   │   ├── keys.go               # Key storage (encrypted)\n│   │   ├── encrypt.go            # Password encryption\n│   │   └── decrypt.go            # Password decryption\n│   ├── db/                        # Database\n│   │   ├── sqlite.go             # Connection management\n│   │   ├── schema.sql            # Database schema\n│   │   └── credentials.go        # CRUD operations\n│   └── models/                    # Data models\n│       ├── credential.go         # Credential structures\n│       └── errors.go             # Custom errors\n└── pkg/config/                    # Configuration\n    └── paths.go                  # Path resolution\n```\n\n## Security Architecture\n\n### Key Storage\n- **Location**: `~/.paman/`\n- **Private Key**: Encrypted with passphrase (0600 permissions)\n- **Public Key**: Stored unencrypted (0644 permissions)\n- **Passphrase**: Never stored, only used to derive encryption key\n\n### Encryption Flow\n1. **Add Credential**:\n   - Password → RSA-OAEP (public key) → Base64 → SQLite\n2. **Get Credential**:\n   - SQLite → Base64 → RSA-OAEP (private key) → Password\n3. **Private Key Protection**:\n   - Passphrase → PBKDF2-SHA256 (100k iterations) → AES-256-GCM key\n\n### Database Schema\n```sql\nCREATE TABLE credentials (\n    id INTEGER PRIMARY KEY AUTOINCREMENT,\n    title TEXT NOT NULL,\n    address TEXT,\n    username TEXT NOT NULL,\n    encrypted_password TEXT NOT NULL,\n    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,\n    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP\n);\n\nCREATE VIRTUAL TABLE credentials_fts USING fts5(\n    title, address, username\n);\n```\n\n## Dependencies\n\n- `github.com/spf13/cobra` - CLI framework\n- `github.com/mattn/go-sqlite3` - SQLite driver\n- `golang.org/x/term` - Secure terminal input\n- `golang.org/x/crypto` - PBKDF2 key derivation\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farham09%2Fpaman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farham09%2Fpaman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farham09%2Fpaman/lists"}