pEpObjCAdapterFramework/PEPEngineTypes.h
branchIOS-1480
changeset 846 1871d4dcd3fd
parent 845 39908620a3f8
child 847 699c535ce67b
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/pEpObjCAdapterFramework/PEPEngineTypes.h	Fri Mar 01 16:03:28 2019 +0100
     1.3 @@ -0,0 +1,230 @@
     1.4 +//
     1.5 +//  PEPTypes.h
     1.6 +//  pEpObjCAdapter
     1.7 +//
     1.8 +//  Created by Dirk Zimmermann on 27.02.19.
     1.9 +//  Copyright © 2019 p≡p. All rights reserved.
    1.10 +//
    1.11 +
    1.12 +#ifndef PEPTypes_h
    1.13 +#define PEPTypes_h
    1.14 +
    1.15 +#import <Foundation/Foundation.h>
    1.16 +
    1.17 +typedef NSDictionary<NSString *, id> PEPDict;
    1.18 +typedef NSMutableDictionary<NSString *, id> PEPMutableDict;
    1.19 +typedef NSArray<NSString *> PEPStringList;
    1.20 +
    1.21 +typedef enum _ObjC_PEP_decrypt_flags {
    1.22 +    PEPDecryptFlagOwnPrivateKey = 0x1, // PEP_decrypt_flag_own_private_key = 0x1,
    1.23 +    PEPDecryptFlagConsume = 0x2, // PEP_decrypt_flag_consume = 0x2,
    1.24 +    PEPDecryptFlagIgnore = 0x4, // PEP_decrypt_flag_ignore = 0x4,
    1.25 +    PEPDecryptFlagSrcModified = 0x8, // PEP_decrypt_flag_src_modified = 0x8,
    1.26 +    // input flags
    1.27 +    PEPDecryptFlagUntrustedServer = 0x100 // PEP_decrypt_flag_untrusted_server = 0x100
    1.28 +} PEPDecryptFlags; // PEP_decrypt_flags;
    1.29 +
    1.30 +typedef enum _ObjC_PEP_enc_format {
    1.31 +    PEPEncNone = 0, // PEP_enc_none = 0, // message is not encrypted
    1.32 +    PEPEncPieces, // PEP_enc_pieces, // inline PGP + PGP extensions
    1.33 +    PEPEncSMIME, // PEP_enc_S_MIME, // RFC5751
    1.34 +    PEPEncPGPMIME, // PEP_enc_PGP_MIME, // RFC3156
    1.35 +    PEPEncPEP, // PEP_enc_PEP, // pEp encryption format
    1.36 +    PEPEncPGPMIMEOutlook1 // PEP_enc_PGP_MIME_Outlook1 // Message B0rken by Outlook type 1
    1.37 +} PEPEncFormat;
    1.38 +
    1.39 +typedef enum _ObjC_PEP_rating {
    1.40 +    PEPRatingUndefined = 0,// PEP_rating_undefined = 0,
    1.41 +    PEPRatingCannotDecrypt, // PEP_rating_cannot_decrypt,
    1.42 +    PEPRatingHaveNoKey, // PEP_rating_have_no_key,
    1.43 +    PEPRatingUnencrypted, // PEP_rating_unencrypted,
    1.44 +    PEPRatingUnencryptedForSome, // PEP_rating_unencrypted_for_some, // don't use this any more
    1.45 +    PEPRatingUnreliable, // PEP_rating_unreliable,
    1.46 +    PEPRatingReliable, // PEP_rating_reliable,
    1.47 +    PEPRatingTrusted, // PEP_rating_trusted,
    1.48 +    PEPRatingTrustedAndAnonymized, // PEP_rating_trusted_and_anonymized,
    1.49 +    PEPRatingFullyAnonymous, // PEP_rating_fully_anonymous,
    1.50 +
    1.51 +    PEPRatingMistrust = -1, // PEP_rating_mistrust = -1,
    1.52 +    PEPRatingB0rken = -2, // PEP_rating_b0rken = -2,
    1.53 +    PEPRatingUnderAttack = -3 // PEP_rating_under_attack = -3
    1.54 +} PEPRating;
    1.55 +
    1.56 +typedef enum {
    1.57 +    PEPStatusOK                                   = 0, // PEP_STATUS_OK
    1.58 +
    1.59 +    PEPInitCannotLoadGPME                      = 0x0110, // PEP_INIT_CANNOT_LOAD_GPGME
    1.60 +    PEPInitGPGMEInitFailed                      = 0x0111, // PEP_INIT_GPGME_INIT_FAILED
    1.61 +    PEPInitNoGPGHome                            = 0x0112, // PEP_INIT_NO_GPG_HOME
    1.62 +    PEPInitNETPGPInitFailed                     = 0x0113, // PEP_INIT_NETPGP_INIT_FAILED
    1.63 +    PEPInitCannotDetermineGPGVersion           = 0x0114, // PEP_INIT_CANNOT_DETERMINE_GPG_VERSION
    1.64 +    PEPInitUnsupportedGPGVersion                = 0x0115, // PEP_INIT_UNSUPPORTED_GPG_VERSION
    1.65 +    PEPInitCannotConfigGPGAgent                = 0x0116, // PEP_INIT_CANNOT_CONFIG_GPG_AGENT
    1.66 +
    1.67 +    PEPInitSqlite3WithoutMutex                  = 0x0120, // PEP_INIT_SQLITE3_WITHOUT_MUTEX
    1.68 +    PEPInitCannotOpenDB                         = 0x0121, // PEP_INIT_CANNOT_OPEN_DB
    1.69 +    PEPInitCannotOpenSystemDB                  = 0x0122, // PEP_INIT_CANNOT_OPEN_SYSTEM_DB
    1.70 +    PEPUnknownDBError                            = 0x01ff, // PEP_UNKNOWN_DB_ERROR
    1.71 +
    1.72 +    PEPKeyNotFound                               = 0x0201, // PEP_KEY_NOT_FOUND
    1.73 +    PEPKeyHasAmbigName                          = 0x0202, // PEP_KEY_HAS_AMBIG_NAME
    1.74 +    PEPGetKeyFailed                              = 0x0203, // PEP_GET_KEY_FAILED
    1.75 +    PEPCannotExportKey                           = 0x0204, // PEP_CANNOT_EXPORT_KEY
    1.76 +    PEPCannotEditKey                             = 0x0205, // PEP_CANNOT_EDIT_KEY
    1.77 +    PEPKeyUnsuitable                              = 0x0206, // PEP_KEY_UNSUITABLE
    1.78 +    PEPMalformedKeyResetMsg                     = 0x0210, // PEP_MALFORMED_KEY_RESET_MSG
    1.79 +    PEPKeyNotReset                               = 0x0211, // PEP_KEY_NOT_RESET
    1.80 +
    1.81 +    PEPKeyImported                                = 0x0220, // PEP_KEY_IMPORTED
    1.82 +    PEPNoKeyImported                             = 0x0221, // PEP_NO_KEY_IMPORTED
    1.83 +    PEPKeyImportStatusUnknown                   = 0x0222, // PEP_KEY_IMPORT_STATUS_UNKNOWN
    1.84 +
    1.85 +    PEPCannotFindIdentity                        = 0x0301, // PEP_CANNOT_FIND_IDENTITY
    1.86 +    PEPCannotSetPerson                           = 0x0381, // PEP_CANNOT_SET_PERSON
    1.87 +    PEPCannotSetPGPKeyPair                      = 0x0382, // PEP_CANNOT_SET_PGP_KEYPAIR
    1.88 +    PEPCannotSetIdentity                         = 0x0383, // PEP_CANNOT_SET_IDENTITY
    1.89 +    PEPCannotSetTrust                            = 0x0384, // PEP_CANNOT_SET_TRUST
    1.90 +    PEPKeyBlacklisted                             = 0x0385, // PEP_KEY_BLACKLISTED
    1.91 +    PEPCannotFindPerson                          = 0x0386, // PEP_CANNOT_FIND_PERSON
    1.92 +
    1.93 +    PEPCannotFindAlias                           = 0x0391, // PEP_CANNOT_FIND_ALIAS
    1.94 +    PEPCannotSetAlias                            = 0x0392, // PEP_CANNOT_SET_ALIAS
    1.95 +
    1.96 +    PEPUnencrypted                                 = 0x0400, // PEP_UNENCRYPTED
    1.97 +    PEPVerified                                    = 0x0401, // PEP_VERIFIED
    1.98 +    PEPDecrypted                                   = 0x0402, // PEP_DECRYPTED
    1.99 +    PEPDecryptedAndVerified                      = 0x0403, // PEP_DECRYPTED_AND_VERIFIED
   1.100 +    PEPDecryptWrongFormat                        = 0x0404, // PEP_DECRYPT_WRONG_FORMAT
   1.101 +    PEPDecryptNoKey                              = 0x0405, // PEP_DECRYPT_NO_KEY
   1.102 +    PEPDecryptSignatureDoesNotMatch            = 0x0406, // PEP_DECRYPT_SIGNATURE_DOES_NOT_MATCH
   1.103 +    PEPVerifyNoKey                               = 0x0407, // PEP_VERIFY_NO_KEY
   1.104 +    PEPVerifiedAndTrusted                        = 0x0408, // PEP_VERIFIED_AND_TRUSTED
   1.105 +    PEPCannotReencrypt                            = 0x0409, // PEP_CANNOT_REENCRYPT
   1.106 +    PEPCannotDecryptUnknown                      = 0x04ff, // PEP_CANNOT_DECRYPT_UNKNOWN
   1.107 +
   1.108 +    PEPTrustwordNotFound                         = 0x0501, // PEP_TRUSTWORD_NOT_FOUND
   1.109 +    PEPTrustwordsFPRWrongLength                 = 0x0502, // PEP_TRUSTWORDS_FPR_WRONG_LENGTH
   1.110 +    PEPTrustwordsDuplicateFPR                    = 0x0503, // PEP_TRUSTWORDS_DUPLICATE_FPR
   1.111 +
   1.112 +    PEPCannotCreateKey                           = 0x0601, // PEP_CANNOT_CREATE_KEY
   1.113 +    PEPCannotSendKey                             = 0x0602, // PEP_CANNOT_SEND_KEY
   1.114 +
   1.115 +    PEPPhraseNotFound                            = 0x0701, // PEP_PHRASE_NOT_FOUND
   1.116 +
   1.117 +    PEPSendFunctionNotRegistered                = 0x0801, // PEP_SEND_FUNCTION_NOT_REGISTERED
   1.118 +    PEPConstraintsViolated                         = 0x0802, // PEP_CONTRAINTS_VIOLATED
   1.119 +    PEPCannotEncode                               = 0x0803, // PEP_CANNOT_ENCODE
   1.120 +
   1.121 +    PEPSyncNoNotifyCallback                     = 0x0901, // PEP_SYNC_NO_NOTIFY_CALLBACK
   1.122 +    PEPSyncIllegalMessage                        = 0x0902, // PEP_SYNC_ILLEGAL_MESSAGE
   1.123 +    PEPSyncNoInjectCallback                     = 0x0903, // PEP_SYNC_NO_INJECT_CALLBACK
   1.124 +    PEPSyncNoChannel                             = 0x0904, // PEP_SYNC_NO_CHANNEL
   1.125 +    PEPSyncCannotEncrypt                         = 0x0905, // PEP_SYNC_CANNOT_ENCRYPT
   1.126 +    PEPSyncNoMessageSendCallback               = 0x0906, // PEP_SYNC_NO_MESSAGE_SEND_CALLBACK
   1.127 +
   1.128 +    PEPCannotIncreaseSequence                    = 0x0971, // PEP_CANNOT_INCREASE_SEQUENCE
   1.129 +
   1.130 +    PEPStatemachineError                          = 0x0980, // PEP_STATEMACHINE_ERROR
   1.131 +    PEPNoTrust                                    = 0x0981, // PEP_NO_TRUST
   1.132 +    PEPStatemachineInvalidState                  = 0x0982, // PEP_STATEMACHINE_INVALID_STATE
   1.133 +    PEPStatemachineInvalidEvent                  = 0x0983, // PEP_STATEMACHINE_INVALID_EVENT
   1.134 +    PEPStatemachineInvalidCondition              = 0x0984, // PEP_STATEMACHINE_INVALID_CONDITION
   1.135 +    PEPStatemachineInvalidAction                 = 0x0985, // PEP_STATEMACHINE_INVALID_ACTION
   1.136 +    PEPStatemachineInhibitedEvent                = 0x0986, // PEP_STATEMACHINE_INHIBITED_EVENT
   1.137 +    PEPStatemachineCannotSend                    = 0x0987, // PEP_STATEMACHINE_CANNOT_SEND
   1.138 +
   1.139 +    PEPCommitFailed                               = 0xff01, // PEP_COMMIT_FAILED
   1.140 +    PEPMessageConsume                             = 0xff02, // PEP_MESSAGE_CONSUME
   1.141 +    PEPMessageIgnore                              = 0xff03, // PEP_MESSAGE_IGNORE
   1.142 +
   1.143 +    PEPRecordNotFound                            = -6, // PEP_RECORD_NOT_FOUND
   1.144 +    PEPCannotCreateTempFile                     = -5, // PEP_CANNOT_CREATE_TEMP_FILE
   1.145 +    PEPIllegalValue                               = -4, // PEP_ILLEGAL_VALUE
   1.146 +    PEPBufferTooSmall                            = -3, // PEP_BUFFER_TOO_SMALL
   1.147 +    PEPOutOfMemory                               = -2, // PEP_OUT_OF_MEMORY
   1.148 +    PEPUnknownError                               = -1, // PEP_UNKNOWN_ERROR
   1.149 +
   1.150 +    PEPVersionMismatch                            = -7, // PEP_VERSION_MISMATCH
   1.151 +} PEPStatus;
   1.152 +
   1.153 +typedef enum _ObjC_identity_flags {
   1.154 +    // the first octet flags are app defined settings
   1.155 +    PEPIdfNotForSync = 0x0001, // PEP_idf_not_for_sync = 0x0001,   // don't use this identity for sync
   1.156 +    PEPIdfList = 0x0002, // PEP_idf_list = 0x0002,           // identity of list of persons
   1.157 +    // the second octet flags are calculated
   1.158 +    PEPIdfDeviceGroup = 0x0100 // PEP_idf_devicegroup = 0x0100     // identity of a device group member
   1.159 +} PEPIdentityFlags;
   1.160 +
   1.161 +typedef enum _ObjC_sync_handshake_result {
   1.162 +    PEPSyncHandshakeResultCancel = -1, // SYNC_HANDSHAKE_CANCEL = -1,
   1.163 +    PEPSyncHandshakeResultAccepted = 0, // SYNC_HANDSHAKE_ACCEPTED = 0,
   1.164 +    PEPSyncHandshakeResultRejected = 1 // SYNC_HANDSHAKE_REJECTED = 1
   1.165 +} PEPSyncHandshakeResult;
   1.166 +
   1.167 +typedef enum _PEPCommType {
   1.168 +    PEPCtUnknown = 0, // PEP_ct_unknown = 0,
   1.169 +
   1.170 +    // range 0x01 to 0x09: no encryption, 0x0a to 0x0e: nothing reasonable
   1.171 +
   1.172 +    PEPCtNoEncryption = 0x01, // PEP_ct_no_encryption = 0x01,                // generic
   1.173 +    PEPCtNoEncrypted_channel = 0x02, // PEP_ct_no_encrypted_channel = 0x02,
   1.174 +    PEPCtKeyNotFound = 0x03, // PEP_ct_key_not_found = 0x03,
   1.175 +    PEPCtKeyExpired = 0x04, // PEP_ct_key_expired = 0x04,
   1.176 +    PEPCtKeyRevoked = 0x05, // PEP_ct_key_revoked = 0x05,
   1.177 +    PEPCtKeyBr0ken = 0x06, // PEP_ct_key_b0rken = 0x06,
   1.178 +    PEPCtKeyExpiredButConfirmed = 0x07, // PEP_ct_key_expired_but_confirmed = 0x07, // NOT with confirmed bit. Just retaining info here in case of renewal.
   1.179 +    PEPCtMyKeyNotIncluded = 0x09, // PEP_ct_my_key_not_included = 0x09,
   1.180 +
   1.181 +    PEPCtSecurityByObscurity = 0x0a, // PEP_ct_security_by_obscurity = 0x0a,
   1.182 +    PEPCtBr0kenCrypto = 0x0b, // PEP_ct_b0rken_crypto = 0x0b,
   1.183 +    PEPCtKeyTooShort = 0x0c, // PEP_ct_key_too_short = 0x0c,
   1.184 +
   1.185 +    PEPCtCompromised = 0x0e, // PEP_ct_compromized = 0x0e,                  // deprecated misspelling
   1.186 +    PEPCtMistrusted = 0x0f, // PEP_ct_mistrusted = 0x0f,                   // known mistrusted key
   1.187 +
   1.188 +    // range 0x10 to 0x3f: unconfirmed encryption
   1.189 +
   1.190 +    PEPCtUnconfirmedEncryption = 0x10, // PEP_ct_unconfirmed_encryption = 0x10,       // generic
   1.191 +    PEPCtOpenPGPWeakUnconfirmed = 0x11, // PEP_ct_OpenPGP_weak_unconfirmed = 0x11,     // RSA 1024 is weak
   1.192 +
   1.193 +    PEPCtToBeChecked = 0x20, // PEP_ct_to_be_checked = 0x20,                // generic
   1.194 +    PEPCtSMIMEUnconfirmed = 0x21, // PEP_ct_SMIME_unconfirmed = 0x21,
   1.195 +    PEPCtCMSUnconfirmed = 0x22, // PEP_ct_CMS_unconfirmed = 0x22,
   1.196 +
   1.197 +    PEPCtStongButUnconfirmed = 0x30, // PEP_ct_strong_but_unconfirmed = 0x30,       // generic
   1.198 +    PEPCtOpenPGPUnconfirmed = 0x38, // PEP_ct_OpenPGP_unconfirmed = 0x38,          // key at least 2048 bit RSA or EC
   1.199 +    PEPCtOTRUnconfirmed = 0x3a, // PEP_ct_OTR_unconfirmed = 0x3a,
   1.200 +
   1.201 +    // range 0x40 to 0x7f: unconfirmed encryption and anonymization
   1.202 +
   1.203 +    PEPCtUnconfirmedEncAnon = 0x40, // PEP_ct_unconfirmed_enc_anon = 0x40,         // generic
   1.204 +    PEPCtPEPUnconfirmed = 0x7f, // PEP_ct_pEp_unconfirmed = 0x7f,
   1.205 +
   1.206 +    PEPCtConfirmed = 0x80, // PEP_ct_confirmed = 0x80,                    // this bit decides if trust is confirmed
   1.207 +
   1.208 +    // range 0x81 to 0x8f: reserved
   1.209 +    // range 0x90 to 0xbf: confirmed encryption
   1.210 +
   1.211 +    PEPCtConfirmedEncryption = 0x90, // PEP_ct_confirmed_encryption = 0x90,         // generic
   1.212 +    PEPCtOpenPGPWeak = 0x91, // PEP_ct_OpenPGP_weak = 0x91,                 // RSA 1024 is weak (unused)
   1.213 +
   1.214 +    PEPCtToBeCheckedConfirmed = 0xa0, // PEP_ct_to_be_checked_confirmed = 0xa0,      // generic
   1.215 +    PEPCtSMIME = 0xa1, // PEP_ct_SMIME = 0xa1,
   1.216 +    PEPCtCMS = 0xa2, // PEP_ct_CMS = 0xa2,
   1.217 +
   1.218 +    PEPCtStongEncryption = 0xb0, // PEP_ct_strong_encryption = 0xb0,            // generic
   1.219 +    PEPCtOpenPGP = 0xb8, // PEP_ct_OpenPGP = 0xb8,                      // key at least 2048 bit RSA or EC
   1.220 +    PEPCtOTR = 0xba, // PEP_ct_OTR = 0xba,
   1.221 +
   1.222 +    // range 0xc0 to 0xff: confirmed encryption and anonymization
   1.223 +
   1.224 +    PEPCtConfirmedEncAnon = 0xc0, // PEP_ct_confirmed_enc_anon = 0xc0,           // generic
   1.225 +    PEPCtPEP = 0xff // PEP_ct_pEp = 0xff
   1.226 +} PEPCommType;
   1.227 +
   1.228 +typedef enum _ObjC_PEP_msg_direction {
   1.229 +    PEPDirIncoming = 0,
   1.230 +    PEPDirOutgoing
   1.231 +} PEPMsgDirection;
   1.232 +
   1.233 +#endif /* PEPTypes_h */