|
@@ -436,6 +436,31 @@ _digest() {
|
|
|
|
|
|
}
|
|
|
|
|
|
+#Usage: hashalg secret [outputhex]
|
|
|
+#Output Base64-encoded hmac
|
|
|
+_hmac() {
|
|
|
+ alg="$1"
|
|
|
+ hmac_sec="$2"
|
|
|
+ outputhex="$3"
|
|
|
+
|
|
|
+ if [ -z "$hmac_sec" ] ; then
|
|
|
+ _usage "Usage: _hmac hashalg secret [outputhex]"
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ "$alg" = "sha256" ] || [ "$alg" = "sha1" ]; then
|
|
|
+ if [ "$outputhex" ] ; then
|
|
|
+ openssl dgst -$alg -hmac "$hmac_sec" | cut -d = -f 2 | tr -d ' '
|
|
|
+ else
|
|
|
+ openssl dgst -$alg -hmac "$hmac_sec" -binary | _base64
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ _err "$alg is not supported yet"
|
|
|
+ return 1
|
|
|
+ fi
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
#Usage: keyfile hashalg
|
|
|
#Output: Base64-encoded signature value
|
|
|
_sign() {
|