Skip to content
This repository has been archived by the owner on Sep 6, 2019. It is now read-only.

Core update #5

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "mpin-sdk-core"]
path = mpin-sdk-core
url = https://github.com/apache/incubator-milagro-mfa-sdk-core.git
url = https://github.com/miracl/incubator-milagro-mfa-sdk-core.git
462 changes: 358 additions & 104 deletions MPinSDK/MPinSDK.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "73E1B20CF21226571ACC813FEA2DE2FA6C0CF74A",
"DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : {

},
"DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : {
"9264E4BA21B1A72D31259E9946EEC285231D5436" : 9223372036854775807,
"73E1B20CF21226571ACC813FEA2DE2FA6C0CF74A" : 9223372036854775807,
"9980D11FF5B6CE970FF3598FD73DBFED058471FB" : 9223372036854775807
},
"DVTSourceControlWorkspaceBlueprintIdentifierKey" : "6FA06DB9-C571-4376-B077-19E0E1F03020",
"DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : {
"9264E4BA21B1A72D31259E9946EEC285231D5436" : "incubator-milagro-mfa-sdk-ios\/mpin-sdk-core\/ext\/milagro-crypto-c\/",
"73E1B20CF21226571ACC813FEA2DE2FA6C0CF74A" : "incubator-milagro-mfa-sdk-ios\/",
"9980D11FF5B6CE970FF3598FD73DBFED058471FB" : "incubator-milagro-mfa-sdk-ios\/mpin-sdk-core\/"
},
"DVTSourceControlWorkspaceBlueprintNameKey" : "MPinSDK",
"DVTSourceControlWorkspaceBlueprintVersion" : 204,
"DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "MPinSDK\/MPinSDK.xcodeproj",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [
{
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/miracl\/incubator-milagro-mfa-sdk-ios.git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "73E1B20CF21226571ACC813FEA2DE2FA6C0CF74A"
},
{
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/miracl\/milagro-crypto-c.git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "9264E4BA21B1A72D31259E9946EEC285231D5436"
},
{
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/miracl\/incubator-milagro-mfa-sdk-core.git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git",
"DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "9980D11FF5B6CE970FF3598FD73DBFED058471FB"
}
]
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0820"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 1 addition & 1 deletion mpin-sdk-core
28 changes: 28 additions & 0 deletions src/Expiration.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/

#import <Foundation/Foundation.h>

@interface Expiration : NSObject
@property ( nonatomic, readonly ) int expireTimeSeconds;
@property ( nonatomic, readonly ) int nowTimeSeconds;

-(id) initWith:(int) nowTime expireTime:(int) expTime;

@end
33 changes: 33 additions & 0 deletions src/Expiration.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
*/

#import "Expiration.h"

@implementation Expiration

-(id) initWith:(int) nowTime expireTime:(int) expTime {
self = [super init];
if (self) {
_expireTimeSeconds = expTime;
_nowTimeSeconds = nowTime;
}
return self;
}

@end
12 changes: 10 additions & 2 deletions src/IUser.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
*/

#import <Foundation/Foundation.h>
#import "Expiration.h"

typedef NS_ENUM(NSInteger, UserState) {
INVALID = 0,
Expand All @@ -28,6 +29,13 @@ typedef NS_ENUM(NSInteger, UserState) {
};

@protocol IUser <NSObject>
- (NSString*)getIdentity;
- (UserState)getState;

- (NSString*) getIdentity;
- (UserState) getState;
- (NSString*) getBackend;
- (NSString*) GetCustomerId;
- (NSString*) GetAppId;
- (NSString*) GetMPinId;
- (Expiration*) GetRegistrationExpiration;

@end
43 changes: 25 additions & 18 deletions src/MPin.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,22 @@
#import "IUser.h"
#import "MpinStatus.h"
#import "OTP.h"
#import "SessionDetails.h"

#ifndef CLEAR_USERS_NOTIFICATION
#define CLEAR_USERS_NOTIFICATION @"ClearAllUsers"
#endif

@interface MPin : NSObject

+ (void) initSDK;
+ (void) initSDKWithHeaders:(NSDictionary *)dictHeaders;
+ (void) Destroy;
+ (void) AddCustomHeaders:(NSDictionary *)dictHeaders;
+ (void) ClearCustomHeaders;

+ (void) AddTrustedDomain:(NSString *) domain;
+ (void) ClearTrustedDomains;

+ (MpinStatus*) TestBackend:(const NSString*)url;
+ (MpinStatus*) SetBackend:(const NSString*)url;
+ (MpinStatus*) TestBackend:(const NSString*)url rpsPrefix:(NSString*)rpsPrefix;
Expand All @@ -36,42 +45,40 @@
+ (id<IUser>) MakeNewUser:(const NSString*)identity;
+ (id<IUser>) MakeNewUser:(const NSString*)identity
deviceName:(const NSString*)devName;
+ (Boolean) IsUserExisting:(NSString *) identity customerId:(NSString *) customerId appId:(NSString *) appId;
+ (Boolean) IsUserExisting:(NSString *) identity;
+ (void) DeleteUser:(const id<IUser>)user;
+ (void) ClearUsers;

+ (Boolean) Logout:(const id<IUser>)user;
+ (Boolean) CanLogout:(const id<IUser>)user;

+ (id<IUser>) getIUserById:(NSString *) userId;
+ (NSString *) GetClientParam:(const NSString *) key;
/// TEMPORARY FIX
+ (NSString*) getRPSUrl;

+ (MpinStatus*) StartRegistration:(const id<IUser>)user;
+ (MpinStatus*) StartRegistration:(const id<IUser>)user userData:(NSString *) userData;
+ (MpinStatus*) StartRegistration:(const id<IUser>)user activateCode:(NSString *) activateCode;
+ (MpinStatus*) StartRegistration:(const id<IUser>)user activateCode:(NSString *) activateCode userData:(NSString *) userData;
+ (MpinStatus*) FinishRegistration:(const id<IUser>)user pin:(NSString *) pin;

+ (MpinStatus*) RestartRegistration:(const id<IUser>)user;
+ (MpinStatus*) RestartRegistration:(const id<IUser>)user userData:(NSString *) userData;

+ (MpinStatus*) ConfirmRegistration:(const id<IUser>)user;
+ (MpinStatus*) ConfirmRegistration:(const id<IUser>)user pushNotificationIdentifier:(NSString *) pushNotificationIdentifier;
+ (MpinStatus*) FinishRegistration:(const id<IUser>)user pin:(NSString *) pin;

+ (MpinStatus*) StartAuthentication:(const id<IUser>)user;
+ (MpinStatus*) StartAuthentication:(const id<IUser>)user accessCode:(NSString *) accessCode;
+ (MpinStatus*) CheckAccessNumber:(NSString *)an;
+ (MpinStatus*) FinishAuthentication:(const id<IUser>)user pin:(NSString *) pin;
+ (MpinStatus*) FinishAuthentication:(const id<IUser>)user pin:(NSString *) pin authResultData:(NSString **)authResultData;
+ (MpinStatus*) FinishAuthenticationOTP:(id<IUser>)user pin:(NSString *) pin otp:(OTP**)otp;
+ (MpinStatus*) FinishAuthenticationAN:(id<IUser>)user pin:(NSString *) pin accessNumber:(NSString *)an;

+ (void) SetClientId:(NSString *) clientId;
+ (MpinStatus*) FinishAuthenticationMFA:(id<IUser>)user pin:(NSString *) pin authzCode:(NSString **) authzCode;

+ (Boolean) Logout:(const id<IUser>)user;
+ (Boolean) CanLogout:(const id<IUser>)user;

+ (NSMutableArray*) listUsers;
+ (NSMutableArray*) listUsers:( NSString *) backendURL;
+ (NSMutableArray*) listBackends;
+ (SessionDetails*) GetSessionDetails:(NSString *) accessCode;

+ (id<IUser>) getIUserById:(NSString *) userId;
+ (void) DeleteUser:(const id<IUser>)user;

+ (NSString *) GetClientParam:(const NSString *) key;

/// TEMPORARY FIX
+ (NSString*) getRPSUrl;

@end
Loading