diff --git a/fido/src/main/java/com/yubico/yubikit/fido/ctap/FingerprintBioEnrollment.java b/fido/src/main/java/com/yubico/yubikit/fido/ctap/FingerprintBioEnrollment.java index 525b52d8..9e20339f 100644 --- a/fido/src/main/java/com/yubico/yubikit/fido/ctap/FingerprintBioEnrollment.java +++ b/fido/src/main/java/com/yubico/yubikit/fido/ctap/FingerprintBioEnrollment.java @@ -423,16 +423,22 @@ public Map enumerateEnrollments() throws IOException, CommandExc @SuppressWarnings("unchecked") final List> infos = (List>) result.get(RESULT_TEMPLATE_INFOS); - final Map retval = new HashMap<>(); + final Map enrollments = new HashMap<>(); for (Map info : infos) { final byte[] id = Objects.requireNonNull((byte[]) info.get(TEMPLATE_INFO_ID)); - final String friendlyName = (String) info.get(TEMPLATE_INFO_FRIENDLY_NAME); - retval.put(id, friendlyName); + @Nullable + String friendlyName = (String) info.get(TEMPLATE_INFO_FRIENDLY_NAME); + // treat empty strings as null values + if (friendlyName != null) { + friendlyName = friendlyName.trim(); + if (friendlyName.isEmpty()) { + friendlyName = null; + } + } + enrollments.put(id, friendlyName); } - Logger.debug(logger, "Enumerated enrollments: {}", retval); - - return retval; + return enrollments; } catch (CtapException e) { if (e.getCtapError() == CtapException.ERR_INVALID_OPTION) { return Collections.emptyMap();