shadowfax

package module
v0.0.0-...-b56449a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2015 License: MPL-2.0 Imports: 5 Imported by: 0

README

shadowfax

Build Status GoDoc

Shadowfax is a simple, lightweight confidential messaging system. It should be considered an experimental tech preview. Shadowfax hasn't been battle-tested, security-reviewed or deployed into production.

Shadowfax clients are identified by their 32-byte curve25519 public key. Clients address messages to each other confidentially using authenticated public key encryption.

Messages are exchanged through routers, to which the content between sender and receiver is opaque -- only the sender and receiver public keys are disclosed. Currently HTTP is supported, but other transports may be added. Additional layers of security may be provided by the network protocol, but the underlying confidentiality of shadowfax messages does not rely upon it.

License

Copyright 2015 Casey Marshall.

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type KeyPair

type KeyPair struct {
	PublicKey  *PublicKey
	PrivateKey *PrivateKey
}

KeyPair holds a public and private key for asymmetric box crypto.

func NewKeyPair

func NewKeyPair() (KeyPair, error)

NewKeyPair returns a new KeyPair.

type Nonce

type Nonce [24]byte

Nonce is a 24-byte number that should be used once per message.

func DecodeNonce

func DecodeNonce(s string) (*Nonce, error)

DecodeNonce decodes a nonce from its Base58 string representation.

func NewNonce

func NewNonce() (*Nonce, error)

NewNonce returns a new random nonce.

func (Nonce) Encode

func (n Nonce) Encode() string

Encode encodes the nonce to a Base58 string representation.

type PrivateKey

type PrivateKey [32]byte

PrivateKey is a curve25519 private key.

type PublicKey

type PublicKey [32]byte

PublicKey is a curve25519 public key.

func DecodePublicKey

func DecodePublicKey(s string) (*PublicKey, error)

DecodePublicKey decodes a public key from its Base58 string representation.

func (PublicKey) Encode

func (pk PublicKey) Encode() string

Encode encodes the public key to a Base58 string representation.

type SecretKey

type SecretKey [32]byte

SecretKey is a secret key used for symmetric encryption.

func NewSecretKey

func NewSecretKey() (*SecretKey, error)

NewSecretKey returns a new randomly-generated secret key.

Directories

Path Synopsis
cmd
sf
sfd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL