|
31 | 31 | import com.yubico.webauthn.StartAssertionOptions;
|
32 | 32 | import com.yubico.webauthn.extension.appid.AppId;
|
33 | 33 | import java.util.HashSet;
|
| 34 | +import java.util.Map; |
34 | 35 | import java.util.Optional;
|
35 | 36 | import java.util.Set;
|
36 | 37 | import lombok.Builder;
|
@@ -182,9 +183,28 @@ public AssertionExtensionInputsBuilder largeBlob(
|
182 | 183 | /**
|
183 | 184 | * Enable the Pseudo-random function extension (<code>prf</code>).
|
184 | 185 | *
|
185 |
| - * @see <a |
186 |
| - * href="https://www.w3.org/TR/2021/REC-webauthn-2-20210408/#sctn-large-blob-extension">§10.5. |
187 |
| - * Large blob storage extension (largeBlob)</a> |
| 186 | + * <p>This extension allows a Relying Party to evaluate outputs from a pseudo-random function |
| 187 | + * (PRF) associated with a credential. |
| 188 | + * |
| 189 | + * <p>Use the {@link com.yubico.webauthn.data.Extensions.Prf.PrfAuthenticationInput} factory |
| 190 | + * functions to construct the argument: |
| 191 | + * |
| 192 | + * <ul> |
| 193 | + * <li>Use {@link Extensions.Prf.PrfAuthenticationInput#eval(Extensions.Prf.PrfValues)} to use |
| 194 | + * the same PRF input for all credentials. |
| 195 | + * <li>Use {@link Extensions.Prf.PrfAuthenticationInput#evalByCredential(Map)} to use |
| 196 | + * different PRF inputs for different credentials. |
| 197 | + * <li>Use {@link Extensions.Prf.PrfAuthenticationInput#evalByCredentialWithFallback(Map, |
| 198 | + * Extensions.Prf.PrfValues)} to use different PRF inputs for different credentials, but |
| 199 | + * with a "fallback" input for credentials without their own input. |
| 200 | + * </ul> |
| 201 | + * |
| 202 | + * @see Extensions.Prf.PrfAuthenticationInput#eval(Extensions.Prf.PrfValues) |
| 203 | + * @see Extensions.Prf.PrfAuthenticationInput#evalByCredential(Map) |
| 204 | + * @see Extensions.Prf.PrfAuthenticationInput#evalByCredentialWithFallback(Map, |
| 205 | + * Extensions.Prf.PrfValues) |
| 206 | + * @see <a href="https://www.w3.org/TR/2025/WD-webauthn-3-20250127/#prf-extension">§10.1.4. |
| 207 | + * Pseudo-random function extension (prf)</a> |
188 | 208 | */
|
189 | 209 | public AssertionExtensionInputsBuilder prf(Extensions.Prf.PrfAuthenticationInput prf) {
|
190 | 210 | this.prf = prf;
|
@@ -253,16 +273,17 @@ private Extensions.LargeBlob.LargeBlobAuthenticationInput getLargeBlobJson() {
|
253 | 273 | }
|
254 | 274 |
|
255 | 275 | /**
|
256 |
| - * The input to the Pseudo-random function extension (<code>prf</code>). |
| 276 | + * The input to the Pseudo-random function extension (<code>prf</code>), if any. |
257 | 277 | *
|
258 | 278 | * <p>This extension allows a Relying Party to evaluate outputs from a pseudo-random function
|
259 | 279 | * (PRF) associated with a credential.
|
260 | 280 | *
|
261 |
| - * @see Extensions.LargeBlob.LargeBlobAuthenticationInput#read() |
262 |
| - * @see Extensions.LargeBlob.LargeBlobAuthenticationInput#write(ByteArray) |
263 |
| - * @see <a |
264 |
| - * href="https://www.w3.org/TR/2021/REC-webauthn-2-20210408/#sctn-large-blob-extension">§10.5. |
265 |
| - * Large blob storage extension (largeBlob)</a> |
| 281 | + * @see Extensions.Prf.PrfAuthenticationInput#eval(Extensions.Prf.PrfValues) |
| 282 | + * @see Extensions.Prf.PrfAuthenticationInput#evalByCredential(Map) |
| 283 | + * @see Extensions.Prf.PrfAuthenticationInput#evalByCredentialWithFallback(Map, |
| 284 | + * Extensions.Prf.PrfValues) |
| 285 | + * @see <a href="https://www.w3.org/TR/2025/WD-webauthn-3-20250127/#prf-extension">§10.1.4. |
| 286 | + * Pseudo-random function extension (prf)</a> |
266 | 287 | */
|
267 | 288 | public Optional<Extensions.Prf.PrfAuthenticationInput> getPrf() {
|
268 | 289 | return Optional.ofNullable(prf);
|
|
0 commit comments