From 44ee7c0f5ad0e48b30d8cda9b5a00aa65f7a36f9 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Tue, 15 Sep 2020 14:30:52 -0400 Subject: new name format --- bin/cryptonomic-dyndns-command | 18 +++++++++++------- bin/samizdat-ssh-uid | 23 +++++++++++++++++------ 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/bin/cryptonomic-dyndns-command b/bin/cryptonomic-dyndns-command index dc420d7..8e1cbce 100755 --- a/bin/cryptonomic-dyndns-command +++ b/bin/cryptonomic-dyndns-command @@ -9,7 +9,9 @@ sql_string() powerdns_sqlite_add_replace_record() { - local sql_new_domain="$(sql_string "$1.$3")" + local fqdn="$1.$3" + fqdn=${fqdn: -64 : 64} + local sql_new_domain="$(sql_string "$fqdn")" local sql_ip_address="$(sql_string "$2")" local sql_domain="$(sql_string "$3")" local record_type="$(sql_string "$4")" @@ -46,6 +48,10 @@ BEGIN; WHERE name=$sql_domain; COMMIT; END + r=$? + [ $r = 0 ] || return $r + + printf '%s %s\n' "$fqdn" "$2" } add() @@ -57,8 +63,7 @@ add() *) exit 1 ;; esac - powerdns_sqlite_add_replace_record "$1" "$2" "$domain" "$record_type" \ - && printf '%s %s\n' "$1.$domain $2" + powerdns_sqlite_add_replace_record "$1" "$2" "$domain" "$record_type" } main() @@ -66,16 +71,15 @@ main() add "$subdomain" "$ip_address" set -- $SSH_ORIGINAL_COMMAND - while [ $# -ge 2 ]; do + while [ $# -ge 1 ]; do d=$1 - ip=$2 - shift 2 + shift case "$d" in *.*) continue;; esac - add "$d.$subdomain" "$ip" + add "$d.$subdomain" "$ip_address" done } diff --git a/bin/samizdat-ssh-uid b/bin/samizdat-ssh-uid index 94d8f8c..33cb2b4 100755 --- a/bin/samizdat-ssh-uid +++ b/bin/samizdat-ssh-uid @@ -19,12 +19,23 @@ SSH_CLIENT_FINGERPRINT=$(ssh-keygen -r . -f "${PEMFILE}" | sed -ne 's/^. IN SSHF SSH_CLIENT_FINGERPRINT_B32=$(b16_to_b32 "$SSH_CLIENT_FINGERPRINT") read keytype keydata < "${PEMFILE}" || die "reading from PEMFILE=$PEMFILE" -case "$keytype" in - ssh-rsa|ssh-dss|ecdsa-sha2-nistp256|ssh-ed25519) - domain=$keytype.cryptonomic.net ;; - *) - die "Unsupported key type: $keytype" ;; -esac + +ssh_keytag_to_path_fragment() +{ + case "$1" in + ssh-dss) echo dsa ;; + ecdsa-sha2-nistp256) echo ecdsa ;; + ssh-rsa|ssh-ed25519) echo ${1#ssh-} ;; + *) return 1 ;; + esac +} + +if keyfrag=$(ssh_keytag_to_path_fragment "$keytype") +then + domain=${keyfrag}.cryptonomic.net +else + die "Unsupported key type: $keytype" +fi if [ "$1" = '--copy-pem' -a "$2" ] then -- cgit v1.2.3