diff --git a/src/keyring.cpp b/src/keyring.cpp index 3e7afe0..08500f7 100644 --- a/src/keyring.cpp +++ b/src/keyring.cpp @@ -377,41 +377,6 @@ static bool file_put_sencode (const std::string&fn, sencode*in) return true; } -bool keyring::load() -{ - std::string dir = get_user_dir(); - std::string fn; - bool res; - - /* - * pubkeys loading - */ - fn = dir + PUBKEYS_FILENAME; - - sencode* pubkeys = file_get_sencode (fn); - if (!pubkeys) return false; - - res = parse_pubkeys (pubkeys, pubs); - sencode_destroy (pubkeys); - if (!res) return false; - - - /* - * keypairs loading - */ - fn = dir + SECRETS_FILENAME; - - sencode*keypairs = file_get_sencode (fn); - if (!keypairs) return false; - - res = parse_keypairs (keypairs, pairs); - sencode_destroy (keypairs); - if (!res) return false; - - //all okay - return true; -} - bool keyring::save() { std::string dir, fn; @@ -457,7 +422,35 @@ bool keyring::open() return false; } + //load the public keys + fn = dir + PUBKEYS_FILENAME; + + sencode *pubkeys, *keypairs; + bool res; + + pubkeys = file_get_sencode (fn); + if (!pubkeys) goto close_and_fail; + + res = parse_pubkeys (pubkeys, pubs); + sencode_destroy (pubkeys); + if (!res) goto close_and_fail; + + //load keypairs + fn = dir + SECRETS_FILENAME; + + keypairs = file_get_sencode (fn); + if (!keypairs) goto close_and_fail; + + res = parse_keypairs (keypairs, pairs); + sencode_destroy (keypairs); + if (!res) goto close_and_fail; + + //all okay return true; + +close_and_fail: + close(); + return false; } bool keyring::close() diff --git a/src/keyring.h b/src/keyring.h index fc18d9f..62d7223 100644 --- a/src/keyring.h +++ b/src/keyring.h @@ -83,7 +83,6 @@ public: bool open(); bool close(); - bool load(); bool save(); static std::string get_keyid (const std::string& pubkey); diff --git a/src/main.cpp b/src/main.cpp index a22506a..df0bfd3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -392,14 +392,6 @@ int main (int argc, char**argv) return 1; } - int exitval = 0; - - if (!KR.load() ) { - err ("could not load keyring!"); - exitval = 1; - goto exit; - } - //register all available algorithms fill_algorithm_suite (AS); @@ -407,6 +399,8 @@ int main (int argc, char**argv) * cin/cout redirection */ + int exitval = 0; + if (input.length() && !redirect_cin (input) ) { progerr ("could not open input file"); exitval = 1;