fmgp.did

package fmgp.did

Members list

Packages

package fmgp.did.comm
package fmgp.did.method

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
Known subtypes
trait AgentDIDPeer
trait DID

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait DIDPeer
class DIDPeer0
class DIDPeer1
class DIDPeer2
class DIDWeb
trait DIDDocument
Show all
object DID

Attributes

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

Value parameters

accept

OPTIONAL. An array of media types in the order of preference for sending a message to the endpoint. These identify a profile of DIDComm Messaging that the endpoint supports. If accept is not specified, the sender uses its preferred choice for sending a message to the endpoint. Please see Negotiating Compatibility for details.

routingKeys

OPTIONAL. An ordered array of strings referencing keys to be used when preparing the message for transmission as specified in Sender Process to Enable Forwarding, above.

uri

MUST contain a URI for a transport specified in the [transports] section of this spec, or a URI from Alternative Endpoints. It MAY be desirable to constraint endpoints from the [transports] section so that they are used only for the reception of DIDComm messages. This can be particularly helpful in cases where auto-detecting message types is inefficient or undesirable.

Attributes

See also
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
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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
sealed 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
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
DIDService.type

Attributes

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

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"]}
Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
trait DIDService
class Object
trait Matchable
class Any
Show all

Attributes

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

Attributes

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

Attributes

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

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

Attributes

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

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
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

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

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
trait JSONLD

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
class SingleJSONLD

Attributes

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

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
sealed trait ResolverError

Attributes

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

Attributes

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

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
object SetU

To use the decoder and encoder: import fmgp.did.SetU.given

To use the decoder and encoder: import fmgp.did.SetU.given

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

Supertypes
trait Serializable
trait Product
trait Equals
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

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

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

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

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

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 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]

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 | Obj | Arr
type ServiceEndpointNoStr = Obj | Arr
type SetU[A] = A | Seq[A]
type URI = String

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