idnits 2.17.1 draft-hallambaker-mesh-schema-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The abstract seems to contain references ([1]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (April 4, 2019) is 1849 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Looks like a reference, but probably isn't: '1' on line 915 Summary: 1 error (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group P. Hallam-Baker 3 Internet-Draft April 4, 2019 4 Intended status: Informational 5 Expires: October 6, 2019 7 Mathematical Mesh Part IV: Schema Reference 8 draft-hallambaker-mesh-schema-00 10 Abstract 12 The Mathematical Mesh 'The Mesh' is an end-to-end secure 13 infrastructure that facilitates the exchange of configuration and 14 credential data between multiple user devices. The core protocols of 15 the Mesh are described with examples of common use cases and 16 reference data. 18 This document is also available online at 19 http://mathmesh.com/Documents/draft-hallambaker-mesh-schema.html [1] 20 . 22 Status of This Memo 24 This Internet-Draft is submitted in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF). Note that other groups may also distribute 29 working documents as Internet-Drafts. The list of current Internet- 30 Drafts is at https://datatracker.ietf.org/drafts/current/. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 This Internet-Draft will expire on October 6, 2019. 39 Copyright Notice 41 Copyright (c) 2019 IETF Trust and the persons identified as the 42 document authors. All rights reserved. 44 This document is subject to BCP 78 and the IETF Trust's Legal 45 Provisions Relating to IETF Documents 46 (https://trustee.ietf.org/license-info) in effect on the date of 47 publication of this document. Please review these documents 48 carefully, as they describe your rights and restrictions with respect 49 to this document. Code Components extracted from this document must 50 include Simplified BSD License text as described in Section 4.e of 51 the Trust Legal Provisions and are provided without warranty as 52 described in the Simplified BSD License. 54 Table of Contents 56 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 57 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 58 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4 59 2.2. Defined Terms . . . . . . . . . . . . . . . . . . . . . . 4 60 2.3. Related Specifications . . . . . . . . . . . . . . . . . 4 61 2.4. Implementation Status . . . . . . . . . . . . . . . . . . 5 62 3. Mesh Profiles . . . . . . . . . . . . . . . . . . . . . . . . 5 63 3.1. Master Profile . . . . . . . . . . . . . . . . . . . . . 5 64 3.2. Device Profile . . . . . . . . . . . . . . . . . . . . . 5 65 3.3. Mesh Profile . . . . . . . . . . . . . . . . . . . . . . 5 66 4. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 5 67 4.1. Data Model . . . . . . . . . . . . . . . . . . . . . . . 5 68 4.1.1. Objects . . . . . . . . . . . . . . . . . . . . . . . 5 69 4.1.2. Catalogs . . . . . . . . . . . . . . . . . . . . . . 6 70 4.1.3. Spools . . . . . . . . . . . . . . . . . . . . . . . 6 71 5. Catalog Entries . . . . . . . . . . . . . . . . . . . . . . . 6 72 5.1. Device . . . . . . . . . . . . . . . . . . . . . . . . . 6 73 5.2. Contact . . . . . . . . . . . . . . . . . . . . . . . . . 6 74 5.3. Credential . . . . . . . . . . . . . . . . . . . . . . . 6 75 5.4. Network . . . . . . . . . . . . . . . . . . . . . . . . . 6 76 5.5. Bookmark . . . . . . . . . . . . . . . . . . . . . . . . 6 77 5.6. Task . . . . . . . . . . . . . . . . . . . . . . . . . . 6 78 5.7. Application . . . . . . . . . . . . . . . . . . . . . . . 6 79 5.7.1. SSH . . . . . . . . . . . . . . . . . . . . . . . . . 6 80 5.7.2. Mail . . . . . . . . . . . . . . . . . . . . . . . . 7 81 6. Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 7 82 6.1. Completion . . . . . . . . . . . . . . . . . . . . . . . 7 83 6.2. Connection . . . . . . . . . . . . . . . . . . . . . . . 7 84 6.3. Contact . . . . . . . . . . . . . . . . . . . . . . . . . 7 85 6.4. Confirmation . . . . . . . . . . . . . . . . . . . . . . 7 86 7. Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 87 7.1. Shared Classes . . . . . . . . . . . . . . . . . . . . . 7 88 7.1.1. Structure: PublicKey . . . . . . . . . . . . . . . . 7 89 7.2. Mesh Profile Objects . . . . . . . . . . . . . . . . . . 8 90 7.2.1. Structure: Profile . . . . . . . . . . . . . . . . . 8 91 7.2.2. Keyset Classes . . . . . . . . . . . . . . . . . . . 8 92 7.2.3. Structure: EscrowedKeySet . . . . . . . . . . . . . . 8 93 7.2.4. Profile Classes . . . . . . . . . . . . . . . . . . . 8 94 7.2.5. Structure: ProfileMaster . . . . . . . . . . . . . . 8 95 7.2.6. Structure: ProfileDevice . . . . . . . . . . . . . . 9 96 7.2.7. Structure: ProfileApplication . . . . . . . . . . . . 9 97 7.2.8. Structure: ProfileMesh . . . . . . . . . . . . . . . 9 98 7.2.9. Structure: ProfileMeshDevicePublic . . . . . . . . . 10 99 7.2.10. Structure: ProfileMeshDevicePrivate . . . . . . . . . 10 100 7.2.11. Structure: DeviceRecryptionKey . . . . . . . . . . . 10 101 7.3. Common Structures . . . . . . . . . . . . . . . . . . . . 10 102 7.3.1. Structure: Permission . . . . . . . . . . . . . . . . 10 103 7.3.2. Structure: Contact . . . . . . . . . . . . . . . . . 11 104 7.3.3. Structure: Role . . . . . . . . . . . . . . . . . . . 12 105 7.3.4. Structure: Address . . . . . . . . . . . . . . . . . 12 106 7.3.5. Structure: Location . . . . . . . . . . . . . . . . . 12 107 7.3.6. Structure: Reference . . . . . . . . . . . . . . . . 13 108 7.4. Catalog Entries . . . . . . . . . . . . . . . . . . . . . 13 109 7.4.1. Structure: CatalogEntry . . . . . . . . . . . . . . . 13 110 7.4.2. Structure: CatalogEntryDevice . . . . . . . . . . . . 13 111 7.4.3. Structure: CatalogEntryCredential . . . . . . . . . . 13 112 7.4.4. Structure: CatalogEntryNetwork . . . . . . . . . . . 14 113 7.4.5. Structure: CatalogEntryContact . . . . . . . . . . . 14 114 7.4.6. Structure: CatalogEntryContactRecryption . . . . . . 15 115 7.4.7. Structure: CatalogEntryBookmark . . . . . . . . . . . 15 116 7.4.8. Structure: CatalogEntryTask . . . . . . . . . . . . . 15 117 7.4.9. Structure: Task . . . . . . . . . . . . . . . . . . . 15 118 7.4.10. Structure: CatalogEntryApplication . . . . . . . . . 16 119 7.4.11. Structure: CatalogEntryApplicationEntry . . . . . . . 17 120 7.4.12. Structure: CatalogEntryApplicationRecryption . . . . 17 121 7.4.13. Structure: CatalogEntryApplicationSSH . . . . . . . . 17 122 7.4.14. Structure: CatalogEntryApplicationMail . . . . . . . 17 123 7.4.15. Structure: CatalogEntryApplicationNetwork . . . . . . 17 124 7.5. Messages . . . . . . . . . . . . . . . . . . . . . . . . 17 125 7.5.1. Structure: MeshMessage . . . . . . . . . . . . . . . 17 126 7.5.2. Structure: MeshMessageComplete . . . . . . . . . . . 17 127 7.5.3. Structure: MessageConnectionRequest . . . . . . . . . 18 128 7.5.4. Structure: MessageConnectionPIN . . . . . . . . . . . 18 129 7.5.5. Structure: MessageContactRequest . . . . . . . . . . 19 130 7.5.6. Structure: MessageConfirmationRequest . . . . . . . . 19 131 7.5.7. Structure: MessageConfirmationResponse . . . . . . . 19 132 7.5.8. Structure: MessageTaskRequest . . . . . . . . . . . . 19 133 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 134 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 135 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 20 136 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 137 11.1. Normative References . . . . . . . . . . . . . . . . . . 20 138 11.2. Informative References . . . . . . . . . . . . . . . . . 20 139 11.3. URIs . . . . . . . . . . . . . . . . . . . . . . . . . . 20 140 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 142 1. Introduction 144 This document describes the data structures of the Mathematical Mesh 145 with illustrative examples. For an overview of the Mesh objectives 146 and architecture, consult the accompanying Architecture Guide 147 [draft-hallambaker-mesh-architecture] . For information on the 148 implementation of the Mesh Service protocol, consult the accompanying 149 Protocol Reference [draft-hallambaker-mesh-protocol] 151 This document has two main sections. The first section presents 152 examples of the Mesh profile, catalog entry and messages in use. The 153 second section contains the schema reference. All the material in 154 both sections is generated from the Mesh reference implementation 155 [draft-hallambaker-mesh-developer] . 157 Although some of the services described in this document could be 158 used to replace existing Internet protocols including FTP and SMTP, 159 the principal value of any communication protocol lies in the size of 160 the audience it allows them to communicate with. Thus, while the 161 Mesh Messaging service is designed to support efficient and reliable 162 transfer of messages ranging in size from a few bytes to multiple 163 terabytes, the near-term applications of these services will be to 164 applications that are not adequately supported by existing protocols 165 if at all. 167 2. Definitions 169 This section presents the related specifications and standard, the 170 terms that are used as terms of art within the documents and the 171 terms used as requirements language. 173 2.1. Requirements Language 175 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 176 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 177 document are to be interpreted as described in [RFC2119] . 179 2.2. Defined Terms 181 The terms of art used in this document are described in the Mesh 182 Architecture Guide [draft-hallambaker-mesh-architecture] . 184 2.3. Related Specifications 186 The architecture of the Mathematical Mesh is described in the Mesh 187 Architecture Guide [draft-hallambaker-mesh-architecture] . The Mesh 188 documentation set and related specifications are described in this 189 document. 191 2.4. Implementation Status 193 The implementation status of the reference code base is described in 194 the companion document [draft-hallambaker-mesh-developer] . 196 3. Mesh Profiles 198 Mesh profiles are signed assertions that describe a set of 199 cryptographic credentials belonging to a user, a device or an 200 account. 202 Profiles perform a similar role to X.509v3 certificates but with 203 important differences: 205 o Profiles describe credentials, they do not make identity 206 statements 208 o Profiles do not expire, there is therefore no need to support 209 renewal processing. 211 o Profiles may be modified over time, the current and past status of 212 a profile being recorded in an append only log. 214 3.1. Master Profile 216 A Mesh master profile provides the root of trust for a mesh user. 218 Unless exceptional circumstances require, a 220 ```` Example SchemaMaster ```` 222 3.2. Device Profile 224 ```` Example SchemaDevice ```` 226 3.3. Mesh Profile 228 ```` Example SchemaMesh ```` 230 4. Data Model 232 4.1. Data Model 234 4.1.1. Objects 236 Unique identifier 238 Append only log 239 Log can be purged. 241 4.1.2. Catalogs 243 Set of entries 245 Entry state machine (Add-Update*-Delete)* 247 4.1.3. Spools 249 Queue of messages 251 Message state machine (Post-(Read-Unread)*-Delete) 253 5. Catalog Entries 255 5.1. Device 257 ```` Example SchemaEntryDevice ```` 259 5.2. Contact 261 ```` Example SchemaEntryContact ```` 263 5.3. Credential 265 ```` Example SchemaEntryCredential ```` 267 5.4. Network 269 ```` Example SchemaEntryNetwork ```` 271 5.5. Bookmark 273 ```` Example SchemaEntryBookmark ```` 275 5.6. Task 277 ```` Example SchemaEntryTask ```` 279 5.7. Application 281 5.7.1. SSH 283 ```` Example SchemaEntrySSH ```` 285 5.7.2. Mail 287 ```` Example SchemaEntryMail ```` 289 6. Messages 291 All communications between Mesh accounts takes the form of a Mesh 292 Message. 294 6.1. Completion 296 ```` Example SchemaMessageCompletion ```` 298 6.2. Connection 300 ```` Example SchemaMessageConnection ```` 302 6.3. Contact 304 ```` Example SchemaMessageContact ```` 306 6.4. Confirmation 308 ```` Example SchemaMessageConfirmation ```` 310 7. Schema 312 7.1. Shared Classes 314 The following classes are used as common elements in Mesh profile 315 specifications.a 317 7.1.1. Structure: PublicKey 319 The PublicKey class is used to describe public key pairs and trust 320 assertions associated with a public key. 322 UDF: String (Optional) UDF fingerprint of the public key parameters/ 324 X509Certificate: Binary (Optional) List of X.509 Certificates 326 X509Chain: Binary [0..Many] X.509 Certificate chain. 328 X509CSR: Binary (Optional) X.509 Certificate Signing Request. 330 7.2. Mesh Profile Objects 332 Base class for all Mesh Profile objects. 334 7.2.1. Structure: Profile 336 Parent class from which all profile types are derived 338 Names: String [0..Many] Fingerprints of index terms for profile 339 retrieval. The use of the fingerprint of the name rather than the 340 name itself is a precaution against enumeration attacks and other 341 forms of abuse. 343 Updated: DateTime (Optional) The time instant the profile was last 344 modified. 346 NotaryToken: String (Optional) A Uniform Notary Token providing 347 evidence that a signature was performed after the notary token was 348 created. 350 7.2.2. Keyset Classes 352 7.2.3. Structure: EscrowedKeySet 354 A set of escrowed keys. 356 [No fields] 358 7.2.4. Profile Classes 360 7.2.5. Structure: ProfileMaster 362 Inherits: Profile 364 Describes the long term parameters associated with a personal 365 profile. 367 This profile MUST be signed by 369 MasterSignatureKey: PublicKey (Optional) The root of trust for the 370 Personal PKI, the public key of the PMSK is presented as a self- 371 signed X.509v3 certificate with Certificate Signing use enabled. 372 The PMSK is used to sign certificates for the PMEK, POSK and PKEK 373 keys. 375 MasterEscrowKeys: PublicKey [0..Many] A Personal Profile MAY contain 376 one or more PMEK keys to enable escrow of private keys used for 377 stored data. 379 OnlineSignatureKeys: PublicKey [0..Many] A Personal profile contains 380 at least one OSK which is used to sign device administration 381 application profiles. 383 7.2.6. Structure: ProfileDevice 385 Inherits: Profile 387 Describes a mesh device. 389 This profile MUST be signed by the DeviceSignatureKey 391 Description: String (Optional) Description of the device 393 DeviceSignatureKey: PublicKey (Optional) Key used to sign 394 certificates for the DAK and DEK. The fingerprint of the DSK is 395 the UniqueID of the Device Profile 397 DeviceAuthenticationKey: PublicKey (Optional) Key used to 398 authenticate requests made by the device. 400 DeviceEncryptionKey: PublicKey (Optional) Key used to pass encrypted 401 data to the device such as a DeviceUseEntry 403 7.2.7. Structure: ProfileApplication 405 Inherits: Profile 407 Contains the public description of a Mesh application. 409 [No fields] 411 7.2.8. Structure: ProfileMesh 413 Inherits: ProfileApplication 415 Contains the binding of a device to a MasterProfile. Each device has 416 a separate profile which MUST be signed by an OnlineSignatureKey 418 Account: String (Optional) Account address. 420 MasterProfile: DareMessage (Optional) Master profile of the account 421 being registered. 423 AccountEncryptionKey: PublicKey (Optional) Key used to encrypt data 424 under this profile 426 7.2.9. Structure: ProfileMeshDevicePublic 428 Inherits: ProfileApplication 430 Inherits: ProfileApplication 432 DeviceProfile: DareMessage (Optional) Device profile of the device 433 making the request. 435 Permissions: Permission [0..Many] List of the permissions that the 436 device has been granted. 438 7.2.10. Structure: ProfileMeshDevicePrivate 440 Inherits: ProfileApplication 442 Inherits: ProfileApplication 444 Permissions: Permission [0..Many] List of the permissions that the 445 device has been granted. 447 ProfileNonce: Binary (Optional) Random nonce used to mask the 448 fingerprint of the profile UDF. 450 ProfileWitness: Binary (Optional) Witness value calculated over the 451 ProfileNonce and profile UDF 453 7.2.11. Structure: DeviceRecryptionKey 455 UDF: String (Optional) The fingerprint of the encryption key 457 RecryptionKey: PublicKey (Optional) The recryption key 459 DeviceRecryptionKeyEncrypted: DareMessage (Optional) The decryption 460 key encrypted under the user's device key. 462 7.3. Common Structures 464 7.3.1. Structure: Permission 466 Name: String (Optional) 468 Name: String (Optional) 470 Role: String (Optional) 472 Role: String (Optional) 473 Capabilities: DareMessage (Optional) Keys or key contributions 474 enabling the operation to be performed 476 7.3.2. Structure: Contact 478 Identifier: String (Optional) 480 Identifier: String (Optional) 482 Account: String (Optional) 484 Account: String (Optional) 486 FullName: String (Optional) 488 FullName: String (Optional) 490 Title: String (Optional) 492 Title: String (Optional) 494 First: String (Optional) 496 First: String (Optional) 498 Middle: String (Optional) 500 Middle: String (Optional) 502 Last: String (Optional) 504 Last: String (Optional) 506 Suffix: String (Optional) 508 Suffix: String (Optional) 510 Labels: String [0..Many] 512 Labels: String [0..Many] 514 Addresses: Address [0..Many] 516 Addresses: Address [0..Many] 518 Locations: Location [0..Many] 520 Locations: Location [0..Many] 521 Roles: Role [0..Many] 523 7.3.3. Structure: Role 525 CompanyName: String (Optional) 527 CompanyName: String (Optional) 529 Addresses: Address [0..Many] 531 Addresses: Address [0..Many] 533 Locations: Location [0..Many] 535 7.3.4. Structure: Address 537 URI: String (Optional) 539 URI: String (Optional) 541 Labels: String [0..Many] 543 7.3.5. Structure: Location 545 Appartment: String (Optional) 547 Appartment: String (Optional) 549 Street: String (Optional) 551 Street: String (Optional) 553 District: String (Optional) 555 District: String (Optional) 557 Locality: String (Optional) 559 Locality: String (Optional) 561 County: String (Optional) 563 County: String (Optional) 565 Postcode: String (Optional) 567 Postcode: String (Optional) 568 Country: String (Optional) 570 7.3.6. Structure: Reference 572 MessageID: String (Optional) The received message to which this is a 573 response 575 ResponseID: String (Optional) Message that was generated in response 576 to the original (optional). 578 Relationship: String (Optional) The relationship type. This can be 579 Read, Unread, Accept, Reject. 581 7.4. Catalog Entries 583 7.4.1. Structure: CatalogEntry 585 [No fields] 587 7.4.2. Structure: CatalogEntryDevice 589 Inherits: CatalogEntry 591 Public device entry, indexed under the device ID 593 Account: String (Optional) The Account to which this entry binds 594 this device. 596 UDF: String (Optional) UDF of the signature key 598 AuthUDF: String (Optional) UDF of the authentication ID 600 ProfileMeshDevicePublicSigned: DareMessage (Optional) The device 601 profile 603 ProfileMeshDevicePrivateEncrypted: DareMessage (Optional) The device 604 profile 606 DeviceRecryptionKeys: DeviceRecryptionKey [0..Many] Decryption key 607 entries. 609 7.4.3. Structure: CatalogEntryCredential 611 Inherits: CatalogEntry 613 Inherits: CatalogEntry 615 Protocol: String (Optional) 616 Protocol: String (Optional) 618 Service: String (Optional) 620 Service: String (Optional) 622 Username: String (Optional) 624 Username: String (Optional) 626 Password: String (Optional) 628 7.4.4. Structure: CatalogEntryNetwork 630 Inherits: CatalogEntry 632 Inherits: CatalogEntry 634 Protocol: String (Optional) 636 Protocol: String (Optional) 638 Service: String (Optional) 640 Service: String (Optional) 642 Username: String (Optional) 644 Username: String (Optional) 646 Password: String (Optional) 648 7.4.5. Structure: CatalogEntryContact 650 Inherits: CatalogEntry 652 Inherits: CatalogEntry 654 Key: String (Optional) Unique key. 656 Permissions: Permission [0..Many] List of the permissions that the 657 contact has been granted. 659 Contact: DareMessage (Optional) The (signed) contact data. 661 7.4.6. Structure: CatalogEntryContactRecryption 663 Inherits: CatalogEntryContact 665 [No fields] 667 7.4.7. Structure: CatalogEntryBookmark 669 Inherits: CatalogEntry 671 Inherits: CatalogEntry 673 Uri: String (Optional) 675 Uri: String (Optional) 677 Title: String (Optional) 679 Title: String (Optional) 681 Path: String (Optional) 683 7.4.8. Structure: CatalogEntryTask 685 Inherits: CatalogEntry 687 Inherits: CatalogEntry 689 Task: DareMessage (Optional) 691 Task: DareMessage (Optional) 693 Key: String (Optional) Unique key. 695 7.4.9. Structure: Task 697 Key: String (Optional) Unique key. 699 Start: DateTime (Optional) 701 Start: DateTime (Optional) 703 Finish: DateTime (Optional) 705 Finish: DateTime (Optional) 707 StartTravel: String (Optional) 708 StartTravel: String (Optional) 710 FinishTravel: String (Optional) 712 FinishTravel: String (Optional) 714 TimeZone: String (Optional) 716 TimeZone: String (Optional) 718 Title: String (Optional) 720 Title: String (Optional) 722 Description: String (Optional) 724 Description: String (Optional) 726 Location: String (Optional) 728 Location: String (Optional) 730 Trigger: String [0..Many] 732 Trigger: String [0..Many] 734 Conference: String [0..Many] 736 Conference: String [0..Many] 738 Repeat: String (Optional) 740 Repeat: String (Optional) 742 Busy: Boolean (Optional) 744 7.4.10. Structure: CatalogEntryApplication 746 Inherits: CatalogEntry 748 Inherits: CatalogEntry 750 Key: String (Optional) 752 7.4.11. Structure: CatalogEntryApplicationEntry 754 [No fields] 756 7.4.12. Structure: CatalogEntryApplicationRecryption 758 [No fields] 760 7.4.13. Structure: CatalogEntryApplicationSSH 762 [No fields] 764 7.4.14. Structure: CatalogEntryApplicationMail 766 [No fields] 768 7.4.15. Structure: CatalogEntryApplicationNetwork 770 [No fields] 772 7.5. Messages 774 7.5.1. Structure: MeshMessage 776 MessageID: String (Optional) 778 MessageID: String (Optional) 780 Sender: String (Optional) 782 Sender: String (Optional) 784 Recipient: String (Optional) 786 Recipient: String (Optional) 788 References: Reference [0..Many] 790 7.5.2. Structure: MeshMessageComplete 792 Inherits: MeshMessage 794 [No fields] 796 7.5.3. Structure: MessageConnectionRequest 798 Inherits: MeshMessage 800 Inherits: MeshMessage 802 Account: String (Optional) 804 Account: String (Optional) 806 DeviceProfile: DareMessage (Optional) Device profile of the device 807 making the request. 809 ClientNonce: Binary (Optional) 811 ClientNonce: Binary (Optional) 813 ServerNonce: Binary (Optional) 815 ServerNonce: Binary (Optional) 817 Witness: String (Optional) 819 Witness: String (Optional) 821 PinID: String (Optional) Pin identifier used to identify a PIN 822 authenticated request. 824 7.5.4. Structure: MessageConnectionPIN 826 Inherits: MeshMessage 828 Inherits: MeshMessage 830 Account: String (Optional) 832 Account: String (Optional) 834 Expires: DateTime (Optional) 836 Expires: DateTime (Optional) 838 PIN: String (Optional) 840 7.5.5. Structure: MessageContactRequest 842 Inherits: MeshMessage 844 Inherits: MeshMessage 846 Contact: DareMessage (Optional) The contact data. 848 7.5.6. Structure: MessageConfirmationRequest 850 Inherits: MeshMessage 852 Inherits: MeshMessage 854 Text: String (Optional) 856 7.5.7. Structure: MessageConfirmationResponse 858 Inherits: MeshMessage 860 Inherits: MeshMessage 862 ResponseID: String (Optional) 864 ResponseID: String (Optional) 866 Accept: Boolean (Optional) 868 7.5.8. Structure: MessageTaskRequest 870 Inherits: MeshMessage 872 [No fields] 874 8. Security Considerations 876 The security considerations for use and implementation of Mesh 877 services and applications are described in the Mesh Security 878 Considerations guide [draft-hallambaker-mesh-security] . 880 9. IANA Considerations 882 All the IANA considerations for the Mesh documents are specified in 883 this document 885 10. Acknowledgements 887 11. References 889 11.1. Normative References 891 [draft-hallambaker-mesh-architecture] 892 Hallam-Baker, P., "Mathematical Mesh Part I: Architecture 893 Guide", draft-hallambaker-mesh-architecture-06 (work in 894 progress), August 2018. 896 [draft-hallambaker-mesh-protocol] 897 "[Reference Not Found!]". 899 [draft-hallambaker-mesh-security] 900 "[Reference Not Found!]". 902 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 903 Requirement Levels", BCP 14, RFC 2119, 904 DOI 10.17487/RFC2119, March 1997. 906 11.2. Informative References 908 [draft-hallambaker-mesh-developer] 909 Hallam-Baker, P., "Mathematical Mesh: Reference 910 Implementation", draft-hallambaker-mesh-developer-07 (work 911 in progress), April 2018. 913 11.3. URIs 915 [1] http://mathmesh.com/Documents/draft-hallambaker-mesh-schema.html 917 Author's Address 919 Phillip Hallam-Baker 921 Email: phill@hallambaker.com