{"id":15446138,"url":"https://github.com/moul/cryptoguess","last_synced_at":"2025-04-28T16:24:08.446Z","repository":{"id":38848902,"uuid":"200127969","full_name":"moul/cryptoguess","owner":"moul","description":"Automatically detect and parse cryptography keys","archived":false,"fork":false,"pushed_at":"2025-04-27T20:25:08.000Z","size":87,"stargazers_count":8,"open_issues_count":10,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-27T21:27:54.447Z","etag":null,"topics":["cryptography","decode","decoder","forensic","guess","hash","tool"],"latest_commit_sha":null,"homepage":"https://manfred.life/cryptography","language":"Go","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/moul.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["moul"],"patreon":"moul","open_collective":"moul","custom":["https://manfred.life/donate"]}},"created_at":"2019-08-01T22:44:54.000Z","updated_at":"2024-01-20T21:08:35.000Z","dependencies_parsed_at":"2023-12-18T23:04:31.628Z","dependency_job_id":"b859c1ed-fba6-4046-9825-ed0564e79ee0","html_url":"https://github.com/moul/cryptoguess","commit_stats":{"total_commits":45,"total_committers":4,"mean_commits":11.25,"dds":0.3555555555555555,"last_synced_commit":"09fdae04de7e685519bd63ea2e236fea5a561edc"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":"moul/golang-repo-template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fcryptoguess","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fcryptoguess/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fcryptoguess/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moul%2Fcryptoguess/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moul","download_url":"https://codeload.github.com/moul/cryptoguess/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251343564,"owners_count":21574388,"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":["cryptography","decode","decoder","forensic","guess","hash","tool"],"created_at":"2024-10-01T19:58:13.628Z","updated_at":"2025-04-28T16:24:08.422Z","avatar_url":"https://github.com/moul.png","language":"Go","funding_links":["https://github.com/sponsors/moul","https://patreon.com/moul","https://opencollective.com/moul","https://manfred.life/donate"],"categories":[],"sub_categories":[],"readme":"# cryptoguess\n\n:smile: cryptoguess automatically detects and parses cryptography keys from files\n\n[![CircleCI](https://circleci.com/gh/moul/cryptoguess.svg?style=shield)](https://circleci.com/gh/moul/cryptoguess)\n[![GoDoc](https://godoc.org/moul.io/cryptoguess?status.svg)](https://godoc.org/moul.io/cryptoguess)\n[![License](https://img.shields.io/github/license/moul/cryptoguess.svg)](https://github.com/moul/cryptoguess/blob/master/LICENSE)\n[![GitHub release](https://img.shields.io/github/release/moul/cryptoguess.svg)](https://github.com/moul/cryptoguess/releases)\n[![Go Report Card](https://goreportcard.com/badge/moul.io/cryptoguess)](https://goreportcard.com/report/moul.io/cryptoguess)\n[![CodeFactor](https://www.codefactor.io/repository/github/moul/cryptoguess/badge)](https://www.codefactor.io/repository/github/moul/cryptoguess)\n[![codecov](https://codecov.io/gh/moul/cryptoguess/branch/master/graph/badge.svg)](https://codecov.io/gh/moul/cryptoguess)\n[![Docker Metrics](https://images.microbadger.com/badges/image/moul/cryptoguess.svg)](https://microbadger.com/images/moul/cryptoguess)\n[![Made by Manfred Touron](https://img.shields.io/badge/made%20by-Manfred%20Touron-blue.svg?style=flat)](https://manfred.life/)\n\n\n## Usage\n\n```console\n$ find test/ -type f | xargs cryptoguess\ntest/pem-rsa-pubkey.txt:            potential candidates: PEM encoded data: x509: DER encoded public key, PEM encoded data\ntest/jwt-token.txt:                 JWT signed token\ntest/ssh-rsa-authorized-key.txt:    SSH authorized key\ntest/rsa-pubkey.txt:                potential candidates: BASE64 encoded data: x509: DER encoded public key, BASE64 encoded data\ntest/crypto-memory/D.der:           x509: PKCS#1 public key (RSA) in ASN.1 DER form\ntest/crypto-memory/E:               PEM encoded data\ntest/crypto-memory/A.pub:           SSH authorized key\ntest/crypto-memory/A:               PEM encoded data\ntest/crypto-memory/B.pem:           potential candidates: PEM encoded data: x509: PKCS#1 public key (RSA) in ASN.1 DER form, PEM encoded data\ntest/crypto-memory/B.pub:           SSH authorized key\ntest/crypto-memory/D.with-password: PEM encoded data\ntest/crypto-memory/C.pub:           SSH authorized key\ntest/crypto-memory/D:               potential candidates: PEM encoded data: x509: PKCS#1 private key (RSA) in ASN.1 DER form, PEM encoded data\ntest/crypto-memory/D.pub:           SSH authorized key\ntest/crypto-memory/A.der:           x509: PKCS#1 public key (RSA) in ASN.1 DER form\ntest/crypto-memory/B:               PEM encoded data\ntest/crypto-memory/C:               PEM encoded data\ntest/crypto-memory/B.der:           x509: PKCS#1 public key (RSA) in ASN.1 DER form\ntest/crypto-memory/F.pem:           potential candidates: PEM encoded data: x509: PKCS#1 public key (RSA) in ASN.1 DER form, PEM encoded data\ntest/crypto-memory/D.pem:           potential candidates: PEM encoded data: x509: PKCS#1 public key (RSA) in ASN.1 DER form, PEM encoded data\ntest/crypto-memory/F.pub:           SSH authorized key\ntest/crypto-memory/A.pem:           potential candidates: PEM encoded data: x509: PKCS#1 public key (RSA) in ASN.1 DER form, PEM encoded data\ntest/crypto-memory/F.der:           x509: PKCS#1 public key (RSA) in ASN.1 DER form\n```\n\n```console\n$ find test/ -type f | xargs file\ntest/pem-rsa-pubkey.txt:            ASCII text\ntest/jwt-token.txt:                 ASCII text, with very long lines, with no line terminators\ntest/ssh-rsa-authorized-key.txt:    OpenSSH RSA public key\ntest/rsa-pubkey.txt:                ASCII text, with very long lines, with no line terminators\ntest/crypto-memory/D.der:           data\ntest/crypto-memory/E:               OpenSSH private key\ntest/crypto-memory/A.pub:           OpenSSH RSA public key\ntest/crypto-memory/A:               OpenSSH private key\ntest/crypto-memory/B.pem:           ASCII text\ntest/crypto-memory/B.pub:           OpenSSH RSA public key\ntest/crypto-memory/D.with-password: PEM RSA private key\ntest/crypto-memory/C.pub:           OpenSSH ED25519 public key\ntest/crypto-memory/D:               PEM RSA private key\ntest/crypto-memory/D.pub:           OpenSSH RSA public key\ntest/crypto-memory/A.der:           data\ntest/crypto-memory/B:               OpenSSH private key\ntest/crypto-memory/C:               OpenSSH private key\ntest/crypto-memory/B.der:           data\ntest/crypto-memory/F.pem:           ASCII text\ntest/crypto-memory/D.pem:           ASCII text\ntest/crypto-memory/F.pub:           OpenSSH RSA public key\ntest/crypto-memory/A.pem:           ASCII text\ntest/crypto-memory/F.der:           data\n```\n\n---\n\n```console\n$ cryptoguess --debug test/ssh-rsa-authorized-key.txt\ntest/ssh-rsa-authorized-key.txt: SSH authorized key\n- PEM encoded data: err: no PEM data found\n- SSH authorized key: *cryptoguess.ParsedSSHAuthorizedKey: \u0026{0xc00005c8c0 lorem ipsum []}\n- x509 DER encoded public key: err: asn1: structure error: tags don't match (16 vs {class:1 tag:19 length:115 isCompound:true}) {optional:false explicit:false application:false private:false defaultValue:\u003cnil\u003e tag:\u003cnil\u003e stringType:0 timeType:0 set:false omitEmpty:false} publicKeyInfo @2\n```\n\n---\n\n```console\n$ cryptoguess -h\nNAME:\n   cryptoguess - A new cli application\n\nUSAGE:\n   cryptoguess [global options] command [command options] [arguments...]\n\nVERSION:\n   0.0.0\n\nCOMMANDS:\n     help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --debug, -D    (default: false)\n   --list, -l     (default: false)\n   --help, -h     show help (default: false)\n   --version, -v  print the version (default: false)\n```\n\n## Decoders\n\n| Encoding                         | Status             | Recursive          |\n|----------------------------------|--------------------|--------------------|\n| aes                              | :red_circle:       | :red_circle:       |\n| ascii85                          | :red_circle:       | :red_circle:       |\n| asn1                             | :red_circle:       | :red_circle:       |\n| base32                           | :red_circle:       | :red_circle:       |\n| base64                           | :white_check_mark: | :white_check_mark: |\n| cipher                           | :red_circle:       | :red_circle:       |\n| csv                              | :red_circle:       | :red_circle:       |\n| des                              | :red_circle:       | :red_circle:       |\n| dsa                              | :red_circle:       | :red_circle:       |\n| ecdsa                            | :red_circle:       | :red_circle:       |\n| elliptic                         | :red_circle:       | :red_circle:       |\n| encodings (utf-8)                | :red_circle:       | :red_circle:       |\n| encrypted jwt                    | :red_circle:       | :red_circle:       |\n| gob                              | :red_circle:       | :red_circle:       |\n| gzip,lzw,...                     | :red_circle:       | :red_circle:       |\n| json                             | :red_circle:       | :red_circle:       |\n| pem                              | :white_check_mark: | :white_check_mark: |\n| rsa                              | :red_circle:       | :red_circle:       |\n| signed jwt                       | :white_check_mark: | :red_circle:       |\n| ssh                              | :white_check_mark: | :red_circle:       |\n| tls                              | :red_circle:       | :red_circle:       |\n| url escaped                      | :red_circle:       | :red_circle:       |\n| x509: DER certificate list       | :white_check_mark: | n/a                |\n| x509: Elliptic Curve private key | :white_check_mark: | n/a                |\n| x509: PKCS#1 RSA private key     | :white_check_mark: | n/a                |\n| x509: PKCS#8 private key         | :white_check_mark: | n/a                |\n| x509: PKCS#8 public key          | :white_check_mark: | n/a                |\n| x509: PKIX public key            | :white_check_mark: | n/a                |\n| x509: certificate                | :white_check_mark: | n/a                |\n| x509: certificate list           | :white_check_mark: | n/a                |\n| x509: certificate request        | :white_check_mark: | n/a                |\n| x509: certificates               | :white_check_mark: | n/a                |\n| xml                              | :red_circle:       | :red_circle:       |\n\n\n## Install\n\n### CLI\n\n```console\n$ go get -u moul.io/cryptoguess\n```\n\n### Library\n\n```console\n$ go get -u moul.io/cryptoguess/cryptoguess\n```\n\n## As a library\n\nSee https://godoc.org/moul.io/cryptoguess/cryptoguess\n\n## License\n\n© 2019-2021 [Manfred Touron](https://manfred.life) -\n[Apache-2.0 License](https://github.com/moul/cryptoguess/blob/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoul%2Fcryptoguess","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoul%2Fcryptoguess","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoul%2Fcryptoguess/lists"}