feat(unitproc):validateInput:Add check for 'age' public keys
authorSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sat, 4 Jul 2020 21:40:42 +0000 (21:40 +0000)
committerSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sat, 4 Jul 2020 21:40:42 +0000 (21:40 +0000)
Ref: https://en.bitcoin.it/wiki/BIP_0173
Ref: https://github.com/FiloSottile/age

unitproc/bktemp-validateInput

index 7bd88959382158e9c49304bd2c212f7777074aba..2f39d8b67c4ebbef37c042ffbf905d787b12bc6b 100644 (file)
@@ -7,7 +7,7 @@ try() { "$@" || die "cannot $*"; } #o
 validateInput() {
     # Desc: Validates Input
     # Usage: validateInput [str input] [str input type]
-    # Version: 0.1.1
+    # Version: 0.2.0
     # Input: arg1: string to validate
     #        arg2: string specifying input type (ex:"ssh_pubkey")
     # Output: return code 0: if input string matched specified string type
@@ -27,8 +27,15 @@ validateInput() {
     # Define input types
     ## ssh_pubkey
     ### Check for alnum/dash base64 (ex: "ssh-rsa AAAAB3NzaC1yc2EAAA")
-    if [[ "$argType" = "ssh_pubkey" ]] && [[ "$argInput" =~ ^[[:alnum:]-]*[\ ]*[[:alnum:]+/=]*$ ]]; then
-       return 0; fi;
+    if [[ "$argType" = "ssh_pubkey" ]]; then
+       if [[ "$argInput" =~ ^[[:alnum:]-]*[\ ]*[[:alnum:]+/=]*$ ]]; then
+       return 0; fi; fi;
+
+    ## age_pubkey
+    ### Check for age1[:bech32:]
+    if [[ "$argType" = "bech32" ]]; then
+       if [[ "$argInput" =~ ^age1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]*$ ]]; then
+           return 0; fi; fi
 
     # Return error if no condition matched.
     return 1;
@@ -38,14 +45,14 @@ validateInput() {
 testKey1="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq8G0XWi8A+MXNu7MEaxDsZJUwtgPC4shGAAarXC4PQTRxLfUHtyWkNbzGh31U/bKI3Snp1O78yOVEZSjdmWkDvkwtWKJQcoZBStgqw9oIPE0oG8uh49XoX77nVabi0JCf8zO63Ai4/9EdwyqE9xsJ+soOYt2V5+UCj0zsv1xpt2YhfYyXrzBv9x6k9lCxy0NW3Ik1mSW+OzSOT3tgDf36ujV/CI2i8ERM9civWy8FtFOReZMV2kkbj7fXI4E1wKM1RFIn7er1MseCSvbvh3o2uCO46/euqHAstYs5cL+4yB2qM/xKfHT5aocDjq7GBLKtree9xdNF0EE9CNr/+J5R";
 testKey2="blah-blah onetwothreeREEE";
 testKey3="";
-keyType="ssh_pubkey";
-if validateInput "$testKey1" "$keyType"; then echo "$testKey1 looks like a valid $keyType."; else echo "$testKey1 doesn't look like a valid $keyType."; fi
-if validateInput "$testKey2" "$keyType"; then echo "$testKey2 looks like a valid $keyType."; else echo "$testKey2 doesn't look like a valid $keyType."; fi
-if validateInput "$testKey3" "$keyType"; then echo "$testKey3 looks like a valid $keyType."; else echo "$testKey3 doesn't look like a valid $keyType."; fi
+testKey4="age1c3s6huz6en6jh40cem0erc0m2un2ry85my0t0ujj4a5cu8gzkysq9l39e4";
+keyTypeA="ssh_pubkey";
+keyTypeB="bech32";
+if validateInput "$testKey1" "$keyTypeA"; then echo "$testKey1 looks like a valid $keyTypeA."; else echo "$testKey1 doesn't look like a valid $keyTypeA."; fi
+if validateInput "$testKey2" "$keyTypeA"; then echo "$testKey2 looks like a valid $keyTypeA."; else echo "$testKey2 doesn't look like a valid $keyTypeA."; fi
+if validateInput "$testKey3" "$keyTypeA"; then echo "$testKey3 looks like a valid $keyTypeA."; else echo "$testKey3 doesn't look like a valid $keyTypeA."; fi
+if validateInput "$testKey4" "$keyTypeB"; then echo "$testKey4 looks like a valid $keyTypeB."; else echo "$testKey4 doesn't look like a valid $keyTypeB."; fi
 #==END sample code==
 
-
-
-
 # Author: Steven Baltakatei Sandoval (bktei.com)
 # License: GPLv3+