pr

package
v0.0.0-...-7579eda Latest Latest
Warning

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

Go to latest
Published: Jul 1, 2020 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package pr implements the bidirectionally ratcheted key exchange (BRKE) protocol specified by Bertram Poettering and Paul Roesler in their paper Asynchronous Ratcheted Key Exchange (https://eprint.iacr.org/2018/296) first published at CRYPTO-2018. The scheme relies on a novel HIBE-based key-updatable KEM described in the same paper.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BRKE

type BRKE struct {
	// contains filtered or unexported fields
}

BRKE designates the PT18 protocol object defined by a ku-KEM scheme and a one-time signature algorithm.

func NewBRKE

func NewBRKE(hibe hibe.HIBE, signature signature.Signature) *BRKE

NewBRKE creates a fresh BRKE protocol instance.

func (BRKE) Init

func (b BRKE) Init() (*User, *User, error)

Init creates two fresh users objects that can communicate with each other.

func (BRKE) Receive

func (b BRKE) Receive(user *User, ad []byte, C [][]byte) ([]byte, error)

Receive receives a newly established session key created by the opposing user.

func (BRKE) Send

func (b BRKE) Send(user *User, ad []byte) ([]byte, [][]byte, error)

Send creates a new session key and a corresponding ciphertext that has to be passed to the other user in order to notify him of the update.

type User

type User struct {
	// contains filtered or unexported fields
}

User designates a participant in the protocol that can both send and receive messages. It has to be passed as an argument to both the send and receive routines.

func (User) Size

func (u User) Size() int

Size returns the size (in bytes) of the user state.

Directories

Path Synopsis
Runtime, message size and state size benchmarks for the pr protocol.
Runtime, message size and state size benchmarks for the pr protocol.

Jump to

Keyboard shortcuts

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