Imported Upstream version 0.7.14
[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 #include "chksum.h"
10
11 #define ADD_KEYDIR_WITH_DOTFILES        (1 << 8)
12 #define ADD_WITH_SUBKEYS                (1 << 9)
13 #define ADD_MULTIPLE_PUBKEYS            (1 << 10)
14 #define ADD_WITH_KEYSIGNATURES          (1 << 11)
15 #define USE_RPM_PUBKEY_BUILTTIME        (1 << 12)
16
17 extern int repo_add_rpmdb_pubkeys(Repo *repo, int flags);
18 extern Id repo_add_pubkey(Repo *repo, const char *keyfile, int flags);
19 extern int repo_add_keyring(Repo *repo, FILE *fp, int flags);
20 extern int repo_add_keydir(Repo *repo, const char *keydir, const char *suffix, int flags);
21
22 /* signature parsing */
23 typedef struct s_Solvsig {
24   unsigned char *sigpkt;
25   int sigpktl;
26   Id htype;
27   unsigned int created;
28   unsigned int expires;
29   char keyid[17];
30 } Solvsig;
31
32 Solvsig *solvsig_create(FILE *fp);
33 void solvsig_free(Solvsig *ss);
34 Id solvsig_verify(Solvsig *ss, Repo *repo, Chksum *chk);
35
36 Id repo_verify_sigdata(Repo *repo, unsigned char *sigdata, int sigdatal, const char *keyid);
37 Id repo_find_pubkey(Repo *repo, const char *keyid);
38 void repo_find_all_pubkeys(Repo *repo, const char *keyid, Queue *q);
39