Airedale is a deterministic password generator written in modern C++ (C++17). Most password managers focus on the idea of an encrypted "vault" to store passwords, but the vault remains something that can be stolen. Airedale takes a different approach: generating the password only when you need it. There's nothing to store and nothing to be stolen.
Attention: Airedale is a personal project. I make no guarantees about its suitability for any purpose or about its stability.
Airedale is licensed under the GPLv3.
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along
with this program (see LICENSE). If not, see <https://www.gnu.org/licenses/>.
Airdale builds using system packages on Debian-based distros (tested on Linux Mint 21.3/Ubuntu 22.04). The following versions are known to work:
- Boost Random 1.7.4
- Sodium 1.0.18
Install dependencies:
sudo apt-get install libboost-random-dev libsodium-dev build-essential
Use the makefile to build:
make -f makefile.make
- Boost 1.81.0
- Libsodium 1.0.18
- C++20 compiler
- vcpkg
Use vcpkg to install dependencies:
# Windows
vcpkg install --triplet x64-windows-static boost-crc boost-random boost-algorithm libsodium
# macOS
vcpkg install --triplet x64-osx boost-crc boost-random boost-algorithm libsodium
# FreeBSD
vcpkg install --triplet x64-freebsd boost-crc boost-random boost-algorithm libsodium
Set VCPKG_ROOT
environment variable.
# Be sure to change the path to the directory where you cloned vcpkg.
# bash
export VCPKG_ROOT="$HOME/Code/repos/vcpkg"
# tcsh (BSD)
setenv VCPKG_ROOT "$HOME/Code/repos/vcpkg"
Build using CMake:
CMake presets that are defined:
windows-debug
osx-debug
freebsd-debug
cmake -S . -B build --preset {preset}
cmake --build build
- AN00: Alpha numeric characters only.
- AN01: Alpha numeric with basic special characters.
- AN02 (default): Alpha numeric with many special characters.
make -f makefile.make
nmake /f makefile.nmake
Known to build successfully with the following compilers:
- Apple clang version 14.0.0 (clang-1400.0.29.202) / macOS 12.6.1
- gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) / WSL Ubuntu 22.04
- MSVC Microsoft (R) C/C++ Optimizing Compiler Version 19.35.32217.1 for x64 / Windows 11
USE AIREDALE AT YOUR OWN RISK, see LICENSE for details. This command line utility is not intended for use as a password generator for production systems. This is a personal project and the code base has not been audited for security.
The default for password generation uses BLAKE2b from the libsodium cryptographic library.
MersienneTwister mt19937
is provided as a baseline implementation that is easily portable
to just about any language or platform. The mt implementation is behind a --insecure|-i
flag.
Are you a paleontologist? I desperately need a paleontologist.
If cryptography is your strong suit and you're interested in making the project more useful, let me know.
- Tests.
- Color console output.