Skip to content
This repository was archived by the owner on Jan 21, 2022. It is now read-only.
Merged
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
8 changes: 8 additions & 0 deletions MASFoundation.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,8 @@
CB1907F91C17950700A5EF16 /* MASAccessService.m in Sources */ = {isa = PBXBuildFile; fileRef = CB1907F71C17950700A5EF16 /* MASAccessService.m */; };
CB1C151E1E450109002B31A5 /* NSURL+MASPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1C151C1E450109002B31A5 /* NSURL+MASPrivate.h */; };
CB1C151F1E450109002B31A5 /* NSURL+MASPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = CB1C151D1E450109002B31A5 /* NSURL+MASPrivate.m */; };
CB1FD14B1FB23701000AFA25 /* MASSharedStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1FD1491FB23701000AFA25 /* MASSharedStorage.h */; settings = {ATTRIBUTES = (Public, ); }; };
CB1FD14C1FB23701000AFA25 /* MASSharedStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = CB1FD14A1FB23701000AFA25 /* MASSharedStorage.m */; };
CB2357921F0EF53600D4C420 /* MASURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CB2357901F0EF53600D4C420 /* MASURLSessionManager.h */; };
CB2357931F0EF53600D4C420 /* MASURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2357911F0EF53600D4C420 /* MASURLSessionManager.m */; };
CB2357961F0EFDEA00D4C420 /* MASSessionTaskOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = CB2357941F0EFDEA00D4C420 /* MASSessionTaskOperation.h */; };
Expand Down Expand Up @@ -735,6 +737,8 @@
CB1907F71C17950700A5EF16 /* MASAccessService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MASAccessService.m; sourceTree = "<group>"; };
CB1C151C1E450109002B31A5 /* NSURL+MASPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+MASPrivate.h"; sourceTree = "<group>"; };
CB1C151D1E450109002B31A5 /* NSURL+MASPrivate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+MASPrivate.m"; sourceTree = "<group>"; };
CB1FD1491FB23701000AFA25 /* MASSharedStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MASSharedStorage.h; sourceTree = "<group>"; };
CB1FD14A1FB23701000AFA25 /* MASSharedStorage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MASSharedStorage.m; sourceTree = "<group>"; };
CB2357901F0EF53600D4C420 /* MASURLSessionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MASURLSessionManager.h; sourceTree = "<group>"; };
CB2357911F0EF53600D4C420 /* MASURLSessionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MASURLSessionManager.m; sourceTree = "<group>"; };
CB2357941F0EFDEA00D4C420 /* MASSessionTaskOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MASSessionTaskOperation.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1342,6 +1346,8 @@
CB14D2181D02266D004F772E /* MASProximityLoginQRCode.m */,
CBA3EB2C1E945F2400E64D9D /* MASClaims.h */,
CBA3EB2D1E945F2400E64D9D /* MASClaims.m */,
CB1FD1491FB23701000AFA25 /* MASSharedStorage.h */,
CB1FD14A1FB23701000AFA25 /* MASSharedStorage.m */,
);
path = models;
sourceTree = "<group>";
Expand Down Expand Up @@ -1677,6 +1683,7 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
CB1FD14B1FB23701000AFA25 /* MASSharedStorage.h in Headers */,
69B7DF6A1F9675600056DD3A /* MASRequestBuilder.h in Headers */,
69B7DF681F9675600056DD3A /* MASRequest.h in Headers */,
CBAFD24C1F2BD46C0034DF02 /* MASSecurityConfiguration.h in Headers */,
Expand Down Expand Up @@ -2091,6 +2098,7 @@
CBA3EB2F1E945F2400E64D9D /* MASClaims.m in Sources */,
CBD25B151E7A0A9200DFB47F /* MF_Base64Additions.m in Sources */,
10738A3B1C711C2F00B7E87E /* util_mosq.c in Sources */,
CB1FD14C1FB23701000AFA25 /* MASSharedStorage.m in Sources */,
10E027A71F72B10100EAB103 /* RNEncryptor.m in Sources */,
10738A2F1C711C2F00B7E87E /* read_handle.c in Sources */,
CB9975571EDF5986006CEBB1 /* MASAuthCredentialsClientCredentials.m in Sources */,
Expand Down
4 changes: 2 additions & 2 deletions MASFoundation/Classes/MAS.m
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ + (void)start:(MASCompletionErrorBlock)completion
//
// If the device is registered, and id_token exists, which means MSSO can be used for this application
//
else if ([MASDevice currentDevice].isRegistered && [[MASAccessService sharedService] getAccessValueStringWithType:MASAccessValueTypeIdToken])
else if ([MASDevice currentDevice].isRegistered && [[MASAccessService sharedService] getAccessValueStringWithStorageKey:MASKeychainStorageKeyIdToken])
{
//
// Make sure to register the client (application)
Expand Down Expand Up @@ -1641,7 +1641,7 @@ + (NSString * _Nullable)signWithClaims:(MASClaims *_Nonnull)claims error:(NSErro
//
// Retrieve private key from registered device's client certificate
//
SecKeyRef pemPrivateRef = [[MASAccessService sharedService] getAccessValueCryptoKeyWithType:MASAccessValueTypePrivateKey];
SecKeyRef pemPrivateRef = [[MASAccessService sharedService] getAccessValueCryptoKeyWithStorageKey:MASKeychainStorageKeyPrivateKey];
NSData *privateKeyData = [NSData converKeyRefToNSData:pemPrivateRef];

return [self signWithClaims:claims privateKey:privateKeyData error:error];
Expand Down
5 changes: 5 additions & 0 deletions MASFoundation/Classes/MASConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,11 @@ typedef NS_ENUM(NSInteger, MASFoundationErrorCode)
MASFoundationErrorCodeJWTUnexpectedClassType = 170002,
MASFoundationErrorCodeJWTSerializationError = 170003,

//
// SharedStorage
//
MASFoundationErrorCodeSharedStorageNotNilKey = 180001,

MASFoundationErrorCodeCount = -999999
};

Expand Down
2 changes: 1 addition & 1 deletion MASFoundation/Classes/MQTT/MASMQTTHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ + (void)showLogMessage:(NSString *)message debugMode:(BOOL)debugMode

+ (NSString *)mqttClientId
{
NSString *magIdentifier = [[MASAccessService sharedService] getAccessValueStringWithType:MASAccessValueTypeMAGIdentifier];
NSString *magIdentifier = [[MASAccessService sharedService] getAccessValueStringWithStorageKey:MASKeychainStorageKeyMAGIdentifier];

//MQTT ClientId is: <mag_identifier>::<mag_client_id>::<SCIM userID>
NSString *clientId = [NSString stringWithFormat:@"%@::%@::%@",magIdentifier,[MASApplication currentApplication].identifier,[MASUser currentUser].objectId];
Expand Down
5 changes: 5 additions & 0 deletions MASFoundation/Classes/_private_/MASConstantsPrivate.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,11 @@ static NSString *_Nonnull const MASGrantTypeRefreshToken = @"refresh_token"; //
static int const MASExceptionErrorCodeInvalidCertificate = 9999; // integer


# pragma mark - MASSharedStorage custom prefix

static NSString *_Nonnull const MASSharedStorageCustomPrefix = @"MAS.customSharedStorage";


///--------------------------------------
/// @name Location Monitoring Constants
///--------------------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1102,6 +1102,11 @@ + (NSString *)descriptionForFoundationErrorCode:(MASFoundationErrorCode)errorCod
case MASFoundationErrorCodeJWTInvalidClaims: return @"MASClaims cannot be nil.";
case MASFoundationErrorCodeJWTUnexpectedClassType: return @"Mis-match of reserved JWT claim value's type (%@)";
case MASFoundationErrorCodeJWTSerializationError: return @"Claim value (%@) cannot be serialized";

//
// Shared Storage
//
case MASFoundationErrorCodeSharedStorageNotNilKey: return @"Data key cannot be nil or empty string.";

//
// Default
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ - (void)loginWithCredential:(MASCompletionErrorBlock)completion
{
NSError *idTokenValidationError = nil;
BOOL isIdTokenValid = [MASAccessService validateIdToken:[bodyInfo objectForKey:MASIdTokenBodyRequestResponseKey]
magIdentifier:[[MASAccessService sharedService] getAccessValueStringWithType:MASAccessValueTypeMAGIdentifier]
magIdentifier:[[MASAccessService sharedService] getAccessValueStringWithStorageKey:MASKeychainStorageKeyMAGIdentifier]
error:&idTokenValidationError];

if (!isIdTokenValid && idTokenValidationError)
Expand All @@ -355,7 +355,7 @@ - (void)loginWithCredential:(MASCompletionErrorBlock)completion
//
// Persist current authCredentials type
//
[[MASAccessService sharedService] setAccessValueString:self.credentialsType withAccessValueType:MASAccessValueTypeCurrentAuthCredentialsGrantType];
[[MASAccessService sharedService] setAccessValueString:self.credentialsType storageKey:MASKeychainStorageKeyCurrentAuthCredentialsGrantType];

//
// Create a new instance of MASUser if not client credentials
Expand All @@ -371,7 +371,7 @@ - (void)loginWithCredential:(MASCompletionErrorBlock)completion
// set authenticated timestamp
//
NSNumber *authenticatedTimestamp = [NSNumber numberWithDouble:[[NSDate date] timeIntervalSince1970]];
[[MASAccessService sharedService] setAccessValueNumber:authenticatedTimestamp withAccessValueType:MASAccessValueTypeAuthenticatedTimestamp];
[[MASAccessService sharedService] setAccessValueNumber:authenticatedTimestamp storageKey:MASKeychainStorageKeyAuthenticatedTimestamp];

//
// Store credential information into keychain
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,14 @@ - (NSDictionary *)getParameters
else {

// ClientId
NSString *clientId = [[MASAccessService sharedService] getAccessValueStringWithType:MASAccessValueTypeClientId];
NSString *clientId = [[MASAccessService sharedService] getAccessValueStringWithStorageKey:MASKeychainStorageKeyClientId];
if (clientId)
{
parameterInfo[MASClientIdentifierRequestResponseKey] = clientId;
}

// ClientSecret
NSString *clientSecret = [[MASAccessService sharedService] getAccessValueStringWithType:MASAccessValueTypeClientSecret];
NSString *clientSecret = [[MASAccessService sharedService] getAccessValueStringWithStorageKey:MASKeychainStorageKeyClientSecret];
if (clientSecret)
{
parameterInfo[MASClientSecretRequestResponseKey] = clientSecret;
Expand Down
Loading