summary refs log tree commit diff
diff options
context:
space:
mode:
authorJames Barton <james@neodon.com>2022-08-11 15:10:10 -0500
committerGitHub <noreply@github.com>2022-08-11 21:10:10 +0100
commite825f7366b589f61977f63d4fdc598abe052e6a0 (patch)
tree4e8e66d6c15bb12457c33482ff0c9aec1208d554
parentAdd note to `redaction_retention_period` documentation mentioning that event ... (diff)
downloadsynapse-e825f7366b589f61977f63d4fdc598abe052e6a0.tar.xz
Add `openssl` example for registration HMAC (#13472)
Signed-off-by: James Barton <james@neodon.com>
-rw-r--r--changelog.d/13472.doc1
-rw-r--r--docs/admin_api/register_api.md21
2 files changed, 20 insertions, 2 deletions
diff --git a/changelog.d/13472.doc b/changelog.d/13472.doc
new file mode 100644
index 0000000000..2ff6317300
--- /dev/null
+++ b/changelog.d/13472.doc
@@ -0,0 +1 @@
+Add `openssl` example for generating registration HMAC digest.
diff --git a/docs/admin_api/register_api.md b/docs/admin_api/register_api.md
index c346090bb1..d7b7cf6a76 100644
--- a/docs/admin_api/register_api.md
+++ b/docs/admin_api/register_api.md
@@ -46,7 +46,24 @@ As an example:
 The MAC is the hex digest output of the HMAC-SHA1 algorithm, with the key being
 the shared secret and the content being the nonce, user, password, either the
 string "admin" or "notadmin", and optionally the user_type
-each separated by NULs. For an example of generation in Python:
+each separated by NULs.
+
+Here is an easy way to generate the HMAC digest if you have Bash and OpenSSL:
+
+```bash
+# Update these values and then paste this code block into a bash terminal
+nonce='thisisanonce'
+username='pepper_roni'
+password='pizza'
+admin='admin'
+secret='shared_secret'
+
+printf '%s\0%s\0%s\0%s' "$nonce" "$username" "$password" "$admin" |
+  openssl sha1 -hmac "$secret" |
+  awk '{print $2}'
+```
+
+For an example of generation in Python:
 
 ```python
 import hmac, hashlib
@@ -70,4 +87,4 @@ def generate_mac(nonce, user, password, admin=False, user_type=None):
         mac.update(user_type.encode('utf8'))
 
     return mac.hexdigest()
-```
\ No newline at end of file
+```