From 6d0cf1e7bf149e47968bf5a1901c4e87d9f7ad22 Mon Sep 17 00:00:00 2001 From: SATO Yoshiyuki Date: Sat, 12 Jun 2021 13:20:00 +0900 Subject: [PATCH] =?UTF-8?q?Squash=20merge=20PR=20#60=20feat:=20catURL:=20c?= =?UTF-8?q?url=20=E3=81=AE=E4=BB=A3=E6=9B=BF=E3=81=A8=E3=81=97=E3=81=A6=20?= =?UTF-8?q?wget/fetch=20=E3=82=92=E3=82=B5=E3=83=9D=E3=83=BC=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Close #55 --- README.md | 2 +- bin/checkkeylength | 15 ++++++++++++++- bin/enc | 21 ++++++++++++++------- bin/sign | 15 ++++++++++++++- bin/verify | 15 ++++++++++++++- 5 files changed, 57 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 395b245..bae2ebb 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ GitHub 上の公開鍵を使ってファイルの暗号化と署名確認、ロ - 必須コマンド - `openssl` コマンド: 暗号化・復号・ランダム値取得などに [OpenSSL](https://ja.wikipedia.org/wiki/OpenSSL) コマンドが必要です。 - `ssh-keygen` コマンド: 公開鍵・秘密鍵の作成に必要です。[OpenSSH](https://ja.wikipedia.org/wiki/OpenSSH) と一緒にインストールされますが、インストールされていない場合は `openssh` もしくは `openssh-keygen` などでインストールしてください。 - - `curl` コマンド: 現在のバージョンは `wget` に対応しておりません。 + - コンテンツ取得コマンド: 現在のバージョンでは `curl` `wget` `fetch` のいずれかが必要です。 --- diff --git a/bin/checkkeylength b/bin/checkkeylength index 68c3834..3c23274 100755 --- a/bin/checkkeylength +++ b/bin/checkkeylength @@ -29,6 +29,19 @@ getRandStr() { openssl rand -hex 16 2>&1 } +catURL() { + if type curl 1>/dev/null 2>/dev/null; then + curl -s "$1" + elif type wget 1>/dev/null 2>/dev/null; then + wget -nv -O - "$1" + elif type fetch 1>/dev/null 2>/dev/null; then + fetch -q -o - "$1" + else + echo >&2 'データ取得に必要なコマンド(curl/wget/fetch)がインストールされていません。' + exit 1 + fi +} + # コマンド引数取得 # ---------------- USERNAME=$1 @@ -56,7 +69,7 @@ PATHPUBKEY="/tmp/${USERNAME}.${RAND}.pub" # - 参考URL : https://qiita.com/m0r1/items/af16c41475d493ab6774 printf "%s" "${USERNAME} の GitHub 上の公開鍵を取得中 ... " -if ! curl -s "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then +if ! catURL "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then echo "NG:公開鍵を取得・保存できませんでした。" exit 1 fi diff --git a/bin/enc b/bin/enc index 4abce88..46a09e5 100755 --- a/bin/enc +++ b/bin/enc @@ -21,12 +21,6 @@ if ! type openssl 2>/dev/null 1>/dev/null; then exit 1 fi -if ! type curl 2>/dev/null 1>/dev/null; then - echo >&2 'データ取得に必要な curl コマンドがインストールされていません。' - - exit 1 -fi - # ----------------------------------------------------------------------------- # Main # ----------------------------------------------------------------------------- @@ -52,6 +46,19 @@ getRandStr() { openssl rand -hex 16 2>&1 } +catURL() { + if type curl 1>/dev/null 2>/dev/null; then + curl -s "$1" + elif type wget 1>/dev/null 2>/dev/null; then + wget -nv -O - "$1" + elif type fetch 1>/dev/null 2>/dev/null; then + fetch -q -o - "$1" + else + echo >&2 'データ取得に必要なコマンド(curl/wget/fetch)がインストールされていません。' + exit 1 + fi +} + # コマンド引数取得 # ---------------- USERNAME=$1 @@ -86,7 +93,7 @@ PATHPUBKEY="/tmp/${USERNAME}.${RAND}.pub" # - 参考URL : https://qiita.com/m0r1/items/af16c41475d493ab6774 printf "%s" "${USERNAME} の GitHub 上の公開鍵を取得中 ... " -if ! curl -s "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then +if ! catURL "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then echo >&2 "NG:公開鍵を取得・保存できませんでした。" exit 1 fi diff --git a/bin/sign b/bin/sign index ca77352..fef6eb7 100755 --- a/bin/sign +++ b/bin/sign @@ -36,6 +36,19 @@ getRandStr() { openssl rand -hex 16 2>&1 } +catURL() { + if type curl 1>/dev/null 2>/dev/null; then + curl -s "$1" + elif type wget 1>/dev/null 2>/dev/null; then + wget -nv -O - "$1" + elif type fetch 1>/dev/null 2>/dev/null; then + fetch -q -o - "$1" + else + echo >&2 'データ取得に必要なコマンド(curl/wget/fetch)がインストールされていません。' + exit 1 + fi +} + # コマンド引数取得 # ---------------- USERNAME=$1 @@ -93,7 +106,7 @@ PATHPUBKEY="/tmp/${USERNAME}.${RAND}.pub" # - 参考URL : https://qiita.com/m0r1/items/af16c41475d493ab6774 printf "%s" "${USERNAME} の GitHub 上の公開鍵を取得中 ... " -if ! curl -s "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then +if ! catURL "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then echo "NG:公開鍵を取得・保存できませんでした。" exit 1 fi diff --git a/bin/verify b/bin/verify index 7950afe..469100c 100755 --- a/bin/verify +++ b/bin/verify @@ -34,6 +34,19 @@ getRandStr() { openssl rand -hex 16 2>&1 } +catURL() { + if type curl 1>/dev/null 2>/dev/null; then + curl -s "$1" + elif type wget 1>/dev/null 2>/dev/null; then + wget -nv -O - "$1" + elif type fetch 1>/dev/null 2>/dev/null; then + fetch -q -o - "$1" + else + echo >&2 'データ取得に必要なコマンド(curl/wget/fetch)がインストールされていません。' + exit 1 + fi +} + # コマンド引数取得 # ---------------- VERIFYFILE="$1" @@ -78,7 +91,7 @@ PATHPUBKEY="${TMPDIR}/${USERNAME}.pub" # - 参考URL : https://qiita.com/m0r1/items/af16c41475d493ab6774 printf "%s" "- ${USERNAME} の GitHub 上の公開鍵を取得中 ... " -if ! curl -s "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then +if ! catURL "https://github.com/${USERNAME}.keys" | head -n 1 >"$PATHPUBKEY"; then echo "NG:公開鍵を取得・保存できませんでした。" exit 1 fi