Skip to content

Commit 1a3f891

Browse files
committed
Prepare correct input for publicKey
1 parent 8dc50ed commit 1a3f891

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

src/main/java/org/keepassxc/Connection.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,7 @@ public JSONObject requestAutotype(String url) throws IOException, KeepassProxyAc
655655

656656
}
657657

658-
public JSONObject passkeysRegister(String publicKey, String origin, List<Map<String, String>> list) throws IOException, KeepassProxyAccessException {
658+
public JSONObject passkeysRegister(JSONObject publicKey, String origin, List<Map<String, String>> list) throws IOException, KeepassProxyAccessException {
659659
var array = new JSONArray();
660660
// Syntax check for list
661661
for (Map<String, String> m : list) {
@@ -669,7 +669,7 @@ public JSONObject passkeysRegister(String publicKey, String origin, List<Map<Str
669669
// Send passkeys-register request
670670
var nonce = sendEncryptedMessage(Map.of(
671671
"action", "passkeys-register",
672-
"publicKey", ensureNotNull(publicKey),
672+
"publicKey", publicKey,
673673
"origin", ensureNotNull(origin),
674674
"keys", array
675675
));

src/main/java/org/purejava/KeepassProxyAccess.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -424,12 +424,12 @@ public boolean requestAutotype(String url) {
424424
}
425425
}
426426

427-
public String passkeysRegister(String publicKey, String origin, List<Map<String, String>> list) {
427+
public String passkeysRegister(JSONObject publicKey, String origin, List<Map<String, String>> list) {
428428
try {
429429
var response = connection.passkeysRegister(publicKey, origin, list);
430430
if (response.has("response") && response.has("success") && response.getString("success").equals("true")) {
431431
try {
432-
var errorCode = response.getJSONObject("response").getString("errorCode");
432+
var errorCode = response.getJSONObject("response").getInt("errorCode");
433433
throw new KeepassProxyAccessException("ErrorCode: " + errorCode);
434434

435435
} catch (JSONException e) {

src/test/java/org/purejava/UnlockedDatabaseTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.purejava;
22

3+
import org.json.JSONObject;
34
import org.junit.jupiter.api.DisplayName;
45
import org.junit.jupiter.api.Order;
56
import org.junit.jupiter.api.Test;
@@ -50,7 +51,9 @@ public void shouldHaveNoErrors() throws InterruptedException {
5051
assertTrue(kpa.requestAutotype("https://github.com"));
5152
LOG.info("Please allow to delete entry");
5253
assertTrue(kpa.deleteEntry("2aafee1a89fd435c8bad7df12bbaaa3e"));
53-
LOG.info(kpa.passkeysRegister("publicKey", "https://www.passkeys.io", l));
54+
String publicKey = "{\"attestation\":\"direct\",\"authenticatorSelection\":{\"requireResidentKey\":true,\"residentKey\":\"required\",\"userVerification\":\"preferred\"},\"challenge\":\"AICQS3rj6P-dIDb5if3OCte-Y7CEs_BEnpTgoasQRXg\",\"excludeCredentials\":[],\"extensions\":{\"credProps\":true},\"pubKeyCredParams\":[{\"alg\":-7,\"type\":\"public-key\"},{\"alg\":-257,\"type\":\"public-key\"}],\"rp\":{\"id\":\"passkey.org\",\"name\":\"Yubico Demo\"},\"timeout\":90000,\"user\":{\"displayName\":\"purejava\",\"id\":\"DEMO__9fX19ERU1P\",\"name\":\"purejava\"}}";
55+
JSONObject p = new JSONObject(publicKey);
56+
LOG.info(kpa.passkeysRegister(p, "https://passkey.org", l));
5457
LOG.info("Please deny to save changes");
5558
assertTrue(kpa.lockDatabase());
5659
assertTrue(kpa.shutdown());

0 commit comments

Comments
 (0)