add repo_add_keyring() and repo_add_keydir() functions
[platform/upstream/libsolv.git] / ext / repo_pubkey.h
1 /*
2  * Copyright (c) 2013, Novell Inc.
3  *
4  * This program is licensed under the BSD license, read LICENSE.BSD
5  * for further information
6  */
7
8 #include "repo.h"
9
10 #define ADD_KEYDIR_WITH_DOTFILES        (1 << 8)
11
12 extern int repo_add_rpmdb_pubkeys(Repo *repo, int flags);
13 extern Id repo_add_pubkey(Repo *repo, const char *key, int flags);
14 extern int repo_add_keyring(Repo *repo, FILE *fp, int flags);
15 extern int repo_add_keydir(Repo *repo, const char *keydir, int flags, const char *suffix);
16
17 /* signature parsing */
18 typedef struct _solvsig {
19   unsigned char *sigpkt;
20   int sigpktl;
21   Id htype;
22   unsigned int created;
23   unsigned int expires;
24   char keyid[17];
25 } Solvsig;
26
27 Solvsig *solvsig_create(FILE *fp);
28 void solvsig_free(Solvsig *ss);
29 Id solvsig_verify(Solvsig *ss, Repo *repo, void *chk);
30
31 /* raw signature verification */
32 int solv_verify_sig(const unsigned char *pubdata, int pubdatal, unsigned char *sigpkt, int sigpktl, void *chk);
33 Id repo_verify_sigdata(Repo *repo, unsigned char *sigdata, int sigdatal, const char *keyid);
34