identityprovider

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2022 License: Apache-2.0, MIT Imports: 6 Imported by: 0

Documentation

Overview

Package identityprovider defines a default identity provider for IPFS Log and OrbitDB.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddIdentityProvider

func AddIdentityProvider(identityProvider func(*CreateIdentityOptions) Interface) error

AddIdentityProvider registers an new identity provider.

func IsSupported

func IsSupported(typeName string) bool

IsSupported checks if an identity type is supported.

func RemoveIdentityProvider

func RemoveIdentityProvider(name string)

RemoveIdentityProvider unregisters an identity provider.

Types

type CreateIdentityOptions

type CreateIdentityOptions struct {
	IdentityKeysPath string
	Type             string
	Keystore         keystore.Interface
	//Migrate          func(*MigrateOptions) error
	ID string
}

type Identities

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

func (*Identities) CreateIdentity

func (i *Identities) CreateIdentity(ctx context.Context, options *CreateIdentityOptions) (*Identity, error)

CreateIdentity creates a new Identity.

func (*Identities) Sign

func (i *Identities) Sign(ctx context.Context, identity *Identity, data []byte) ([]byte, error)

func (*Identities) Verify

func (i *Identities) Verify(signature []byte, publicKey crypto.PubKey, data []byte) (bool, error)

Verify checks a signature.

func (*Identities) VerifyIdentity

func (i *Identities) VerifyIdentity(identity *Identity) error

VerifyIdentity checks an identity.

type Identity

type Identity struct {
	ID         string             `json:"id,omitempty"`
	PublicKey  []byte             `json:"publicKey,omitempty"`
	Signatures *IdentitySignature `json:"signatures,omitempty"`
	Type       string             `json:"type,omitempty"`
	Provider   Interface
}

func CreateIdentity

func CreateIdentity(ctx context.Context, options *CreateIdentityOptions) (*Identity, error)

CreateIdentity creates a new identity.

func (*Identity) Filtered

func (i *Identity) Filtered() *Identity

Filtered gets fields that should be present in the CBOR representation of identity.

func (*Identity) GetPublicKey

func (i *Identity) GetPublicKey() (ic.PubKey, error)

GetPublicKey returns the public key of an identity.

type IdentitySignature

type IdentitySignature struct {
	ID        []byte `json:"id,omitempty"`
	PublicKey []byte `json:"publicKey,omitempty"`
}

type Interface

type Interface interface {
	// GetID returns id of identity (to be signed by orbit-db public key).
	GetID(context.Context, *CreateIdentityOptions) (string, error)

	// SignIdentity returns signature of OrbitDB public key signature.
	SignIdentity(ctx context.Context, data []byte, id string) ([]byte, error)

	// GetType returns the type for this identity provider.
	GetType() string

	// VerifyIdentity checks an identity.
	VerifyIdentity(identity *Identity) error

	// Sign will sign a value.
	Sign(ctx context.Context, identity *Identity, bytes []byte) ([]byte, error)

	// UnmarshalPublicKey will provide a crypto.PubKey from a key bytes.
	UnmarshalPublicKey(data []byte) (crypto.PubKey, error)
}

func NewP2PDBIdentityProvider

func NewP2PDBIdentityProvider(options *CreateIdentityOptions) Interface

NewOrbitDBIdentityProvider creates a new identity for use with OrbitDB.

type P2PDBIdentityProvider

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

func (*P2PDBIdentityProvider) GetID

GetID returns the identity's ID.

func (*P2PDBIdentityProvider) GetType

func (*P2PDBIdentityProvider) GetType() string

GetType returns the current identity type.

func (*P2PDBIdentityProvider) Sign

func (p *P2PDBIdentityProvider) Sign(ctx context.Context, identity *Identity, data []byte) ([]byte, error)

Sign signs a value using the current.

func (*P2PDBIdentityProvider) SignIdentity

func (p *P2PDBIdentityProvider) SignIdentity(ctx context.Context, data []byte, id string) ([]byte, error)

SignIdentity signs an OrbitDB identity.

func (*P2PDBIdentityProvider) UnmarshalPublicKey

func (p *P2PDBIdentityProvider) UnmarshalPublicKey(data []byte) (crypto.PubKey, error)

func (*P2PDBIdentityProvider) VerifyIdentity

func (p *P2PDBIdentityProvider) VerifyIdentity(identity *Identity) error

VerifyIdentity checks an OrbitDB identity.

Jump to

Keyboard shortcuts

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