All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openqa.selenium.devtools.v90.webauthn.model.Credential Maven / Gradle / Ivy

Go to download

Selenium automates browsers. That's it! What you do with that power is entirely up to you.

There is a newer version: 4.0.0-beta-4
Show newest version
package org.openqa.selenium.devtools.v90.webauthn.model;

import org.openqa.selenium.Beta;
import org.openqa.selenium.json.JsonInput;

public class Credential {

    private final java.lang.String credentialId;

    private final java.lang.Boolean isResidentCredential;

    private final java.util.Optional rpId;

    private final java.lang.String privateKey;

    private final java.util.Optional userHandle;

    private final java.lang.Integer signCount;

    private final java.util.Optional largeBlob;

    public Credential(java.lang.String credentialId, java.lang.Boolean isResidentCredential, java.util.Optional rpId, java.lang.String privateKey, java.util.Optional userHandle, java.lang.Integer signCount, java.util.Optional largeBlob) {
        this.credentialId = java.util.Objects.requireNonNull(credentialId, "credentialId is required");
        this.isResidentCredential = java.util.Objects.requireNonNull(isResidentCredential, "isResidentCredential is required");
        this.rpId = rpId;
        this.privateKey = java.util.Objects.requireNonNull(privateKey, "privateKey is required");
        this.userHandle = userHandle;
        this.signCount = java.util.Objects.requireNonNull(signCount, "signCount is required");
        this.largeBlob = largeBlob;
    }

    public java.lang.String getCredentialId() {
        return credentialId;
    }

    public java.lang.Boolean getIsResidentCredential() {
        return isResidentCredential;
    }

    /**
     * Relying Party ID the credential is scoped to. Must be set when adding a
     * credential.
     */
    public java.util.Optional getRpId() {
        return rpId;
    }

    /**
     * The ECDSA P-256 private key in PKCS#8 format.
     */
    public java.lang.String getPrivateKey() {
        return privateKey;
    }

    /**
     * An opaque byte sequence with a maximum size of 64 bytes mapping the
     * credential to a specific user.
     */
    public java.util.Optional getUserHandle() {
        return userHandle;
    }

    /**
     * Signature counter. This is incremented by one for each successful
     * assertion.
     * See https://w3c.github.io/webauthn/#signature-counter
     */
    public java.lang.Integer getSignCount() {
        return signCount;
    }

    /**
     * The large blob associated with the credential.
     * See https://w3c.github.io/webauthn/#sctn-large-blob-extension
     */
    public java.util.Optional getLargeBlob() {
        return largeBlob;
    }

    private static Credential fromJson(JsonInput input) {
        java.lang.String credentialId = null;
        java.lang.Boolean isResidentCredential = false;
        java.util.Optional rpId = java.util.Optional.empty();
        java.lang.String privateKey = null;
        java.util.Optional userHandle = java.util.Optional.empty();
        java.lang.Integer signCount = 0;
        java.util.Optional largeBlob = java.util.Optional.empty();
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "credentialId":
                    credentialId = input.nextString();
                    break;
                case "isResidentCredential":
                    isResidentCredential = input.nextBoolean();
                    break;
                case "rpId":
                    rpId = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "privateKey":
                    privateKey = input.nextString();
                    break;
                case "userHandle":
                    userHandle = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "signCount":
                    signCount = input.nextNumber().intValue();
                    break;
                case "largeBlob":
                    largeBlob = java.util.Optional.ofNullable(input.nextString());
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new Credential(credentialId, isResidentCredential, rpId, privateKey, userHandle, signCount, largeBlob);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy