rpmcliSign() only creates or deletes signatures
authorPanu Matilainen <pmatilai@redhat.com>
Fri, 3 Sep 2010 09:02:17 +0000 (12:02 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 3 Sep 2010 09:30:57 +0000 (12:30 +0300)
- 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
lib/rpmgensig.c
rpmqv.c

index 38b4365..8d625b8 100644 (file)
@@ -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
index 28968c2..7282d96 100644 (file)
@@ -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 (file)
--- 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 */