return res;
}
+int rpmPkgSign(const char *path,
+ const struct rpmSignArgs * args, const char *passPhrase)
+{
+ int rc;
+
+ if (args && args->keyid) {
+ addMacro(NULL, "_gpg_name", NULL, args->keyid, RMIL_GLOBAL);
+ }
+
+ rc = rpmSign(path, 0, passPhrase);
+
+ if (args && args->keyid) {
+ delMacro(NULL, "_gpg_name");
+ }
+
+ return rc;
+}
+
+int rpmPkgDelSign(const char *path)
+{
+ return rpmSign(path, 1, NULL);
+}
+
int rpmcliSign(ARGV_const_t argv, int deleting, const char *passPhrase)
{
int res = 0;
#define _RPMSIGN_H
#include <rpm/argv.h>
+#include <rpm/rpmpgp.h>
#ifdef __cplusplus
extern "C" {
*/
int rpmcliSign(ARGV_const_t argv, int deleting, const char *passPhrase);
+struct rpmSignArgs {
+ char *keyid;
+ pgpHashAlgo hashalgo;
+ /* ... what else? */
+};
+
+/** \ingroup rpmsign
+ * Sign a package
+ * @param path path to package
+ * @param args signing parameters (or NULL for defaults)
+ * @param passphrase passphrase for the signing key
+ * @return 0 on success
+ */
+int rpmPkgSign(const char *path,
+ const struct rpmSignArgs * args, const char *passPhrase);
+
+/** \ingroup rpmsign
+ * Delete signature(s) from a package
+ * @param path path to package
+ * @return 0 on success
+ */
+int rpmPkgDelSign(const char *path);
+
#ifdef __cplusplus
}
#endif