vanity-age-keygen

Crates.iovanity-age-keygen
lib.rsvanity-age-keygen
version0.1.0
created_at2025-07-14 21:08:54.724604+00
updated_at2025-07-14 21:08:54.724604+00
descriptionGenerate vanity Age keys
homepage
repositoryhttps://codeberg.org/RachaelAva1024/vanity-age-keygen
max_upload_size
id1752251
size128,330
Rachael Ava (RachaelAva1024)

documentation

README

Vanity Age Keygen

Generate vanity Age keys


Age is a relatively new encryption standard that allows you to encrypt files with ease. As part of the specification, the public keys (or recipient keys as they're called) is a Bech32-encoded ASCII string that contains 58 characters of key information. This makes sharing them more portable than other asymmetric cryptographic technologies like PGP.

Here's what an Age recipient string looks like:

age1n6qnrm8q9t64ea8l6l5hxepvyu3ulwddzt6cafmgpv9sverx39hsp76gn2

It's pretty short, yet it still holds a good bit of information about the key.

Generating Age keys is designed to be very affordable on system resources. This is in part due to the X25519 elliptic curve cryptography used. That means that if the key that's generated is one you don't particularly like, you can always generate another one very quickly.

But what if you could have an Age key in which it's recipient string contains a word or name that you like? That's where Vanity Age Keygen comes into play! You can add filters with the -b, -c and -e arguments to specify filters for whether the filtered string should begin with the string, contain the string, or end with the string respectively.

Of course, generating one key at a time is ineffecient, so that's why Vanity Age Keygen can generate multiple keys in parallel. You can always adjust how many CPU threads to parallelize the key generation using the -j argument, but by default, Vanity Age Keygen will use all available CPU threads.

How you do that?

So how does it work, you might ask? Well, I'll tell you! ^~^

First, we generate a new Age identity, which is the secret private key of the keypair, which we then derive it's coresponding recipient key. However, we won't know what the recipient key will be until we generate an identity key and derive the recipient key.

Finally, we check if the recipient key matches any filters passed into the program. If one of the filters matches, we present the keypair to the user to use however they like and move on, otherwise, we simply drop the keypair and try again.


[!WARNING]

Vanity Age Keygen is currently in beta. (That means bugs are to be expected!)


Copyright © 2025 Rachael Ava

Commit count: 0

cargo fmt