]> git.ipfire.org Git - thirdparty/git.git/blob - gpg-interface.h
gpg: centralize printing signature buffers
[thirdparty/git.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