Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
Rot is a simple utility that does rotation based ciphers i.e., rot13,
rot47, and is flexible enough to handle arbitrary rules based on ranges of
characters (8-bit).

== Building ==

Rot was originally build with an explicit Makefile, but I experimentally
switched to premake4 to see what it was like. If you don't already have it
then you'll need to retrieve premake4.

Once "installed" you should be able to build rot pretty easily:

$ premake4 gmake
$ make

== Usage ==

By default rot reads from stdin. You can use the --argv or --file options
to override this behavior. Rot always writes to stdout (or errors to
stderr). There are shortcut options for rot13 (--13), rot26 (--26) and
rot47 (--47). Custom configurations can be specified with one --num-places
option and "any" number of --range options. Use the --help option for
more complete usage.

== RPM/Yum Installation (ADVANCED) ==

An *experimental* Yum repository has been setup on the Castopulence Web
site. To flex its muscle, I've created a basic RPM .spec for rot and
pushed the resulting RPM to the repo. Building rot is straightforward, but
nevertheless if you'd prefer you can optionally choose to install it using
the repository. As a minor benefit, that would make it possible to make
updates available to you automatically via yum.

There are a few gotchas though. For starters, the automatically detected
dependencies seem blatantly wrong for the rot RPM. This means that ~4 (at
the time of reading) dependencies will be installed needlessly. It should
be relatively harmless, but nevertheless it is annoying (and at least for
me, alarming).

You can download the RPM directly and install it using rpm (or the
graphical front end) or you can install the repository itself and then use
yum to install rot.

Prior to showing you how, I'd like to stress that this is experimental.
Only do this if you know a bit of what you're doing and are feeling
adventurous (and trust me, since this will install [precompiled] binary

What this might look like:

# Variables are purely to shorten the length of the command line.
wget "${reponame}/${pkgname}"
# You'll need to be root to install using the package manager.
su -
rpm -ipv "${pkgname}"

# Since we had to use rpm to install the repo (chicken/egg) yum isn't
# aware of the actual package. It will know about the repo because the
# .repo file would be installed, but it won't know about the package. In
# order to make Yum aware of the package, now that it knows about the
# repo, we can simply reinstall the package.

# I'm still somewhat new to packaging and whatnot, but to be safe I'm
# going to clear the Yum cache(s) first to make sure that we download the
# latest. I don't know if you need to do this or not. If you have a slow
# Internet connection then you might opt to skip this step.
# First clear your personal repo.
yum clean all
# Then clear the system cache.
su -
yum clean all

# Now you should be good to go.
yum reinstall "${reponame}"

# Finally, install rot.
yum install rot

# Be sure to exit your root shell ASAP to be safe. ^^


rot is a cipher utility implementing the rudimentary alphabetic rotation cipher. It has built in support for rot13 and rot47, with the flexibility to define arbitrary rules.




No releases published


No packages published