diff options
Diffstat (limited to 'vendor/github.com/duo-labs/webauthn/webauthn/credential.go')
-rw-r--r-- | vendor/github.com/duo-labs/webauthn/webauthn/credential.go | 35 |
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 +} |