proof

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2024 License: Apache-2.0 Imports: 8 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrProofNotFound = errors.New("proof not found")

ErrProofNotFound is returned when proof is not found.

Functions

func AddProof

func AddProof(jsonLdObject map[string]interface{}, proof *Proof) error

AddProof adds a proof to LD Object.

func CreateDetachedJWTHeader

func CreateDetachedJWTHeader(alg string) string

CreateDetachedJWTHeader creates detached JWT header.

func CreateVerifyData

func CreateVerifyData(suite signatureSuite, jsonldDoc map[string]interface{}, proof *Proof,
	opts ...processor.Opts) ([]byte, error)

CreateVerifyData creates data that is used to generate or verify a digital signature. It depends on the signature value holder type. In case of "proofValue", the standard Create Verify Hash algorithm is used. In case of "jws", verify data is built as JSON Web Signature (JWS) with detached payload.

func CreateVerifyHash

func CreateVerifyHash(suite signatureSuite, jsonldDoc, proofOptions map[string]interface{},
	opts ...processor.Opts) ([]byte, error)

CreateVerifyHash returns data that is used to generate or verify a digital signature Algorithm steps are described here https://w3c-dvcg.github.io/ld-signatures/#create-verify-hash-algorithm

func DecodeProofValue

func DecodeProofValue(s, proofType string) ([]byte, error)

DecodeProofValue decodes proofValue basing on proof type.

func EncodeProofValue

func EncodeProofValue(proofValue []byte, proofType string) string

EncodeProofValue decodes proofValue basing on proof type.

func GetCopyWithoutProof

func GetCopyWithoutProof(jsonLdObject map[string]interface{}) map[string]interface{}

GetCopyWithoutProof gets copy of JSON LD Object without proofs (signatures).

func GetJWTSignature

func GetJWTSignature(jwt string) ([]byte, error)

GetJWTSignature returns signature part of JWT.

Types

type Proof

type Proof struct {
	Type                    string
	Created                 *afgotime.TimeWrapper
	Creator                 string
	VerificationMethod      string
	ProofValue              []byte
	JWS                     string
	ProofPurpose            string
	Domain                  string
	Nonce                   []byte
	Challenge               string
	SignatureRepresentation SignatureRepresentation
	// CapabilityChain must be an array. Each element is either a string or an object.
	CapabilityChain []interface{}
}

Proof is cryptographic proof of the integrity of the DID Document.

func GetProofs

func GetProofs(jsonLdObject map[string]interface{}) ([]*Proof, error)

GetProofs gets proof(s) from LD Object.

func NewProof

func NewProof(emap map[string]interface{}) (*Proof, error)

NewProof creates new proof.

func (*Proof) JSONLdObject

func (p *Proof) JSONLdObject() map[string]interface{}

JSONLdObject returns map that represents JSON LD Object.

func (*Proof) PublicKeyID

func (p *Proof) PublicKeyID() (string, error)

PublicKeyID provides ID of public key to be used to independently verify the proof. "verificationMethod" field is checked first. If not empty, its value is returned. Otherwise, "creator" field is returned if not empty. Otherwise, error is returned.

type SignatureRepresentation

type SignatureRepresentation int

SignatureRepresentation defines a representation of signature value.

const (
	// SignatureProofValue uses "proofValue" field in a Proof to put/read a digital signature.
	SignatureProofValue SignatureRepresentation = iota

	// SignatureJWS uses "jws" field in a Proof as an element for representation of detached JSON Web Signatures.
	SignatureJWS
)

Jump to

Keyboard shortcuts

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