add repo_verify_sigdata, refactor solv_parse_sig into solvsig_create/free/verify
[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 extern int repo_add_rpmdb_pubkeys(Repo *repo, int flags);
11 extern Id repo_add_pubkey(Repo *repo, const char *key, int flags);
12
13 /* signature parsing */
14 typedef struct _solvsig {
15   unsigned char *sigpkt;
16   int sigpktl;
17   Id htype;
18   unsigned int created;
19   unsigned int expires;
20   char keyid[17];
21 } Solvsig;
22
23 Solvsig *solvsig_create(FILE *fp);
24 void solvsig_free(Solvsig *ss);
25 Id solvsig_verify(Solvsig *ss, Repo *repo, void *chk);
26
27 /* raw signature verification */
28 int solv_verify_sig(const unsigned char *pubdata, int pubdatal, unsigned char *sigpkt, int sigpktl, void *chk);
29 Id repo_verify_sigdata(Repo *repo, unsigned char *sigdata, int sigdatal, const char *keyid);
30
31