author | Dirk Zimmermann <dirk@pep-project.org> |
Thu, 15 Mar 2018 08:04:35 +0100 | |
changeset 535 | 9ef279e6880d |
parent 534 | 8cca11a32204 |
child 536 | 2c9ad397d261 |
permissions | -rw-r--r-- |
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@535 | 24 |
- (PEPDict * _Nullable)decryptMessageDict:(PEPDict * _Nonnull)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@535 | 39 |
- (PEPMessage * _Nullable)decryptMessage:(PEPMessage * _Nonnull)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@535 | 54 |
- (BOOL)reEvaluateMessageDict:(PEPDict * _Nonnull)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@535 | 63 |
- (BOOL)reEvaluateMessage:(PEPMessage * _Nonnull)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@535 | 72 |
- (PEPDict * _Nullable)encryptMessageDict:(PEPDict * _Nonnull)messageDict |
dirk@535 | 73 |
extraKeys:(PEPStringList * _Nullable)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@535 | 87 |
- (PEPMessage * _Nullable)encryptMessage:(PEPMessage * _Nonnull)message |
dirk@535 | 88 |
extraKeys:(PEPStringList * _Nullable)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@535 | 102 |
- (PEPMessage * _Nullable)encryptMessage:(PEPMessage * _Nonnull)message |
dirk@535 | 103 |
extraKeys:(PEPStringList * _Nullable)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@535 | 111 |
- (PEPDict * _Nullable)encryptMessageDict:(PEPDict * _Nonnull)messageDict |
dirk@535 | 112 |
identity:(PEPIdentity * _Nonnull)identity |
dirk@526 | 113 |
status:(PEP_STATUS * _Nullable)status |
dirk@526 | 114 |
error:(NSError * _Nullable * _Nullable)error |
andreas@272 | 115 |
{ |
dirk@519 | 116 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@526 | 117 |
return [session encryptMessageDict:messageDict identity:identity status:status error:error]; |
andreas@272 | 118 |
} |
andreas@272 | 119 |
|
dirk@535 | 120 |
- (PEPMessage * _Nullable)encryptMessage:(PEPMessage * _Nonnull)message |
dirk@535 | 121 |
identity:(PEPIdentity * _Nonnull)identity |
dirk@526 | 122 |
status:(PEP_STATUS * _Nullable)status |
dirk@526 | 123 |
error:(NSError * _Nullable * _Nullable)error |
dirk@381 | 124 |
{ |
dirk@519 | 125 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@526 | 126 |
return [session encryptMessage:message identity:identity status:status error:error]; |
dirk@381 | 127 |
} |
dirk@381 | 128 |
|
dirk@528 | 129 |
- (BOOL)outgoingRating:(PEP_rating * _Nonnull)rating |
dirk@528 | 130 |
forMessage:(PEPMessage * _Nonnull)message |
dirk@528 | 131 |
error:(NSError * _Nullable * _Nullable)error |
dirk@377 | 132 |
{ |
dirk@519 | 133 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@528 | 134 |
return [session outgoingRating:rating forMessage:message error:error]; |
dirk@377 | 135 |
} |
dirk@377 | 136 |
|
dirk@529 | 137 |
- (BOOL)rating:(PEP_rating * _Nonnull)rating |
dirk@530 | 138 |
forIdentity:(PEPIdentity * _Nonnull)identity |
dirk@530 | 139 |
error:(NSError * _Nullable * _Nullable)error |
dirk@530 | 140 |
{ |
dirk@519 | 141 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@529 | 142 |
return [session rating:rating forIdentity:identity error:error]; |
andreas@272 | 143 |
} |
andreas@272 | 144 |
|
dirk@531 | 145 |
- (NSArray * _Nullable)trustwordsForFingerprint:(NSString * _Nonnull)fingerprint |
dirk@531 | 146 |
languageID:(NSString * _Nonnull)languageID |
dirk@531 | 147 |
shortened:(BOOL)shortened |
dirk@531 | 148 |
error:(NSError * _Nullable * _Nullable)error |
andreas@272 | 149 |
{ |
dirk@519 | 150 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@531 | 151 |
return [session |
dirk@531 | 152 |
trustwordsForFingerprint:fingerprint |
dirk@531 | 153 |
languageID:languageID |
dirk@531 | 154 |
shortened:shortened |
dirk@531 | 155 |
error:error]; |
andreas@272 | 156 |
} |
andreas@272 | 157 |
|
dirk@535 | 158 |
- (BOOL)mySelf:(PEPIdentity * _Nonnull)identity error:(NSError * _Nullable * _Nullable)error |
andreas@272 | 159 |
{ |
dirk@519 | 160 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@532 | 161 |
return [session mySelf:identity error:error]; |
andreas@272 | 162 |
} |
andreas@272 | 163 |
|
dirk@535 | 164 |
- (BOOL)updateIdentity:(PEPIdentity * _Nonnull)identity error:(NSError * _Nullable * _Nullable)error |
andreas@272 | 165 |
{ |
dirk@519 | 166 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@532 | 167 |
return [session updateIdentity:identity error:error]; |
andreas@272 | 168 |
} |
andreas@272 | 169 |
|
dirk@535 | 170 |
- (BOOL)trustPersonalKey:(PEPIdentity * _Nonnull)identity |
dirk@534 | 171 |
error:(NSError * _Nullable * _Nullable)error |
andreas@272 | 172 |
{ |
dirk@519 | 173 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@534 | 174 |
return [session trustPersonalKey:identity error:error]; |
andreas@272 | 175 |
} |
andreas@272 | 176 |
|
dirk@535 | 177 |
- (void)keyMistrusted:(PEPIdentity * _Nonnull)identity |
andreas@272 | 178 |
{ |
dirk@519 | 179 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@519 | 180 |
[session keyMistrusted:identity]; |
andreas@272 | 181 |
} |
andreas@272 | 182 |
|
dirk@535 | 183 |
- (void)keyResetTrust:(PEPIdentity * _Nonnull)identity |
andreas@272 | 184 |
{ |
dirk@519 | 185 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@519 | 186 |
[session keyResetTrust:identity]; |
andreas@272 | 187 |
} |
andreas@272 | 188 |
|
andreas@272 | 189 |
#pragma mark Internal API (testing etc.) |
andreas@272 | 190 |
|
dirk@535 | 191 |
- (void)importKey:(NSString * _Nonnull)keydata |
andreas@272 | 192 |
{ |
andreas@272 | 193 |
[PEPSession importKey:keydata]; |
andreas@272 | 194 |
} |
andreas@272 | 195 |
|
dirk@535 | 196 |
- (void)logTitle:(NSString * _Nonnull)title entity:(NSString * _Nonnull)entity |
dirk@535 | 197 |
description:(NSString * _Nullable)description comment:(NSString * _Nullable)comment |
andreas@272 | 198 |
{ |
andreas@272 | 199 |
[PEPSession logTitle:title entity:entity description:description comment:comment]; |
andreas@272 | 200 |
} |
andreas@272 | 201 |
|
dirk@535 | 202 |
- (NSString * _Nullable)getLog |
andreas@272 | 203 |
{ |
andreas@272 | 204 |
return [PEPSession getLog]; |
andreas@272 | 205 |
} |
andreas@272 | 206 |
|
dirk@535 | 207 |
- (NSString * _Nullable)getTrustwordsIdentity1:(PEPIdentity * _Nonnull)identity1 |
dirk@535 | 208 |
identity2:(PEPIdentity * _Nonnull)identity2 |
dirk@535 | 209 |
language:(NSString * _Nullable)language |
dirk@535 | 210 |
full:(BOOL)full |
andreas@272 | 211 |
{ |
andreas@272 | 212 |
return [PEPSession getTrustwordsIdentity1:identity1 |
andreas@272 | 213 |
identity2:identity2 |
andreas@272 | 214 |
language:language |
andreas@272 | 215 |
full:full]; |
andreas@272 | 216 |
} |
andreas@272 | 217 |
|
andreas@272 | 218 |
- (NSArray<PEPLanguage *> * _Nonnull)languageList |
andreas@272 | 219 |
{ |
andreas@272 | 220 |
return [PEPSession languageList]; |
andreas@272 | 221 |
} |
andreas@272 | 222 |
|
andreas@272 | 223 |
- (PEP_STATUS)undoLastMistrust |
andreas@272 | 224 |
{ |
andreas@272 | 225 |
return [PEPSession undoLastMistrust]; |
andreas@272 | 226 |
} |
andreas@272 | 227 |
|
dirk@417 | 228 |
- (PEP_rating)ratingFromString:(NSString * _Nonnull)string |
dirk@417 | 229 |
{ |
dirk@417 | 230 |
return [PEPSession ratingFromString:string]; |
dirk@417 | 231 |
} |
dirk@417 | 232 |
|
dirk@417 | 233 |
- (NSString * _Nonnull)stringFromRating:(PEP_rating)rating |
dirk@417 | 234 |
{ |
dirk@417 | 235 |
return [PEPSession stringFromRating:rating]; |
dirk@417 | 236 |
} |
dirk@417 | 237 |
|
dirk@453 | 238 |
- (BOOL)isPEPUser:(PEPIdentity * _Nonnull)identity |
dirk@427 | 239 |
{ |
dirk@453 | 240 |
return [PEPSession isPEPUser:identity]; |
dirk@427 | 241 |
} |
dirk@427 | 242 |
|
dirk@501 | 243 |
- (BOOL)setOwnKey:(PEPIdentity * _Nonnull)identity fingerprint:(NSString * _Nonnull)fingerprint |
dirk@501 | 244 |
error:(NSError * _Nullable * _Nullable)error |
dirk@501 | 245 |
{ |
dirk@501 | 246 |
return [PEPSession setOwnKey:identity fingerprint:fingerprint error:error]; |
dirk@501 | 247 |
} |
dirk@501 | 248 |
|
andreas@272 | 249 |
#pragma mark Internal API (testing etc.) |
andreas@272 | 250 |
|
dirk@535 | 251 |
+ (void)importKey:(NSString * _Nonnull)keydata |
andreas@272 | 252 |
{ |
andreas@272 | 253 |
PEPInternalSession *session = [PEPSessionProvider session]; |
andreas@272 | 254 |
[session importKey:keydata]; |
andreas@272 | 255 |
} |
andreas@272 | 256 |
|
dirk@535 | 257 |
+ (void)logTitle:(NSString * _Nonnull)title entity:(NSString * _Nonnull)entity |
dirk@535 | 258 |
description:(NSString * _Nullable)description comment:(NSString * _Nullable)comment |
andreas@272 | 259 |
{ |
andreas@272 | 260 |
PEPInternalSession *session = [PEPSessionProvider session]; |
andreas@272 | 261 |
[session logTitle:title entity:entity description:description comment:comment]; |
andreas@272 | 262 |
} |
andreas@272 | 263 |
|
dirk@535 | 264 |
+ (NSString * _Nullable)getLog |
andreas@272 | 265 |
{ |
andreas@272 | 266 |
PEPInternalSession *session = [PEPSessionProvider session]; |
andreas@272 | 267 |
return [session getLog]; |
andreas@272 | 268 |
} |
andreas@272 | 269 |
|
dirk@535 | 270 |
+ (NSString * _Nullable)getTrustwordsIdentity1:(PEPIdentity * _Nonnull)identity1 |
dirk@535 | 271 |
identity2:(PEPIdentity * _Nonnull)identity2 |
dirk@535 | 272 |
language:(NSString * _Nullable)language |
dirk@535 | 273 |
full:(BOOL)full |
andreas@272 | 274 |
{ |
andreas@272 | 275 |
PEPInternalSession *session = [PEPSessionProvider session]; |
andreas@272 | 276 |
return [session getTrustwordsIdentity1:identity1 identity2:identity2 language:language full:full]; |
andreas@272 | 277 |
} |
andreas@272 | 278 |
|
andreas@272 | 279 |
+ (NSArray<PEPLanguage *> * _Nonnull)languageList |
andreas@272 | 280 |
{ |
andreas@272 | 281 |
PEPInternalSession *session = [PEPSessionProvider session]; |
andreas@272 | 282 |
return [session languageList]; |
andreas@272 | 283 |
} |
andreas@272 | 284 |
|
andreas@272 | 285 |
+ (PEP_STATUS)undoLastMistrust |
andreas@272 | 286 |
{ |
andreas@272 | 287 |
PEPInternalSession *session = [PEPSessionProvider session]; |
andreas@272 | 288 |
return [session undoLastMistrust]; |
andreas@272 | 289 |
} |
andreas@272 | 290 |
|
dirk@417 | 291 |
+ (PEP_rating)ratingFromString:(NSString * _Nonnull)string |
dirk@417 | 292 |
{ |
dirk@417 | 293 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@417 | 294 |
return [session ratingFromString:string]; |
dirk@417 | 295 |
} |
dirk@417 | 296 |
|
dirk@417 | 297 |
+ (NSString * _Nonnull)stringFromRating:(PEP_rating)rating |
dirk@417 | 298 |
{ |
dirk@417 | 299 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@417 | 300 |
return [session stringFromRating:rating]; |
dirk@417 | 301 |
} |
dirk@417 | 302 |
|
dirk@453 | 303 |
+ (BOOL)isPEPUser:(PEPIdentity * _Nonnull)identity; |
dirk@427 | 304 |
{ |
dirk@427 | 305 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@453 | 306 |
return [session isPEPUser:identity]; |
dirk@427 | 307 |
} |
dirk@427 | 308 |
|
dirk@501 | 309 |
+ (BOOL)setOwnKey:(PEPIdentity * _Nonnull)identity fingerprint:(NSString * _Nonnull)fingerprint |
dirk@501 | 310 |
error:(NSError * _Nullable * _Nullable)error |
dirk@501 | 311 |
{ |
dirk@501 | 312 |
PEPInternalSession *session = [PEPSessionProvider session]; |
dirk@501 | 313 |
return [session setOwnKey:identity fingerprint:fingerprint error:error]; |
dirk@501 | 314 |
} |
dirk@501 | 315 |
|
andreas@270 | 316 |
@end |