From 00c72fda899cf98c32ec806230695d03943d370e Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Fri, 3 Sep 2010 12:02:17 +0300 Subject: [PATCH] rpmcliSign() only creates or deletes signatures - Lose the "this has got something to do with signatures and stuff" dispatcher mode, rpmcliSign() now only does what it says. It also doesn't need transaction set for anything. It doesn't need much else than files to operate on, what to do and possibly a passphrase. It probably will need more when rpmLookupSignatureType() is put out of its misery, but this'll do for now. - Lose the now unnecessary passPhrase member from QVA_t --- lib/rpmcli.h | 11 +++++------ lib/rpmgensig.c | 28 ++-------------------------- rpmqv.c | 4 ++-- 3 files changed, 9 insertions(+), 34 deletions(-) diff --git a/lib/rpmcli.h b/lib/rpmcli.h index 38b4365..8d625b8 100644 --- a/lib/rpmcli.h +++ b/lib/rpmcli.h @@ -171,7 +171,6 @@ struct rpmQVKArguments_s { QSpecF_t qva_specQuery; /*!< Function to query spec file. */ char * qva_queryFormat; /*!< Format for headerFormat(). */ int sign; /*!< Is a passphrase needed? */ - const char * passPhrase; /*!< Pass phrase. */ char qva_mode; /*!< - 'q' from --query, -q @@ -442,13 +441,13 @@ typedef enum rpmSignFlags_e { extern struct poptOption rpmSignPoptTable[]; /** \ingroup rpmcli - * Create/Modify/Check elements from signature header. - * @param ts transaction set - * @param qva mode flags and parameters - * @param argv array of arguments (NULL terminated) + * Create/delete package signatures. + * @param argv array of package path arguments (NULL terminated) + * @param deleting adding or deleting signature(s) + * @param passPhrase passphrase (or NULL when deleting) * @return 0 on success */ -int rpmcliSign(rpmts ts, QVA_t qva, ARGV_const_t argv); +int rpmcliSign(ARGV_const_t argv, int deleting, const char *passPhrase); /** Import public key(s) to rpm keyring * @param ts transaction set diff --git a/lib/rpmgensig.c b/lib/rpmgensig.c index 28968c2..7282d96 100644 --- a/lib/rpmgensig.c +++ b/lib/rpmgensig.c @@ -357,35 +357,11 @@ exit: return res; } -static int rpmReSign(QVA_t qva, ARGV_const_t argv) +int rpmcliSign(ARGV_const_t argv, int deleting, const char *passPhrase) { int res = 0; - int deleting = (qva->qva_mode == RPMSIGN_DEL_SIGNATURE); for (ARGV_const_t arg = argv; arg && *arg; arg++) { - res += rpmSign(*arg, deleting, qva->passPhrase); + res += rpmSign(*arg, deleting, passPhrase); } return res; } - -int rpmcliSign(rpmts ts, QVA_t qva, ARGV_const_t argv) -{ - if (argv == NULL) return -1; - - switch (qva->qva_mode) { - case RPMSIGN_CHK_SIGNATURE: - return rpmcliVerifySignatures(ts, qva, argv); - break; - case RPMSIGN_IMPORT_PUBKEY: - return rpmcliImportPubkeys(ts, argv); - break; - case RPMSIGN_NEW_SIGNATURE: - case RPMSIGN_ADD_SIGNATURE: - case RPMSIGN_DEL_SIGNATURE: - return rpmReSign(qva, argv); - break; - default: - break; - } - - return -1; -} diff --git a/rpmqv.c b/rpmqv.c index e8335d6..bf7e828 100644 --- a/rpmqv.c +++ b/rpmqv.c @@ -499,8 +499,8 @@ int main(int argc, char *argv[]) case MODE_RESIGN: if (!poptPeekArg(optCon)) argerror(_("no arguments given")); - ka->passPhrase = passPhrase; - ec = rpmcliSign(ts, ka, (ARGV_const_t) poptGetArgs(optCon)); + ec = rpmcliSign((ARGV_const_t) poptGetArgs(optCon), + (qva->qva_mode == RPMSIGN_DEL_SIGNATURE), passPhrase); break; #endif /* IAM_RPMK */ -- 2.7.4