Skip to content

Commit 0828654

Browse files
committed
Compute assertionSignatureCount only once in FinishAssertionSteps
1 parent 5b3fe6a commit 0828654

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

webauthn-server-core/src/main/java/com/yubico/webauthn/FinishAssertionSteps.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -503,34 +503,33 @@ public ByteArray signedBytes() {
503503
class Step21 implements Step<Finished> {
504504
private final String username;
505505
private final RegisteredCredential credential;
506+
private final long assertionSignatureCount;
506507
private final long storedSignatureCountBefore;
507508

508509
public Step21(String username, RegisteredCredential credential) {
509510
this.username = username;
510511
this.credential = credential;
512+
this.assertionSignatureCount =
513+
response.getResponse().getParsedAuthenticatorData().getSignatureCounter();
511514
this.storedSignatureCountBefore = credential.getSignatureCount();
512515
}
513516

514517
@Override
515518
public void validate() throws InvalidSignatureCountException {
516519
if (validateSignatureCounter && !signatureCounterValid()) {
517520
throw new InvalidSignatureCountException(
518-
response.getId(), storedSignatureCountBefore + 1, assertionSignatureCount());
521+
response.getId(), storedSignatureCountBefore + 1, assertionSignatureCount);
519522
}
520523
}
521524

522525
private boolean signatureCounterValid() {
523-
return (assertionSignatureCount() == 0 && storedSignatureCountBefore == 0)
524-
|| assertionSignatureCount() > storedSignatureCountBefore;
526+
return (assertionSignatureCount == 0 && storedSignatureCountBefore == 0)
527+
|| assertionSignatureCount > storedSignatureCountBefore;
525528
}
526529

527530
@Override
528531
public Finished nextStep() {
529-
return new Finished(credential, username, assertionSignatureCount(), signatureCounterValid());
530-
}
531-
532-
private long assertionSignatureCount() {
533-
return response.getResponse().getParsedAuthenticatorData().getSignatureCounter();
532+
return new Finished(credential, username, assertionSignatureCount, signatureCounterValid());
534533
}
535534
}
536535

0 commit comments

Comments
 (0)