Documentation ¶
Index ¶
- Constants
- Variables
- func AnalyzeSuffix(uri string) (valid, hasStar, hasPlus bool)
- func Bool(b bool) *bool
- func CalculateEmptyKeyBundleEntries(startDat time.Time, endDat time.Time, userPrefix [][]byte) ([][][]byte, []serdes.BLS12381OAQUEKeyringBundleEntry, wve.WVE)
- func CalculateKeyBundlePartitions(startDat time.Time, endDat time.Time, userPrefix [][]byte) ([][][]byte, wve.WVE)
- func CalculateWR1Partition(validFrom time.Time, validUntil time.Time, userPrefix [][]byte) ([][]byte, wve.WVE)
- func DecodeKeyBundleEntries(be []serdes.BLS12381OAQUEKeyringBundleEntry) ([][][]byte, wve.WVE)
- func HashSchemeInstanceEqual(lhs HashSchemeInstance, rhs HashSchemeInstance) bool
- func InjectStorageInterface(si StorageInterface)
- func Int(i int) *int
- func IsNameDeclarationValid(s string) bool
- func ParseWR1Partition(p [][]byte) (start *DateRange, end *DateRange, user [][]byte, err wve.WVE)
- func Partition(s ...string) [][]byte
- func Partition20(s ...string) [][]byte
- func RestrictBy(from string, by string) (string, bool)
- func String(s string) *string
- func Time(t time.Time) *time.Time
- func ToArr32(b []byte) [32]byte
- func WR1PartitionToIntString(p [][]byte) string
- func WR1PartitionToString(p [][]byte) string
- type AESKeyring
- func (kr *AESKeyring) DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error)
- func (kr *AESKeyring) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error)
- func (kr *AESKeyring) Supported() bool
- type Attestation
- func (e *Attestation) ArrayKeccak256() [32]byte
- func (e *Attestation) Attester() (HashSchemeInstance, LocationSchemeInstance, error)
- func (e *Attestation) DER() ([]byte, error)
- func (e *Attestation) Expired() (bool, error)
- func (e *Attestation) Hash(scheme HashScheme) HashSchemeInstance
- func (e *Attestation) Keccak256() []byte
- func (e *Attestation) Keccak256HI() HashSchemeInstance
- func (e *Attestation) Namespace() (HashSchemeInstance, LocationSchemeInstance, bool, error)
- func (e *Attestation) Subject() (HashSchemeInstance, LocationSchemeInstance)
- func (e *Attestation) WR1DomainVisibilityKeys() []EntitySecretKeySchemeInstance
- func (e *Attestation) WR1SecretSlottedKeys() []SlottedSecretKey
- type AttestationBodyScheme
- type AttestationVerifierBodyKeySchemeInstance
- type BodyDecryptionContext
- type BodyEncryptionContext
- type Capability
- type CommitmentRevocationSchemeInstance
- func (rs *CommitmentRevocationSchemeInstance) CanonicalForm() serdes.RevocationOption
- func (rs *CommitmentRevocationSchemeInstance) Critical() bool
- func (rs *CommitmentRevocationSchemeInstance) Id() string
- func (rs *CommitmentRevocationSchemeInstance) IsRevoked(ctx context.Context, s StorageInterface) (bool, wve.WVE)
- func (rs *CommitmentRevocationSchemeInstance) Supported() bool
- type DateRange
- type Entity
- func (e *Entity) ArrayKeccak256() [32]byte
- func (e *Entity) DER() ([]byte, error)
- func (e *Entity) Expired() bool
- func (e *Entity) Hash(scheme HashScheme) HashSchemeInstance
- func (e *Entity) Keccak256() []byte
- func (e *Entity) Keccak256HI() HashSchemeInstance
- func (e *Entity) MessageVerifyingKey() EntityKeySchemeInstance
- func (e *Entity) WR1_BodyParams() (EntityKeySchemeInstance, error)
- func (e *Entity) WR1_DirectEncryptionKey() (EntityKeySchemeInstance, error)
- func (e *Entity) WR1_DomainVisiblityParams() (EntityKeySchemeInstance, error)
- type EntityKeySchemeInstance
- type EntityKey_Curve25519
- func (ek *EntityKey_Curve25519) CanonicalForm() *serdes.EntityPublicKey
- func (ek *EntityKey_Curve25519) EncryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (ek *EntityKey_Curve25519) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (ek *EntityKey_Curve25519) HasCapability(c Capability) bool
- func (ek *EntityKey_Curve25519) IdentifyingBlob(ctx context.Context) (string, error)
- func (ek *EntityKey_Curve25519) Supported() bool
- func (ek *EntityKey_Curve25519) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (ek *EntityKey_Curve25519) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (ek *EntityKey_Curve25519) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (ek *EntityKey_Curve25519) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type EntityKey_Ed25519
- func (ek *EntityKey_Ed25519) CanonicalForm() *serdes.EntityPublicKey
- func (ek *EntityKey_Ed25519) EncryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (ek *EntityKey_Ed25519) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (ek *EntityKey_Ed25519) HasCapability(c Capability) bool
- func (ek *EntityKey_Ed25519) IdentifyingBlob(ctx context.Context) (string, error)
- func (ek *EntityKey_Ed25519) Supported() bool
- func (ek *EntityKey_Ed25519) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (ek *EntityKey_Ed25519) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (ek *EntityKey_Ed25519) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (ek *EntityKey_Ed25519) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type EntityKey_IBE_BLS12381
- func (k *EntityKey_IBE_BLS12381) CanonicalForm() *serdes.EntityPublicKey
- func (k *EntityKey_IBE_BLS12381) EncryptMessage(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntityKey_IBE_BLS12381) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (ek *EntityKey_IBE_BLS12381) GobDecode(ba []byte) error
- func (ek *EntityKey_IBE_BLS12381) GobEncode() ([]byte, error)
- func (k *EntityKey_IBE_BLS12381) HasCapability(c Capability) bool
- func (k *EntityKey_IBE_BLS12381) IdentifyingBlob(ctx context.Context) (string, error)
- func (k *EntityKey_IBE_BLS12381) Supported() bool
- func (k *EntityKey_IBE_BLS12381) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (k *EntityKey_IBE_BLS12381) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (k *EntityKey_IBE_BLS12381) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (k *EntityKey_IBE_BLS12381) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type EntityKey_IBE_Params_BLS12381
- func (ek *EntityKey_IBE_Params_BLS12381) CanonicalForm() *serdes.EntityPublicKey
- func (ek *EntityKey_IBE_Params_BLS12381) EncryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (k *EntityKey_IBE_Params_BLS12381) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (ek *EntityKey_IBE_Params_BLS12381) GobDecode(ba []byte) error
- func (ek *EntityKey_IBE_Params_BLS12381) GobEncode() ([]byte, error)
- func (ek *EntityKey_IBE_Params_BLS12381) HasCapability(c Capability) bool
- func (ek *EntityKey_IBE_Params_BLS12381) IdentifyingBlob(ctx context.Context) (string, error)
- func (ek *EntityKey_IBE_Params_BLS12381) Supported() bool
- func (ek *EntityKey_IBE_Params_BLS12381) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (ek *EntityKey_IBE_Params_BLS12381) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (ek *EntityKey_IBE_Params_BLS12381) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (ek *EntityKey_IBE_Params_BLS12381) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type EntityKey_OAQUE_BLS12381_S20
- func (k *EntityKey_OAQUE_BLS12381_S20) CanonicalForm() *serdes.EntityPublicKey
- func (k *EntityKey_OAQUE_BLS12381_S20) EncryptMessage(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntityKey_OAQUE_BLS12381_S20) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (ek *EntityKey_OAQUE_BLS12381_S20) GobDecode(ba []byte) error
- func (ek *EntityKey_OAQUE_BLS12381_S20) GobEncode() ([]byte, error)
- func (k *EntityKey_OAQUE_BLS12381_S20) HasCapability(c Capability) bool
- func (k *EntityKey_OAQUE_BLS12381_S20) IdentifyingBlob(ctx context.Context) (string, error)
- func (k *EntityKey_OAQUE_BLS12381_S20) Supported() bool
- func (k *EntityKey_OAQUE_BLS12381_S20) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (k *EntityKey_OAQUE_BLS12381_S20) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (k *EntityKey_OAQUE_BLS12381_S20) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (k *EntityKey_OAQUE_BLS12381_S20) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type EntityKey_OAQUE_BLS12381_S20_Params
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) CanonicalForm() *serdes.EntityPublicKey
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) EncryptMessage(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (ek *EntityKey_OAQUE_BLS12381_S20_Params) GobDecode(ba []byte) error
- func (ek *EntityKey_OAQUE_BLS12381_S20_Params) GobEncode() ([]byte, error)
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) HasCapability(c Capability) bool
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) IdentifyingBlob(ctx context.Context) (string, error)
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) Supported() bool
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (k *EntityKey_OAQUE_BLS12381_S20_Params) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type EntityKeyringSchemeInstance
- type EntitySecretKeySchemeInstance
- type EntitySecretKey_Curve25519
- func (ek *EntitySecretKey_Curve25519) CanonicalForm() *serdes.EntityPublicKey
- func (ek *EntitySecretKey_Curve25519) DecryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (ek *EntitySecretKey_Curve25519) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (ek *EntitySecretKey_Curve25519) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (ek *EntitySecretKey_Curve25519) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *EntitySecretKey_Curve25519) HasCapability(c Capability) bool
- func (ek *EntitySecretKey_Curve25519) Public() EntityKeySchemeInstance
- func (ek *EntitySecretKey_Curve25519) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (ek *EntitySecretKey_Curve25519) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_Curve25519) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_Curve25519) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_Curve25519) Supported() bool
- type EntitySecretKey_Ed25519
- func (ek *EntitySecretKey_Ed25519) CanonicalForm() *serdes.EntityPublicKey
- func (ek *EntitySecretKey_Ed25519) DecryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (ek *EntitySecretKey_Ed25519) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (ek *EntitySecretKey_Ed25519) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (ek *EntitySecretKey_Ed25519) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *EntitySecretKey_Ed25519) HasCapability(c Capability) bool
- func (ek *EntitySecretKey_Ed25519) Public() EntityKeySchemeInstance
- func (ek *EntitySecretKey_Ed25519) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (ek *EntitySecretKey_Ed25519) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_Ed25519) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_Ed25519) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_Ed25519) Supported() bool
- type EntitySecretKey_IBE_BLS12381
- func (k *EntitySecretKey_IBE_BLS12381) CanonicalForm() *serdes.EntityPublicKey
- func (k *EntitySecretKey_IBE_BLS12381) DecryptMessage(ctx context.Context, ciphertext []byte) ([]byte, error)
- func (ek *EntitySecretKey_IBE_BLS12381) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (ek *EntitySecretKey_IBE_BLS12381) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (k *EntitySecretKey_IBE_BLS12381) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *EntitySecretKey_IBE_BLS12381) GobDecode(ba []byte) error
- func (ek *EntitySecretKey_IBE_BLS12381) GobEncode() ([]byte, error)
- func (ek *EntitySecretKey_IBE_BLS12381) HasCapability(c Capability) bool
- func (k *EntitySecretKey_IBE_BLS12381) Public() EntityKeySchemeInstance
- func (k *EntitySecretKey_IBE_BLS12381) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (k *EntitySecretKey_IBE_BLS12381) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntitySecretKey_IBE_BLS12381) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntitySecretKey_IBE_BLS12381) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_IBE_BLS12381) Supported() bool
- type EntitySecretKey_IBE_Master_BLS12381
- func (ek *EntitySecretKey_IBE_Master_BLS12381) CanonicalForm() *serdes.EntityPublicKey
- func (ek *EntitySecretKey_IBE_Master_BLS12381) DecryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (ek *EntitySecretKey_IBE_Master_BLS12381) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) GobDecode(ba []byte) error
- func (ek *EntitySecretKey_IBE_Master_BLS12381) GobEncode() ([]byte, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) HasCapability(c Capability) bool
- func (ek *EntitySecretKey_IBE_Master_BLS12381) Public() EntityKeySchemeInstance
- func (ek *EntitySecretKey_IBE_Master_BLS12381) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (ek *EntitySecretKey_IBE_Master_BLS12381) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_IBE_Master_BLS12381) Supported() bool
- type EntitySecretKey_OAQUE_BLS12381_S20
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) CanonicalForm() *serdes.EntityPublicKey
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) DecryptMessage(ctx context.Context, ciphertext []byte) ([]byte, error)
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) GobDecode(ba []byte) error
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) GobEncode() ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) HasCapability(c Capability) bool
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) IdHash() [32]byte
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) Public() EntityKeySchemeInstance
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntitySecretKey_OAQUE_BLS12381_S20) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) Slots() [][]byte
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20) Supported() bool
- type EntitySecretKey_OAQUE_BLS12381_S20_Master
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) CanonicalForm() *serdes.EntityPublicKey
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) DecryptMessage(ctx context.Context, ciphertext []byte) ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) GobDecode(ba []byte) error
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) GobEncode() ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) HasCapability(c Capability) bool
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) Public() EntityKeySchemeInstance
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) Supported() bool
- type EntitySecrets
- func (e *EntitySecrets) AttestationRevocationDetails(att *Attestation) ([]byte, LocationSchemeInstance, wve.WVE)
- func (e *EntitySecrets) CalculateWR1Batch(partitions [][][]byte, delegable bool) ([]SlottedSecretKey, error)
- func (e *EntitySecrets) CommitmentRevocationDetails() (content []byte, loc []LocationSchemeInstance)
- func (e *EntitySecrets) MessageSigningKey() EntitySecretKeySchemeInstance
- func (e *EntitySecrets) NameDeclarationRevocationDetails(nd *NameDeclaration) ([]byte, LocationSchemeInstance, wve.WVE)
- func (e *EntitySecrets) PrimarySigningKey() EntitySecretKeySchemeInstance
- func (e *EntitySecrets) WR1BodyKey(ctx context.Context, slots [][]byte, delegable bool) (SlottedSecretKey, error)
- func (e *EntitySecrets) WR1DirectDecryptionKey(ctx context.Context) (EntitySecretKeySchemeInstance, error)
- func (e *EntitySecrets) WR1LabelKey(ctx context.Context, namespace []byte) (EntitySecretKeySchemeInstance, error)
- type ExtensionSchemeInstance
- type GetResult
- type HashScheme
- type HashSchemeInstance
- type HashSchemeInstance_Keccak_256
- func (hs *HashSchemeInstance_Keccak_256) CanonicalForm() *asn1.External
- func (hs *HashSchemeInstance_Keccak_256) Multihash() []byte
- func (hs *HashSchemeInstance_Keccak_256) MultihashString() string
- func (hs *HashSchemeInstance_Keccak_256) OID() asn1.ObjectIdentifier
- func (hs *HashSchemeInstance_Keccak_256) Supported() bool
- func (hs *HashSchemeInstance_Keccak_256) Value() []byte
- type HashSchemeInstance_Sha3_256
- func (hs *HashSchemeInstance_Sha3_256) CanonicalForm() *asn1.External
- func (hs *HashSchemeInstance_Sha3_256) Multihash() []byte
- func (hs *HashSchemeInstance_Sha3_256) MultihashString() string
- func (hs *HashSchemeInstance_Sha3_256) OID() asn1.ObjectIdentifier
- func (hs *HashSchemeInstance_Sha3_256) Supported() bool
- func (hs *HashSchemeInstance_Sha3_256) Value() []byte
- type HashScheme_Keccak_256
- type HashScheme_Sha3_256
- type InterestingEntityResult
- type KeyPoolDecryptionContext
- func (kpd *KeyPoolDecryptionContext) AddDomainVisibilityID(id []byte)
- func (kpd *KeyPoolDecryptionContext) AddEntity(e *Entity)
- func (kpd *KeyPoolDecryptionContext) AddEntitySecret(es *EntitySecrets, delegatedOnly bool)
- func (kpd *KeyPoolDecryptionContext) AddEntitySecretsLabelOnly(es *EntitySecrets)
- func (kpd *KeyPoolDecryptionContext) EntityByHashLoc(ctx context.Context, hash HashSchemeInstance, loc LocationSchemeInstance) (*Entity, wve.WVE)
- func (kpd *KeyPoolDecryptionContext) SetUnderlyingContext(ctx KeyPoolUnderlyingContext)
- func (kpd *KeyPoolDecryptionContext) SetWR1ProverBodyKey(atv []byte)
- func (kpd *KeyPoolDecryptionContext) SetWR1VerifierBodyKey(atv []byte)
- func (kpd *KeyPoolDecryptionContext) WR1AttesterDirectDecryptionKey(ctx context.Context, onResult func(k EntitySecretKeySchemeInstance) bool) error
- func (kpd *KeyPoolDecryptionContext) WR1DirectDecryptionKey(ctx context.Context, dst HashSchemeInstance, ...) error
- func (kpd *KeyPoolDecryptionContext) WR1EntityFromHash(ctx context.Context, hash HashSchemeInstance, loc LocationSchemeInstance) (*Entity, error)
- func (kpd *KeyPoolDecryptionContext) WR1IBEKeysForPartitionLabel(ctx context.Context, dst HashSchemeInstance, ...) error
- func (kpd *KeyPoolDecryptionContext) WR1OAQUEKeysForContent(ctx context.Context, dst HashSchemeInstance, delegable bool, slots [][]byte, ...) error
- func (kpd *KeyPoolDecryptionContext) WR1ProverBodyKey(ctx context.Context) []byte
- func (kpd *KeyPoolDecryptionContext) WR1VerifierBodyKey(ctx context.Context) []byte
- type KeyPoolUnderlyingContext
- type KeyValue
- type KeyringPlaintext
- func (kr *KeyringPlaintext) DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error)
- func (kr *KeyringPlaintext) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error)
- func (kr *KeyringPlaintext) Supported() bool
- type LocationResult
- type LocationSchemeInstance
- type LocationSchemeInstanceURL
- type LookupFromFilter
- type LookupFromResult
- type LowLevelStorage
- type NameDeclaration
- func (nd *NameDeclaration) ArrayKeccak256() [32]byte
- func (nd *NameDeclaration) DER() ([]byte, wve.WVE)
- func (nd *NameDeclaration) Decoded() bool
- func (nd *NameDeclaration) Hash(scheme HashScheme) HashSchemeInstance
- func (nd *NameDeclaration) IsNameValid() bool
- func (nd *NameDeclaration) Keccak256() []byte
- func (nd *NameDeclaration) Keccak256HI() HashSchemeInstance
- func (nd *NameDeclaration) SetCanonicalForm(cf *serdes.WaveNameDeclaration) wve.WVE
- func (nd *NameDeclaration) SetDecryptedBody(db *serdes.NameDeclarationBody) wve.WVE
- type OuterSignatureBindingScheme
- type OuterSignatureBindingScheme_SignedOuterKey
- type OuterSignatureScheme
- type OuterSignatureScheme_EphemeralEd25519
- type PCompactProof
- type PCreateAttestation
- type PCreateNameDeclaration
- type PDecryptMessage
- type PEncryptMessage
- type PNewEntity
- type PParseAttestation
- type PParseEntity
- type PParseEntitySecrets
- type PParseNameDeclaration
- type PSKBodyDecryptionContext
- type PSKBodyEncryptionContext
- type PSKBodyScheme
- func (psk *PSKBodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, ...) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
- func (psk *PSKBodyScheme) EncryptBody(ctx context.Context, ec BodyEncryptionContext, ...) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
- func (psk *PSKBodyScheme) Supported() bool
- type PSKExtra
- type PVerifyRTreeProof
- type PVerifySignature
- type PendingAttestation
- type PendingNameDeclaration
- type PlaintextBodyScheme
- func (pt *PlaintextBodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, ...) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
- func (pt *PlaintextBodyScheme) EncryptBody(ctx context.Context, ec BodyEncryptionContext, attester *EntitySecrets, ...) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
- func (pt *PlaintextBodyScheme) Supported() bool
- type PolicyAddendumSchemeInstance
- type PolicySchemeInstance
- type RCompactProof
- type RCreateAttestation
- type RCreateNameDeclaration
- type RDecryptMessage
- type REncryptMessage
- type RNewEntity
- type RParseAttestation
- type RParseEntity
- type RParseEntitySecrets
- type RParseNameDeclaration
- type RTreePolicy
- func (ps *RTreePolicy) CanonicalForm() *asn1.External
- func (ps *RTreePolicy) CheckValid() error
- func (lhs *RTreePolicy) Intersect(rhs *RTreePolicy) (result *RTreePolicy, okay bool, message string, err error)
- func (lhs *RTreePolicy) IsSubsetOf(superset *RTreePolicy) bool
- func (ps *RTreePolicy) Supported() bool
- func (lhs *RTreePolicy) Union(rhs *RTreePolicy) (result *RTreePolicy, okay bool, message string, err error)
- func (ps *RTreePolicy) WR1DomainEntity() HashSchemeInstance
- func (ps *RTreePolicy) WR1PartitionPrefix(e2ee bool) [][]byte
- type RVerifyRTreeProof
- type RVerifySignature
- type ResolveResult
- type RevocationSchemeInstance
- type Scheme
- type SlottedSecretKey
- type State
- type StorageDriverCharacteristics
- type StorageDriverInterface
- type StorageDriverStatus
- type StorageInterface
- type TrustLevelPolicy
- type UnsupportedBodyScheme
- func (u *UnsupportedBodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, ...) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
- func (u *UnsupportedBodyScheme) EncryptBody(ctx context.Context, ec BodyEncryptionContext, attester *EntitySecrets, ...) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
- func (u *UnsupportedBodyScheme) Supported() bool
- type UnsupportedHashScheme
- type UnsupportedHashSchemeInstance
- func (hs *UnsupportedHashSchemeInstance) CanonicalForm() *asn1.External
- func (hs *UnsupportedHashSchemeInstance) Multihash() []byte
- func (hs *UnsupportedHashSchemeInstance) MultihashString() string
- func (hs *UnsupportedHashSchemeInstance) OID() asn1.ObjectIdentifier
- func (hs *UnsupportedHashSchemeInstance) Supported() bool
- func (hs *UnsupportedHashSchemeInstance) Value() []byte
- type UnsupportedKeyScheme
- func (k *UnsupportedKeyScheme) CanonicalForm() *serdes.EntityPublicKey
- func (k *UnsupportedKeyScheme) EncryptMessage(ctx context.Context, ciphertext []byte) ([]byte, error)
- func (k *UnsupportedKeyScheme) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
- func (k *UnsupportedKeyScheme) HasCapability(c Capability) bool
- func (k *UnsupportedKeyScheme) IdentifyingBlob(ctx context.Context) (string, error)
- func (k *UnsupportedKeyScheme) Supported() bool
- func (k *UnsupportedKeyScheme) SystemIdentifyingBlob(ctx context.Context) (string, error)
- func (k *UnsupportedKeyScheme) VerifyAttestation(ctx context.Context, data []byte, signature []byte) error
- func (k *UnsupportedKeyScheme) VerifyCertify(ctx context.Context, data []byte, signature []byte) error
- func (k *UnsupportedKeyScheme) VerifyMessage(ctx context.Context, data []byte, signature []byte) error
- type UnsupportedKeyringScheme
- func (kr *UnsupportedKeyringScheme) DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error)
- func (kr *UnsupportedKeyringScheme) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error)
- func (kr *UnsupportedKeyringScheme) Supported() bool
- type UnsupportedLocationSchemeInstance
- type UnsupportedOuterSignatureBindingScheme
- type UnsupportedOuterSignatureScheme
- type UnsupportedPolicySchemeInstance
- func (ps *UnsupportedPolicySchemeInstance) CanonicalForm() *asn1.External
- func (ps *UnsupportedPolicySchemeInstance) CheckValid() error
- func (ps *UnsupportedPolicySchemeInstance) Supported() bool
- func (ps *UnsupportedPolicySchemeInstance) WR1DomainEntity() HashSchemeInstance
- func (ps *UnsupportedPolicySchemeInstance) WR1PartitionPrefix(bool) [][]byte
- type UnsupportedRevocationSchemeInstance
- func (rs *UnsupportedRevocationSchemeInstance) CanonicalForm() serdes.RevocationOption
- func (rs *UnsupportedRevocationSchemeInstance) Critical() bool
- func (rs *UnsupportedRevocationSchemeInstance) Id() string
- func (rs *UnsupportedRevocationSchemeInstance) IsRevoked(ctx context.Context, s StorageInterface) (bool, wve.WVE)
- func (rs *UnsupportedRevocationSchemeInstance) Supported() bool
- type UnsupportedSecretKeyScheme
- func (k *UnsupportedSecretKeyScheme) CanonicalForm() *serdes.EntityPublicKey
- func (k *UnsupportedSecretKeyScheme) DecryptMessage(ctx context.Context, data []byte) ([]byte, error)
- func (k *UnsupportedSecretKeyScheme) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error)
- func (k *UnsupportedSecretKeyScheme) Equal(rhs EntitySecretKeySchemeInstance) bool
- func (k *UnsupportedSecretKeyScheme) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
- func (ek *UnsupportedSecretKeyScheme) HasCapability(c Capability) bool
- func (k *UnsupportedSecretKeyScheme) Public() EntityKeySchemeInstance
- func (k *UnsupportedSecretKeyScheme) SecretCanonicalForm() *serdes.EntityKeyringEntry
- func (k *UnsupportedSecretKeyScheme) SignAttestation(ctx context.Context, content []byte) ([]byte, error)
- func (k *UnsupportedSecretKeyScheme) SignCertify(ctx context.Context, content []byte) ([]byte, error)
- func (k *UnsupportedSecretKeyScheme) SignMessage(ctx context.Context, content []byte) ([]byte, error)
- func (ek *UnsupportedSecretKeyScheme) Supported() bool
- type VerificationContext
- type WR1BodyEncryptionContext
- type WR1BodyScheme
- func (w *WR1BodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, ...) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
- func (w *WR1BodyScheme) EncryptBody(ctx context.Context, ecp BodyEncryptionContext, attester *EntitySecrets, ...) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
- func (w *WR1BodyScheme) Supported() bool
- type WR1DecryptionContext
- type WR1Extra
- type WR1MessageDecryptionContext
- type WR1NameDeclarationDecryptionContext
- type WaveState
Constants ¶
const PermittedCombinedStatements = 1000
const PermittedPermissions = 64
Don't change this without rewriting tree builder
const PermittedPrimaryStatements = 10
Variables ¶
var ErrDecryptBodyMalformed = errors.New("body is malformed")
var ErrInvalidRequest = errors.New("invalid request")
Should be returned byy any of the four main functions if it receives an invalid request e.g., empty object passed to a PUT function
var ErrNoMore = errors.New("no more")
Should be returned by IterateQueue if there are no more entries
var ErrNotImplemented = errors.New("not implemented")
Should be returned by any of the four main functions if not implemented
var ErrObjectNotFound = errors.New("object not found")
Should be returned by Get if the object is not found
var ErrObjectNotPut = errors.New("failed to put object")
Should be returned by Put if if fails to store the object
var KECCAK256 = &HashScheme_Keccak_256{}
var PLAINTEXTBODYSCHEME = &PlaintextBodyScheme{}
var SHA3 = &HashScheme_Sha3_256{}
var WR1PartitionTiers []int64 = []int64{int64(64 * 7 * 24 * time.Hour), int64(16 * 7 * 24 * time.Hour), int64(4 * 7 * 24 * time.Hour), int64(7 * 24 * time.Hour)}
The WR1 recommended partition scheme is <userdefined: 12> <beginrange: 4> <endrange: 4> Which allows for expiry ranges at a granularity of weeks In the worst case this requires a key bundle of 144 keys to delegate. Ranges are only allowed to go up to 3 years long.
Functions ¶
func AnalyzeSuffix ¶
AnalyzeSuffix checks a given URI for schema validity and possession of characteristics
func CalculateEmptyKeyBundleEntries ¶ added in v0.2.0
func CalculateEmptyKeyBundleEntries(startDat time.Time, endDat time.Time, userPrefix [][]byte) ([][][]byte, []serdes.BLS12381OAQUEKeyringBundleEntry, wve.WVE)
This generates the partitions and calculates the differences to generate the keyring bundle entries, but it does not generate the keys
func CalculateKeyBundlePartitions ¶ added in v0.2.0
func CalculateWR1Partition ¶ added in v0.2.0
func DecodeKeyBundleEntries ¶ added in v0.2.0
func DecodeKeyBundleEntries(be []serdes.BLS12381OAQUEKeyringBundleEntry) ([][][]byte, wve.WVE)
func HashSchemeInstanceEqual ¶
func HashSchemeInstanceEqual(lhs HashSchemeInstance, rhs HashSchemeInstance) bool
func InjectStorageInterface ¶
func InjectStorageInterface(si StorageInterface)
func IsNameDeclarationValid ¶ added in v0.2.0
func ParseWR1Partition ¶ added in v0.2.0
func Partition20 ¶ added in v0.2.0
func RestrictBy ¶
Copied verbatim from bosswave RestrictBy takes a topic, and a permission, and returns the intersection that represents the from topic restricted by the permission. It took a looong time to work out this logic...
func WR1PartitionToIntString ¶ added in v0.2.0
func WR1PartitionToString ¶ added in v0.2.0
Types ¶
type AESKeyring ¶
func (*AESKeyring) DecryptKeyring ¶
func (kr *AESKeyring) DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error)
func (*AESKeyring) EncryptKeyring ¶
func (kr *AESKeyring) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error)
func (*AESKeyring) Supported ¶
func (kr *AESKeyring) Supported() bool
type Attestation ¶
type Attestation struct { //Before any decryption was applied CanonicalForm *serdes.WaveAttestation //After we decrypted DecryptedBody *serdes.AttestationBody //Revocationbs Revocations []RevocationSchemeInstance //Extra information obtained if this is a WR1 dot WR1Extra *WR1Extra //Extra information obtained if this is a PSK dot PSKExtra *PSKExtra }
func (*Attestation) ArrayKeccak256 ¶
func (e *Attestation) ArrayKeccak256() [32]byte
func (*Attestation) Attester ¶
func (e *Attestation) Attester() (HashSchemeInstance, LocationSchemeInstance, error)
func (*Attestation) DER ¶
func (e *Attestation) DER() ([]byte, error)
func (*Attestation) Expired ¶
func (e *Attestation) Expired() (bool, error)
func (*Attestation) Hash ¶
func (e *Attestation) Hash(scheme HashScheme) HashSchemeInstance
func (*Attestation) Keccak256 ¶
func (e *Attestation) Keccak256() []byte
func (*Attestation) Keccak256HI ¶
func (e *Attestation) Keccak256HI() HashSchemeInstance
func (*Attestation) Namespace ¶ added in v0.2.1
func (e *Attestation) Namespace() (HashSchemeInstance, LocationSchemeInstance, bool, error)
func (*Attestation) Subject ¶
func (e *Attestation) Subject() (HashSchemeInstance, LocationSchemeInstance)
func (*Attestation) WR1DomainVisibilityKeys ¶
func (e *Attestation) WR1DomainVisibilityKeys() []EntitySecretKeySchemeInstance
func (*Attestation) WR1SecretSlottedKeys ¶
func (e *Attestation) WR1SecretSlottedKeys() []SlottedSecretKey
type AttestationBodyScheme ¶
type AttestationBodyScheme interface { Scheme DecryptBody(ctx context.Context, dc BodyDecryptionContext, canonicalForm *serdes.WaveAttestation, inextra interface{}) (decodedForm *serdes.AttestationBody, extra interface{}, err error) EncryptBody(ctx context.Context, ec BodyEncryptionContext, attester *EntitySecrets, subject *Entity, intermediateForm *serdes.WaveAttestation, policy PolicySchemeInstance) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error) }
func AttestationBodySchemeFor ¶
func AttestationBodySchemeFor(ex *asn1.External) AttestationBodyScheme
type BodyDecryptionContext ¶
type BodyDecryptionContext interface {
EntityByHashLoc(ctx context.Context, h HashSchemeInstance, loc LocationSchemeInstance) (*Entity, wve.WVE)
}
type BodyEncryptionContext ¶
type BodyEncryptionContext interface { }
type Capability ¶
type Capability int
const ( CapCertification Capability = 1 CapAttestation Capability = 2 CapSigning Capability = 3 CapAuthentication Capability = 4 CapAuthorization Capability = 5 CapEncryption Capability = 6 )
type CommitmentRevocationSchemeInstance ¶ added in v0.2.1
type CommitmentRevocationSchemeInstance struct { SerdesForm *serdes.RevocationOption CRBody *serdes.CommitmentRevocation }
func NewCommitmentRevocationSchemeInstance ¶ added in v0.2.1
func NewCommitmentRevocationSchemeInstance(loc LocationSchemeInstance, critical bool, secrets ...[]byte) *CommitmentRevocationSchemeInstance
func (*CommitmentRevocationSchemeInstance) CanonicalForm ¶ added in v0.2.1
func (rs *CommitmentRevocationSchemeInstance) CanonicalForm() serdes.RevocationOption
func (*CommitmentRevocationSchemeInstance) Critical ¶ added in v0.2.1
func (rs *CommitmentRevocationSchemeInstance) Critical() bool
func (*CommitmentRevocationSchemeInstance) Id ¶ added in v0.2.1
func (rs *CommitmentRevocationSchemeInstance) Id() string
func (*CommitmentRevocationSchemeInstance) IsRevoked ¶ added in v0.2.1
func (rs *CommitmentRevocationSchemeInstance) IsRevoked(ctx context.Context, s StorageInterface) (bool, wve.WVE)
func (*CommitmentRevocationSchemeInstance) Supported ¶ added in v0.2.1
func (rs *CommitmentRevocationSchemeInstance) Supported() bool
type Entity ¶
type Entity struct { CanonicalForm *serdes.WaveEntity VerifyingKey EntityKeySchemeInstance Keys []EntityKeySchemeInstance Revocations []RevocationSchemeInstance Extensions []ExtensionSchemeInstance }
func (*Entity) ArrayKeccak256 ¶
func (*Entity) Hash ¶
func (e *Entity) Hash(scheme HashScheme) HashSchemeInstance
func (*Entity) Keccak256HI ¶
func (e *Entity) Keccak256HI() HashSchemeInstance
func (*Entity) MessageVerifyingKey ¶ added in v0.2.1
func (e *Entity) MessageVerifyingKey() EntityKeySchemeInstance
func (*Entity) WR1_BodyParams ¶
func (e *Entity) WR1_BodyParams() (EntityKeySchemeInstance, error)
func (*Entity) WR1_DirectEncryptionKey ¶
func (e *Entity) WR1_DirectEncryptionKey() (EntityKeySchemeInstance, error)
func (*Entity) WR1_DomainVisiblityParams ¶
func (e *Entity) WR1_DomainVisiblityParams() (EntityKeySchemeInstance, error)
type EntityKeySchemeInstance ¶
type EntityKeySchemeInstance interface { Scheme //Such as the public key, used for comparing keys to check private matches IdentifyingBlob(ctx context.Context) (string, error) SystemIdentifyingBlob(ctx context.Context) (string, error) HasCapability(c Capability) bool VerifyCertify(ctx context.Context, data []byte, signature []byte) error VerifyAttestation(ctx context.Context, data []byte, signature []byte) error VerifyMessage(ctx context.Context, data []byte, signature []byte) error EncryptMessage(ctx context.Context, content []byte) ([]byte, error) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error) CanonicalForm() *serdes.EntityPublicKey }
func EntityKeySchemeInstanceFor ¶
func EntityKeySchemeInstanceFor(e *serdes.EntityPublicKey) (EntityKeySchemeInstance, error)
type EntityKey_Curve25519 ¶
type EntityKey_Curve25519 struct { SerdesForm *serdes.EntityPublicKey PublicKey [32]byte }
func (*EntityKey_Curve25519) CanonicalForm ¶
func (ek *EntityKey_Curve25519) CanonicalForm() *serdes.EntityPublicKey
func (*EntityKey_Curve25519) EncryptMessage ¶
func (*EntityKey_Curve25519) GenerateChildKey ¶
func (ek *EntityKey_Curve25519) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*EntityKey_Curve25519) HasCapability ¶
func (ek *EntityKey_Curve25519) HasCapability(c Capability) bool
func (*EntityKey_Curve25519) IdentifyingBlob ¶
func (ek *EntityKey_Curve25519) IdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_Curve25519) Supported ¶
func (ek *EntityKey_Curve25519) Supported() bool
func (*EntityKey_Curve25519) SystemIdentifyingBlob ¶ added in v0.2.1
func (ek *EntityKey_Curve25519) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_Curve25519) VerifyAttestation ¶
func (*EntityKey_Curve25519) VerifyCertify ¶
func (*EntityKey_Curve25519) VerifyMessage ¶
type EntityKey_Ed25519 ¶
type EntityKey_Ed25519 struct { SerdesForm *serdes.EntityPublicKey PublicKey ed25519.PublicKey }
func (*EntityKey_Ed25519) CanonicalForm ¶
func (ek *EntityKey_Ed25519) CanonicalForm() *serdes.EntityPublicKey
func (*EntityKey_Ed25519) EncryptMessage ¶
func (*EntityKey_Ed25519) GenerateChildKey ¶
func (ek *EntityKey_Ed25519) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*EntityKey_Ed25519) HasCapability ¶
func (ek *EntityKey_Ed25519) HasCapability(c Capability) bool
func (*EntityKey_Ed25519) IdentifyingBlob ¶
func (ek *EntityKey_Ed25519) IdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_Ed25519) Supported ¶
func (ek *EntityKey_Ed25519) Supported() bool
func (*EntityKey_Ed25519) SystemIdentifyingBlob ¶ added in v0.2.1
func (ek *EntityKey_Ed25519) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_Ed25519) VerifyAttestation ¶
func (*EntityKey_Ed25519) VerifyCertify ¶
func (*EntityKey_Ed25519) VerifyMessage ¶
type EntityKey_IBE_BLS12381 ¶ added in v0.4.0
type EntityKey_IBE_BLS12381 struct { SerdesForm *serdes.EntityPublicKey Params *lqibe.Params ID []byte LQID *lqibe.ID }
func (*EntityKey_IBE_BLS12381) CanonicalForm ¶ added in v0.4.0
func (k *EntityKey_IBE_BLS12381) CanonicalForm() *serdes.EntityPublicKey
func (*EntityKey_IBE_BLS12381) EncryptMessage ¶ added in v0.4.0
func (*EntityKey_IBE_BLS12381) GenerateChildKey ¶ added in v0.4.0
func (k *EntityKey_IBE_BLS12381) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*EntityKey_IBE_BLS12381) GobDecode ¶ added in v0.4.0
func (ek *EntityKey_IBE_BLS12381) GobDecode(ba []byte) error
func (*EntityKey_IBE_BLS12381) GobEncode ¶ added in v0.4.0
func (ek *EntityKey_IBE_BLS12381) GobEncode() ([]byte, error)
func (*EntityKey_IBE_BLS12381) HasCapability ¶ added in v0.4.0
func (k *EntityKey_IBE_BLS12381) HasCapability(c Capability) bool
func (*EntityKey_IBE_BLS12381) IdentifyingBlob ¶ added in v0.4.0
func (k *EntityKey_IBE_BLS12381) IdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_IBE_BLS12381) Supported ¶ added in v0.4.0
func (k *EntityKey_IBE_BLS12381) Supported() bool
func (*EntityKey_IBE_BLS12381) SystemIdentifyingBlob ¶ added in v0.4.0
func (k *EntityKey_IBE_BLS12381) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_IBE_BLS12381) VerifyAttestation ¶ added in v0.4.0
func (*EntityKey_IBE_BLS12381) VerifyCertify ¶ added in v0.4.0
func (*EntityKey_IBE_BLS12381) VerifyMessage ¶ added in v0.4.0
type EntityKey_IBE_Params_BLS12381 ¶ added in v0.4.0
type EntityKey_IBE_Params_BLS12381 struct { SerdesForm *serdes.EntityPublicKey PublicKey *lqibe.Params }
func (*EntityKey_IBE_Params_BLS12381) CanonicalForm ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) CanonicalForm() *serdes.EntityPublicKey
func (*EntityKey_IBE_Params_BLS12381) EncryptMessage ¶ added in v0.4.0
func (*EntityKey_IBE_Params_BLS12381) GenerateChildKey ¶ added in v0.4.0
func (k *EntityKey_IBE_Params_BLS12381) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*EntityKey_IBE_Params_BLS12381) GobDecode ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) GobDecode(ba []byte) error
func (*EntityKey_IBE_Params_BLS12381) GobEncode ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) GobEncode() ([]byte, error)
func (*EntityKey_IBE_Params_BLS12381) HasCapability ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) HasCapability(c Capability) bool
func (*EntityKey_IBE_Params_BLS12381) IdentifyingBlob ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) IdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_IBE_Params_BLS12381) Supported ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) Supported() bool
func (*EntityKey_IBE_Params_BLS12381) SystemIdentifyingBlob ¶ added in v0.4.0
func (ek *EntityKey_IBE_Params_BLS12381) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_IBE_Params_BLS12381) VerifyAttestation ¶ added in v0.4.0
func (*EntityKey_IBE_Params_BLS12381) VerifyCertify ¶ added in v0.4.0
func (*EntityKey_IBE_Params_BLS12381) VerifyMessage ¶ added in v0.4.0
type EntityKey_OAQUE_BLS12381_S20 ¶ added in v0.4.0
type EntityKey_OAQUE_BLS12381_S20 struct { SerdesForm *serdes.EntityPublicKey Params *wkdibe.Params AttributeSet [][]byte }
func (*EntityKey_OAQUE_BLS12381_S20) CanonicalForm ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20) CanonicalForm() *serdes.EntityPublicKey
func (*EntityKey_OAQUE_BLS12381_S20) EncryptMessage ¶ added in v0.4.0
func (*EntityKey_OAQUE_BLS12381_S20) GenerateChildKey ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*EntityKey_OAQUE_BLS12381_S20) GobDecode ¶ added in v0.4.0
func (ek *EntityKey_OAQUE_BLS12381_S20) GobDecode(ba []byte) error
func (*EntityKey_OAQUE_BLS12381_S20) GobEncode ¶ added in v0.4.0
func (ek *EntityKey_OAQUE_BLS12381_S20) GobEncode() ([]byte, error)
func (*EntityKey_OAQUE_BLS12381_S20) HasCapability ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20) HasCapability(c Capability) bool
func (*EntityKey_OAQUE_BLS12381_S20) IdentifyingBlob ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20) IdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_OAQUE_BLS12381_S20) Supported ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20) Supported() bool
func (*EntityKey_OAQUE_BLS12381_S20) SystemIdentifyingBlob ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_OAQUE_BLS12381_S20) VerifyAttestation ¶ added in v0.4.0
func (*EntityKey_OAQUE_BLS12381_S20) VerifyCertify ¶ added in v0.4.0
func (*EntityKey_OAQUE_BLS12381_S20) VerifyMessage ¶ added in v0.4.0
type EntityKey_OAQUE_BLS12381_S20_Params ¶ added in v0.4.0
type EntityKey_OAQUE_BLS12381_S20_Params struct { SerdesForm *serdes.EntityPublicKey Params *wkdibe.Params }
func (*EntityKey_OAQUE_BLS12381_S20_Params) CanonicalForm ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20_Params) CanonicalForm() *serdes.EntityPublicKey
func (*EntityKey_OAQUE_BLS12381_S20_Params) EncryptMessage ¶ added in v0.4.0
func (*EntityKey_OAQUE_BLS12381_S20_Params) GenerateChildKey ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20_Params) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*EntityKey_OAQUE_BLS12381_S20_Params) GobDecode ¶ added in v0.4.0
func (ek *EntityKey_OAQUE_BLS12381_S20_Params) GobDecode(ba []byte) error
func (*EntityKey_OAQUE_BLS12381_S20_Params) GobEncode ¶ added in v0.4.0
func (ek *EntityKey_OAQUE_BLS12381_S20_Params) GobEncode() ([]byte, error)
func (*EntityKey_OAQUE_BLS12381_S20_Params) HasCapability ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20_Params) HasCapability(c Capability) bool
func (*EntityKey_OAQUE_BLS12381_S20_Params) IdentifyingBlob ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20_Params) IdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_OAQUE_BLS12381_S20_Params) Supported ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20_Params) Supported() bool
func (*EntityKey_OAQUE_BLS12381_S20_Params) SystemIdentifyingBlob ¶ added in v0.4.0
func (k *EntityKey_OAQUE_BLS12381_S20_Params) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*EntityKey_OAQUE_BLS12381_S20_Params) VerifyAttestation ¶ added in v0.4.0
func (*EntityKey_OAQUE_BLS12381_S20_Params) VerifyCertify ¶ added in v0.4.0
func (*EntityKey_OAQUE_BLS12381_S20_Params) VerifyMessage ¶ added in v0.4.0
type EntityKeyringSchemeInstance ¶
type EntityKeyringSchemeInstance interface { Scheme DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error) }
func EntityKeyringSchemeInstanceFor ¶
func EntityKeyringSchemeInstanceFor(e asn1.External) (EntityKeyringSchemeInstance, error)
func NewEntityKeyringSchemeInstance ¶
func NewEntityKeyringSchemeInstance(oid asn1.ObjectIdentifier) (EntityKeyringSchemeInstance, error)
type EntitySecretKeySchemeInstance ¶
type EntitySecretKeySchemeInstance interface { Scheme Public() EntityKeySchemeInstance SignCertify(ctx context.Context, content []byte) ([]byte, error) //Signing signature bindings or signing DER (for ephemeral) SignAttestation(ctx context.Context, content []byte) ([]byte, error) SignMessage(ctx context.Context, content []byte) ([]byte, error) DecryptMessage(ctx context.Context, ciphertext []byte) ([]byte, error) DecryptMessageAsChild(ctx context.Context, ciphertext []byte, identity interface{}) ([]byte, error) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error) SecretCanonicalForm() *serdes.EntityKeyringEntry Equal(rhs EntitySecretKeySchemeInstance) bool }
func EntitySecretKeySchemeInstanceFor ¶
func EntitySecretKeySchemeInstanceFor(e *serdes.EntityKeyringEntry) (EntitySecretKeySchemeInstance, error)
func NewEntityKeySchemeInstance ¶
func NewEntityKeySchemeInstance(oid asn1.ObjectIdentifier, capabilities ...Capability) (EntitySecretKeySchemeInstance, error)
type EntitySecretKey_Curve25519 ¶
type EntitySecretKey_Curve25519 struct { SerdesForm *serdes.EntityKeyringEntry PrivateKey [32]byte PublicKey [32]byte }
func (*EntitySecretKey_Curve25519) CanonicalForm ¶
func (ek *EntitySecretKey_Curve25519) CanonicalForm() *serdes.EntityPublicKey
func (*EntitySecretKey_Curve25519) DecryptMessage ¶
func (*EntitySecretKey_Curve25519) DecryptMessageAsChild ¶
func (*EntitySecretKey_Curve25519) Equal ¶
func (ek *EntitySecretKey_Curve25519) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*EntitySecretKey_Curve25519) GenerateChildSecretKey ¶
func (ek *EntitySecretKey_Curve25519) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*EntitySecretKey_Curve25519) HasCapability ¶
func (ek *EntitySecretKey_Curve25519) HasCapability(c Capability) bool
func (*EntitySecretKey_Curve25519) Public ¶
func (ek *EntitySecretKey_Curve25519) Public() EntityKeySchemeInstance
func (*EntitySecretKey_Curve25519) SecretCanonicalForm ¶
func (ek *EntitySecretKey_Curve25519) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*EntitySecretKey_Curve25519) SignAttestation ¶
func (*EntitySecretKey_Curve25519) SignCertify ¶
func (*EntitySecretKey_Curve25519) SignMessage ¶
func (*EntitySecretKey_Curve25519) Supported ¶
func (ek *EntitySecretKey_Curve25519) Supported() bool
type EntitySecretKey_Ed25519 ¶
type EntitySecretKey_Ed25519 struct { SerdesForm *serdes.EntityKeyringEntry PublicKey ed25519.PublicKey PrivateKey ed25519.PrivateKey }
func (*EntitySecretKey_Ed25519) CanonicalForm ¶
func (ek *EntitySecretKey_Ed25519) CanonicalForm() *serdes.EntityPublicKey
func (*EntitySecretKey_Ed25519) DecryptMessage ¶
func (*EntitySecretKey_Ed25519) DecryptMessageAsChild ¶
func (*EntitySecretKey_Ed25519) Equal ¶
func (ek *EntitySecretKey_Ed25519) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*EntitySecretKey_Ed25519) GenerateChildSecretKey ¶
func (ek *EntitySecretKey_Ed25519) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*EntitySecretKey_Ed25519) HasCapability ¶
func (ek *EntitySecretKey_Ed25519) HasCapability(c Capability) bool
func (*EntitySecretKey_Ed25519) Public ¶
func (ek *EntitySecretKey_Ed25519) Public() EntityKeySchemeInstance
func (*EntitySecretKey_Ed25519) SecretCanonicalForm ¶
func (ek *EntitySecretKey_Ed25519) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*EntitySecretKey_Ed25519) SignAttestation ¶
func (*EntitySecretKey_Ed25519) SignCertify ¶
func (*EntitySecretKey_Ed25519) SignMessage ¶
func (*EntitySecretKey_Ed25519) Supported ¶
func (ek *EntitySecretKey_Ed25519) Supported() bool
type EntitySecretKey_IBE_BLS12381 ¶ added in v0.4.0
type EntitySecretKey_IBE_BLS12381 struct { SerdesForm *serdes.EntityKeyringEntry PrivateKey *lqibe.SecretKey Params *lqibe.Params ID []byte LQID *lqibe.ID }
func (*EntitySecretKey_IBE_BLS12381) CanonicalForm ¶ added in v0.4.0
func (k *EntitySecretKey_IBE_BLS12381) CanonicalForm() *serdes.EntityPublicKey
func (*EntitySecretKey_IBE_BLS12381) DecryptMessage ¶ added in v0.4.0
func (*EntitySecretKey_IBE_BLS12381) DecryptMessageAsChild ¶ added in v0.4.0
func (*EntitySecretKey_IBE_BLS12381) Equal ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_BLS12381) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*EntitySecretKey_IBE_BLS12381) GenerateChildSecretKey ¶ added in v0.4.0
func (k *EntitySecretKey_IBE_BLS12381) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*EntitySecretKey_IBE_BLS12381) GobDecode ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_BLS12381) GobDecode(ba []byte) error
func (*EntitySecretKey_IBE_BLS12381) GobEncode ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_BLS12381) GobEncode() ([]byte, error)
func (*EntitySecretKey_IBE_BLS12381) HasCapability ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_BLS12381) HasCapability(c Capability) bool
func (*EntitySecretKey_IBE_BLS12381) Public ¶ added in v0.4.0
func (k *EntitySecretKey_IBE_BLS12381) Public() EntityKeySchemeInstance
func (*EntitySecretKey_IBE_BLS12381) SecretCanonicalForm ¶ added in v0.4.0
func (k *EntitySecretKey_IBE_BLS12381) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*EntitySecretKey_IBE_BLS12381) SignAttestation ¶ added in v0.4.0
func (*EntitySecretKey_IBE_BLS12381) SignCertify ¶ added in v0.4.0
func (*EntitySecretKey_IBE_BLS12381) SignMessage ¶ added in v0.4.0
func (*EntitySecretKey_IBE_BLS12381) Supported ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_BLS12381) Supported() bool
type EntitySecretKey_IBE_Master_BLS12381 ¶ added in v0.4.0
type EntitySecretKey_IBE_Master_BLS12381 struct { SerdesForm *serdes.EntityKeyringEntry PrivateKey *lqibe.MasterKey PublicKey *lqibe.Params }
func (*EntitySecretKey_IBE_Master_BLS12381) CanonicalForm ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) CanonicalForm() *serdes.EntityPublicKey
func (*EntitySecretKey_IBE_Master_BLS12381) DecryptMessage ¶ added in v0.4.0
func (*EntitySecretKey_IBE_Master_BLS12381) DecryptMessageAsChild ¶ added in v0.4.0
func (*EntitySecretKey_IBE_Master_BLS12381) Equal ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*EntitySecretKey_IBE_Master_BLS12381) GenerateChildSecretKey ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*EntitySecretKey_IBE_Master_BLS12381) GobDecode ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) GobDecode(ba []byte) error
func (*EntitySecretKey_IBE_Master_BLS12381) GobEncode ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) GobEncode() ([]byte, error)
func (*EntitySecretKey_IBE_Master_BLS12381) HasCapability ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) HasCapability(c Capability) bool
func (*EntitySecretKey_IBE_Master_BLS12381) Public ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) Public() EntityKeySchemeInstance
func (*EntitySecretKey_IBE_Master_BLS12381) SecretCanonicalForm ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*EntitySecretKey_IBE_Master_BLS12381) SignAttestation ¶ added in v0.4.0
func (*EntitySecretKey_IBE_Master_BLS12381) SignCertify ¶ added in v0.4.0
func (*EntitySecretKey_IBE_Master_BLS12381) SignMessage ¶ added in v0.4.0
func (*EntitySecretKey_IBE_Master_BLS12381) Supported ¶ added in v0.4.0
func (ek *EntitySecretKey_IBE_Master_BLS12381) Supported() bool
type EntitySecretKey_OAQUE_BLS12381_S20 ¶ added in v0.4.0
type EntitySecretKey_OAQUE_BLS12381_S20 struct { SerdesForm *serdes.EntityKeyringEntry PrivateKey *wkdibe.SecretKey Params *wkdibe.Params AttributeSet [][]byte // contains filtered or unexported fields }
func (*EntitySecretKey_OAQUE_BLS12381_S20) CanonicalForm ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20) CanonicalForm() *serdes.EntityPublicKey
func (*EntitySecretKey_OAQUE_BLS12381_S20) DecryptMessage ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20) DecryptMessageAsChild ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20) Equal ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*EntitySecretKey_OAQUE_BLS12381_S20) GenerateChildSecretKey ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*EntitySecretKey_OAQUE_BLS12381_S20) GobDecode ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) GobDecode(ba []byte) error
func (*EntitySecretKey_OAQUE_BLS12381_S20) GobEncode ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) GobEncode() ([]byte, error)
func (*EntitySecretKey_OAQUE_BLS12381_S20) HasCapability ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) HasCapability(c Capability) bool
func (*EntitySecretKey_OAQUE_BLS12381_S20) IdHash ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) IdHash() [32]byte
func (*EntitySecretKey_OAQUE_BLS12381_S20) Public ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20) Public() EntityKeySchemeInstance
func (*EntitySecretKey_OAQUE_BLS12381_S20) SecretCanonicalForm ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*EntitySecretKey_OAQUE_BLS12381_S20) SignAttestation ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20) SignCertify ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20) SignMessage ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20) Slots ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) Slots() [][]byte
func (*EntitySecretKey_OAQUE_BLS12381_S20) Supported ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20) Supported() bool
type EntitySecretKey_OAQUE_BLS12381_S20_Master ¶ added in v0.4.0
type EntitySecretKey_OAQUE_BLS12381_S20_Master struct { SerdesForm *serdes.EntityKeyringEntry PrivateKey *wkdibe.MasterKey Params *wkdibe.Params }
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) CanonicalForm ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) CanonicalForm() *serdes.EntityPublicKey
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) DecryptMessage ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) DecryptMessageAsChild ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) Equal ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) GenerateChildSecretKey ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) GobDecode ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) GobDecode(ba []byte) error
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) GobEncode ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) GobEncode() ([]byte, error)
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) HasCapability ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) HasCapability(c Capability) bool
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) Public ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) Public() EntityKeySchemeInstance
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) SecretCanonicalForm ¶ added in v0.4.0
func (k *EntitySecretKey_OAQUE_BLS12381_S20_Master) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) SignAttestation ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) SignCertify ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) SignMessage ¶ added in v0.4.0
func (*EntitySecretKey_OAQUE_BLS12381_S20_Master) Supported ¶ added in v0.4.0
func (ek *EntitySecretKey_OAQUE_BLS12381_S20_Master) Supported() bool
type EntitySecrets ¶
type EntitySecrets struct { CanonicalForm *serdes.WaveEntitySecret Keyring []EntitySecretKeySchemeInstance Entity *Entity }
func (*EntitySecrets) AttestationRevocationDetails ¶ added in v0.2.1
func (e *EntitySecrets) AttestationRevocationDetails(att *Attestation) ([]byte, LocationSchemeInstance, wve.WVE)
func (*EntitySecrets) CalculateWR1Batch ¶ added in v0.4.0
func (e *EntitySecrets) CalculateWR1Batch(partitions [][][]byte, delegable bool) ([]SlottedSecretKey, error)
func (*EntitySecrets) CommitmentRevocationDetails ¶ added in v0.2.1
func (e *EntitySecrets) CommitmentRevocationDetails() (content []byte, loc []LocationSchemeInstance)
func (*EntitySecrets) MessageSigningKey ¶ added in v0.2.1
func (e *EntitySecrets) MessageSigningKey() EntitySecretKeySchemeInstance
func (*EntitySecrets) NameDeclarationRevocationDetails ¶ added in v0.2.1
func (e *EntitySecrets) NameDeclarationRevocationDetails(nd *NameDeclaration) ([]byte, LocationSchemeInstance, wve.WVE)
func (*EntitySecrets) PrimarySigningKey ¶
func (e *EntitySecrets) PrimarySigningKey() EntitySecretKeySchemeInstance
func (*EntitySecrets) WR1BodyKey ¶
func (e *EntitySecrets) WR1BodyKey(ctx context.Context, slots [][]byte, delegable bool) (SlottedSecretKey, error)
func (*EntitySecrets) WR1DirectDecryptionKey ¶
func (e *EntitySecrets) WR1DirectDecryptionKey(ctx context.Context) (EntitySecretKeySchemeInstance, error)
func (*EntitySecrets) WR1LabelKey ¶
func (e *EntitySecrets) WR1LabelKey(ctx context.Context, namespace []byte) (EntitySecretKeySchemeInstance, error)
type ExtensionSchemeInstance ¶
type GetResult ¶ added in v0.2.0
type GetResult struct { Attestation *Attestation NameDeclaration *NameDeclaration }
type HashScheme ¶
type HashScheme interface { Scheme //Digest(ctx context.Context, input []byte) ([]byte, error) Instance(input []byte) HashSchemeInstance OID() asn1.ObjectIdentifier }
func HashSchemeFor ¶
func HashSchemeFor(h asn1.External) HashScheme
type HashSchemeInstance ¶
type HashSchemeInstance interface { Scheme //For curried hash scheme instances Value() []byte Multihash() []byte MultihashString() string CanonicalForm() *asn1.External OID() asn1.ObjectIdentifier }
func HashSchemeInstanceFor ¶
func HashSchemeInstanceFor(h *asn1.External) HashSchemeInstance
func NewHashScheme(oid asn1.ObjectIdentifier) HashScheme { panic("ni") }
func HashSchemeInstanceFromMultihash ¶
func HashSchemeInstanceFromMultihash(mh []byte) HashSchemeInstance
type HashSchemeInstance_Keccak_256 ¶
type HashSchemeInstance_Keccak_256 struct {
Val []byte
}
func (*HashSchemeInstance_Keccak_256) CanonicalForm ¶
func (hs *HashSchemeInstance_Keccak_256) CanonicalForm() *asn1.External
func (*HashSchemeInstance_Keccak_256) Multihash ¶
func (hs *HashSchemeInstance_Keccak_256) Multihash() []byte
func (*HashSchemeInstance_Keccak_256) MultihashString ¶
func (hs *HashSchemeInstance_Keccak_256) MultihashString() string
func (*HashSchemeInstance_Keccak_256) OID ¶
func (hs *HashSchemeInstance_Keccak_256) OID() asn1.ObjectIdentifier
func (*HashSchemeInstance_Keccak_256) Supported ¶
func (hs *HashSchemeInstance_Keccak_256) Supported() bool
func (*HashSchemeInstance_Keccak_256) Value ¶
func (hs *HashSchemeInstance_Keccak_256) Value() []byte
type HashSchemeInstance_Sha3_256 ¶
type HashSchemeInstance_Sha3_256 struct {
Val []byte
}
func (*HashSchemeInstance_Sha3_256) CanonicalForm ¶
func (hs *HashSchemeInstance_Sha3_256) CanonicalForm() *asn1.External
func (*HashSchemeInstance_Sha3_256) Multihash ¶
func (hs *HashSchemeInstance_Sha3_256) Multihash() []byte
func (*HashSchemeInstance_Sha3_256) MultihashString ¶
func (hs *HashSchemeInstance_Sha3_256) MultihashString() string
func (*HashSchemeInstance_Sha3_256) OID ¶
func (hs *HashSchemeInstance_Sha3_256) OID() asn1.ObjectIdentifier
func (*HashSchemeInstance_Sha3_256) Supported ¶
func (hs *HashSchemeInstance_Sha3_256) Supported() bool
func (*HashSchemeInstance_Sha3_256) Value ¶
func (hs *HashSchemeInstance_Sha3_256) Value() []byte
type HashScheme_Keccak_256 ¶
type HashScheme_Keccak_256 struct{}
func (*HashScheme_Keccak_256) Instance ¶
func (hs *HashScheme_Keccak_256) Instance(input []byte) HashSchemeInstance
func (*HashScheme_Keccak_256) OID ¶
func (hs *HashScheme_Keccak_256) OID() asn1.ObjectIdentifier
func (*HashScheme_Keccak_256) Supported ¶
func (hs *HashScheme_Keccak_256) Supported() bool
type HashScheme_Sha3_256 ¶
type HashScheme_Sha3_256 struct{}
func (*HashScheme_Sha3_256) Instance ¶
func (hs *HashScheme_Sha3_256) Instance(input []byte) HashSchemeInstance
func (*HashScheme_Sha3_256) OID ¶
func (hs *HashScheme_Sha3_256) OID() asn1.ObjectIdentifier
func (*HashScheme_Sha3_256) Supported ¶
func (hs *HashScheme_Sha3_256) Supported() bool
type InterestingEntityResult ¶
type KeyPoolDecryptionContext ¶
type KeyPoolDecryptionContext struct {
// contains filtered or unexported fields
}
func NewKeyPoolDecryptionContext ¶
func NewKeyPoolDecryptionContext() *KeyPoolDecryptionContext
func (*KeyPoolDecryptionContext) AddDomainVisibilityID ¶
func (kpd *KeyPoolDecryptionContext) AddDomainVisibilityID(id []byte)
func (*KeyPoolDecryptionContext) AddEntity ¶
func (kpd *KeyPoolDecryptionContext) AddEntity(e *Entity)
func (*KeyPoolDecryptionContext) AddEntitySecret ¶
func (kpd *KeyPoolDecryptionContext) AddEntitySecret(es *EntitySecrets, delegatedOnly bool)
func (*KeyPoolDecryptionContext) AddEntitySecretsLabelOnly ¶ added in v0.2.0
func (kpd *KeyPoolDecryptionContext) AddEntitySecretsLabelOnly(es *EntitySecrets)
func (*KeyPoolDecryptionContext) EntityByHashLoc ¶
func (kpd *KeyPoolDecryptionContext) EntityByHashLoc(ctx context.Context, hash HashSchemeInstance, loc LocationSchemeInstance) (*Entity, wve.WVE)
func (*KeyPoolDecryptionContext) SetUnderlyingContext ¶ added in v0.2.1
func (kpd *KeyPoolDecryptionContext) SetUnderlyingContext(ctx KeyPoolUnderlyingContext)
func (*KeyPoolDecryptionContext) SetWR1ProverBodyKey ¶
func (kpd *KeyPoolDecryptionContext) SetWR1ProverBodyKey(atv []byte)
func (*KeyPoolDecryptionContext) SetWR1VerifierBodyKey ¶
func (kpd *KeyPoolDecryptionContext) SetWR1VerifierBodyKey(atv []byte)
func (*KeyPoolDecryptionContext) WR1AttesterDirectDecryptionKey ¶ added in v0.2.1
func (kpd *KeyPoolDecryptionContext) WR1AttesterDirectDecryptionKey(ctx context.Context, onResult func(k EntitySecretKeySchemeInstance) bool) error
func (*KeyPoolDecryptionContext) WR1DirectDecryptionKey ¶
func (kpd *KeyPoolDecryptionContext) WR1DirectDecryptionKey(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error
func (*KeyPoolDecryptionContext) WR1EntityFromHash ¶ added in v0.2.1
func (kpd *KeyPoolDecryptionContext) WR1EntityFromHash(ctx context.Context, hash HashSchemeInstance, loc LocationSchemeInstance) (*Entity, error)
func (*KeyPoolDecryptionContext) WR1IBEKeysForPartitionLabel ¶
func (kpd *KeyPoolDecryptionContext) WR1IBEKeysForPartitionLabel(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error
func (*KeyPoolDecryptionContext) WR1OAQUEKeysForContent ¶
func (kpd *KeyPoolDecryptionContext) WR1OAQUEKeysForContent(ctx context.Context, dst HashSchemeInstance, delegable bool, slots [][]byte, onResult func(k SlottedSecretKey) bool) error
func (*KeyPoolDecryptionContext) WR1ProverBodyKey ¶
func (kpd *KeyPoolDecryptionContext) WR1ProverBodyKey(ctx context.Context) []byte
func (*KeyPoolDecryptionContext) WR1VerifierBodyKey ¶
func (kpd *KeyPoolDecryptionContext) WR1VerifierBodyKey(ctx context.Context) []byte
type KeyPoolUnderlyingContext ¶ added in v0.2.1
type KeyPoolUnderlyingContext interface {
EntityByHashLoc(ctx context.Context, h HashSchemeInstance, loc LocationSchemeInstance) (*Entity, wve.WVE)
}
type KeyringPlaintext ¶
func (*KeyringPlaintext) DecryptKeyring ¶
func (kr *KeyringPlaintext) DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error)
func (*KeyringPlaintext) EncryptKeyring ¶
func (kr *KeyringPlaintext) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error)
func (*KeyringPlaintext) Supported ¶
func (kr *KeyringPlaintext) Supported() bool
type LocationResult ¶
type LocationResult struct { Location LocationSchemeInstance Err error }
type LocationSchemeInstance ¶
type LocationSchemeInstance interface { Scheme CanonicalForm() *asn1.External IdHash() [32]byte Equal(l LocationSchemeInstance) bool }
func LocationSchemeInstanceFor ¶
func LocationSchemeInstanceFor(e *asn1.External) LocationSchemeInstance
func NewLocationSchemeInstanceURL ¶
func NewLocationSchemeInstanceURL(url string, version int) LocationSchemeInstance
type LocationSchemeInstanceURL ¶
type LocationSchemeInstanceURL struct { SerdesForm *serdes.LocationURL // contains filtered or unexported fields }
func (*LocationSchemeInstanceURL) CanonicalForm ¶
func (ls *LocationSchemeInstanceURL) CanonicalForm() *asn1.External
func (*LocationSchemeInstanceURL) Equal ¶
func (ls *LocationSchemeInstanceURL) Equal(rhs LocationSchemeInstance) bool
func (*LocationSchemeInstanceURL) IdHash ¶
func (ls *LocationSchemeInstanceURL) IdHash() [32]byte
func (*LocationSchemeInstanceURL) Supported ¶
func (ls *LocationSchemeInstanceURL) Supported() bool
type LookupFromFilter ¶
type LookupFromResult ¶
type LookupFromResult struct { Attestation *Attestation Err error }
type LowLevelStorage ¶
type LowLevelStorage interface { //If the key does not exist, return nil value and nil err Load(ctx context.Context, key string) (val []byte, err error) //For both of these functions, you either have to fully consume the value channel, //or cancel the context. LoadPrefix(ctx context.Context, key string) (results chan KeyValue, err chan error) //Values will be nil LoadPrefixKeys(ctx context.Context, key string) (results chan KeyValue, err chan error) Store(ctx context.Context, key string, val []byte) (err error) //Removes key, no error if it does not exist Remove(ctx context.Context, key string) (err error) }
type NameDeclaration ¶ added in v0.2.0
type NameDeclaration struct { CanonicalForm *serdes.WaveNameDeclaration DecryptedBody *serdes.NameDeclarationBody Attester HashSchemeInstance AttesterLocation LocationSchemeInstance Subject HashSchemeInstance SubjectLocation LocationSchemeInstance Name string Revocations []RevocationSchemeInstance WR1Extra *WR1Extra }
func (*NameDeclaration) ArrayKeccak256 ¶ added in v0.2.0
func (nd *NameDeclaration) ArrayKeccak256() [32]byte
func (*NameDeclaration) Decoded ¶ added in v0.2.0
func (nd *NameDeclaration) Decoded() bool
func (*NameDeclaration) Hash ¶ added in v0.2.0
func (nd *NameDeclaration) Hash(scheme HashScheme) HashSchemeInstance
func (*NameDeclaration) IsNameValid ¶ added in v0.2.0
func (nd *NameDeclaration) IsNameValid() bool
func (*NameDeclaration) Keccak256 ¶ added in v0.2.0
func (nd *NameDeclaration) Keccak256() []byte
func (*NameDeclaration) Keccak256HI ¶ added in v0.2.0
func (nd *NameDeclaration) Keccak256HI() HashSchemeInstance
func (*NameDeclaration) SetCanonicalForm ¶ added in v0.2.0
func (nd *NameDeclaration) SetCanonicalForm(cf *serdes.WaveNameDeclaration) wve.WVE
func (*NameDeclaration) SetDecryptedBody ¶ added in v0.2.0
func (nd *NameDeclaration) SetDecryptedBody(db *serdes.NameDeclarationBody) wve.WVE
type OuterSignatureBindingScheme ¶
type OuterSignatureBindingScheme interface { Scheme VerifyBinding(ctx context.Context, att *Attestation, attester *Entity) wve.WVE }
func OuterSignatureBindingSchemeFor ¶
func OuterSignatureBindingSchemeFor(e *asn1.External) OuterSignatureBindingScheme
type OuterSignatureBindingScheme_SignedOuterKey ¶
type OuterSignatureBindingScheme_SignedOuterKey struct { }
func (*OuterSignatureBindingScheme_SignedOuterKey) Supported ¶
func (sbs *OuterSignatureBindingScheme_SignedOuterKey) Supported() bool
func (*OuterSignatureBindingScheme_SignedOuterKey) VerifyBinding ¶
func (sbs *OuterSignatureBindingScheme_SignedOuterKey) VerifyBinding(ctx context.Context, att *Attestation, attester *Entity) wve.WVE
type OuterSignatureScheme ¶
type OuterSignatureScheme interface { Scheme VerifySignature(ctx context.Context, canonicalForm *serdes.WaveAttestation) wve.WVE }
func OuterSignatureSchemeFor ¶
func OuterSignatureSchemeFor(e *asn1.External) OuterSignatureScheme
type OuterSignatureScheme_EphemeralEd25519 ¶
type OuterSignatureScheme_EphemeralEd25519 struct { }
func (*OuterSignatureScheme_EphemeralEd25519) Supported ¶
func (os *OuterSignatureScheme_EphemeralEd25519) Supported() bool
func (*OuterSignatureScheme_EphemeralEd25519) VerifySignature ¶
func (os *OuterSignatureScheme_EphemeralEd25519) VerifySignature(ctx context.Context, canonicalForm *serdes.WaveAttestation) wve.WVE
type PCompactProof ¶ added in v0.2.1
type PCompactProof struct {
DER []byte
}
type PCreateAttestation ¶
type PCreateAttestation struct { Policy PolicySchemeInstance HashScheme HashScheme BodyScheme AttestationBodyScheme EncryptionContext BodyEncryptionContext Attester *EntitySecrets AttesterLocation LocationSchemeInstance Subject *Entity SubjectLocation LocationSchemeInstance //If not specified, defaults to Now ValidFrom *time.Time //If not specified defaults to Now+30 days ValidUntil *time.Time }
type PCreateNameDeclaration ¶ added in v0.2.0
type PCreateNameDeclaration struct { Attester *EntitySecrets AttesterLocation LocationSchemeInstance Subject *Entity SubjectLocation LocationSchemeInstance Name string //If not specified, defaults to Now ValidFrom *time.Time //If not specified defaults to Now+5 years ValidUntil *time.Time //If present, an encrypted declaration will be made Namespace *Entity NamespaceLocation LocationSchemeInstance Partition [][]byte }
type PDecryptMessage ¶ added in v0.2.0
type PDecryptMessage struct { Decryptor *EntitySecrets Ciphertext []byte Dctx WR1MessageDecryptionContext }
type PEncryptMessage ¶ added in v0.2.0
type PNewEntity ¶
type PParseAttestation ¶
type PParseAttestation struct { //Either specify DER or specify Attestation (to further decrypt a partially //decrypted DOT) DER []byte Attestation *Attestation DecryptionContext BodyDecryptionContext }
type PParseEntity ¶
type PParseEntity struct {
DER []byte
}
type PParseEntitySecrets ¶
type PParseNameDeclaration ¶ added in v0.2.0
type PParseNameDeclaration struct { DER []byte NameDeclaration *NameDeclaration Dctx WR1NameDeclarationDecryptionContext }
type PSKBodyDecryptionContext ¶
type PSKBodyDecryptionContext interface {
GetDecryptPSK(ctx context.Context, dst HashScheme, public EntityKeySchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error
}
type PSKBodyEncryptionContext ¶
type PSKBodyEncryptionContext interface {
GetEncryptPSK(ctx context.Context, body *serdes.WaveAttestation, onResult func(k EntitySecretKeySchemeInstance) bool) error
}
type PSKBodyScheme ¶
func (*PSKBodyScheme) DecryptBody ¶
func (psk *PSKBodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, canonicalForm *serdes.WaveAttestation) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
func (*PSKBodyScheme) EncryptBody ¶
func (psk *PSKBodyScheme) EncryptBody(ctx context.Context, ec BodyEncryptionContext, intermediateForm *serdes.WaveAttestation) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
func (*PSKBodyScheme) Supported ¶
func (psk *PSKBodyScheme) Supported() bool
type PVerifyRTreeProof ¶
type PVerifyRTreeProof struct { DER []byte VCtx VerificationContext }
type PVerifySignature ¶ added in v0.2.1
type PVerifySignature struct { DER []byte Content []byte Signer HashSchemeInstance SignerLocation LocationSchemeInstance VCtx VerificationContext }
type PendingAttestation ¶
type PendingAttestation struct { Err error Attestation *Attestation Keccak256 []byte //Only for pending without partition LabelKeyIndex *int }
type PendingNameDeclaration ¶ added in v0.2.0
type PendingNameDeclaration struct { Err error NameDeclaration *NameDeclaration Keccak256 []byte LabelKeyIndex *int }
type PlaintextBodyScheme ¶
type PlaintextBodyScheme struct { }
func NewPlaintextBodyScheme ¶
func NewPlaintextBodyScheme() *PlaintextBodyScheme
func (*PlaintextBodyScheme) DecryptBody ¶
func (pt *PlaintextBodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, canonicalForm *serdes.WaveAttestation, inextra interface{}) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
func (*PlaintextBodyScheme) EncryptBody ¶
func (pt *PlaintextBodyScheme) EncryptBody(ctx context.Context, ec BodyEncryptionContext, attester *EntitySecrets, subject *Entity, intermediateForm *serdes.WaveAttestation, policy PolicySchemeInstance) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
func (*PlaintextBodyScheme) Supported ¶
func (pt *PlaintextBodyScheme) Supported() bool
type PolicyAddendumSchemeInstance ¶
type PolicyAddendumSchemeInstance interface { Scheme }
type PolicySchemeInstance ¶
type PolicySchemeInstance interface { Scheme CanonicalForm() *asn1.External //These are required for WR1 support WR1DomainEntity() HashSchemeInstance //The first 12 elements used in the final partition WR1PartitionPrefix(e2ee bool) [][]byte CheckValid() error }
func PolicySchemeInstanceFor ¶
func PolicySchemeInstanceFor(e *asn1.External) (PolicySchemeInstance, error)
type RCompactProof ¶ added in v0.2.1
type RCompactProof struct {
DER []byte
}
func CompactProof ¶ added in v0.2.1
func CompactProof(ctx context.Context, p *PCompactProof) (*RCompactProof, wve.WVE)
type RCreateAttestation ¶
func CreateAttestation ¶
func CreateAttestation(ctx context.Context, p *PCreateAttestation) (*RCreateAttestation, wve.WVE)
type RCreateNameDeclaration ¶ added in v0.2.0
type RCreateNameDeclaration struct { NameDeclaration *NameDeclaration DER []byte }
func CreateNameDeclaration ¶ added in v0.2.0
func CreateNameDeclaration(ctx context.Context, p *PCreateNameDeclaration) (*RCreateNameDeclaration, wve.WVE)
type RDecryptMessage ¶ added in v0.2.0
type RDecryptMessage struct {
Content []byte
}
func DecryptMessage ¶ added in v0.2.0
func DecryptMessage(ctx context.Context, p *PDecryptMessage) (*RDecryptMessage, wve.WVE)
type REncryptMessage ¶ added in v0.2.0
type REncryptMessage struct {
Ciphertext []byte
}
func EncryptMessage ¶ added in v0.2.0
func EncryptMessage(ctx context.Context, p *PEncryptMessage) (*REncryptMessage, wve.WVE)
type RNewEntity ¶
func NewEntity ¶
func NewEntity(ctx context.Context, p *PNewEntity) (*RNewEntity, wve.WVE)
Creates a new WR1 entity object and returns the public and secret canonical representations
type RParseAttestation ¶
type RParseAttestation struct { Attestation *Attestation IsMalformed bool ExtraInfo interface{} }
func NewParsedAttestation ¶
func NewParsedAttestation(ctx context.Context, p *PCreateAttestation) (*RParseAttestation, wve.WVE)
This is obviously of limited use, only an Att with no encryption will fully parse
func ParseAttestation ¶
func ParseAttestation(ctx context.Context, p *PParseAttestation) (*RParseAttestation, wve.WVE)
type RParseEntity ¶
type RParseEntity struct {
Entity *Entity
}
func ParseEntity ¶
func ParseEntity(ctx context.Context, p *PParseEntity) (*RParseEntity, wve.WVE)
type RParseEntitySecrets ¶
type RParseEntitySecrets struct { Entity *Entity EntitySecrets *EntitySecrets }
func NewParsedEntitySecrets ¶
func NewParsedEntitySecrets(ctx context.Context, p *PNewEntity) (*RParseEntitySecrets, wve.WVE)
func ParseEntitySecrets ¶
func ParseEntitySecrets(ctx context.Context, p *PParseEntitySecrets) (*RParseEntitySecrets, wve.WVE)
type RParseNameDeclaration ¶ added in v0.2.0
type RParseNameDeclaration struct { Result *NameDeclaration IsMalformed bool }
func ParseNameDeclaration ¶ added in v0.2.0
func ParseNameDeclaration(ctx context.Context, p *PParseNameDeclaration) (*RParseNameDeclaration, wve.WVE)
type RTreePolicy ¶
type RTreePolicy struct { SerdesForm serdes.RTreePolicy VisibilityURI [][]byte }
func NewRTreePolicyScheme ¶
func NewRTreePolicyScheme(policy serdes.RTreePolicy, visuri [][]byte) (*RTreePolicy, error)
func (*RTreePolicy) CanonicalForm ¶
func (ps *RTreePolicy) CanonicalForm() *asn1.External
func (*RTreePolicy) CheckValid ¶
func (ps *RTreePolicy) CheckValid() error
This is only valid for attestation policies not derived policies from intersections
func (*RTreePolicy) Intersect ¶
func (lhs *RTreePolicy) Intersect(rhs *RTreePolicy) (result *RTreePolicy, okay bool, message string, err error)
The intersection of two RTreePolicies is the set of permissions that they would grant if they appeared in succession in an attestation chain This function does not check indirections This function assumes the policy has been checked
func (*RTreePolicy) IsSubsetOf ¶
func (lhs *RTreePolicy) IsSubsetOf(superset *RTreePolicy) bool
func (*RTreePolicy) Supported ¶
func (ps *RTreePolicy) Supported() bool
func (*RTreePolicy) Union ¶
func (lhs *RTreePolicy) Union(rhs *RTreePolicy) (result *RTreePolicy, okay bool, message string, err error)
func (*RTreePolicy) WR1DomainEntity ¶
func (ps *RTreePolicy) WR1DomainEntity() HashSchemeInstance
func (*RTreePolicy) WR1PartitionPrefix ¶ added in v0.2.0
func (ps *RTreePolicy) WR1PartitionPrefix(e2ee bool) [][]byte
type RVerifyRTreeProof ¶
type RVerifyRTreeProof struct { Policy *RTreePolicy Expires time.Time Attestations []*Attestation Paths [][]int Subject HashSchemeInstance SubjectLocation LocationSchemeInstance }
func VerifyRTreeProof ¶
func VerifyRTreeProof(ctx context.Context, p *PVerifyRTreeProof) (*RVerifyRTreeProof, wve.WVE)
type RVerifySignature ¶ added in v0.2.1
type RVerifySignature struct {
Okay bool
}
func VerifySignature ¶ added in v0.2.1
func VerifySignature(ctx context.Context, p *PVerifySignature) (*RVerifySignature, wve.WVE)
type ResolveResult ¶ added in v0.2.0
type ResolveResult struct { NameDeclaration *NameDeclaration Err error }
type RevocationSchemeInstance ¶ added in v0.2.1
type RevocationSchemeInstance interface { Scheme CanonicalForm() serdes.RevocationOption IsRevoked(ctx context.Context, s StorageInterface) (bool, wve.WVE) Critical() bool Id() string }
func RevocationSchemeInstanceFor ¶ added in v0.2.1
func RevocationSchemeInstanceFor(op *serdes.RevocationOption) RevocationSchemeInstance
type SlottedSecretKey ¶
type SlottedSecretKey interface { EntitySecretKeySchemeInstance Slots() [][]byte IdHash() [32]byte }
var XXKey SlottedSecretKey
type StorageDriverCharacteristics ¶
type StorageDriverCharacteristics struct { //In WAVE a perspective is a particular view of the global graph that //is defined by a perspective entity. If the storage provider requires //a distinct instantiation per perspective, set this to true. Regardless //of this setting, the perspective entity is available via // ctx.Value(consts.PerspectiveKey).(*iapi.EntitySecrets) // default is False PerspectiveDependant *bool // When generating the default config file for the user, // what are the default config options DefaultConfiguration map[string]string // If there is no specific hash scheme (the provider is agnostic) // then leave this nil PreferredHashScheme HashScheme }
type StorageDriverInterface ¶
type StorageDriverInterface interface { //This will be called on a specific instantiation of the driver to //work out which storage requests to route its way Location(context.Context) LocationSchemeInstance //When constructing an attestation with a particular location in mind, //the entity hashes used within the attestation should match the scheme of //the storage. This method enables the engine to know the hash in advance PreferredHashScheme() HashScheme //Given a set of key/value options from the user's configuration file, //create an instance of this storage driver. Initialize will be called //on an empty struct instance (e.g (&MyStorage{}).Initialize(cfg)) Initialize(ctx context.Context, name string, config map[string]string) error //Retrieve the status of this storage driver (ready for use etc) //You should only return an error on context timeout, any other //error is probably indicative of an non-operational status and should be //returned as such Status(ctx context.Context) (operational bool, info map[string]string, err error) //Put the given object into storage. This does not queue any notifications //It should return the Hash of the object using the providers preferred //hash scheme. It should only return when the object Put(ctx context.Context, content []byte) (HashSchemeInstance, error) //Get the given object from storage. A nonexistant object should return //ErrObjectNotFound. Get(ctx context.Context, hash HashSchemeInstance) (content []byte, err error) //Place the given object into the given queue. Enqueue(ctx context.Context, queueId HashSchemeInstance, object HashSchemeInstance) error //Iterate over the given queue. Returns nil, "", ErrNoMore if there are no more //entries. Must accept "" as iteratorToken to mean the first entry IterateQueue(ctx context.Context, queueId HashSchemeInstance, iteratorToken string) (object HashSchemeInstance, nextToken string, err error) }
type StorageDriverStatus ¶
type StorageInterface ¶
type StorageInterface interface { PutBlob(ctx context.Context, loc LocationSchemeInstance, content []byte) (HashSchemeInstance, error) GetBlob(ctx context.Context, loc LocationSchemeInstance, hash HashSchemeInstance) ([]byte, error) GetEntity(ctx context.Context, loc LocationSchemeInstance, hash HashSchemeInstance) (*Entity, error) PutEntity(ctx context.Context, loc LocationSchemeInstance, ent *Entity) (HashSchemeInstance, error) GetAttestation(ctx context.Context, loc LocationSchemeInstance, hash HashSchemeInstance) (*Attestation, error) GetAttestationOrDeclaration(ctx context.Context, loc LocationSchemeInstance, hash HashSchemeInstance) (*GetResult, error) PutNameDeclaration(ctx context.Context, loc LocationSchemeInstance, nd *NameDeclaration) (HashSchemeInstance, error) PutAttestation(ctx context.Context, loc LocationSchemeInstance, att *Attestation) (HashSchemeInstance, error) IterateQeueue(ctx context.Context, loc LocationSchemeInstance, queueId HashSchemeInstance, token string) (object HashSchemeInstance, nextToken string, err error) Enqueue(ctx context.Context, loc LocationSchemeInstance, queueId HashSchemeInstance, object HashSchemeInstance) error HashSchemeFor(loc LocationSchemeInstance) (HashScheme, error) Status(ctx context.Context) (map[string]StorageDriverStatus, error) RegisteredLocations(ctx context.Context) (map[string]LocationSchemeInstance, error) DefaultLocation(ctx context.Context) LocationSchemeInstance LocationByName(ctx context.Context, name string) (LocationSchemeInstance, error) }
func SI ¶
func SI() StorageInterface
type TrustLevelPolicy ¶
func NewTrustLevelPolicy ¶
func NewTrustLevelPolicy(trust int) (*TrustLevelPolicy, error)
func (*TrustLevelPolicy) CanonicalForm ¶
func (ps *TrustLevelPolicy) CanonicalForm() *asn1.External
func (*TrustLevelPolicy) CheckValid ¶ added in v0.2.1
func (ps *TrustLevelPolicy) CheckValid() error
func (*TrustLevelPolicy) Supported ¶
func (ps *TrustLevelPolicy) Supported() bool
func (*TrustLevelPolicy) WR1DomainEntity ¶
func (ps *TrustLevelPolicy) WR1DomainEntity() HashSchemeInstance
func (*TrustLevelPolicy) WR1PartitionPrefix ¶ added in v0.2.0
func (ps *TrustLevelPolicy) WR1PartitionPrefix(bool) [][]byte
type UnsupportedBodyScheme ¶
type UnsupportedBodyScheme struct { }
func (*UnsupportedBodyScheme) DecryptBody ¶
func (u *UnsupportedBodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, canonicalForm *serdes.WaveAttestation, inextra interface{}) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
func (*UnsupportedBodyScheme) EncryptBody ¶
func (u *UnsupportedBodyScheme) EncryptBody(ctx context.Context, ec BodyEncryptionContext, attester *EntitySecrets, subject *Entity, intermediateForm *serdes.WaveAttestation, policy PolicySchemeInstance) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
func (*UnsupportedBodyScheme) Supported ¶
func (u *UnsupportedBodyScheme) Supported() bool
type UnsupportedHashScheme ¶
type UnsupportedHashScheme struct{}
func (*UnsupportedHashScheme) Instance ¶
func (hs *UnsupportedHashScheme) Instance(input []byte) HashSchemeInstance
func (*UnsupportedHashScheme) OID ¶
func (hs *UnsupportedHashScheme) OID() asn1.ObjectIdentifier
func (*UnsupportedHashScheme) Supported ¶
func (hs *UnsupportedHashScheme) Supported() bool
type UnsupportedHashSchemeInstance ¶
type UnsupportedHashSchemeInstance struct{}
func (*UnsupportedHashSchemeInstance) CanonicalForm ¶
func (hs *UnsupportedHashSchemeInstance) CanonicalForm() *asn1.External
func (*UnsupportedHashSchemeInstance) Multihash ¶
func (hs *UnsupportedHashSchemeInstance) Multihash() []byte
func (*UnsupportedHashSchemeInstance) MultihashString ¶
func (hs *UnsupportedHashSchemeInstance) MultihashString() string
func (*UnsupportedHashSchemeInstance) OID ¶
func (hs *UnsupportedHashSchemeInstance) OID() asn1.ObjectIdentifier
func (*UnsupportedHashSchemeInstance) Supported ¶
func (hs *UnsupportedHashSchemeInstance) Supported() bool
func (*UnsupportedHashSchemeInstance) Value ¶
func (hs *UnsupportedHashSchemeInstance) Value() []byte
type UnsupportedKeyScheme ¶
type UnsupportedKeyScheme struct {
SerdesForm *serdes.EntityPublicKey
}
func (*UnsupportedKeyScheme) CanonicalForm ¶
func (k *UnsupportedKeyScheme) CanonicalForm() *serdes.EntityPublicKey
func (*UnsupportedKeyScheme) EncryptMessage ¶
func (*UnsupportedKeyScheme) GenerateChildKey ¶
func (k *UnsupportedKeyScheme) GenerateChildKey(ctx context.Context, identity interface{}) (EntityKeySchemeInstance, error)
func (*UnsupportedKeyScheme) HasCapability ¶
func (k *UnsupportedKeyScheme) HasCapability(c Capability) bool
func (*UnsupportedKeyScheme) IdentifyingBlob ¶
func (k *UnsupportedKeyScheme) IdentifyingBlob(ctx context.Context) (string, error)
func (*UnsupportedKeyScheme) Supported ¶
func (k *UnsupportedKeyScheme) Supported() bool
func (*UnsupportedKeyScheme) SystemIdentifyingBlob ¶ added in v0.2.1
func (k *UnsupportedKeyScheme) SystemIdentifyingBlob(ctx context.Context) (string, error)
func (*UnsupportedKeyScheme) VerifyAttestation ¶
func (*UnsupportedKeyScheme) VerifyCertify ¶
func (*UnsupportedKeyScheme) VerifyMessage ¶
type UnsupportedKeyringScheme ¶
type UnsupportedKeyringScheme struct { }
func (*UnsupportedKeyringScheme) DecryptKeyring ¶
func (kr *UnsupportedKeyringScheme) DecryptKeyring(ctx context.Context, params interface{}) (decodedForm *serdes.EntityKeyring, err error)
func (*UnsupportedKeyringScheme) EncryptKeyring ¶
func (kr *UnsupportedKeyringScheme) EncryptKeyring(ctx context.Context, plaintext *serdes.EntityKeyring, params interface{}) (encodedForm *asn1.External, err error)
func (*UnsupportedKeyringScheme) Supported ¶
func (kr *UnsupportedKeyringScheme) Supported() bool
type UnsupportedLocationSchemeInstance ¶
type UnsupportedLocationSchemeInstance struct { }
func (*UnsupportedLocationSchemeInstance) CanonicalForm ¶
func (ls *UnsupportedLocationSchemeInstance) CanonicalForm() *asn1.External
func (*UnsupportedLocationSchemeInstance) Equal ¶
func (ls *UnsupportedLocationSchemeInstance) Equal(rhs LocationSchemeInstance) bool
func (*UnsupportedLocationSchemeInstance) IdHash ¶
func (ls *UnsupportedLocationSchemeInstance) IdHash() [32]byte
func (*UnsupportedLocationSchemeInstance) Supported ¶
func (ls *UnsupportedLocationSchemeInstance) Supported() bool
type UnsupportedOuterSignatureBindingScheme ¶
type UnsupportedOuterSignatureBindingScheme struct { }
func (*UnsupportedOuterSignatureBindingScheme) Supported ¶
func (sbs *UnsupportedOuterSignatureBindingScheme) Supported() bool
func (*UnsupportedOuterSignatureBindingScheme) VerifyBinding ¶
func (sbs *UnsupportedOuterSignatureBindingScheme) VerifyBinding(ctx context.Context, att *Attestation, attester *Entity) wve.WVE
type UnsupportedOuterSignatureScheme ¶
type UnsupportedOuterSignatureScheme struct { }
func (*UnsupportedOuterSignatureScheme) Supported ¶
func (os *UnsupportedOuterSignatureScheme) Supported() bool
func (*UnsupportedOuterSignatureScheme) VerifySignature ¶
func (os *UnsupportedOuterSignatureScheme) VerifySignature(ctx context.Context, canonicalForm *serdes.WaveAttestation) wve.WVE
type UnsupportedPolicySchemeInstance ¶
func (*UnsupportedPolicySchemeInstance) CanonicalForm ¶
func (ps *UnsupportedPolicySchemeInstance) CanonicalForm() *asn1.External
func (*UnsupportedPolicySchemeInstance) CheckValid ¶ added in v0.2.1
func (ps *UnsupportedPolicySchemeInstance) CheckValid() error
func (*UnsupportedPolicySchemeInstance) Supported ¶
func (ps *UnsupportedPolicySchemeInstance) Supported() bool
func (*UnsupportedPolicySchemeInstance) WR1DomainEntity ¶
func (ps *UnsupportedPolicySchemeInstance) WR1DomainEntity() HashSchemeInstance
func (*UnsupportedPolicySchemeInstance) WR1PartitionPrefix ¶ added in v0.2.0
func (ps *UnsupportedPolicySchemeInstance) WR1PartitionPrefix(bool) [][]byte
type UnsupportedRevocationSchemeInstance ¶ added in v0.2.1
type UnsupportedRevocationSchemeInstance struct {
SerdesForm *serdes.RevocationOption
}
func (*UnsupportedRevocationSchemeInstance) CanonicalForm ¶ added in v0.2.1
func (rs *UnsupportedRevocationSchemeInstance) CanonicalForm() serdes.RevocationOption
func (*UnsupportedRevocationSchemeInstance) Critical ¶ added in v0.2.1
func (rs *UnsupportedRevocationSchemeInstance) Critical() bool
func (*UnsupportedRevocationSchemeInstance) Id ¶ added in v0.2.1
func (rs *UnsupportedRevocationSchemeInstance) Id() string
func (*UnsupportedRevocationSchemeInstance) IsRevoked ¶ added in v0.2.1
func (rs *UnsupportedRevocationSchemeInstance) IsRevoked(ctx context.Context, s StorageInterface) (bool, wve.WVE)
func (*UnsupportedRevocationSchemeInstance) Supported ¶ added in v0.2.1
func (rs *UnsupportedRevocationSchemeInstance) Supported() bool
type UnsupportedSecretKeyScheme ¶
type UnsupportedSecretKeyScheme struct {
SerdesForm *serdes.EntityKeyringEntry
}
func (*UnsupportedSecretKeyScheme) CanonicalForm ¶
func (k *UnsupportedSecretKeyScheme) CanonicalForm() *serdes.EntityPublicKey
func (*UnsupportedSecretKeyScheme) DecryptMessage ¶
func (*UnsupportedSecretKeyScheme) DecryptMessageAsChild ¶
func (*UnsupportedSecretKeyScheme) Equal ¶
func (k *UnsupportedSecretKeyScheme) Equal(rhs EntitySecretKeySchemeInstance) bool
func (*UnsupportedSecretKeyScheme) GenerateChildSecretKey ¶
func (k *UnsupportedSecretKeyScheme) GenerateChildSecretKey(ctx context.Context, identity interface{}, delegable bool) (EntitySecretKeySchemeInstance, error)
func (*UnsupportedSecretKeyScheme) HasCapability ¶
func (ek *UnsupportedSecretKeyScheme) HasCapability(c Capability) bool
func (*UnsupportedSecretKeyScheme) Public ¶
func (k *UnsupportedSecretKeyScheme) Public() EntityKeySchemeInstance
func (*UnsupportedSecretKeyScheme) SecretCanonicalForm ¶
func (k *UnsupportedSecretKeyScheme) SecretCanonicalForm() *serdes.EntityKeyringEntry
func (*UnsupportedSecretKeyScheme) SignAttestation ¶
func (*UnsupportedSecretKeyScheme) SignCertify ¶
func (*UnsupportedSecretKeyScheme) SignMessage ¶
func (*UnsupportedSecretKeyScheme) Supported ¶
func (ek *UnsupportedSecretKeyScheme) Supported() bool
type VerificationContext ¶ added in v0.2.1
type VerificationContext interface { EntityByHashLoc(ctx context.Context, h HashSchemeInstance, loc LocationSchemeInstance) (*Entity, wve.WVE) AttestationByHashLoc(ctx context.Context, h HashSchemeInstance, loc LocationSchemeInstance) (*Attestation, wve.WVE) }
type WR1BodyEncryptionContext ¶ added in v0.2.1
type WR1BodyEncryptionContext interface { BodyEncryptionContext WR1OAQUEKeysForContent(ctx context.Context, dst HashSchemeInstance, delegable bool, slots [][]byte, onResult func(k SlottedSecretKey) bool) error WR1IBEKeysForPartitionLabel(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error WR1EntityFromHash(ctx context.Context, hash HashSchemeInstance, loc LocationSchemeInstance) (*Entity, error) }
type WR1BodyScheme ¶
type WR1BodyScheme struct { }
func (*WR1BodyScheme) DecryptBody ¶
func (w *WR1BodyScheme) DecryptBody(ctx context.Context, dc BodyDecryptionContext, canonicalForm *serdes.WaveAttestation, inextra interface{}) (decodedForm *serdes.AttestationBody, extra interface{}, err error)
func (*WR1BodyScheme) EncryptBody ¶
func (w *WR1BodyScheme) EncryptBody(ctx context.Context, ecp BodyEncryptionContext, attester *EntitySecrets, subject *Entity, intermediateForm *serdes.WaveAttestation, policy PolicySchemeInstance) (encryptedForm *serdes.WaveAttestation, extra interface{}, err error)
func (*WR1BodyScheme) Supported ¶
func (w *WR1BodyScheme) Supported() bool
type WR1DecryptionContext ¶
type WR1DecryptionContext interface { WR1VerifierBodyKey(ctx context.Context) []byte WR1ProverBodyKey(ctx context.Context) []byte //WR1EntityFromHash(ctx context.Context, hash HashSchemeInstance, loc LocationSchemeInstance) (*Entity, error) WR1OAQUEKeysForContent(ctx context.Context, dst HashSchemeInstance, delegable bool, slots [][]byte, onResult func(k SlottedSecretKey) bool) error WR1IBEKeysForPartitionLabel(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error WR1DirectDecryptionKey(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error WR1AttesterDirectDecryptionKey(ctx context.Context, onResult func(k EntitySecretKeySchemeInstance) bool) error }
wr1
type WR1Extra ¶
type WR1Extra struct { Partition [][]byte VerifierBodyKey []byte ProverBodyKey []byte EnvelopeKey []byte //For NameDecl only Namespace HashSchemeInstance NamespaceLocation LocationSchemeInstance }
type WR1MessageDecryptionContext ¶ added in v0.2.0
type WR1MessageDecryptionContext interface { WR1OAQUEKeysForContent(ctx context.Context, dst HashSchemeInstance, delegable bool, slots [][]byte, onResult func(k SlottedSecretKey) bool) error WR1IBEKeysForPartitionLabel(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error WR1DirectDecryptionKey(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error }
type WR1NameDeclarationDecryptionContext ¶ added in v0.2.0
type WR1NameDeclarationDecryptionContext interface { EntityByHashLoc(ctx context.Context, h HashSchemeInstance, loc LocationSchemeInstance) (*Entity, wve.WVE) WR1OAQUEKeysForContent(ctx context.Context, dst HashSchemeInstance, delegable bool, slots [][]byte, onResult func(k SlottedSecretKey) bool) error WR1IBEKeysForPartitionLabel(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error WR1DirectDecryptionKey(ctx context.Context, dst HashSchemeInstance, onResult func(k EntitySecretKeySchemeInstance) bool) error }
type WaveState ¶
type WaveState interface { //Set the last checked time for the given revocation option id AddRevocationCheck(ctx context.Context, id string, ts int64) error //Get the last checked time for the given revocation id, if available GetRevocationCheck(ctx context.Context, id string) (*int64, error) //This is idempotent, an entity in any state other than unknown will //be ignored by this function MoveEntityInterestingP(ctx context.Context, ent *Entity, loc LocationSchemeInstance) error //This does not return revoked or expired entities, even though the //function above considers them "interesting" GetInterestingEntitiesP(ctx context.Context) chan InterestingEntityResult IsEntityInterestingP(ctx context.Context, hash HashSchemeInstance) (bool, error) //TODO ensure channel stops if context is cancelled LocationsForEntity(ctx context.Context, ent *Entity) ([]LocationSchemeInstance, error) //This is a key that decrypts the partition label (WR1 uses IBE) GetPartitionLabelKeyP(ctx context.Context, subject HashSchemeInstance, index int) (EntitySecretKeySchemeInstance, error) InsertPartitionLabelKeyP(ctx context.Context, attester HashSchemeInstance, key EntitySecretKeySchemeInstance) (new bool, err error) //Return true from callback to continue iterating WR1KeysForP(ctx context.Context, subject HashSchemeInstance, slots [][]byte, onResult func(k SlottedSecretKey) bool) error //TODO this must be idempotenty, like don't add in a secret if we have a more //powerful one already InsertWR1KeysForP(ctx context.Context, attester HashSchemeInstance, k SlottedSecretKey) error MoveAttestationPendingP(ctx context.Context, at *Attestation, labelKeyIndex int) error //Assume dot already inserted into pending, but update the labelKeyIndex UpdateAttestationPendingP(ctx context.Context, at *Attestation, labelKeyIndex int) error MoveAttestationLabelledP(ctx context.Context, at *Attestation) error MoveAttestationActiveP(ctx context.Context, at *Attestation) error MoveAttestationExpiredP(ctx context.Context, at *Attestation) error MoveAttestationEntRevokedP(ctx context.Context, at *Attestation) error MoveAttestationMalformedP(ctx context.Context, HashSchemeInstance HashSchemeInstance) error GetLabelledAttestationsP(ctx context.Context, subject HashSchemeInstance, partition [][]byte) chan PendingAttestation //If possible, only return pending dots with a secret index less than siLT GetPendingAttestationsP(ctx context.Context, subject HashSchemeInstance, lkiLT int) chan PendingAttestation //Like attestations, but for namedecl MoveNameDeclarationPendingP(ctx context.Context, nd *NameDeclaration, labelKeyIndex int) error //Assume dot already inserted into pending, but update the labelKeyIndex UpdateNameDeclarationPendingP(ctx context.Context, nd *NameDeclaration, labelKeyIndex int) error MoveNameDeclarationLabelledP(ctx context.Context, nd *NameDeclaration) error MoveNameDeclarationActiveP(ctx context.Context, nd *NameDeclaration) error MoveNameDeclarationExpiredP(ctx context.Context, nd *NameDeclaration) error MoveNameDeclarationMalformedP(ctx context.Context, HashSchemeInstance HashSchemeInstance) error GetLabelledNameDeclarationsP(ctx context.Context, namespace HashSchemeInstance, partition [][]byte) chan PendingNameDeclaration //If possible, only return pending dots with a secret index less than siLT GetPendingNameDeclarationP(ctx context.Context, namespace HashSchemeInstance, lkiLT int) chan PendingNameDeclaration MoveNameDeclarationRevokedP(ctx context.Context, nd *NameDeclaration) error //Interact with active namedecls //Results should be sorted with the latest start date appearing first ResolveNameDeclarationsP(ctx context.Context, attester HashSchemeInstance, name string) chan ResolveResult ResolveReverseName(ctx context.Context, hi HashSchemeInstance) (name string, err error) InsertReverseName(ctx context.Context, name string, hi HashSchemeInstance) (err error) GetNameDeclarationP(ctx context.Context, hi HashSchemeInstance) (nd *NameDeclaration, err error) GetEntityPartitionLabelKeyIndexP(ctx context.Context, entHashSchemeInstance HashSchemeInstance) (bool, int, error) GetAttestationP(ctx context.Context, HashSchemeInstance HashSchemeInstance) (at *Attestation, s *State, err error) GetActiveAttestationsFromP(ctx context.Context, attester HashSchemeInstance, filter *LookupFromFilter) chan LookupFromResult GetActiveAttestationsToP(ctx context.Context, subject HashSchemeInstance, filter *LookupFromFilter) chan LookupFromResult GetEntityQueueTokenP(ctx context.Context, loc LocationSchemeInstance, hsh HashSchemeInstance) (okay bool, token string, err error) SetEntityQueueTokenP(ctx context.Context, loc LocationSchemeInstance, hsh HashSchemeInstance, token string) error //Global (non perspective) functions MoveEntityRevokedG(ctx context.Context, ent *Entity) error MoveEntityExpiredG(ctx context.Context, ent *Entity) error MoveAttestationRevokedG(ctx context.Context, at *Attestation) error //This only returns entities we happen to have because they were interesting //to someone, so the caller must handle a nil,nil result and go hit the chain GetEntityByHashSchemeInstanceP(ctx context.Context, hsh HashSchemeInstance) (*Entity, *State, error) GetEntityByHashSchemeInstanceG(ctx context.Context, hsh HashSchemeInstance) (*Entity, error) InsertGlobalEntity(ctx context.Context, e *Entity) error }