{"id":182880,"name":"fpe","ecosystem":"hackage","description":"\n\n[Index] [Quick Jump]\n\nPackage maintainers\n\nFor package maintainers and hackage trustees\n\nCandidates\n\n\n\n\n\n\nFormat-preserving encryption encrypts data without changing its\nformat.  An example is encrypting a 16-digit credit card number\nas 16 digits.  The encryption uses a key, which is secret, and an\noptional tweak, which can be public and varies for each record\n(such as the cardholder's name), and provides extra security.\n\nThis module implements FF1.  Another similar algorithm, FF3, is no\nlonger considered secure, and so is not included (yet).\n\nFor example usage, see ff1test.hs.","homepage":"https://github.com/galenhuntington/fpe#readme","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/galenhuntington/fpe","keywords_array":["cryptography","library","mit","Propose Tags"],"namespace":null,"versions_count":4,"first_release_published_at":"2019-02-03T06:56:44.000Z","latest_release_published_at":"2026-06-11T03:26:41.000Z","latest_release_number":"0.1.3","last_synced_at":"2026-06-12T03:48:19.250Z","created_at":"2022-04-05T19:58:16.669Z","updated_at":"2026-06-12T03:48:19.251Z","registry_url":"https://hackage.haskell.org/package/fpe","install_command":"cabal install fpe","documentation_url":null,"metadata":{},"repo_metadata":{"id":59152417,"uuid":"167893109","full_name":"galenhuntington/fpe","owner":"galenhuntington","description":"Format-preserving encryption.","archived":false,"fork":false,"pushed_at":"2023-07-24T04:18:35.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-25T13:01:20.468Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/galenhuntington.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}},"created_at":"2019-01-28T03:29:18.000Z","updated_at":"2023-01-13T01:55:04.000Z","dependencies_parsed_at":"2023-02-09T14:00:29.426Z","dependency_job_id":null,"html_url":"https://github.com/galenhuntington/fpe","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/galenhuntington/fpe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galenhuntington%2Ffpe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galenhuntington%2Ffpe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galenhuntington%2Ffpe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galenhuntington%2Ffpe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galenhuntington","download_url":"https://codeload.github.com/galenhuntington/fpe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/galenhuntington%2Ffpe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277380536,"owners_count":25808539,"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-09-28T02:00:08.834Z","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"},"owner_record":{"login":"galenhuntington","name":"Galen Huntington","uuid":"1851962","kind":"user","description":"Living a functional life in an imperative world.","email":"","website":null,"location":"Portland, OR","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1851962?u=403b8e194c60fcd4b9c6e5b194a5f717e49f93f3\u0026v=4","repositories_count":86,"last_synced_at":"2024-04-15T22:09:22.833Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/galenhuntington","funding_links":[],"total_stars":19,"followers":7,"following":1,"created_at":"2022-11-06T20:38:52.208Z","updated_at":"2024-04-15T22:09:26.948Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galenhuntington","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/galenhuntington/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-06-12T03:48:17.947Z","dependent_packages_count":0,"downloads":1331,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":77.97077636288951,"dependent_repos_count":55.143477495452146,"dependent_packages_count":12.217592864268529,"stargazers_count":37.17504841265184,"forks_count":36.14224517340532,"average":43.72982806173347},"purl":"pkg:hackage/fpe","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/fpe","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/fpe","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/fpe/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-25T12:56:28.227Z","issues_count":0,"pull_requests_count":0,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":0,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/galenhuntington%2Ffpe/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/fpe/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/fpe/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/fpe/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/fpe/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/fpe/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/fpe/codemeta","maintainers":[{"uuid":"galen","login":"galen","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://hackage.haskell.org/user/galen","role":null,"created_at":"2022-11-14T17:45:57.002Z","updated_at":"2022-11-14T17:45:57.002Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/galen/packages"}]}