pEpObjCAdapter/PEPSession.m
author Dirk Zimmermann <dirk@pep-project.org>
Tue, 13 Mar 2018 09:49:50 +0100
changeset 524 60dbfc88af73
parent 523 3d167bef8afa
child 526 93eed7194515
permissions -rw-r--r--
IOSAD-72 re-integrate PEP_STATUS
andreas@270
     1
//
andreas@270
     2
//  PEPSession.m
andreas@270
     3
//  pEpObjCAdapter
andreas@270
     4
//
andreas@270
     5
//  Created by Andreas Buff on 11.10.17.
andreas@270
     6
//  Copyright © 2017 p≡p. All rights reserved.
andreas@270
     7
//
andreas@270
     8
andreas@270
     9
#import "PEPSession.h"
andreas@270
    10
andreas@272
    11
#import "PEPInternalSession.h"
andreas@272
    12
#import "PEPSessionProvider.h"
dirk@305
    13
#import "PEPIdentity.h"
andreas@272
    14
andreas@270
    15
@implementation PEPSession
andreas@270
    16
andreas@272
    17
#pragma mark - Public API
andreas@272
    18
dirk@291
    19
+ (void)cleanup
dirk@291
    20
{
dirk@291
    21
    [PEPSessionProvider cleanup];
dirk@291
    22
}
dirk@291
    23
dirk@523
    24
- (PEPDict * _Nullable)decryptMessageDict:(nonnull PEPDict *)messageDict
dirk@517
    25
                                   rating:(PEP_rating * _Nullable)rating
dirk@523
    26
                                extraKeys:(PEPStringList * _Nullable * _Nullable)extraKeys
dirk@524
    27
                                   status:(PEP_STATUS * _Nullable)status
dirk@517
    28
                                    error:(NSError * _Nullable * _Nullable)error
andreas@272
    29
{
dirk@519
    30
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@524
    31
    return [session
dirk@524
    32
            decryptMessageDict:messageDict
dirk@524
    33
            rating:rating
dirk@524
    34
            extraKeys:extraKeys
dirk@524
    35
            status:status
dirk@524
    36
            error:error];
dirk@383
    37
}
dirk@383
    38
dirk@523
    39
- (PEPMessage * _Nullable)decryptMessage:(nonnull PEPMessage *)message
dirk@517
    40
                                  rating:(PEP_rating * _Nullable)rating
dirk@523
    41
                               extraKeys:(PEPStringList * _Nullable * _Nullable)extraKeys
dirk@524
    42
                                  status:(PEP_STATUS * _Nullable)status
dirk@517
    43
                                   error:(NSError * _Nullable * _Nullable)error
dirk@383
    44
{
dirk@519
    45
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@524
    46
    return [session
dirk@524
    47
            decryptMessage:message
dirk@524
    48
            rating:rating
dirk@524
    49
            extraKeys:extraKeys
dirk@524
    50
            status:status
dirk@524
    51
            error:error];
andreas@272
    52
}
andreas@272
    53
dirk@516
    54
- (BOOL)reEvaluateMessageDict:(nonnull PEPDict *)messageDict
dirk@516
    55
                       rating:(PEP_rating * _Nullable)rating
dirk@524
    56
                       status:(PEP_STATUS * _Nullable)status
dirk@516
    57
                        error:(NSError * _Nullable * _Nullable)error
andreas@272
    58
{
dirk@519
    59
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@524
    60
    return [session reEvaluateMessageDict:messageDict rating:rating status:status error:error];
andreas@272
    61
}
andreas@272
    62
dirk@516
    63
- (BOOL)reEvaluateMessage:(nonnull PEPMessage *)message
dirk@516
    64
                   rating:(PEP_rating * _Nullable)rating
dirk@524
    65
                   status:(PEP_STATUS * _Nullable)status
dirk@516
    66
                    error:(NSError * _Nullable * _Nullable)error
dirk@384
    67
{
dirk@519
    68
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@524
    69
    return [session reEvaluateMessage:message rating:rating status:status error:error];
dirk@384
    70
}
dirk@384
    71
dirk@523
    72
- (PEPDict * _Nullable)encryptMessageDict:(nonnull PEPDict *)messageDict
dirk@522
    73
                                    extraKeys:(nullable PEPStringList *)extraKeys
dirk@522
    74
                                encFormat:(PEP_enc_format)encFormat
dirk@524
    75
                                   status:(PEP_STATUS * _Nullable)status
dirk@522
    76
                                    error:(NSError * _Nullable * _Nullable)error
andreas@272
    77
{
dirk@519
    78
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@523
    79
    return [session
dirk@523
    80
            encryptMessageDict:messageDict
dirk@523
    81
            extraKeys:extraKeys
dirk@523
    82
            encFormat:encFormat
dirk@524
    83
            status:status
dirk@523
    84
            error:error];
andreas@272
    85
}
andreas@272
    86
dirk@523
    87
- (PEPMessage * _Nullable)encryptMessage:(nonnull PEPMessage *)message
dirk@523
    88
                               extraKeys:(nullable PEPStringList *)extraKeys
dirk@522
    89
                               encFormat:(PEP_enc_format)encFormat
dirk@524
    90
                                  status:(PEP_STATUS * _Nullable)status
dirk@522
    91
                                   error:(NSError * _Nullable * _Nullable)error
dirk@379
    92
{
dirk@519
    93
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@524
    94
    return [session
dirk@524
    95
            encryptMessage:message
dirk@524
    96
            extraKeys:extraKeys
dirk@524
    97
            encFormat:encFormat
dirk@524
    98
            status:status
dirk@524
    99
            error:error];
dirk@379
   100
}
dirk@379
   101
dirk@523
   102
- (PEPMessage * _Nullable)encryptMessage:(nonnull PEPMessage *)message
dirk@523
   103
                               extraKeys:(nullable PEPStringList *)extraKeys
dirk@524
   104
                                  status:(PEP_STATUS * _Nullable)status
dirk@522
   105
                                   error:(NSError * _Nullable * _Nullable)error
dirk@386
   106
{
dirk@519
   107
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@524
   108
    return [session encryptMessage:message extraKeys:extraKeys status:status error:error];
dirk@386
   109
}
dirk@386
   110
dirk@523
   111
- (PEP_STATUS)encryptMessageDict:(nonnull PEPDict *)messageDict
dirk@363
   112
                        identity:(nonnull PEPIdentity *)identity
andreas@272
   113
                            dest:(PEPDict * _Nullable * _Nullable)dst
andreas@272
   114
{
dirk@519
   115
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@523
   116
    return [session encryptMessageDict:messageDict identity:identity dest:dst];
andreas@272
   117
}
andreas@272
   118
dirk@523
   119
- (PEP_STATUS)encryptMessage:(nonnull PEPMessage *)message
dirk@381
   120
                    identity:(nonnull PEPIdentity *)identity
dirk@381
   121
                        dest:(PEPMessage * _Nullable * _Nullable)dst
dirk@381
   122
{
dirk@519
   123
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@523
   124
    return [session encryptMessage:message identity:identity dest:dst];
dirk@381
   125
}
dirk@381
   126
dirk@377
   127
- (PEP_rating)outgoingColorForMessage:(nonnull PEPMessage *)message
dirk@377
   128
{
dirk@519
   129
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   130
    return [session outgoingColorForMessage:message];
dirk@377
   131
}
dirk@377
   132
dirk@364
   133
- (PEP_rating)identityRating:(nonnull PEPIdentity *)identity
andreas@272
   134
{
dirk@519
   135
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   136
    return [session identityRating:identity];
andreas@272
   137
}
andreas@272
   138
andreas@272
   139
- (nonnull NSArray *)trustwords:(nonnull NSString *)fpr forLanguage:(nonnull NSString *)languageID
andreas@272
   140
                      shortened:(BOOL)shortened
andreas@272
   141
{
dirk@519
   142
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   143
    return [session trustwords:fpr forLanguage:languageID shortened:shortened];
andreas@272
   144
}
andreas@272
   145
dirk@348
   146
- (void)mySelf:(nonnull PEPIdentity *)identity
andreas@272
   147
{
dirk@519
   148
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   149
    [session mySelf:identity];
andreas@272
   150
}
andreas@272
   151
dirk@349
   152
- (void)updateIdentity:(nonnull PEPIdentity *)identity
andreas@272
   153
{
dirk@519
   154
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   155
    [session updateIdentity:identity];
andreas@272
   156
}
andreas@272
   157
dirk@360
   158
- (void)trustPersonalKey:(nonnull PEPIdentity *)identity
andreas@272
   159
{
dirk@519
   160
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   161
    [session trustPersonalKey:identity];
andreas@272
   162
}
andreas@272
   163
dirk@361
   164
- (void)keyMistrusted:(nonnull PEPIdentity *)identity
andreas@272
   165
{
dirk@519
   166
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   167
    [session keyMistrusted:identity];
andreas@272
   168
}
andreas@272
   169
dirk@361
   170
- (void)keyResetTrust:(nonnull PEPIdentity *)identity
andreas@272
   171
{
dirk@519
   172
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@519
   173
    [session keyResetTrust:identity];
andreas@272
   174
}
andreas@272
   175
andreas@272
   176
#pragma mark Internal API (testing etc.)
andreas@272
   177
andreas@272
   178
- (void)importKey:(nonnull NSString *)keydata
andreas@272
   179
{
andreas@272
   180
    [PEPSession importKey:keydata];
andreas@272
   181
}
andreas@272
   182
andreas@272
   183
- (void)logTitle:(nonnull NSString *)title entity:(nonnull NSString *)entity
andreas@272
   184
     description:(nullable NSString *)description comment:(nullable NSString *)comment
andreas@272
   185
{
andreas@272
   186
    [PEPSession logTitle:title entity:entity description:description comment:comment];
andreas@272
   187
}
andreas@272
   188
dirk@475
   189
- (nullable NSString *)getLog
andreas@272
   190
{
andreas@272
   191
    return [PEPSession getLog];
andreas@272
   192
}
andreas@272
   193
dirk@365
   194
- (nullable NSString *)getTrustwordsIdentity1:(nonnull PEPIdentity *)identity1
dirk@365
   195
                                    identity2:(nonnull PEPIdentity *)identity2
andreas@272
   196
                                     language:(nullable NSString *)language
andreas@272
   197
                                         full:(BOOL)full
andreas@272
   198
{
andreas@272
   199
    return [PEPSession getTrustwordsIdentity1:identity1
andreas@272
   200
                                        identity2:identity2
andreas@272
   201
                                         language:language
andreas@272
   202
                                             full:full];
andreas@272
   203
}
andreas@272
   204
andreas@272
   205
- (NSArray<PEPLanguage *> * _Nonnull)languageList
andreas@272
   206
{
andreas@272
   207
    return [PEPSession languageList];
andreas@272
   208
}
andreas@272
   209
andreas@272
   210
- (PEP_STATUS)undoLastMistrust
andreas@272
   211
{
andreas@272
   212
    return [PEPSession undoLastMistrust];
andreas@272
   213
}
andreas@272
   214
dirk@417
   215
- (PEP_rating)ratingFromString:(NSString * _Nonnull)string
dirk@417
   216
{
dirk@417
   217
    return [PEPSession ratingFromString:string];
dirk@417
   218
}
dirk@417
   219
dirk@417
   220
- (NSString * _Nonnull)stringFromRating:(PEP_rating)rating
dirk@417
   221
{
dirk@417
   222
    return [PEPSession stringFromRating:rating];
dirk@417
   223
}
dirk@417
   224
dirk@453
   225
- (BOOL)isPEPUser:(PEPIdentity * _Nonnull)identity
dirk@427
   226
{
dirk@453
   227
    return [PEPSession isPEPUser:identity];
dirk@427
   228
}
dirk@427
   229
dirk@501
   230
- (BOOL)setOwnKey:(PEPIdentity * _Nonnull)identity fingerprint:(NSString * _Nonnull)fingerprint
dirk@501
   231
            error:(NSError * _Nullable * _Nullable)error
dirk@501
   232
{
dirk@501
   233
    return [PEPSession setOwnKey:identity fingerprint:fingerprint error:error];
dirk@501
   234
}
dirk@501
   235
andreas@272
   236
#pragma mark Internal API (testing etc.)
andreas@272
   237
andreas@272
   238
+ (void)importKey:(nonnull NSString *)keydata
andreas@272
   239
{
andreas@272
   240
    PEPInternalSession *session = [PEPSessionProvider session];
andreas@272
   241
    [session importKey:keydata];
andreas@272
   242
}
andreas@272
   243
andreas@272
   244
+ (void)logTitle:(nonnull NSString *)title entity:(nonnull NSString *)entity
andreas@272
   245
     description:(nullable NSString *)description comment:(nullable NSString *)comment
andreas@272
   246
{
andreas@272
   247
    PEPInternalSession *session = [PEPSessionProvider session];
andreas@272
   248
    [session logTitle:title entity:entity description:description comment:comment];
andreas@272
   249
}
andreas@272
   250
dirk@475
   251
+ (nullable NSString *)getLog
andreas@272
   252
{
andreas@272
   253
    PEPInternalSession *session = [PEPSessionProvider session];
andreas@272
   254
    return [session getLog];
andreas@272
   255
}
andreas@272
   256
dirk@365
   257
+ (nullable NSString *)getTrustwordsIdentity1:(nonnull PEPIdentity *)identity1
dirk@365
   258
                                    identity2:(nonnull PEPIdentity *)identity2
andreas@272
   259
                                     language:(nullable NSString *)language
andreas@272
   260
                                         full:(BOOL)full
andreas@272
   261
{
andreas@272
   262
    PEPInternalSession *session = [PEPSessionProvider session];
andreas@272
   263
    return [session getTrustwordsIdentity1:identity1 identity2:identity2 language:language full:full];
andreas@272
   264
}
andreas@272
   265
andreas@272
   266
+ (NSArray<PEPLanguage *> * _Nonnull)languageList
andreas@272
   267
{
andreas@272
   268
    PEPInternalSession *session = [PEPSessionProvider session];
andreas@272
   269
    return [session languageList];
andreas@272
   270
}
andreas@272
   271
andreas@272
   272
+ (PEP_STATUS)undoLastMistrust
andreas@272
   273
{
andreas@272
   274
    PEPInternalSession *session = [PEPSessionProvider session];
andreas@272
   275
    return [session undoLastMistrust];
andreas@272
   276
}
andreas@272
   277
dirk@417
   278
+ (PEP_rating)ratingFromString:(NSString * _Nonnull)string
dirk@417
   279
{
dirk@417
   280
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@417
   281
    return [session ratingFromString:string];
dirk@417
   282
}
dirk@417
   283
dirk@417
   284
+ (NSString * _Nonnull)stringFromRating:(PEP_rating)rating
dirk@417
   285
{
dirk@417
   286
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@417
   287
    return [session stringFromRating:rating];
dirk@417
   288
}
dirk@417
   289
dirk@453
   290
+ (BOOL)isPEPUser:(PEPIdentity * _Nonnull)identity;
dirk@427
   291
{
dirk@427
   292
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@453
   293
    return [session isPEPUser:identity];
dirk@427
   294
}
dirk@427
   295
dirk@501
   296
+ (BOOL)setOwnKey:(PEPIdentity * _Nonnull)identity fingerprint:(NSString * _Nonnull)fingerprint
dirk@501
   297
            error:(NSError * _Nullable * _Nullable)error
dirk@501
   298
{
dirk@501
   299
    PEPInternalSession *session = [PEPSessionProvider session];
dirk@501
   300
    return [session setOwnKey:identity fingerprint:fingerprint error:error];
dirk@501
   301
}
dirk@501
   302
andreas@270
   303
@end