fmgp.did

package fmgp.did

Members list

Packages

package fmgp.did.comm

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

Supertypes
class Object
trait Matchable
class Any
trait DID

Attributes

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

Attributes

Companion
trait
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
Supertypes
trait DID
class Object
trait Matchable
class Any
Known subtypes
object DIDDocument

Attributes

Companion
trait
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
Supertypes
trait Serializable
trait Product
trait Equals
trait DIDDocument
trait DID
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
trait DIDService

DIDService

Value parameters

`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.

Attributes

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

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
DIDService.type

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

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

Attributes

Supertypes
trait DIDService
class Object
trait Matchable
class Any
Known subtypes

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

Attributes

Supertypes
trait DIDService
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"]}
Supertypes
trait DIDService
class Object
trait Matchable
class Any
Known subtypes
final case class DIDServiceGeneric(id: Required[URI], `type`: Required[SetU[String]], serviceEndpoint: Required[ServiceEndpoint], routingKeys: Option[Set[String]], accept: Option[Set[String]]) extends DIDService, DIDServiceDIDCommMessaging, DIDServiceDIDLinkedDomains, DIDServiceDecentralizedWebNode

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait DIDService
class Object
trait Matchable
class Any
Show all
object DIDSubject

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
DIDSubject.type
object DIDSubjectQ

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object DIDURL

Attributes

Companion
class
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
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
trait JSONLD

Attributes

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

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait Resolver
class Object
trait Matchable
class Any
Show all
trait Resolver

Attributes

See also
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object SetU

Attributes

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

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
trait JSONLD
class Object
trait Matchable
class Any
Show all

Attributes

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

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion
trait
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
case class VerificationMethodEmbeddedJWK(id: Required[DIDURLSyntax], controller: Required[DIDController], `type`: Required[String], publicKeyJwk: Required[PublicKey]) extends VerificationMethodEmbedded

VerificationMethodEmbeddedJWK

VerificationMethodEmbeddedJWK

Value parameters

publicKeyJwk

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

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class VerificationMethodEmbeddedMultibase(id: Required[DIDURLSyntax], controller: Required[DIDController], `type`: Required[String], publicKeyMultibase: Required[MULTIBASE]) extends VerificationMethodEmbedded

VerificationMethodEmbeddedMultibase

VerificationMethodEmbeddedMultibase

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class VerificationMethodReferenced(value: String) extends VerificationMethod

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class VerificationMethodReferencedWithKey[K <: OKP_EC_Key](kid: String, key: K)

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

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

Types

type Authentication = Option[Set[VerificationMethod]]
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 DIDSyntax = String
type DIDURI = DIDURL

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

type DIDURLSyntax = String
type Fragment = String

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    = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
type MULTIBASE = String

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

type NotRequired[A] = Option[A]
type PathAbempty = String

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