gitextract_r69ouwzl/ ├── .gitattributes ├── .github/ │ └── workflows/ │ └── scan.yml ├── .gitignore ├── .travis.yml ├── COPYING ├── NEWS ├── README ├── buildSrc/ │ ├── build.gradle │ └── src/ │ └── main/ │ └── groovy/ │ └── com/ │ └── yubico/ │ └── gradle/ │ └── pitest/ │ └── tasks/ │ └── PitestMergeTask.groovy ├── dev-util/ │ ├── example-authentication.py │ └── example-registration.py ├── lombok.config ├── pom.xml ├── u2flib-server-attestation/ │ ├── README.adoc │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── yubico/ │ │ │ └── u2f/ │ │ │ └── attestation/ │ │ │ ├── Attestation.java │ │ │ ├── DeviceMatcher.java │ │ │ ├── MetadataObject.java │ │ │ ├── MetadataResolver.java │ │ │ ├── MetadataService.java │ │ │ ├── Transport.java │ │ │ ├── matchers/ │ │ │ │ ├── ExtensionMatcher.java │ │ │ │ └── FingerprintMatcher.java │ │ │ └── resolvers/ │ │ │ └── SimpleResolver.java │ │ └── resources/ │ │ └── metadata.json │ └── test/ │ └── java/ │ └── com/ │ └── yubico/ │ └── u2f/ │ └── attestation/ │ ├── MetadataObjectTest.java │ ├── MetadataServiceTest.java │ ├── TransportTest.java │ ├── matchers/ │ │ └── FingerprintMatcherTest.java │ └── resolvers/ │ └── SimpleResolverTest.java ├── u2flib-server-core/ │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── pom.xml │ └── src/ │ ├── main/ │ │ └── java/ │ │ └── com/ │ │ └── yubico/ │ │ └── u2f/ │ │ ├── AppId.java │ │ ├── U2F.java │ │ ├── U2fPrimitives.java │ │ ├── crypto/ │ │ │ ├── BouncyCastleCrypto.java │ │ │ ├── ChallengeGenerator.java │ │ │ ├── Crypto.java │ │ │ └── RandomChallengeGenerator.java │ │ ├── data/ │ │ │ ├── DeviceRegistration.java │ │ │ └── messages/ │ │ │ ├── ClientData.java │ │ │ ├── RegisterRequest.java │ │ │ ├── RegisterRequestData.java │ │ │ ├── RegisterResponse.java │ │ │ ├── RegisteredKey.java │ │ │ ├── SignRequest.java │ │ │ ├── SignRequestData.java │ │ │ ├── SignResponse.java │ │ │ ├── json/ │ │ │ │ ├── JsonSerializable.java │ │ │ │ └── Persistable.java │ │ │ └── key/ │ │ │ ├── RawRegisterResponse.java │ │ │ ├── RawSignResponse.java │ │ │ └── util/ │ │ │ ├── ByteInputStream.java │ │ │ ├── CertificateParser.java │ │ │ └── U2fB64Encoding.java │ │ └── exceptions/ │ │ ├── DeviceCompromisedException.java │ │ ├── InvalidDeviceCounterException.java │ │ ├── NoEligableDevicesException.java │ │ ├── NoEligibleDevicesException.java │ │ ├── U2fAuthenticationException.java │ │ ├── U2fBadConfigurationException.java │ │ ├── U2fBadInputException.java │ │ ├── U2fCeremonyException.java │ │ └── U2fRegistrationException.java │ └── test/ │ ├── java/ │ │ └── com/ │ │ └── yubico/ │ │ └── u2f/ │ │ ├── AppIdTest.java │ │ ├── SystemTest.java │ │ ├── TestUtils.java │ │ ├── U2FTest.java │ │ ├── U2fPrimitivesTest.java │ │ ├── codec/ │ │ │ ├── RawCodecTest.java │ │ │ └── SerialCodecTest.java │ │ ├── data/ │ │ │ ├── DeviceRegistrationTest.java │ │ │ └── messages/ │ │ │ ├── ClientDataTest.java │ │ │ ├── RegisterRequestDataTest.java │ │ │ ├── RegisterRequestTest.java │ │ │ ├── RegisterResponseTest.java │ │ │ ├── SignRequestDataTest.java │ │ │ ├── SignRequestTest.java │ │ │ ├── SignResponseTest.java │ │ │ ├── json/ │ │ │ │ └── JsonSerializableTest.java │ │ │ └── key/ │ │ │ ├── Client.java │ │ │ ├── CodecTestUtils.java │ │ │ └── util/ │ │ │ ├── CertificateParserTest.java │ │ │ └── U2fB64EncodingTest.java │ │ ├── json/ │ │ │ └── SerializationTest.java │ │ ├── softkey/ │ │ │ ├── SoftKey.java │ │ │ ├── SoftKeyTest.java │ │ │ └── messages/ │ │ │ ├── RegisterRequest.java │ │ │ └── SignRequest.java │ │ └── testdata/ │ │ ├── AcmeKey.java │ │ ├── GnubbyKey.java │ │ └── TestVectors.java │ └── resources/ │ └── com/ │ └── yubico/ │ └── u2f/ │ └── testdata/ │ ├── acme/ │ │ └── attestation-certificate.der │ └── gnubby/ │ ├── attestation-certificate-private-key.hex │ └── attestation-certificate.der └── u2flib-server-demo/ ├── README ├── build.gradle ├── config.yml ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── keystore.jks ├── pom.xml └── src/ └── main/ ├── java/ │ └── demo/ │ ├── App.java │ ├── Config.java │ ├── Resource.java │ ├── U2fDemoException.java │ └── view/ │ ├── AuthenticationView.java │ ├── FinishAuthenticationView.java │ ├── FinishRegistrationView.java │ └── RegistrationView.java └── resources/ ├── assets/ │ ├── loginIndex.html │ ├── registerIndex.html │ └── u2f-api-1.1.js └── demo/ └── view/ ├── authenticate.ftl ├── finishAuthentication.ftl ├── finishRegistration.ftl ├── navigation.ftl └── register.ftl