gpg: centralize printing signature buffers
[git] / gpg-interface.h
1 #ifndef GPG_INTERFACE_H
2 #define GPG_INTERFACE_H
3
4 #define GPG_VERIFY_VERBOSE      1
5
6 struct 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
24 extern void signature_check_clear(struct signature_check *sigc);
25 extern size_t parse_signature(const char *buf, unsigned long size);
26 extern void parse_gpg_output(struct signature_check *);
27 extern int sign_buffer(struct strbuf *buffer, struct strbuf *signature, const char *signing_key);
28 extern 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);
29 extern int git_gpg_config(const char *, const char *, void *);
30 extern void set_signing_key(const char *);
31 extern const char *get_signing_key(void);
32 extern int check_signature(const char *payload, size_t plen,
33         const char *signature, size_t slen, struct signature_check *sigc);
34 void print_signature_buffer(const struct signature_check *sigc, unsigned flags);
35
36 #endif