1 /*
2     kleo/enum.h
3 
4     This file is part of libkleopatra, the KDE keymanagement library
5     SPDX-FileCopyrightText: 2004 Klarälvdalens Datakonsult AB
6 
7     SPDX-License-Identifier: GPL-2.0-or-later
8 */
9 
10 #pragma once
11 
12 #include "kleo_export.h"
13 
14 class QString;
15 #include <QStringList>
16 
17 namespace GpgME {
18 class Key;
19 class UserID;
20 }
21 
22 namespace Kleo
23 {
24 
25 enum class KeyUsage : char {
26     AnyUsage,
27     Sign,
28     Encrypt,
29     Certify,
30     Authenticate,
31 };
32 
33 enum CryptoMessageFormat {
34     InlineOpenPGPFormat = 1,
35     OpenPGPMIMEFormat = 2,
36     SMIMEFormat = 4,
37     SMIMEOpaqueFormat = 8,
38     AnyOpenPGP = InlineOpenPGPFormat | OpenPGPMIMEFormat,
39     AnySMIME = SMIMEOpaqueFormat | SMIMEFormat,
40     AutoFormat = AnyOpenPGP | AnySMIME
41 };
42 
43 KLEO_EXPORT QString cryptoMessageFormatToLabel(CryptoMessageFormat f);
44 
45 KLEO_EXPORT const char *cryptoMessageFormatToString(CryptoMessageFormat f);
46 KLEO_EXPORT QStringList cryptoMessageFormatsToStringList(unsigned int f);
47 KLEO_EXPORT CryptoMessageFormat stringToCryptoMessageFormat(const QString &s);
48 KLEO_EXPORT unsigned int stringListToCryptoMessageFormats(const QStringList &sl);
49 
50 enum Action {
51     Conflict, DoIt, DontDoIt, Ask, AskOpportunistic, Impossible
52 };
53 
54 enum EncryptionPreference {
55     UnknownPreference = 0,
56     NeverEncrypt = 1,
57     AlwaysEncrypt = 2,
58     AlwaysEncryptIfPossible = 3,
59     AlwaysAskForEncryption = 4,
60     AskWheneverPossible = 5,
61     MaxEncryptionPreference = AskWheneverPossible
62 };
63 
64 KLEO_EXPORT QString encryptionPreferenceToLabel(EncryptionPreference pref);
65 KLEO_EXPORT const char *encryptionPreferenceToString(EncryptionPreference pref);
66 KLEO_EXPORT EncryptionPreference stringToEncryptionPreference(const QString &str);
67 
68 enum SigningPreference {
69     UnknownSigningPreference = 0,
70     NeverSign = 1,
71     AlwaysSign = 2,
72     AlwaysSignIfPossible = 3,
73     AlwaysAskForSigning = 4,
74     AskSigningWheneverPossible = 5,
75     MaxSigningPreference = AskSigningWheneverPossible
76 };
77 
78 KLEO_EXPORT QString signingPreferenceToLabel(SigningPreference pref);
79 KLEO_EXPORT const char *signingPreferenceToString(SigningPreference pref);
80 KLEO_EXPORT SigningPreference stringToSigningPreference(const QString &str);
81 
82 enum TrustLevel {
83     Level0,
84     Level1,
85     Level2,
86     Level3,
87     Level4
88 };
89 
90 KLEO_EXPORT TrustLevel trustLevel(const GpgME::Key &key);
91 KLEO_EXPORT TrustLevel trustLevel(const GpgME::UserID &uid);
92 
93 
94 }
95 
96