パスワード変更機能性の追加

このコミットが含まれているのは:
守矢諏訪子 2024-02-01 17:01:15 +09:00
コミット 3976c11d91
4個のファイルの変更25行の追加15行の削除

ファイルの表示

@ -4,6 +4,7 @@
* パスワードの長さの延長
* パスワード追加機能性で、パスワードが既に存在するかどうか確認
* パスワード削除機能性で、パスワードが存在ないかどうか確認
* パスワード変更機能性の追加
# 1.1.2
* OpenBSDでのコンパイラーが発生された問題を修正した

ファイルの表示

@ -4,7 +4,7 @@
#include "delpass.h"
int delpass(char* file) {
int delpass(char* file, int force) {
// パスを準備
char pwfile[512];
char* homedir = getenv("HOME");
@ -39,21 +39,25 @@ int delpass(char* file) {
}
// 削除を確認する
printf("パスワード「%s」を本当に削除する事が宜しいでしょうか? (y/N): ", file);
int confirm = getchar();
if (confirm != 'y' && confirm != 'Y') {
printf("削除しませんでした。\n");
return -1;
}
if (force == 0) { // パスワードの変更のばあい、確認は不要
printf("パスワード「%s」を本当に削除する事が宜しいでしょうか? (y/N): ", file);
int confirm = getchar();
if (confirm != 'y' && confirm != 'Y') {
printf("削除しませんでした。\n");
return -1;
}
int ch;
while ((ch = getchar()) != '\n' && ch != EOF);
int ch;
while ((ch = getchar()) != '\n' && ch != EOF);
}
if (unlink(pwfile) == -1) {
perror("パスワードを削除出来ませんですた。");
return -1;
}
if (force == 1) return 0;
printf("パスワードを削除しました。\n");
return -1;
return 0;
}

ファイルの表示

@ -1,6 +1,6 @@
#ifndef DELPASS_H
#define DELPASS_H
int delpass(char* file);
int delpass(char* file, int force);
#endif

13
main.c
ファイルの表示

@ -19,15 +19,16 @@ const char* sofname = "sp";
const char* version = "1.2.0";
void helpme() {
printf(" sp - シンプルなパスワードマネージャー\n");
printf("https://076.moe/ | https://gitler.moe/suwako/sp\n\n");
printf("使い方:\n");
printf(" %s %s - シンプルなパスワードマネージャー\n", sofname, version);
printf("https://076.moe/ | https://gitler.moe/suwako/%s\n\n", sofname);
puts ("使い方:\n");
printf("%s -i <gpg-id> GPGと使ってパスワードストレージを初期設定\n", sofname);
printf("%s -s <パスワード名> :パスワードを表示\n", sofname);
printf("%s -y <パスワード名> :パスワードを表示せずクリップボードにコピーする\n", sofname);
printf("%s -l :パスワード一覧を表示\n", sofname);
printf("%s -a <パスワード名> :パスワードを追加\n", sofname);
printf("%s -d <パスワード名> :パスワードを削除\n", sofname);
printf("%s -e <パスワード名> :パスワードを変更\n", sofname);
printf("%s -g <文字数> [risk|secure] 希望文字数でパスワードをランダムに作成する。risk英数字のみ(不安)、secure英数字特別文字(デフォルト)を使用\n", sofname);
printf("%s -o <パスワード名>\n ワンタイムパスワード(TOTP)を表示。存在しなければ、創作する\n", sofname);
printf("%s -h :ヘルプを表示\n", sofname);
@ -57,7 +58,11 @@ int main (int argc, char* argv[]) {
listpass(basePath, 0);
}
else if (argc == 3 && strcmp(argv[1], "-a") == 0) addpass(argv[2]);
else if (argc == 3 && strcmp(argv[1], "-d") == 0) delpass(argv[2]);
else if (argc == 3 && strcmp(argv[1], "-d") == 0) delpass(argv[2], 0);
else if (argc == 3 && strcmp(argv[1], "-e") == 0) {
delpass(argv[2], 1);
addpass(argv[2]);
}
else if (strcmp(argv[1], "-g") == 0) {
if (argc == 3) genpass(atoi(argv[2]), true);
else if (argc == 4 && strcmp(argv[3], "risk") == 0) genpass(atoi(argv[2]), false);