Gitit is a wiki backed by a git, darcs, or mercurial filestore. Pages
and uploaded files can be modified either directly via the VCS's
command-line tools or through the wiki's web interface. Pandoc is used
for markup processing, so pages may be written in (extended) markdown,
reStructuredText, LaTeX, HTML, or literate Haskell, and exported in ten
different formats, including LaTeX, ConTeXt, DocBook, RTF, OpenOffice
ODT, and MediaWiki markup.
Notable features include:
* plugins: dynamically loaded page transformations written in Haskell.
* conversion of TeX math to MathML for display in web browsers.
* syntax highlighting of source code files and code snippets.
* Atom feeds (site-wide and per-page).
* a library, Network.Gitit, that makes it simple to include a gitit
wiki in any happstack application.
Crypt::RSA is a pure-perl, cleanroom implementation of the RSA public-key
cryptosystem. It uses Math::Pari(3), a perl interface to the blazingly fast
PARI library, for big integer arithmetic and number theoretic computations.
Crypt::RSA provides arbitrary size key-pair generation, plaintext-aware
encryption (OAEP) and digital signatures with appendix (PSS). For compatibility
with SSLv3, RSAREF2, PGP and other applications that follow the PKCS #1 v1.5
standard, it also provides PKCS #1 v1.5 encryption and signatures.
Crypt::RSA is structured as bundle of modules that encapsulate different parts
of the RSA cryptosystem. The RSA algorithm is implemented in
Crypt::RSA::Primitives(3). Encryption schemes, located under Crypt::RSA::ES,
and signature schemes, located under Crypt::RSA::SS, use the RSA algorithm to
build encryption/signature schemes that employ secure padding. (See the note on
Security of Padding Schemes.)
The key generation engine and other functions that work on both components of
the key-pair are encapsulated in Crypt::RSA::Key(3). Crypt::RSA::Key::Public(3)
& Crypt::RSA::Key::Private(3) provide mechanisms for storage & retrival of keys
from disk, decoding & encoding of keys in certain formats, and secure
representation of keys in memory. Finally, the Crypt::RSA module provides a
convenient, DWIM wrapper around the rest of the modules in the bundle.