#!/bin/bash
set -e # we do noot tolerate failure here

# aint got no time for no bs
if [ -z "$1" ]; then
    echo -e "ERROR\nUsage: hash_cred_check.sh <email or phone number>"
    exit 1 # fail with error
fi 

# 256 bits of random shit, encoded as base64
salt="$(openssl rand -base64 32)"

# set credential
credential="$1"

# output hex bytes after doi one hell of a argon2id fuckery
hash=$(echo -n "$credential" | argon2 "$(base64 -d <<< $salt)" -id -t 8 -m 19 -p 2 -r)

echo "Hash: $hash"
echo "Salt: $salt"
echo "Credential: $credential"
echo 'Protocol: echo -n "$credential" | argon2 "$(base64 -d <<< $salt)" -id -t 8 -m 19 -p 2 -r'
echo
echo "Verify with: hash_cred_verify.sh '$credential' '$salt' '$hash'"