// Go FIDO U2F Library // Copyright 2015 The Go FIDO U2F Library Authors. All rights reserved. // Use of this source code is governed by the MIT // license that can be found in the LICENSE file. package u2f import ( "encoding/json" ) // JwkKey represents a public key used by a browser for the Channel ID TLS // extension. type JwkKey struct { KTy string `json:"kty"` Crv string `json:"crv"` X string `json:"x"` Y string `json:"y"` } // ClientData as defined by the FIDO U2F Raw Message Formats specification. type ClientData struct { Typ string `json:"typ"` Challenge string `json:"challenge"` Origin string `json:"origin"` CIDPubKey json.RawMessage `json:"cid_pubkey"` } // RegisterRequest as defined by the FIDO U2F Javascript API 1.1. type RegisterRequest struct { Version string `json:"version"` Challenge string `json:"challenge"` } // WebRegisterRequest contains the parameters needed for the u2f.register() // high-level Javascript API function as defined by the // FIDO U2F Javascript API 1.1. type WebRegisterRequest struct { AppID string `json:"appId"` RegisterRequests []RegisterRequest `json:"registerRequests"` RegisteredKeys []RegisteredKey `json:"registeredKeys"` } // RegisterResponse as defined by the FIDO U2F Javascript API 1.1. type RegisterResponse struct { Version string `json:"version"` RegistrationData string `json:"registrationData"` ClientData string `json:"clientData"` } // RegisteredKey as defined by the FIDO U2F Javascript API 1.1. type RegisteredKey struct { Version string `json:"version"` KeyHandle string `json:"keyHandle"` AppID string `json:"appId"` } // WebSignRequest contains the parameters needed for the u2f.sign() // high-level Javascript API function as defined by the // FIDO U2F Javascript API 1.1. type WebSignRequest struct { AppID string `json:"appId"` Challenge string `json:"challenge"` RegisteredKeys []RegisteredKey `json:"registeredKeys"` } // SignResponse as defined by the FIDO U2F Javascript API 1.1. type SignResponse struct { KeyHandle string `json:"keyHandle"` SignatureData string `json:"signatureData"` ClientData string `json:"clientData"` } // TrustedFacets as defined by the FIDO AppID and Facet Specification. type TrustedFacets struct { Version struct { Major int `json:"major"` Minor int `json:"minor"` } `json:"version"` Ids []string `json:"ids"` } // TrustedFacetsEndpoint is a container of TrustedFacets. // It is used as the response for an appId URL endpoint. type TrustedFacetsEndpoint struct { TrustedFacets []TrustedFacets `json:"trustedFacets"` }