Skip to content

Commit 5e5f289

Browse files
joegoldman2abergs
andauthored
Map authenticator transports on server side (#453)
* Remove transports field as it is not mapped on server side * Map transports --------- Co-authored-by: Anders Åberg <[email protected]>
1 parent 66ae98f commit 5e5f289

File tree

13 files changed

+20
-6
lines changed

13 files changed

+20
-6
lines changed

Demo/wwwroot/js/custom.register.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ async function registerNewCredential(newCredential) {
126126
response: {
127127
AttestationObject: coerceToBase64Url(attestationObject),
128128
clientDataJSON: coerceToBase64Url(clientDataJSON),
129-
transports: newCredential.response.getTransports(),
129+
transports: newCredential.response.getTransports()
130130
},
131131
};
132132

Demo/wwwroot/js/mfa.register.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ async function registerNewCredential(newCredential) {
130130
extensions: newCredential.getClientExtensionResults(),
131131
response: {
132132
AttestationObject: coerceToBase64Url(attestationObject),
133-
clientDataJSON: coerceToBase64Url(clientDataJSON)
133+
clientDataJSON: coerceToBase64Url(clientDataJSON),
134+
transports: newCredential.response.getTransports()
134135
}
135136
};
136137

Demo/wwwroot/js/passwordless.register.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ async function registerNewCredential(newCredential) {
127127
extensions: newCredential.getClientExtensionResults(),
128128
response: {
129129
AttestationObject: coerceToBase64Url(attestationObject),
130-
clientDataJSON: coerceToBase64Url(clientDataJSON)
130+
clientDataJSON: coerceToBase64Url(clientDataJSON),
131+
transports: newCredential.response.getTransports()
131132
}
132133
};
133134

Demo/wwwroot/js/usernameless.register.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ async function registerNewCredential(newCredential) {
128128
extensions: newCredential.getClientExtensionResults(),
129129
response: {
130130
attestationObject: coerceToBase64Url(attestationObject),
131-
clientDataJSON: coerceToBase64Url(clientDataJSON)
131+
clientDataJSON: coerceToBase64Url(clientDataJSON),
132+
transports: newCredential.response.getTransports()
132133
}
133134
};
134135

Src/Fido2.BlazorWebAssembly/wwwroot/js/WebAuthn.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export async function createCreds(options: PublicKeyCredentialCreationOptions) {
3333
response: {
3434
attestationObject: toBase64Url(response.attestationObject),
3535
clientDataJSON: toBase64Url(response.clientDataJSON),
36-
transports: response.getTransports ? response.getTransports() : [],
36+
transports: response.getTransports ? response.getTransports() : []
3737
}
3838
};
3939
return retval;

Src/Fido2.Models/AuthenticatorAttestationRawResponse.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,8 @@ public sealed class AttestationResponse
3232
[JsonConverter(typeof(Base64UrlConverter))]
3333
[JsonPropertyName("clientDataJSON")]
3434
public byte[] ClientDataJson { get; set; }
35+
36+
[JsonPropertyName("transports")]
37+
public AuthenticatorTransport[] Transports { get; set; }
3538
}
3639
}

Src/Fido2/AuthenticatorAttestationResponse.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public async Task<RegisteredPublicKeyCredential> VerifyAsync(
190190
Id = authData.AttestedCredentialData.CredentialId,
191191
PublicKey = authData.AttestedCredentialData.CredentialPublicKey.GetBytes(),
192192
SignCount = authData.SignCount,
193-
// Transports = result of response.getTransports();
193+
Transports = Raw.Response.Transports,
194194
IsBackupEligible = authData.IsBackupEligible,
195195
IsBackedUp = authData.IsBackedUp,
196196
AttestationObject = Raw.Response.AttestationObject,

Test/Attestation/AndroidKey.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public async Task TestAndroidKey()
7676
Assert.Equal("Test User", res.Result.User.DisplayName);
7777
Assert.Equal("testuser"u8.ToArray(), res.Result.User.Id);
7878
Assert.Equal("testuser", res.Result.User.Name);
79+
Assert.Equal(new[] { AuthenticatorTransport.Internal }, res.Result.Transports);
7980
}
8081

8182
[Fact]

Test/Attestation/AndroidSafetyNet.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public async Task TestAndroidSafetyNet()
113113
Assert.Equal("Test User", res.Result.User.DisplayName);
114114
Assert.Equal("testuser"u8.ToArray(), res.Result.User.Id);
115115
Assert.Equal("testuser", res.Result.User.Name);
116+
Assert.Equal(new[] { AuthenticatorTransport.Internal }, res.Result.Transports);
116117
}
117118

118119
[Fact]

Test/Attestation/FidoU2f.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ public async Task TestU2f()
6868
Assert.Equal("Test User", res.Result.User.DisplayName);
6969
Assert.Equal("testuser"u8.ToArray(), res.Result.User.Id);
7070
Assert.Equal("testuser", res.Result.User.Name);
71+
Assert.Equal(new[] { AuthenticatorTransport.Internal }, res.Result.Transports);
7172
}
7273

7374
[Fact]

0 commit comments

Comments
 (0)