Giter VIP home page Giter VIP logo

lunardebris-core's People

Watchers

 avatar  avatar

lunardebris-core's Issues

Tag for transporting an identity

A tag needs to exist, so the sender of messages can identity themselves and other details.

Fields

  • identity: (Required, blob 8-32 bytes)
  • signed: (Optional, date/time) of signing in UTC
  • hash: (optional, blob)
    signed with the sender's private key.
    This is the same hash as seen in the mail transport tag #5 , but its also appended with the signed (time, long) value
    SHA-128 or SHA-256
  • server: (optional, transport details #8)

Tag for transport information

Need a tag to specify how to send a message to an identity. Since we are trying to get rid of 3rd parties, you won't connect to your message server, instead you will connect directly to the receiver's server.

  • host: (Required, String)
    The server's host name
  • port: (Required, String)
    The server's listening port
  • path: (Optional, String)
    This is the optional path, used for web services
  • identity: (Required, blob)
    This is a different identity used by the server to cross reference messages to the actual identity mailbox
  • authentication: (Required, enum)
    This is used to say how the server will authenticate the mail sender
    NONE: Let everything through
    SHA128: Needs to produce a SHA-128 hash with the salt, time sensitive
    SHA256: Needs to produce a SHA-256 hash with the salt, time sensitive
  • salt: (Optional, blob 16-128+ bytes)
    This is a special salt used by the sending application to build a authorization value
    The "salt" + current time (long) + identity will be hashed in order to prove the sender is authorized to post messages to the server
  • start: (Optional, Date)
    This optional date/time in UTC for this server information to be valid
  • expire: (Optional, Date)
    This optional date/time in UTC for this server information to be invalid
  • key: (Optional, EncryptionTag #3)
    This is an optional tag with the sender's public key. Normally you would not want to send the public key it in a message, but instead exchange this in person to eliminate 3rd party spying.

Support for Enum Field Types

Need to include support for Enum fields in tags. This is to add limited support for field values only. Do not add a new standard tag for Enums.

The EnumType will use the same read/write attributes of String type.

Tag for transporting files

Need a new tag for transporting files for messages

  • Name (Required, string)
  • mime (Required, string)
  • content (required, filelink)

Tag for transporting encryption details

Need to have a basic tag to transport a single key and other details, such as the encryption algorithm, mode and padding scheme. This tag should replace and expand the SymmetricEncryption tag.

  • From the tag it should be possible to encrypt and decrypt with little hassle.

Fields

  • type: The type of encryption
    Use short names to reduce overhead
  • algorithm: (Required) The cipher name
    Use short names to reduce size
  • mode: (Optional) The cipher mode
    Need to have a short value for "default"
  • padding: (Optional) The padding scheme
    Use short names to reduce size
    Need to have a short value for "default"
  • key: (Required) The key's bits
  • format: (Required) The format of the key
  • keySize: (Required) The size of the key in bits
  • iv: (Optional) The initialization vector
    If null a simple IV will be generated which will be formatted like 0x00, 0x01, 0x02...
  • start: (Optional) The starting date/time in UTC
  • expire: (Optional) The expiring date/time in UTC

Tag for packaging messages

Need a tag to transport secure messages across the internet.

  • message: (Required) The encrypted mail message
    Encrypted using symmetric encryption
  • details: (Required) The encryption details
    Encrypted using RSA Public/Private keys
  • generated: (Optional) The date/time the message was generated in UTC
  • hash: (Optional) The sha-128 or sha-256 hash of the encrypted message + generated (long value)

Tag for holding messages

Need a tag which would later be encrypted for transport

  • subject (Required, string)
    Can be blank, but same as e-mail subject
  • identifier (Optional, blob)
    This would be a long integer
  • reference (Optional, blob)
    This would be a long integer used to reference another message's identifier, for "reply to"
  • files (Required, list #6)
    The first file is the file to show
    The mime type of the file determines how it should be shown
    The mime recognizer will only allow certain types to be displayed

Symmetric encryption tag

Implement a ByteMapped tag which will perform Symmetric key encryption.

  1. You should be able to generate a key and IV.
  2. The key and IV should be retained when saved to BM format.
  3. Once loaded back from the BM, it should be able to un-encrypt a file without any hassle

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.