# HG changeset patch # User Dirk Zimmermann # Date 1521729492 -3600 # Node ID 6b7914602bc6b03d277c351424c4aa0be5679180 # Parent c6ac36a539f3cf3ce0b3bac1e2e2bd5f097a4950 IOSAD-72 importKey error handling diff -r c6ac36a539f3 -r 6b7914602bc6 pEpObjCAdapter/PEPInternalSession.m --- a/pEpObjCAdapter/PEPInternalSession.m Thu Mar 22 11:05:12 2018 +0100 +++ b/pEpObjCAdapter/PEPInternalSession.m Thu Mar 22 15:38:12 2018 +0100 @@ -548,12 +548,17 @@ return YES; } -- (void)importKey:(NSString *)keydata +- (BOOL)importKey:(NSString * _Nonnull)keydata error:(NSError * _Nullable * _Nullable)error { [self lockWrite]; - import_key(_session, [keydata UTF8String], [keydata length], NULL); + PEP_STATUS status = import_key(_session, [keydata UTF8String], [keydata length], NULL); [self unlockWrite]; + if ([NSError setError:error fromPEPStatus:status]) { + return NO; + } + + return YES; } - (void)logTitle:(NSString * _Nonnull)title entity:(NSString * _Nonnull)entity diff -r c6ac36a539f3 -r 6b7914602bc6 pEpObjCAdapter/PEPSession.m --- a/pEpObjCAdapter/PEPSession.m Thu Mar 22 11:05:12 2018 +0100 +++ b/pEpObjCAdapter/PEPSession.m Thu Mar 22 15:38:12 2018 +0100 @@ -191,9 +191,10 @@ #pragma mark Internal API (testing etc.) -- (void)importKey:(NSString * _Nonnull)keydata +- (BOOL)importKey:(NSString * _Nonnull)keydata error:(NSError * _Nullable * _Nullable)error { - [PEPSession importKey:keydata]; + PEPInternalSession *session = [PEPSessionProvider session]; + return [session importKey:keydata error:error]; } - (void)logTitle:(NSString * _Nonnull)title entity:(NSString * _Nonnull)entity @@ -251,12 +252,6 @@ #pragma mark Internal API (testing etc.) -+ (void)importKey:(NSString * _Nonnull)keydata -{ - PEPInternalSession *session = [PEPSessionProvider session]; - [session importKey:keydata]; -} - + (void)logTitle:(NSString * _Nonnull)title entity:(NSString * _Nonnull)entity description:(NSString * _Nullable)description comment:(NSString * _Nullable)comment { diff -r c6ac36a539f3 -r 6b7914602bc6 pEpObjCAdapter/PEPSessionProtocol.h --- a/pEpObjCAdapter/PEPSessionProtocol.h Thu Mar 22 11:05:12 2018 +0100 +++ b/pEpObjCAdapter/PEPSessionProtocol.h Thu Mar 22 15:38:12 2018 +0100 @@ -162,7 +162,7 @@ #pragma mark -- Internal API (testing etc.) /** For testing purpose, manual key import */ -- (void)importKey:(NSString * _Nonnull)keydata; +- (BOOL)importKey:(NSString * _Nonnull)keydata error:(NSError * _Nullable * _Nullable)error; - (void)logTitle:(NSString * _Nonnull)title entity:(NSString * _Nonnull)entity description:(NSString * _Nullable)description comment:(NSString * _Nullable)comment; diff -r c6ac36a539f3 -r 6b7914602bc6 pEpObjCTests/PEPSessionTest.m --- a/pEpObjCTests/PEPSessionTest.m Thu Mar 22 11:05:12 2018 +0100 +++ b/pEpObjCTests/PEPSessionTest.m Thu Mar 22 15:38:12 2018 +0100 @@ -878,7 +878,10 @@ userName:@"Partner 1"]; NSString *pubKeyPartner1 = [PEPTestUtils loadResourceByName:@"partner1_F2D281C2789DD7F6_pub.asc"]; XCTAssertNotNil(pubKeyPartner1); - [session importKey:pubKeyPartner1]; + + NSError *error = nil; + XCTAssertTrue([session importKey:pubKeyPartner1 error:&error]); + XCTAssertNil(error); PEP_rating color = [self ratingForIdentity:partner1Orig session:session]; XCTAssertEqual(color, PEP_rating_reliable); diff -r c6ac36a539f3 -r 6b7914602bc6 pEpObjCTests/TestUtils/PEPTestUtils.m --- a/pEpObjCTests/TestUtils/PEPTestUtils.m Thu Mar 22 11:05:12 2018 +0100 +++ b/pEpObjCTests/TestUtils/PEPTestUtils.m Thu Mar 22 15:38:12 2018 +0100 @@ -76,8 +76,7 @@ if (!txtFileContents) { return NO; } else { - [session importKey:txtFileContents]; - return YES; + return [session importKey:txtFileContents error:nil]; } }