1#ifndef GPG_INTERFACE_H
2#define GPG_INTERFACE_H
3
4#define GPG_VERIFY_VERBOSE 1
5
6struct signature_check {
7 char *payload;
8 char *gpg_output;
9 char *gpg_status;
10
11 /*
12 * possible "result":
13 * 0 (not checked)
14 * N (checked but no further result)
15 * U (untrusted good)
16 * G (good)
17 * B (bad)
18 */
19 char result;
20 char *signer;
21 char *key;
22};
23
24extern void signature_check_clear(struct signature_check *sigc);
25extern size_t parse_signature(const char *buf, unsigned long size);
26extern void parse_gpg_output(struct signature_check *);
27extern int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key);
28extern int verify_signed_buffer(const char *payload, size_t payload_size, const char *signature, size_t signature_size, struct strbuf *gpg_output, struct strbuf *gpg_status);
29extern int git_gpg_config(const char *, const char *, void *);
30extern void set_signing_key(const char *);
31extern const char *get_signing_key(void);
32extern int check_signature(const char *payload, size_t plen,
33 const char *signature, size_t slen, struct signature_check *sigc);
34void print_signature_buffer(const struct signature_check *sigc, unsigned flags);
35
36#endif