File: pps-document-signatures.h

package info (click to toggle)
papers 49.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 21,332 kB
  • sloc: ansic: 37,722; sh: 197; xml: 127; makefile: 112
file content (97 lines) | stat: -rw-r--r-- 3,557 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
// SPDX-License-Identifier: GPL-2.0-or-later
/* pps-document-signatures.h
 * this file is part of papers, a gnome document viewer
 *
 * Copyright (C) 2022-2024 Jan-Michael Brummer <jan-michael.brummer1@volkswagen.de>
 */

#if !defined(__PPS_PAPERS_DOCUMENT_H_INSIDE__) && !defined(PAPERS_COMPILATION)
#error "Only <papers-document.h> can be included directly."
#endif

#ifndef PPS_DOCUMENT_SIGNATURES_H
#define PPS_DOCUMENT_SIGNATURES_H

#include "pps-document.h"
#include "pps-signature.h"
#include <gdk/gdk.h>

G_BEGIN_DECLS

#define PPS_TYPE_DOCUMENT_SIGNATURES (pps_document_signatures_get_type ())

PPS_PUBLIC
G_DECLARE_INTERFACE (PpsDocumentSignatures, pps_document_signatures, PPS, DOCUMENT_SIGNATURES, GObject)

/**
 * PpsSignaturePasswordCallback:
 * @text:
 * @user_data: (closure):
 *
 * Returns: (nullable): The password.
 */
typedef char *(*PpsSignaturePasswordCallback) (const gchar *text, gpointer user_data);

struct _PpsDocumentSignaturesInterface {
	GTypeInterface base_iface;

	/* Methods  */
	void (*set_password_callback) (PpsDocumentSignatures *document_signatures,
	                               PpsSignaturePasswordCallback cb,
	                               gpointer user_data);
	GList *(*get_available_signing_certificates) (PpsDocumentSignatures *document_signatures);
	PpsCertificateInfo *(*get_certificate_info) (PpsDocumentSignatures *document_signatures,
	                                             const char *nick_name);
	void (*sign) (PpsDocumentSignatures *document_signatures,
	              PpsSignature *signature,
	              GCancellable *cancellable,
	              GAsyncReadyCallback callback,
	              gpointer user_data);
	gboolean (*sign_finish) (PpsDocumentSignatures *document_signatures,
	                         GAsyncResult *result,
	                         GError **error);
	gboolean (*can_sign) (PpsDocumentSignatures *document_signatures);
	gboolean (*has_signatures) (PpsDocumentSignatures *document_signatures);
	GList *(*get_signatures) (PpsDocumentSignatures *document_signatures);
};

PPS_PUBLIC
GList *pps_document_signatures_get_available_signing_certificates (PpsDocumentSignatures *document_signatures);

PPS_PUBLIC
void pps_document_signatures_set_password_callback (PpsDocumentSignatures *document_signatures,
                                                    PpsSignaturePasswordCallback cb,
                                                    gpointer user_data);

PPS_PUBLIC
PpsCertificateInfo *pps_document_signatures_get_certificate_info (PpsDocumentSignatures *document_signatures,
                                                                  const char *nick_name);

PPS_PUBLIC
gboolean
pps_document_signatures_sign (PpsDocumentSignatures *document_signatures,
                              PpsSignature *signature,
                              GCancellable *cancellable,
                              GAsyncReadyCallback callback,
                              gpointer user_data);

PPS_PUBLIC
gboolean pps_document_signatures_can_sign (PpsDocumentSignatures *document_signatures);

PPS_PUBLIC
gboolean
pps_document_signatures_sign_finish (PpsDocumentSignatures *document_signatures,
                                     GAsyncResult *result,
                                     GError **error);

PPS_PUBLIC
gboolean
pps_document_signatures_has_signatures (PpsDocumentSignatures *document_signatures);

PPS_PUBLIC
GList *
pps_document_signatures_get_signatures (PpsDocumentSignatures *document_signatures);

G_END_DECLS

#endif /* PPS_DOCUMENT_SIGNATURES_H */