package org.xdi.oxauth.model.fido.u2f; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.annotate.JsonProperty; import org.xdi.oxauth.crypto.cert.CertificateParser; import org.xdi.oxauth.model.util.Base64Util; /** * U2F Device registration key * * @author Yuriy Movchan Date: 05/29/2015 */ public class DeviceRegistrationConfiguration { @JsonProperty public final String publicKey; @JsonProperty public final String attestationCert; public DeviceRegistrationConfiguration(@JsonProperty("publicKey") String publicKey, @JsonProperty("attestationCert") String attestationCert) { this.publicKey = publicKey; this.attestationCert = attestationCert; } public String getPublicKey() { return publicKey; } public String getAttestationCert() { return attestationCert; } @JsonIgnore public X509Certificate getAttestationCertificate() throws CertificateException, NoSuchFieldException { if (attestationCert == null) { throw new NoSuchFieldException(); } return CertificateParser.parseDer(Base64Util.base64urldecode(attestationCert)); } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("DeviceRegistrationConfiguration [publicKey=").append(publicKey).append(", attestationCert=").append(attestationCert).append("]"); return builder.toString(); } }