Socket
Socket
Sign inDemoInstall

epir

Package Overview
Dependencies
4
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    epir

EllipticPIR client library (Node.js / TypeScript bindings).


Version published
Weekly downloads
16
decreased by-92.83%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

libepir - EllipticPIR client library

CMake Node.js CI codecov

EllipticPIR is a private information retrieval (PIR) implementation backed by the EC-ElGamal encryption.

Try online WebAssembly demo: https://demo.ellipticpir.com/

This library contains cryptographic functions which are required to encrypt a query (a selector) to the EllipticPIR server and to decrypt a reply from the EllipticPIR server.

This repository provides native C library and bindings for C++, JavaScript and TypeScript programming languages.

C / C++

The C implementation has no runtime heap memory allocation. The C++ bindings is a header-only library.

Install

$ git clone https://github.com/EllipticPIR/libepir.git
$ cd libepir
$ mkdir build_c
$ cd build_c
$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ make -j4  # (change the number "4" to your physical CPU cores to parallelize the build).
$ sudo make install

Generate mG.bin

$ epir_genm

Usage

Include epir.h (C) or epir.hpp (C++) in your source code.

For general usage, see ./src_c/bench_*.(c|cpp) files.

Node.js / TypeScript

This library both includes Node.js native addons (faster, no browser support) and WebAssembly builds (slower, browser support).

Install

npm
$ npm install epir
Build your own
$ git clone https://github.com/EllipticPIR/libepir.git
$ cd libepir
$ npm ci

Usage

See ./src_ts/types.ts for Node.js binding definitions.

For general usage, see files under the ./src_ts/__tests__ directory and ./pages/index.vue.

FAQs

What is mG.bin?

To decrypt a server's reply, you need to generate the mG.bin file. This file contains the pre-computation values of (G, 2*G, .., (0xFFFFFF)*G), where G is the generater of the Ed25519 curve.

To generate mG.bin, run

$ epir_genm

or

$ npm run epir_genm

The computation may take tens of seconds to finish. The computation time depends on the CPU power of your machine. (For comparison, on my desktop (Intel Core i7-7700K) it takes about ~15sec.)

The generated file will be located in $HOME/.EllipticPIR/mG.bin. The file size will be ~576MiB.

If you will not decrypt a server's reply, you can skip this step.

Keywords

FAQs

Last updated on 01 Jun 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc