Skip to content

Commit 9c27b3b

Browse files
committed
Release 0.5.0
=== `webauthn-server-core` === New features: - `PackedAttestationStatementVerifier` now supports SHA256WithRSA signatures Bug fixes: - `PublicKeyCredentialDescriptor.compareTo` is now consistent with equals - `AuthenticatorData` constructor should now throw more descriptive exceptions instead of raw `ArrayIndexOutOfBoundsException`s === `webauthn-server-attestation` === Breaking changes: - Interface `MetadataResolver` replaced with interfaces `AttestationResolver` and `TrustResolver` - Class `SimpleResolver` split into `SimpleAttestationResolver` and `SimpleTrustResolver` - Both of these classes now take the metadata as a constructor parameter instead of exposing `addMetadata` methods - Class `CompositeResolver` split into `CompositeAttestationResolver` and `CompositeTrustResolver` - Class `StandardMetadataService` overhauled
2 parents dd85090 + fecf7ef commit 9c27b3b

File tree

177 files changed

+5529
-1028
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

177 files changed

+5529
-1028
lines changed

COPYING

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,26 @@
1-
Copyright (c) 2014, Yubico AB
1+
Copyright (c) 2014-2018, Yubico AB
22
All rights reserved.
33

4-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4+
Redistribution and use in source and binary forms, with or without
5+
modification, are permitted provided that the following conditions are met:
56

6-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
8-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
7+
1. Redistributions of source code must retain the above copyright notice, this
8+
list of conditions and the following disclaimer.
9+
10+
2. Redistributions in binary form must reproduce the above copyright notice,
11+
this list of conditions and the following disclaimer in the documentation
12+
and/or other materials provided with the distribution.
13+
14+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
924

1025
-------------------------------
1126

NEWS

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
== Version 0.5.0 ==
2+
3+
=== `webauthn-server-core` ===
4+
5+
New features:
6+
7+
* `PackedAttestationStatementVerifier` now supports SHA256WithRSA signatures
8+
9+
Bug fixes:
10+
11+
* `PublicKeyCredentialDescriptor.compareTo` is now consistent with equals
12+
* `AuthenticatorData` constructor should now throw more descriptive exceptions
13+
instead of raw `ArrayIndexOutOfBoundsException`s
14+
15+
16+
=== `webauthn-server-attestation` ===
17+
18+
Breaking changes:
19+
20+
* Interface `MetadataResolver` replaced with interfaces `AttestationResolver`
21+
and `TrustResolver`
22+
** Class `SimpleResolver` split into `SimpleAttestationResolver` and
23+
`SimpleTrustResolver`
24+
*** Both of these classes now take the metadata as a constructor parameter
25+
instead of exposing `addMetadata` methods
26+
** Class `CompositeResolver` split into `CompositeAttestationResolver` and
27+
`CompositeTrustResolver`
28+
* Class `StandardMetadataService` overhauled
29+
30+
131
== Version 0.4.0 ==
232

333
Breaking changes:

README

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@ for a server to support Web Authentication. This includes registering
1414
authenticators and authenticating registered authenticators.
1515

1616

17+
=== Planned breaking changes
18+
19+
* Update spec version from Candidate Recommendation 2018-03-20 to Proposed
20+
Recommendation 2018-11-??. This will involve renaming a couple of classes
21+
and methods.
22+
23+
1724
=== Example Usage
1825

1926
See link:webauthn-server-demo[`webauthn-server-demo`] for a complete demo

build.gradle

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ if (publishEnabled) {
2929
}
3030
}
3131

32-
task wrapper(type: Wrapper) {
33-
gradleVersion = '4.8'
32+
wrapper {
33+
gradleVersion = '4.10'
3434
}
3535

3636
allprojects {
@@ -50,6 +50,10 @@ allprojects {
5050
options.encoding = 'UTF-8'
5151
}
5252

53+
tasks.withType(AbstractArchiveTask) {
54+
from(rootProject.file('COPYING'))
55+
}
56+
5357
repositories {
5458
mavenLocal()
5559

gradle/wrapper/gradle-wrapper.jar

1.72 KB
Binary file not shown.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

webauthn-server-attestation/build.gradle

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
description = 'Yubico WebAuthn attestation subsystem'
22

3-
apply plugin: 'java'
3+
apply plugin: 'scala'
44

55
project.ext.publishMe = true
66

@@ -13,9 +13,14 @@ dependencies {
1313
)
1414

1515
testCompile(
16+
project(':webauthn-server-core').sourceSets.test.output,
17+
project(':yubico-util-scala'),
18+
'commons-io:commons-io:2.5',
1619
'org.mockito:mockito-core:2.10.0',
20+
'org.scala-lang:scala-library:2.11.3',
21+
'org.scalacheck:scalacheck_2.11:1.13.5',
22+
'org.scalatest:scalatest_2.11:3.0.4',
1723
)
18-
1924
}
2025

2126

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Copyright (c) 2015-2018, Yubico AB
2+
// All rights reserved.
3+
//
4+
// Redistribution and use in source and binary forms, with or without
5+
// modification, are permitted provided that the following conditions are met:
6+
//
7+
// 1. Redistributions of source code must retain the above copyright notice, this
8+
// list of conditions and the following disclaimer.
9+
//
10+
// 2. Redistributions in binary form must reproduce the above copyright notice,
11+
// this list of conditions and the following disclaimer in the documentation
12+
// and/or other materials provided with the distribution.
13+
//
14+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15+
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16+
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18+
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19+
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20+
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21+
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22+
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24+
25+
package com.yubico.webauthn.attestation;
26+
27+
import java.security.cert.X509Certificate;
28+
import java.util.Collections;
29+
import java.util.List;
30+
import java.util.Optional;
31+
32+
public interface AttestationResolver {
33+
34+
/**
35+
* Alias of <code>resolve(attestationCertificate, Collections.emptyList())</code>.
36+
*/
37+
default Optional<Attestation> resolve(X509Certificate attestationCertificate) {
38+
return resolve(attestationCertificate, Collections.emptyList());
39+
}
40+
41+
Optional<Attestation> resolve(X509Certificate attestationCertificate, List<X509Certificate> certificateChain);
42+
Attestation untrustedFromCertificate(X509Certificate attestationCertificate);
43+
44+
}

webauthn-server-attestation/src/main/java/com/yubico/webauthn/attestation/DeviceMatcher.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,26 @@
1-
/* Copyright 2015 Yubico */
1+
// Copyright (c) 2015-2018, Yubico AB
2+
// All rights reserved.
3+
//
4+
// Redistribution and use in source and binary forms, with or without
5+
// modification, are permitted provided that the following conditions are met:
6+
//
7+
// 1. Redistributions of source code must retain the above copyright notice, this
8+
// list of conditions and the following disclaimer.
9+
//
10+
// 2. Redistributions in binary form must reproduce the above copyright notice,
11+
// this list of conditions and the following disclaimer in the documentation
12+
// and/or other materials provided with the distribution.
13+
//
14+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15+
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16+
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17+
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
18+
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19+
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20+
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
21+
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
22+
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
224

325
package com.yubico.webauthn.attestation;
426

webauthn-server-attestation/src/main/java/com/yubico/webauthn/attestation/MetadataResolver.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)