X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=ext%2Frepo_pubkey.h;h=51946bf93cfc6c46566e1e7f8aed8f73d79ff701;hb=9c08bb3b899936e1eb9b6ab9d0cef17501ad6bab;hp=a9f9e73d664361426b69f514e260654fb816420f;hpb=27c054b4871ce52ea23347651c40e0922ea34e96;p=platform%2Fupstream%2Flibsolv.git diff --git a/ext/repo_pubkey.h b/ext/repo_pubkey.h index a9f9e73..51946bf 100644 --- a/ext/repo_pubkey.h +++ b/ext/repo_pubkey.h @@ -6,6 +6,34 @@ */ #include "repo.h" +#include "chksum.h" + +#define ADD_KEYDIR_WITH_DOTFILES (1 << 8) +#define ADD_WITH_SUBKEYS (1 << 9) +#define ADD_MULTIPLE_PUBKEYS (1 << 10) +#define ADD_WITH_KEYSIGNATURES (1 << 11) +#define USE_RPM_PUBKEY_BUILTTIME (1 << 12) extern int repo_add_rpmdb_pubkeys(Repo *repo, int flags); -extern Id repo_add_pubkey(Repo *repo, const char *key, int flags); +extern Id repo_add_pubkey(Repo *repo, const char *keyfile, int flags); +extern int repo_add_keyring(Repo *repo, FILE *fp, int flags); +extern int repo_add_keydir(Repo *repo, const char *keydir, const char *suffix, int flags); + +/* signature parsing */ +typedef struct s_Solvsig { + unsigned char *sigpkt; + int sigpktl; + Id htype; + unsigned int created; + unsigned int expires; + char keyid[17]; +} Solvsig; + +Solvsig *solvsig_create(FILE *fp); +void solvsig_free(Solvsig *ss); +Id solvsig_verify(Solvsig *ss, Repo *repo, Chksum *chk); + +Id repo_verify_sigdata(Repo *repo, unsigned char *sigdata, int sigdatal, const char *keyid); +Id repo_find_pubkey(Repo *repo, const char *keyid); +void repo_find_all_pubkeys(Repo *repo, const char *keyid, Queue *q); +