post quantum cryptography
Highly optimized implementation of the NTRUEncrypt algorithm
 All Data Structures Files Functions Variables Typedefs Macros Pages
Data Structures | Typedefs | Functions
keypair.h File Reference

public API, key handling More...

#include "ntru.h"
#include <fmpz_poly.h>
#include <fmpz.h>
#include <stdbool.h>
#include <stdint.h>
Include dependency graph for keypair.h:

Go to the source code of this file.

Data Structures

struct  keypair
 

Typedefs

typedef struct keypair keypair
 

Functions

bool ntru_create_keypair (fmpz_poly_t f, fmpz_poly_t g, keypair *pair, ntru_params *params)
 
void export_public_key (char const *const filename, fmpz_poly_t pub, ntru_params *params)
 
void export_priv_key (char const *const filename, fmpz_poly_t priv, ntru_params *params)
 
void import_public_key (char const *const filename, fmpz_poly_t pub, ntru_params *params)
 
void import_priv_key (char const *const filename, fmpz_poly_t priv, fmpz_poly_t priv_inv, ntru_params *params)
 
void ntru_delete_keypair (keypair *pair)
 

Detailed Description

public API, key handling

This file holds the public API of generating, exporting and importing public and private keys of the pqc NTRU implementation and is meant to be installed on the client system.

Definition in file keypair.h.

Typedef Documentation

typedef struct keypair keypair

Definition at line 42 of file keypair.h.

Function Documentation

void export_priv_key ( char const *const  filename,
fmpz_poly_t  priv,
ntru_params params 
)

Export the private key to a file.

Parameters
filenamethe file to save the private key into
privthe private key
paramsthe NTRU context

Definition at line 111 of file ntru_keypair.c.

void export_public_key ( char const *const  filename,
fmpz_poly_t  pub,
ntru_params params 
)

Export the public key to a file.

Parameters
filenamethe file to save the public key into
pubthe public key
paramsthe NTRU context

Definition at line 96 of file ntru_keypair.c.

void import_priv_key ( char const *const  filename,
fmpz_poly_t  priv,
fmpz_poly_t  priv_inv,
ntru_params params 
)

Import the private key from a file and store him along with his inverse.

Parameters
filenamethe file to get the private key from
privwhere to save the private key [out]
priv_invwhere to save the inverse of the private key [out]
paramsthe NTRU context

Definition at line 157 of file ntru_keypair.c.

void import_public_key ( char const *const  filename,
fmpz_poly_t  pub,
ntru_params params 
)

Import the public key from a file.

Parameters
filenamethe file to get the public key from
pubwhere to save the public key [out]
paramsthe NTRU context

Definition at line 132 of file ntru_keypair.c.

bool ntru_create_keypair ( fmpz_poly_t  f,
fmpz_poly_t  g,
keypair pair,
ntru_params params 
)

Creates an NTRU key pair, consisting of public and private components.

Parameters
fa random polynomial
ga random polynomial
pairstore private and public components here [out]
paramsthe NTRU context

Creates an NTRU key pair, consisting of public and private components.

Parameters
fa random polynomial
ga random polynomial
pairstore private and public components here [out]
paramsthe NTRU context
Returns
true for success, false if f or g are not invertible (then the caller hast to try different ones)

Definition at line 47 of file ntru_keypair.c.

void ntru_delete_keypair ( keypair pair)

Used to free the inner structure of a keypair. This will not call free() on the pair itself.

Parameters
pairthe pair to free the inner structure of

Definition at line 197 of file ntru_keypair.c.