provider-corner / vigenere

A toy provider implementing an expanded vigenere cipher, to serve as a programming example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

github actions ci badge github actions windows ci badge

CC0

Vigenère cipher provider

This is a very small demonstration that shows the minimum required things for a cipher in an OpenSSL 3.0 provider module.

This provider implements an extended version of the well known Vigenère cipher, covering the whole range of byte values, not just alphabetic characters. For a description of this cipher, as well as its history, see https://en.wikipedia.org/wiki/Vigenère_cipher

It goes without saying that at this day and age, this cipher should not be used in a real situation, but the implementation can be used as a template for other cipher providers to start from. If you want to use this for real, go back to the 16th century 😉

Documentation

Detailed user documentation can be found in vigenere.md.

Building

Building this provider requires cmake and a building toolchain that it supports.

Simple configuration, for a system installation of OpenSSL 3:

cmake -S . -B _build

If you have OpenSSL 3 installed somewhere else, do the following instead, with {path} replaced with the directory of an OpenSSL 3 installation:

cmake -DCMAKE_PREFIX_PATH={path} -S . -B _build

To build, do this:

cmake --build _build

The result is _build/vigenere.so or _build/Debug/vigenere.dll.

About

A toy provider implementing an expanded vigenere cipher, to serve as a programming example

License:Other


Languages

Language:C 71.8%Language:Perl 15.1%Language:CMake 13.1%