// パスワードを保存する
gpgme_ctx_t ctx;
gpgme_error_t err;
- gpgme_key_t key;
+ gpgme_key_t key[2] = {NULL, NULL};
gpgme_data_t in, out;
FILE *gpgfile;
keyid[strcspn(keyid, "\n")] = 0;
fclose(keyfile);
- err = gpgme_get_key(ctx, keyid, &key, 0);
+ err = gpgme_get_key(ctx, keyid, &key[0], 0);
if (err) {
fprintf(stderr, "鍵を受取に失敗: %s\n", gpgme_strerror(err));
free(keyid);
return;
}
- if (key == NULL) {
+ if (key[0] == NULL) {
fprintf(stderr, "エラー:鍵はNULLです。\n");
free(keyid);
return;
free(keyid);
// 暗号化
- gpgme_key_t recp[1] = {key};
- err = gpgme_op_encrypt(ctx, recp, GPGME_ENCRYPT_ALWAYS_TRUST, in, out);
+ err = gpgme_op_encrypt(ctx, &key[0], GPGME_ENCRYPT_ALWAYS_TRUST, in, out);
if (err) {
fprintf(stderr, "暗号化に失敗: %s\n", gpgme_strerror(err));
gpgme_data_release(in);
gpgme_data_release(out);
gpgme_release(ctx);
- gpgme_key_release(key);
+ gpgme_key_release(key[0]);
return;
}
gpgme_data_release(in);
gpgme_data_release(out);
gpgme_release(ctx);
- gpgme_key_release(key);
+ gpgme_key_release(key[0]);
perror("メモリを割当に失敗。");
return;
}
gpgme_data_release(in);
gpgme_data_release(out);
gpgme_release(ctx);
- gpgme_key_release(key);
+ gpgme_key_release(key[0]);
perror("ディレクトリを創作に失敗。");
return;
}
gpgme_data_release(in);
gpgme_data_release(out);
gpgme_release(ctx);
- gpgme_key_release(key);
+ gpgme_key_release(key[0]);
return;
}
gpgme_data_release(in);
gpgme_data_release(out);
gpgme_release(ctx);
- gpgme_key_release(key);
+ gpgme_key_release(key[0]);
return;
}
gpgme_data_release(in);
gpgme_data_release(out);
gpgme_release(ctx);
- gpgme_key_release(key);
+ gpgme_key_release(key[0]);
printf("パスワードを保存出来ました。\n");
}
//printf("%s -l :パスワード一覧を表示\n", sofname);
printf("%s -a <パスワード名> :パスワードを追加\n", sofname);
//printf("%s -d <パスワード名> :パスワードを削除\n", sofname);
- //printf("%s -g <æ\96\87å\97æ\95°> [risk|secure] <ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89å\90\8d> ï¼\9aå¸\8cæ\9c\9bæ\96\87å\97æ\95°ã\81§ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ã\83©ã\83³ã\83\80ã\83 ã\81«ä½\9cæ\88\90ã\81\97ã\81¦ã\80\81追å\8a ã\81\99ã\82\8bã\80\82riskï¼\9dè\8b±æ\95°å\97ã\81®ã\81¿ï¼\88ä¸\8då®\89ï¼\89ã\80\81secureï¼\9dè\8b±æ\95°å\97ï¼\8bç\89¹å\88¥æ\96\87å\97ï¼\88ã\83\87ã\83\95ã\82©ã\83«ã\83\88ï¼\89ã\82\92使ç\94¨\n", sofname);
+ //printf("%s -g <文字数> [risk|secure] <パスワード名> :希望文字数でパスワードをランダムに作成する。risk=英数字のみ(不安)、secure=英数字+特別文字(デフォルト)を使用\n", sofname);
//printf("%s -o <パスワード名>\n :ワンタイムパスワード(TOTP)を表示。存在しなければ、創作する", sofname);
printf("%s -h :ヘルプを表示\n", sofname);
printf("%s -v :バージョンを表示\n", sofname);