{"id":172701,"name":"cpsa","ecosystem":"hackage","description":"The Cryptographic Protocol Shapes Analyzer (CPSA) attempts to\nenumerate all essentially different executions possible for a\ncryptographic protocol.  We call them the shapes of the protocol.\nMany naturally occurring protocols have only finitely many, indeed\nvery few shapes.  Authentication and secrecy properties are easy to\ndetermine from them, as are attacks and anomalies, and an auxiliary\ntool reads off strongest authentication and secrecy goals from the\nshapes.\n\nFor each input problem, the CPSA program is given some initial\nbehavior, and it discovers what shapes are compatible with it.\nNormally, the initial behavior is from the point of view of one\nparticipant.  The analysis reveals what the other participants must\nhave done, given the participant's view.  The search is complete,\ni.e. we proved every shape can in fact be found in a finite number\nof steps, relative to a procedural semantics of protocol roles.\n\nThe package contains a set of programs used to perform the analysis\nand display it in a browser.  Program documentation is in the doc\ndirectory in the source distribution, and installed in the package's\ndata directory.  You can locate the package's data directory by\ntyping \"cpsa --help\" to a command prompt.  New users should study\nthe documentation and the sample inputs in the data directory.  The\nsource distribution includes a test suite with an expanded set of\ninput files and is easily installed on operating systems that decend\nfrom Unix.  Serious Windows users should install MSYS so as to allow\nthe use of make and script execution.\n\nThe theory and algorithm used by CPSA was developed with the help of\nJoshua D. Guttman, John D. Ramsdell, Jon C. Herzog, Shaddin\nF. Doghmi, F. Javier Thayer, Paul D. Rowe, and Moses D. Liskov.\nJohn D. Ramsdell implemented the algorithm in Haskell.  CPSA was\ndesigned and implemented at The MITRE Corporation.","homepage":null,"licenses":"BSD-3-Clause","normalized_licenses":["BSD-3-Clause"],"repository_url":"","keywords_array":["bsd3","cryptography","program","Propose Tags"],"namespace":null,"versions_count":62,"first_release_published_at":"2010-03-04T20:46:45.000Z","latest_release_published_at":"2026-05-24T16:08:07.000Z","latest_release_number":"4.4.9","last_synced_at":"2026-05-25T16:32:07.622Z","created_at":"2022-04-05T18:54:45.867Z","updated_at":"2026-05-25T16:32:07.622Z","registry_url":"https://hackage.haskell.org/package/cpsa","install_command":"cabal install cpsa","documentation_url":null,"metadata":{},"repo_metadata":null,"repo_metadata_updated_at":null,"dependent_packages_count":0,"downloads":43768,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":3.464255439389658,"dependent_repos_count":57.976829612885,"dependent_packages_count":19.27098050296694,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":26.9040218517472},"purl":"pkg:hackage/cpsa","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/hackage/cpsa","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/hackage/cpsa","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/hackage/cpsa/dependencies","status":null,"funding_links":[],"critical":false,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/cpsa/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/cpsa/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/cpsa/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/cpsa/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/cpsa/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/packages/cpsa/codemeta","maintainers":[{"uuid":"JohnRamsdell","login":"JohnRamsdell","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://hackage.haskell.org/user/JohnRamsdell","role":null,"created_at":"2022-11-14T17:09:33.059Z","updated_at":"2022-11-14T17:09:33.059Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/JohnRamsdell/packages"},{"uuid":"mliskov","login":"mliskov","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://hackage.haskell.org/user/mliskov","role":null,"created_at":"2022-11-14T17:09:33.074Z","updated_at":"2022-11-14T17:09:33.074Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/mliskov/packages"},{"uuid":"joshuaguttman","login":"joshuaguttman","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://hackage.haskell.org/user/joshuaguttman","role":null,"created_at":"2024-06-21T23:07:54.785Z","updated_at":"2024-06-21T23:07:54.785Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/joshuaguttman/packages"},{"uuid":"pauldavidrowe","login":"pauldavidrowe","name":null,"email":null,"url":null,"packages_count":1,"html_url":"https://hackage.haskell.org/user/pauldavidrowe","role":null,"created_at":"2026-03-16T15:10:43.500Z","updated_at":"2026-03-16T15:10:43.500Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/hackage.haskell.org/maintainers/pauldavidrowe/packages"}]}