Documentation
¶
Index ¶
Constants ¶
const EcdsaSecp256k1Signature2019 = ssi.ProofType("EcdsaSecp256k1Signature2019")
EcdsaSecp256k1Signature2019 contains the string value for the EcdsaSecp256k1Signature2019 signature type
const RsaSignature2018 = ssi.ProofType("RsaSignature2018")
RsaSignature2018 contains the string value for the RsaSignature2018 signature type
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Document ¶
type Document map[string]interface{}
Document represents the document to sign. It does not contain proofs or signatures
type LDProof ¶
type LDProof struct {
ProofOptions
Nonce *string `json:"nonce,omitempty"`
// Type contains the signature type. Its is determined from the key type.
Type ssi.ProofType `json:"type"`
// VerificationMethod is the key identifier for the public/private key pair used to sign this proof
// should be resolvable, e.g. did:nuts:123#key-1
VerificationMethod ssi.URI `json:"verificationMethod"`
// proofValue holds the representation of the proof value.
// This can be several keys, dependent on the suite like jws, proofValue or signatureValue
//proofValue map[string]interface{}
JWS string `json:"jws,omitempty"`
ProofValue interface{} `json:"proofValue,omitempty"`
Signature interface{} `json:"signature,omitempty"`
}
LDProof contains the fields of the Proof data model: https://w3c-ccg.github.io/data-integrity-spec/#proofs
func NewLDProof ¶
func NewLDProof(options ProofOptions) *LDProof
NewLDProof creates a new LDProof from the ProofOptions param
type LegacyLDProof ¶
type LegacyLDProof struct {
vc.JSONWebSignature2020Proof
}
LegacyLDProof is a simple/wrong implementation of the ldProof specification. It uses a simple canonicalization algorithm and base64 encodes the payload before signing. It is here for backwards compatibility.
func NewLegacyLDProof ¶
func NewLegacyLDProof(options ProofOptions) *LegacyLDProof
NewLegacyLDProof creates a new LegacyLDProof from proofOptions
func (LegacyLDProof) Sign ¶
func (p LegacyLDProof) Sign(document Document, suite signature.Suite, key nutsCrypto.Key) (interface{}, error)
Sign signs a provided document with the provided key. Deprecated: this method is the initial and wrong implementation of a JSON-LD proof. There will be a new method added in the near future.
type Proof ¶
type Proof interface {
// Sign defines the basic signing operation on the proof.
Sign(document Document, suite signature.Suite, key nutsCrypto.Key) (interface{}, error)
}
Proof is the interface that defines a set of methods which a proof should implement.
type ProofOptions ¶
type ProofOptions struct {
// Created contains the date and time of signing. When not set, the current date time will be used.
Created time.Time `json:"created"`
// Domain property is used to associate a domain with a proof
// https://w3c-ccg.github.io/security-vocab/#domain
Domain *string `json:"domain,omitempty"`
//The challenge property is used to associate a challenge with a proof
// https://w3c-ccg.github.io/security-vocab/#challenge
Challenge *string `json:"challenge,omitempty"`
// The Expires property is used to associate an expiration date with a proof
Expires *time.Time `json:"expires,omitempty"`
// ProofPurpose contains a specific intent for the proof, the reason why an entity created it.
// Acts as a safeguard to prevent the proof from being misused for a purpose other than the one it was intended for.
ProofPurpose string `json:"proofPurpose"`
}
ProofOptions contains the options for a specific proof. When set they wil
type ProofVerifier ¶
type ProofVerifier interface {
// Verify verifies the Document with the provided public key. If the document is valid, it returns no error.
Verify(document Document, suite signature.Suite, key crypto.PublicKey) error
}
ProofVerifier defines the generic verifier interface
type SignedDocument ¶
type SignedDocument map[string]interface{}
SignedDocument represents a generic signed document with a proof It bundles helper functions to easily work with proofs.
func NewSignedDocument ¶
func NewSignedDocument(source interface{}) (SignedDocument, error)
NewSignedDocument creates a new SignedDocument from a source struct
func (SignedDocument) DocumentWithoutProof ¶
func (d SignedDocument) DocumentWithoutProof() Document
DocumentWithoutProof returns the Document without the proof.
func (SignedDocument) UnmarshalProofValue ¶
func (d SignedDocument) UnmarshalProofValue(target interface{}) error
UnmarshalProofValue unmarshalls the signature of the document in the provided target