Skip to content

Commit e52614f

Browse files
committed
fix(auth): Remove static deviceMetaData in auth flow (#2694)
1 parent 6452ae7 commit e52614f

File tree

7 files changed

+20
-18
lines changed

7 files changed

+20
-18
lines changed

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Actions/SignIn/DeviceSRPAuth/InitiateAuthDeviceSRP.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ struct InitiateAuthDeviceSRP: Action {
3939
NHexValue: nHexValue,
4040
gHexValue: gHexValue,
4141
srpKeyPair: srpKeyPair,
42-
deviceMetadata: deviceMetadata,
4342
clientTimestamp: Date())
4443

4544
let request = RespondToAuthChallengeInput.deviceSRP(

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Actions/SignIn/DeviceSRPAuth/VerifyDevicePasswordSRP.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,15 @@ struct VerifyDevicePasswordSRP: Action {
3333
let secretBlock = try secretBlock(secretBlockString)
3434
let serverPublicB = try serverPublic(parameters)
3535

36-
guard case .metadata(let deviceData) = stateData.deviceMetadata else {
36+
let deviceMetadata = await DeviceMetadataHelper.getDeviceMetadata(
37+
for: username,
38+
with: environment)
39+
guard
40+
case .metadata(let deviceData) = deviceMetadata
41+
else {
3742
let authError = SignInError.service(error: SRPError.calculation)
3843
logVerbose("\(#fileID) DevciceSRPSignInError \(authError)", environment: environment)
39-
let event = SignInEvent(
40-
eventType: .throwPasswordVerifierError(authError)
41-
)
44+
let event = SignInEvent(eventType: .throwPasswordVerifierError(authError))
4245
await dispatcher.send(event)
4346
return
4447
}
@@ -58,6 +61,7 @@ struct VerifyDevicePasswordSRP: Action {
5861
session: authResponse.session,
5962
secretBlock: secretBlockString,
6063
signature: signature,
64+
deviceMetadata: deviceMetadata,
6165
environment: userPoolEnv)
6266

6367
let responseEvent = try await UserPoolSignInHelper.sendRespondToAuth(

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Actions/SignIn/SRPAuth/InitiateAuthSRP.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ struct InitiateAuthSRP: Action {
5050
NHexValue: nHexValue,
5151
gHexValue: gHexValue,
5252
srpKeyPair: srpKeyPair,
53-
deviceMetadata: deviceMetadata,
5453
clientTimestamp: Date())
5554

5655
let asfDeviceId = try await CognitoUserPoolASF.asfDeviceID(

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Actions/SignIn/SRPAuth/VerifyPasswordSRP.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ struct VerifyPasswordSRP: Action {
4141
let secretBlock = try secretBlock(secretBlockString)
4242
let serverPublicB = try serverPublic(parameters)
4343

44+
let deviceMetadata = await DeviceMetadataHelper.getDeviceMetadata(
45+
for: username,
46+
with: environment)
4447
let signature = try signature(userIdForSRP: userIdForSRP,
4548
saltHex: saltHex,
4649
secretBlock: secretBlock,
@@ -53,6 +56,7 @@ struct VerifyPasswordSRP: Action {
5356
session: authResponse.session,
5457
secretBlock: secretBlockString,
5558
signature: signature,
59+
deviceMetadata: deviceMetadata,
5660
environment: userPoolEnv)
5761
let responseEvent = try await UserPoolSignInHelper.sendRespondToAuth(
5862
request: request,

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/StateMachine/CodeGen/Data/SRPStateData.swift

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ struct SRPStateData {
1313
let NHexValue: String
1414
let gHexValue: String
1515
let srpKeyPair: SRPKeys
16-
let deviceMetadata: DeviceMetadata
1716
let clientTimestamp: Date
1817

1918
init(
@@ -22,15 +21,13 @@ struct SRPStateData {
2221
NHexValue: String,
2322
gHexValue: String,
2423
srpKeyPair: SRPKeys,
25-
deviceMetadata: DeviceMetadata,
2624
clientTimestamp: Date
2725
) {
2826
self.username = username
2927
self.password = password
3028
self.NHexValue = NHexValue
3129
self.gHexValue = gHexValue
3230
self.srpKeyPair = srpKeyPair
33-
self.deviceMetadata = deviceMetadata
3431
self.clientTimestamp = clientTimestamp
3532
}
3633

@@ -47,13 +44,12 @@ extension SRPStateData: CustomDebugDictionaryConvertible {
4744
[
4845
"username": username.masked(),
4946
"password": password.redacted(),
50-
"NHexValue": NHexValue,
51-
"gHexValue": gHexValue,
47+
"NHexValue": NHexValue.masked(),
48+
"gHexValue": gHexValue.masked(),
5249
"srpKeyPair": """
53-
<privateKey \(srpKeyPair.privateKeyHexValue)>, \
54-
<publicKey \(srpKeyPair.publicKeyHexValue)>
50+
<privateKey \(srpKeyPair.privateKeyHexValue.masked())>, \
51+
<publicKey \(srpKeyPair.publicKeyHexValue.masked())>
5552
""",
56-
"deviceMetadata": deviceMetadata,
5753
"clientTimestamp": clientTimestamp
5854
]
5955
}

AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Support/Utils/RespondToAuthChallengeInput+Amplify.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ extension RespondToAuthChallengeInput {
1515
session: String?,
1616
secretBlock: String,
1717
signature: String,
18+
deviceMetadata: DeviceMetadata,
1819
environment: UserPoolEnvironment) -> RespondToAuthChallengeInput {
1920
let dateStr = stateData.clientTimestamp.utcString
2021
let challengeResponses = [
@@ -28,7 +29,7 @@ extension RespondToAuthChallengeInput {
2829
challengeResponses: challengeResponses,
2930
session: session,
3031
clientMetadata: [:],
31-
deviceMetadata: stateData.deviceMetadata,
32+
deviceMetadata: deviceMetadata,
3233
environment: environment)
3334
}
3435

@@ -56,6 +57,7 @@ extension RespondToAuthChallengeInput {
5657
session: String?,
5758
secretBlock: String,
5859
signature: String,
60+
deviceMetadata: DeviceMetadata,
5961
environment: UserPoolEnvironment)
6062
-> RespondToAuthChallengeInput {
6163
let dateStr = stateData.clientTimestamp.utcString
@@ -70,7 +72,7 @@ extension RespondToAuthChallengeInput {
7072
challengeResponses: challengeResponses,
7173
session: session,
7274
clientMetadata: [:],
73-
deviceMetadata: stateData.deviceMetadata,
75+
deviceMetadata: deviceMetadata,
7476
environment: environment)
7577
}
7678

AmplifyPlugins/Auth/Tests/AWSCognitoAuthPluginUnitTests/ResolverTests/SRPSignInState/SRPTestData.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ extension SRPStateData {
1919
NHexValue: "",
2020
gHexValue: "",
2121
srpKeyPair: SRPKeys(publicKeyHexValue: "", privateKeyHexValue: ""),
22-
deviceMetadata: .noData,
2322
clientTimestamp: Date()
2423
)
2524
}
@@ -171,7 +170,6 @@ extension SRPStateData {
171170
"98bab9079c01ab6acd0e75518d0cda640b9a1f011c9a7cefab68b6ddce666c874659" +
172171
"8a502c0e6adef0722bac",
173172
privateKeyHexValue: "c142c2d2471fd53bca99c2fdec84e522adec8ee2dcda0d9fff9dbea52ac4a65f"),
174-
deviceMetadata: .noData,
175173
clientTimestamp: Date(timeIntervalSinceReferenceDate: 656_187_908.969623)
176174
)
177175
}

0 commit comments

Comments
 (0)