fmgp.did

package fmgp.did

Members list

Concise view

Type members

Classlikes

trait Agent

Agent have is a DID

Agent have is a DID

  • has keys
  • can have encryption preferences
  • can have resolver preferences

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
trait DID

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object DID

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
DID.type
trait DIDDocument extends DID

DIDDocument

DIDDocument

https://w3c.github.io/did-core/#did-document-properties

https://github.com/w3c/?q=did&type=all&language=&sort=

  • authentication -> challenge-response protocol
  • assertionMethod -> Issuer key (for purposes of issuing a Verifiable Credential)
  • keyAgreement -> tablishing a secure communication channel with the recipient
  • capabilityInvocation -> Master key (for authorization to update the DID Document.)
  • capabilityDelegation -> ...

Attributes

Companion:
object
Graph
Supertypes
trait DID
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
case class DIDDocumentClass(id: Required[DIDSubject], alsoKnownAs: Option[Set[String]], controller: Option[Either[String, Set[String]]], verificationMethod: Option[Set[VerificationMethod]], authentication: Option[SetU[VerificationMethod]], assertionMethod: Option[SetU[VerificationMethod]], keyAgreement: Option[Set[VerificationMethod]], capabilityInvocation: Option[SetU[VerificationMethod]], capabilityDelegation: Option[SetU[VerificationMethod]], service: Option[Set[DIDService]]) extends DIDDocument

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait DID
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

DIDService

Attributes

`type`

https://www.w3.org/TR/did-spec-registries/#service-types

serviceeEndpoint

A string that conforms to the rules of [RFC3986] for URIs, a map, or a set composed of a one or more strings that conform to the rules of [RFC3986] for URIs and/or maps.

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object DIDService

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

https://www.w3.org/TR/did-spec-registries/#didcommmessaging

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

https://www.w3.org/TR/did-spec-registries/#linkeddomains

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

DecentralizedWebNode is a type of DIDService

DecentralizedWebNode is a type of DIDService

Attributes

See also:

https://identity.foundation/decentralized-web-node/spec/#service-endpoints

"serviceEndpoint": {"nodes": ["https://dwn.example.com", "https://example.org/dwn"]}
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object DIDSubject

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object DIDURL

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
DIDURL.type
case class DIDURL(namespace: String, didSyntax: DIDSyntax, path: PathAbempty, query: Query, fragment: Fragment)

DIDURL

DIDURL

did-url = did path-abempty [ "?" query ] [ "#" fragment ]

Attributes

See also:
Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Self type
trait JSONLD

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
case class MultiResolver(firstResolver: Resolver, remainResolvers: Resolver*) extends Resolver

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Resolver
class Object
trait Matchable
class Any
trait Resolver

Attributes

See also:
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
object SetU

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
SetU.type
case class SingleJSONLD(@context: String) extends JSONLD

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait JSONLD
class Object
trait Matchable
class Any
sealed trait VerificationMethod

VerificationMethod

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type

VerificationMethodEmbeddedJWK

VerificationMethodEmbeddedJWK

Attributes

publicKeyJwk

is a JSON Web Key (JWK) - RFC7517 - https://www.rfc-editor.org/rfc/rfc7517

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

VerificationMethodEmbeddedMultibase

VerificationMethodEmbeddedMultibase

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type

Types

opaque type DIDSubject

The entity identified by a DID and described by a DID document. Anything can be a DID subject: person, group, organization, physical thing, digital thing, logical thing, etc.

The entity identified by a DID and described by a DID document. Anything can be a DID subject: person, group, organization, physical thing, digital thing, logical thing, etc.

NOTE URL_Path is path of the DIDSubject!

TODO deprecated in favor of FROMTO

Attributes

opaque type DIDSubjectQ

TODO rename to DIDSubjectEXTRA or REMOVE

TODO rename to DIDSubjectEXTRA or REMOVE

DIDSubjectQ is a DIDSubject with Path and Query parameter (that can be missing)

NOTE if missing the behavior of using a DIDSubjectQ MUST be the same as using a DIDSubject NOTE that DIDSubject can be implicitly converted into a DIDSubjectQ

NOTE URL_Path is path of the DIDSubject!

NOTE: override the equals method is F*** hard that to do it right, so left no not shot ourself on the foot!!

override def equals(that: Any): Boolean = that match {
 case that: DIDSubjectWithQuery =>
   that.canEqual(this) && this.subject.hashCode == this.subject.hashCode
 case _ => false
}

Attributes

type DIDURI = DIDURL

for https://identity.foundation/didcomm-messaging/spec/#construction

Attributes

See also:

https://www.rfc-editor.org/rfc/rfc3986#section-3.5

query       = *( pchar / "/" / "?" )
pchar       = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~""
pct-encoded = "%" HEXDIG HEXDIG
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="

MULTIBASE encoded public key.- https://datatracker.ietf.org/doc/html/draft-multiformats-multibase-03

type NotRequired[A] = Option[A]

Attributes

See also:

https://www.rfc-editor.org/rfc/rfc3986#section-3.3

path          = path-abempty    ; begins with "/" or is empty
             / path-absolute   ; begins with "/" but not "//"
             / path-noscheme   ; begins with a non-colon segment
             / path-rootless   ; begins with a segment
             / path-empty      ; zero characters
path-abempty  = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty    = 0<pchar>
type Query = String

Attributes

See also:

https://www.rfc-editor.org/rfc/rfc3986#section-3.4

query       = *( pchar / "/" / "?" )
pchar       = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~""
pct-encoded = "%" HEXDIG HEXDIG
sub-delims    = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
type Required[A] = A
type ServiceEndpoint = Str | Arr | Obj
type SetU[A] = A | Seq[A]
type URI = String

RFC3986 - https://www.rfc-editor.org/rfc/rfc3986