summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/duo-labs/webauthn/webauthn/credential.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/duo-labs/webauthn/webauthn/credential.go')
-rw-r--r--vendor/github.com/duo-labs/webauthn/webauthn/credential.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/duo-labs/webauthn/webauthn/credential.go b/vendor/github.com/duo-labs/webauthn/webauthn/credential.go
new file mode 100644
index 0000000000..224bb7f6a4
--- /dev/null
+++ b/vendor/github.com/duo-labs/webauthn/webauthn/credential.go
@@ -0,0 +1,35 @@
+package webauthn
+
+import (
+ "github.com/duo-labs/webauthn/protocol"
+)
+
+// Credential contains all needed information about a WebAuthn credential for storage
+type Credential struct {
+ // A probabilistically-unique byte sequence identifying a public key credential source and its authentication assertions.
+ ID []byte
+ // The public key portion of a Relying Party-specific credential key pair, generated by an authenticator and returned to
+ // a Relying Party at registration time (see also public key credential). The private key portion of the credential key
+ // pair is known as the credential private key. Note that in the case of self attestation, the credential key pair is also
+ // used as the attestation key pair, see self attestation for details.
+ PublicKey []byte
+ // The attestation format used (if any) by the authenticator when creating the credential.
+ AttestationType string
+ // The Authenticator information for a given certificate
+ Authenticator Authenticator
+}
+
+// MakeNewCredential will return a credential pointer on successful validation of a registration response
+func MakeNewCredential(c *protocol.ParsedCredentialCreationData) (*Credential, error) {
+ newCredential := &Credential{
+ ID: c.Response.AttestationObject.AuthData.AttData.CredentialID,
+ PublicKey: c.Response.AttestationObject.AuthData.AttData.CredentialPublicKey,
+ AttestationType: c.Response.AttestationObject.Format,
+ Authenticator: Authenticator{
+ AAGUID: c.Response.AttestationObject.AuthData.AttData.AAGUID,
+ SignCount: c.Response.AttestationObject.AuthData.Counter,
+ },
+ }
+
+ return newCredential, nil
+}