Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O otrv4
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • OTRv4
  • otrv4
  • Issues
  • #138

Closed
Open
Created Apr 27, 2018 by Jurre van Bergen@DrWhaxOwner

Incorporate an extensible Client Profile

Created by: claucece

Incorporate a client profile of this way:

Client Profile (CLIENT-PROF): Number of Fields (16bit INT) Fields (SEQ-FIELDS) Profile Signature (USER-EDDSA-SIG)

SEQ-FIELDS will be "Number of Fields" entries of type FIELD. FIELD will be:

Client Profile Field (FIELD): Type (16bit INT) Value (DATA)

Where the value is encoded as the general DATA with a length and then the data.

Example:

Type = 0x0001
    Client Profile's Identifier (INT)
    A Client Profile id used for local storage and retrieval.

Type = 0x0002
  Client Profile owner's instance tag (INT)
  The instance tag of the client/device that created the User Profile.

Type = 0x0003
  Ed448 public key (ED448-PUBKEY)
  Corresponds to 'H'.

Type = 0x0004
   Versions (byte string)

Type = 0x0005
  Client Profile Expiration (USER-PROF-EXP)

Type = 0x0006
    Transitional Signature (USER-SIG)
    This signature is defined as a signature over fields 0x0001,
    0x0002,  0x0003,  0x0004,  0x0005 only.

This gives us a trivial serialization. We can also define the ordering for signatures to always be ordinal order of the type. This gives us extensability quite easily, and provides for a safer parsing environment.

We should allow multiple long-term public keys.

Assignee
Assign to
Time tracking