blob: d271e44b77ed7f4ae98dd6a53cf4a03f8b821f82 [file] [log] [blame]
/*
* Copyright 2023 The Android Open Source Project
*
* Licensed 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.
*/
package androidx.credentials.webauthn
import androidx.annotation.RestrictTo
import org.json.JSONObject
@RestrictTo(RestrictTo.Scope.LIBRARY)
class FidoPublicKeyCredential(
val rawId: ByteArray,
val response: AuthenticatorResponse,
val authenticatorAttachment: String
) {
fun json(): String {
// See RegistrationResponseJSON at
// https://w3c.github.io/webauthn/#ref-for-dom-publickeycredential-tojson
val encodedId = WebAuthnUtils.b64Encode(rawId)
val ret = JSONObject()
ret.put("id", encodedId)
ret.put("rawId", encodedId)
ret.put("type", "public-key")
ret.put("authenticatorAttachment", authenticatorAttachment)
ret.put("response", response.json())
ret.put("clientExtensionResults", JSONObject())
return ret.toString()
}
}