k6fido

package module
v0.0.0-...-f9cc4a5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

README

k6fido

A bunch of random functions for k6 performance testing that I found missing, but useful in our work.

Compile for development

xk6 build v0.46.0 \
  --with github.com/b4dc0d3rs/k6-fido=.

./k6 run k6fido.js

Use

Just import:

import k6fido from 'k6/x/k6fido';

Documentation

Index

Constants

View Source
const (
	OK       = 1200
	ACCEPTED = 1202
)
View Source
const (
	Reg = iota
	Auth
	Dereg
)

Variables

This section is empty.

Functions

func SignDataLocal

func SignDataLocal(signatureData []byte, base64PrivateKey string) ([]byte, error)

Signs the passed signature data using the ECDSA DER formatted private key

Types

type Assertions

type Assertions struct {
	// contains filtered or unexported fields
}

type AuthenticatorSignAssertion

type AuthenticatorSignAssertion struct {
	Assertion       string `json:"assertion"`
	AssertionScheme string `json:"assertionScheme"`
}

func NewFidoAuthenticationSignedAssertions

func NewFidoAuthenticationSignedAssertions(aaid string, pubKeyBas64Encoded string, privKeyBase64Encoded string, overriddenSignature string, signatureSignedData string, finalChallengeParamsHash []byte, keyId string) (*AuthenticatorSignAssertion, error)

func NewFidoRegistrationSignedAssertions

func NewFidoRegistrationSignedAssertions(aaid string, signatureSignedData string,
	pubKeyBas64Encoded string, privKeyBase64Encoded string, overriddenSignature string, finalChallengeParamsHash []byte, keyId string) (*AuthenticatorSignAssertion, error)

type ECDSASignature

type ECDSASignature struct {
	R, S *big.Int
}

Conventional format of the ECDSA signature

type FidoAuthenticationResponse

type FidoAuthenticationResponse struct {
	// contains filtered or unexported fields
}

func (*FidoAuthenticationResponse) Build

func (b *FidoAuthenticationResponse) Build(aaid string, overriddenSignature string, signatureSignData string,
	privKey string, pubKey string, keyId string) (*SendUafResponse, error)

type FidoAuthenticationResponseBuilder

type FidoAuthenticationResponseBuilder interface {
	Build(aaid string, overriddenSignature string, signatureSignData string,
		privKey string, pubKey string) (*SendUafResponse, error)
}

type FidoAuthenticationSignedAssertionsBuilder

type FidoAuthenticationSignedAssertionsBuilder struct {
	// contains filtered or unexported fields
}

func (*FidoAuthenticationSignedAssertionsBuilder) Build

type FidoRegistrationResponse

type FidoRegistrationResponse struct {
	// contains filtered or unexported fields
}

func (*FidoRegistrationResponse) Build

func (b *FidoRegistrationResponse) Build(aaid string, overriddenSignature string, signatureSignData string,
	privKey string, pubKey string, keyId string) (*SendUafResponse, error)

type FidoRegistrationResponseBuilder

type FidoRegistrationResponseBuilder interface {
	Build(aaid string, overriddenSignature string, signatureSignData string,
		privKey string, pubKey string) (*SendUafResponse, error)
}

type FidoRegistrationSignedAssertionsBuilder

type FidoRegistrationSignedAssertionsBuilder struct {
	// contains filtered or unexported fields
}

func (*FidoRegistrationSignedAssertionsBuilder) Build

func (fra *FidoRegistrationSignedAssertionsBuilder) Build(privKeyStr string, pubKeyStr string, keyId string) (*AuthenticatorSignAssertion, error)

type FidoResponseEntry

type FidoResponseEntry struct {
	Header         Header                       `json:"header"`
	Assertions     []AuthenticatorSignAssertion `json:"assertions"`
	Base64FcParams string                       `json:"fcParams"`
}

type FidoUafTlvObject

type FidoUafTlvObject struct {
	// contains filtered or unexported fields
}

func NewFidoUafTlvObject

func NewFidoUafTlvObject(tag int16, value []byte) *FidoUafTlvObject

func NewFidoUafTlvObjectFromArray

func NewFidoUafTlvObjectFromArray(tag int16, values ...*FidoUafTlvObject) *FidoUafTlvObject

func NewFidoUafTlvObjectWithSize

func NewFidoUafTlvObjectWithSize(tag int16, contentSize int16) *FidoUafTlvObject

func (*FidoUafTlvObject) GetByteArray

func (t *FidoUafTlvObject) GetByteArray() []byte

func (*FidoUafTlvObject) PutInt16

func (t *FidoUafTlvObject) PutInt16(value int16) *FidoUafTlvObject

func (*FidoUafTlvObject) PutInt32

func (t *FidoUafTlvObject) PutInt32(value int32) *FidoUafTlvObject

func (*FidoUafTlvObject) PutInt8

func (t *FidoUafTlvObject) PutInt8(value int8) *FidoUafTlvObject

func (*FidoUafTlvObject) PutInt8Array

func (t *FidoUafTlvObject) PutInt8Array(value []byte) *FidoUafTlvObject

type FinalChallengeParams

type FinalChallengeParams struct {
	AppID     string `json:"appID"`
	Challenge string `json:"challenge"`
	FacetID   string `json:"facetID"`
}
type Header struct {
	Upv   Upv    `json:"upv"`
	Op    string `json:"op"`
	AppID string `json:"appID"`
}

type K6Fido

type K6Fido struct {
}

func (*K6Fido) GenerateAuthenticationResponse

func (k6fido *K6Fido) GenerateAuthenticationResponse(aaid string, uafRequest string,
	trustedFacetId string, overriddenSignature string, signatureSignData string,
	privKey string, pubKey string, username string, keyId string) (string, error)

Externally visible: Generates Fido Authentication Response

func (*K6Fido) GenerateKeyPair

func (k6fido *K6Fido) GenerateKeyPair() (string, string, error)

Externally visible: Generates an ECDSA DER formatted key pair

func (*K6Fido) GenerateRegistrationResponse

func (k6fido *K6Fido) GenerateRegistrationResponse(aaid string, uafRequest string,
	trustedFacetId string, overriddenSignature string, signatureSignData string,
	privKey string, pubKey string, keyId string) (string, error)

Externally visible: Generates Fido Registration Response

func (*K6Fido) SignData

func (k6fido *K6Fido) SignData(signatureData string, base64PrivateKey string) (string, error)

Externally visible: Signs the passed signature data using the ECDSA DER formatted private key

type MatchCriteria

type MatchCriteria struct {
	UserVerification         int64    `json:"userVerification"`
	AuthenticationAlgorithms []int    `json:"authenticationAlgorithms"`
	AssertionSchemes         []string `json:"assertionSchemes"`
}

type Operation

type Operation int

Operation An enum used to define FIDO operation which a user requests

type Policy

type Policy struct {
	Accepted [][]MatchCriteria `json:"accepted"`
}

type RegRequestEntry

type RegRequestEntry struct {
	Header      Header        `json:"header"`
	Challenge   string        `json:"challenge"`
	Username    string        `json:"username"`
	Policy      Policy        `json:"policy"`
	Transaction []Transaction `json:"transaction"`
}

type ReturnUafRequest

type ReturnUafRequest struct {
	StatusCode     UafStatusCode `json:"statusCode"`
	UafRequest     string        `json:"uafRequest"`
	Op             Operation     `json:"op"`
	LifetimeMillis int64         `json:"lifetimeMillis"`
}

func NewFidoAuthenticationReturnUafRequest

func NewFidoAuthenticationReturnUafRequest(uafRequest string) *ReturnUafRequest

func NewFidoRegistrationReturnUafRequest

func NewFidoRegistrationReturnUafRequest(uafRequest string) *ReturnUafRequest

type SendUafResponse

type SendUafResponse struct {
	UafResponse string `json:"uafResponse"`
	Context     string `json:"context"`
}

type SignedAssertionsBuilder

type SignedAssertionsBuilder interface {
	Build(string, string) (*AuthenticatorSignAssertion, error)
}

type Transaction

type Transaction struct {
	ContentType string `json:"contentType"`
	Content     string `json:"content"`
}

type UafStatusCode

type UafStatusCode int

UafStatusCode An enum to define FIDO UafStatusCode

type Upv

type Upv struct {
	Major int `json:"major"`
	Minor int `json:"minor"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL