1 /* -*- Mode: c++; c-basic-offset: 2; tab-width: 20; indent-tabs-mode: nil; -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "mozilla/dom/AndroidWebAuthnTokenManager.h"
8 #include "mozilla/java/WebAuthnTokenManagerNatives.h"
11 class WebAuthnTokenManager final
12 : public java::WebAuthnTokenManager::Natives
<WebAuthnTokenManager
> {
14 static void WebAuthnMakeCredentialFinish(
15 jni::ByteArray::Param aClientDataJson
, jni::ByteArray::Param aKeyHandle
,
16 jni::ByteArray::Param aAttestationObject
) {
17 mozilla::dom::AndroidWebAuthnResult result
;
19 result
.mClientDataJSON
.Assign(
20 reinterpret_cast<const char*>(
21 aClientDataJson
->GetElements().Elements()),
22 aClientDataJson
->Length());
23 result
.mKeyHandle
.Assign(
24 reinterpret_cast<uint8_t*>(aKeyHandle
->GetElements().Elements()),
25 aKeyHandle
->Length());
26 result
.mAttObj
.Assign(reinterpret_cast<uint8_t*>(
27 aAttestationObject
->GetElements().Elements()),
28 aAttestationObject
->Length());
30 mozilla::dom::AndroidWebAuthnTokenManager::GetInstance()
31 ->HandleRegisterResult(std::move(result
));
34 static void WebAuthnMakeCredentialReturnError(jni::String::Param aErrorCode
) {
35 mozilla::dom::AndroidWebAuthnResult
result(aErrorCode
->ToString());
36 mozilla::dom::AndroidWebAuthnTokenManager::GetInstance()
37 ->HandleRegisterResult(std::move(result
));
40 static void WebAuthnGetAssertionFinish(jni::ByteArray::Param aClientDataJson
,
41 jni::ByteArray::Param aKeyHandle
,
42 jni::ByteArray::Param aAuthData
,
43 jni::ByteArray::Param aSignature
,
44 jni::ByteArray::Param aUserHandle
) {
45 mozilla::dom::AndroidWebAuthnResult result
;
47 result
.mClientDataJSON
.Assign(
48 reinterpret_cast<const char*>(
49 aClientDataJson
->GetElements().Elements()),
50 aClientDataJson
->Length());
51 result
.mKeyHandle
.Assign(
52 reinterpret_cast<uint8_t*>(aKeyHandle
->GetElements().Elements()),
53 aKeyHandle
->Length());
54 result
.mAuthData
.Assign(
55 reinterpret_cast<uint8_t*>(aAuthData
->GetElements().Elements()),
57 result
.mSignature
.Assign(
58 reinterpret_cast<uint8_t*>(aSignature
->GetElements().Elements()),
59 aSignature
->Length());
60 result
.mUserHandle
.Assign(
61 reinterpret_cast<uint8_t*>(aUserHandle
->GetElements().Elements()),
62 aUserHandle
->Length());
64 mozilla::dom::AndroidWebAuthnTokenManager::GetInstance()->HandleSignResult(
68 static void WebAuthnGetAssertionReturnError(jni::String::Param aErrorCode
) {
69 mozilla::dom::AndroidWebAuthnResult
result(aErrorCode
->ToString());
70 mozilla::dom::AndroidWebAuthnTokenManager::GetInstance()->HandleSignResult(
74 } // namespace mozilla