27 #include <gpgmepp/context.h> 29 #include <tdepimmacros.h> 165 Feature_SignMessages = 1,
166 Feature_VerifySignatures = 2,
167 Feature_EncryptMessages = 3,
168 Feature_DecryptMessages = 4,
169 Feature_SendCertificates = 5,
170 Feature_WarnSignCertificateExpiry = 6,
171 Feature_WarnSignEmailNotInCertificate = 7,
172 Feature_PinEntrySettings = 8,
173 Feature_StoreMessagesWithSigs = 9,
174 Feature_EncryptionCRLs = 10,
175 Feature_WarnEncryptCertificateExpiry = 11,
176 Feature_WarnEncryptEmailNotInCertificate = 12,
177 Feature_StoreMessagesEncrypted = 13,
178 Feature_CheckCertificatePath = 14,
179 Feature_CertificateDirectoryService = 15,
180 Feature_CRLDirectoryService = 16,
181 Feature_CertificateInfo = 17
186 PinRequest_undef = 0,
188 PinRequest_Always = 1,
189 PinRequest_WhenAddingCerts = 2,
190 PinRequest_AlwaysWhenSigning = 3,
191 PinRequest_OncePerSession = 4,
192 PinRequest_AfterMinutes = 5
197 SignatureCompoundMode_undef = 0,
199 SignatureCompoundMode_Opaque = 1,
200 SignatureCompoundMode_Detached = 2
201 } SignatureCompoundMode;
207 SendCert_DontSend = 1,
208 SendCert_SendOwn = 2,
209 SendCert_SendChainWithoutRoot = 3,
210 SendCert_SendChainWithRoot = 4
218 } SignatureAlgorithm;
223 EncryptAlg_undef = 0,
227 EncryptAlg_TripleDES = 3
228 } EncryptionAlgorithm;
233 SignEmail_SignAll = 1,
235 SignEmail_DontSign = 3
239 EncryptEmail_undef = 0,
241 EncryptEmail_EncryptAll = 1,
242 EncryptEmail_Ask = 2,
243 EncryptEmail_DontEncrypt = 3
251 CertSrc_ServerLocal = CertSrc_Server | CertSrc_Local
281 SigStat_VALID = 0x0001,
282 SigStat_GREEN = 0x0002,
283 SigStat_RED = 0x0004,
284 SigStat_KEY_REVOKED = 0x0010,
285 SigStat_KEY_EXPIRED = 0x0020,
286 SigStat_SIG_EXPIRED = 0x0040,
287 SigStat_KEY_MISSING = 0x0080,
288 SigStat_CRL_MISSING = 0x0100,
289 SigStat_CRL_TOO_OLD = 0x0200,
290 SigStat_BAD_POLICY = 0x0400,
291 SigStat_SYS_ERROR = 0x0800,
293 SigStat_NUMERICAL_CODE = 0x8000
295 typedef unsigned long SigStatusFlags;
299 class KDE_EXPORT CryptPlug {
303 virtual ~CryptPlug();
306 gpgme_protocol_t GPGMEPLUG_PROTOCOL;
307 GpgME::Context::Protocol mProtocol;
311 int GPGMEPLUG_OPA_SIGN_INCLUDE_CLEARTEXT;
312 int GPGMEPLUG_OPA_SIGN_MAKE_MIME_OBJECT;
313 int GPGMEPLUG_OPA_SIGN_MAKE_MULTI_MIME;
314 const char * GPGMEPLUG_OPA_SIGN_CTYPE_MAIN;
315 const char * GPGMEPLUG_OPA_SIGN_CDISP_MAIN;
316 const char * GPGMEPLUG_OPA_SIGN_CTENC_MAIN;
317 const char * GPGMEPLUG_OPA_SIGN_CTYPE_VERSION;
318 const char * GPGMEPLUG_OPA_SIGN_CDISP_VERSION;
319 const char * GPGMEPLUG_OPA_SIGN_CTENC_VERSION;
320 const char * GPGMEPLUG_OPA_SIGN_BTEXT_VERSION;
321 const char * GPGMEPLUG_OPA_SIGN_CTYPE_CODE;
322 const char * GPGMEPLUG_OPA_SIGN_CDISP_CODE;
323 const char * GPGMEPLUG_OPA_SIGN_CTENC_CODE;
324 const char * GPGMEPLUG_OPA_SIGN_FLAT_PREFIX;
325 const char * GPGMEPLUG_OPA_SIGN_FLAT_SEPARATOR;
326 const char * GPGMEPLUG_OPA_SIGN_FLAT_POSTFIX;
328 int GPGMEPLUG_DET_SIGN_INCLUDE_CLEARTEXT;
329 int GPGMEPLUG_DET_SIGN_MAKE_MIME_OBJECT;
330 int GPGMEPLUG_DET_SIGN_MAKE_MULTI_MIME;
331 const char * GPGMEPLUG_DET_SIGN_CTYPE_MAIN;
332 const char * GPGMEPLUG_DET_SIGN_CDISP_MAIN;
333 const char * GPGMEPLUG_DET_SIGN_CTENC_MAIN;
334 const char * GPGMEPLUG_DET_SIGN_CTYPE_VERSION;
335 const char * GPGMEPLUG_DET_SIGN_CDISP_VERSION;
336 const char * GPGMEPLUG_DET_SIGN_CTENC_VERSION;
337 const char * GPGMEPLUG_DET_SIGN_BTEXT_VERSION;
338 const char * GPGMEPLUG_DET_SIGN_CTYPE_CODE;
339 const char * GPGMEPLUG_DET_SIGN_CDISP_CODE;
340 const char * GPGMEPLUG_DET_SIGN_CTENC_CODE;
341 const char * GPGMEPLUG_DET_SIGN_FLAT_PREFIX;
342 const char * GPGMEPLUG_DET_SIGN_FLAT_SEPARATOR;
343 const char * GPGMEPLUG_DET_SIGN_FLAT_POSTFIX;
345 int __GPGMEPLUG_SIGNATURE_CODE_IS_BINARY;
348 int GPGMEPLUG_ENC_INCLUDE_CLEARTEXT;
349 int GPGMEPLUG_ENC_MAKE_MIME_OBJECT;
350 int GPGMEPLUG_ENC_MAKE_MULTI_MIME;
351 const char * GPGMEPLUG_ENC_CTYPE_MAIN;
352 const char * GPGMEPLUG_ENC_CDISP_MAIN;
353 const char * GPGMEPLUG_ENC_CTENC_MAIN;
354 const char * GPGMEPLUG_ENC_CTYPE_VERSION;
355 const char * GPGMEPLUG_ENC_CDISP_VERSION;
356 const char * GPGMEPLUG_ENC_CTENC_VERSION;
357 const char * GPGMEPLUG_ENC_BTEXT_VERSION;
358 const char * GPGMEPLUG_ENC_CTYPE_CODE;
359 const char * GPGMEPLUG_ENC_CDISP_CODE;
360 const char * GPGMEPLUG_ENC_CTENC_CODE;
361 const char * GPGMEPLUG_ENC_FLAT_PREFIX;
362 const char * GPGMEPLUG_ENC_FLAT_SEPARATOR;
363 const char * GPGMEPLUG_ENC_FLAT_POSTFIX;
364 int __GPGMEPLUG_ENCRYPTED_CODE_IS_BINARY;
369 #define CRYPTPLUG_CERT_DOES_NEVER_EXPIRE 365000 370 #define CRYPTPLUG_ERR_WRONG_KEY_USAGE 0x7070 384 bool initialize(
void );
808 struct SignatureMetaDataExtendedInfo
810 struct tm* creation_time;
811 SigStatusFlags sigStatusFlags;
821 unsigned long algo_num;
822 unsigned long validity;
823 unsigned long userid_num;
824 unsigned long keylen;
825 unsigned long key_created;
826 unsigned long key_expires;
831 struct SignatureMetaData {
833 struct SignatureMetaDataExtendedInfo* extended_info;
834 int extended_info_count;
859 bool checkMessageSignature(
char** cleartext,
860 const char* signaturetext,
861 bool signatureIsBinary,
863 struct SignatureMetaData* sigmeta,
865 const char* unknownAttrsHandling );
878 bool decryptMessage(
const char* ciphertext,
881 const char** cleartext,
882 const char* certificate,
897 bool decryptAndCheckMessage(
const char* ciphertext,
900 const char** cleartext,
901 const char* certificate,
902 bool* signatureFound,
903 struct SignatureMetaData* sigmeta,
907 const char* unknownAttrsHandling );
914 struct CertificateInfo {
926 unsigned long created;
927 unsigned long expire;
934 struct DnPair *dnarray;
940 GpgME::ImportResult importCertificateFromMem(
const char* data,
size_t length );
943 class SMIMECryptPlug :
public CryptPlug {
948 class OpenPGPCryptPlug :
public CryptPlug {
bool hasFeature(::Feature)
This function returns true if the specified feature is available in the plugin, and false otherwise...
This class provides C++ access to the CRYPTPLUG API.
char * contentTypeVersion
void free_StructuringInfo(struct StructuringInfo *s)
Important method for freeing all memory that was allocated for the char* members of a StructuringInfo...
void init_StructuringInfo(struct StructuringInfo *s)
If you are not planning to write your own cryptography plugin you should ignore this function! ...
Information record returned by signing and by encrypting functions - this record should be used toget...
char * contentDispVersion
char * contentTEncVersion