g10: Unattended key generation "Key-Grip" and "Subkey-Grip".
[gnupg.git] / tools / mime-maker.h
1 /* mime-maker.h - Create MIME structures
2  * Copyright (C) 2016 g10 Code GmbH
3  * Copyright (C) 2016 Bundesamt für Sicherheit in der Informationstechnik
4  *
5  * This file is part of GnuPG.
6  *
7  * This file is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU Lesser General Public License as
9  * published by the Free Software Foundation; either version 2.1 of
10  * the License, or (at your option) any later version.
11  *
12  * This file is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this program; if not, see <https://www.gnu.org/licenses/>.
19  */
20
21 #ifndef GNUPG_MIME_MAKER_H
22 #define GNUPG_MIME_MAKER_H
23
24 struct mime_maker_context_s;
25 typedef struct mime_maker_context_s *mime_maker_t;
26
27 gpg_error_t mime_maker_new (mime_maker_t *r_ctx, void *cookie);
28 void        mime_maker_release (mime_maker_t ctx);
29
30 void mime_maker_set_verbose (mime_maker_t ctx, int level);
31
32 void mime_maker_dump_tree (mime_maker_t ctx);
33
34 gpg_error_t mime_maker_add_header (mime_maker_t ctx,
35                                    const char *name, const char *value);
36 gpg_error_t mime_maker_add_body (mime_maker_t ctx, const char *string);
37 gpg_error_t mime_maker_add_body_data (mime_maker_t ctx,
38                                       const void *data, size_t datalen);
39 gpg_error_t mime_maker_add_stream (mime_maker_t ctx, estream_t *stream_addr);
40 gpg_error_t mime_maker_add_container (mime_maker_t ctx);
41 gpg_error_t mime_maker_end_container (mime_maker_t ctx);
42 unsigned int mime_maker_get_partid (mime_maker_t ctx);
43
44 gpg_error_t mime_maker_make (mime_maker_t ctx, estream_t fp);
45 gpg_error_t mime_maker_get_part (mime_maker_t ctx, unsigned int partid,
46                                  estream_t *r_stream);
47
48
49
50 #endif /*GNUPG_MIME_MAKER_H*/