#!/usr/bin/env nix-shell #!nix-shell -i bash -p curl gnused nix coreutils jq openssl #set -x REG_KEY=`cat /var/lib/matrix-synapse/registration_shared_secret.txt` LOCALPART='rory.gay' REACHABLE_DOMAIN='http://localhost:8008' # -- LICENSE: CNPL v7+ - https://thufie.lain.haus/files/CNPLv7.md # Modified from Nyaaori (https://nyaaori.cat) <+@nyaaori.cat> # Explicit authorisation to use the code has been granted by the original author # for use by members of the Rory system (https://rory.gay) # the magic function: register(){ echo "Registering $1 with password $2" _nonce=`curl http://localhost:8008/_synapse/admin/v1/register | jq -r .nonce` #data: nonce, domain, username, password _hmac=`printf '%s\0%s\0%s\0%s' "$_nonce" "$1" "$2" "admin" | openssl dgst -sha1 -hmac "$REG_KEY" | awk '{print $2}'` curl -XPOST -d '{"nonce": "'"$_nonce"'", "username": "'"$1"'", "displayname": "'"$1"'", "password": "'"$2"'", "admin": true, "mac": "'"$_hmac"'"}' $REACHABLE_DOMAIN/_synapse/admin/v1/register | tee -a matrix-user-tokens.txt } # -- END OF LICENSED CODE PASSWD=`cat /etc/matrix-user-pass` for u in {draupnir,rory,chris,maddy,cat} do register $u $PASSWD done