GithubHelp home page GithubHelp logo

bee2evp's Introduction

Bee2evp: an OpenSSL engine

Build Status Coverage Analysis

What is Bee2evp?

Bee2evp is a cryptographic library which encapsulates Bee2 into OpenSSL. Bee2evp provides cryptographic services using the EVP interface. Bee2evp is organized as an OpenSSL engine.

Build

mkdir build
cd build
cmake [-DCMAKE_BUILD_TYPE={Release|Debug|Coverage|ASan|ASanDbg|MemSan|MemSanDbg|Check}] ..
make
[make install]

Build types (Release by default):

Preparations

Before building Bee2evp, it is necessary to build and configure Bee2 and OpenSSL. Bee2evp requires OpenSSL version 1.1.0 or higher.

Building Bee2

See instructions in github.com/agievich/bee2.

Building OpenSSL

  1. Download the latest source files from openssl.org/source.
  2. Unpack files into some directory, for example, openssl-1.1.1.
  3. Go to this directory.
  4. Run the following commands:
    mkdir build
    cd build
    ../config 
    make
    make install
    

By default, OpenSSL {headers|binaries|libraries} will be installed in the directory /usr/local/{include|bin|lib}.

Configuring OpenSSL

  1. Rename /usr/local/ssl/openssl.cnf.dist -> /usr/local/lib/openssl.cnf.
  2. Open /usr/local/lib/openssl.cnf.
  3. Add the following text (before the [new_oids] section):
    openssl_conf = openssl_init
    [openssl_init]
    engines = engine_section
    [engine_section]
    bee2evp = bee2evp_section
    [bee2evp_section]
    engine_id = bee2evp
    dynamic_path = /usr/local/lib/libbee2evp.so
    default_algorithms = ALL
    
  4. Make sure that LD_LIBRARY_PATH includes /usr/local/lib.

Listing the capabilities

openssl engine -c -t bee2evp

BTLS

In this folder, patches for different versions of OpenSSL are provided. These patches support the following ciphersuites defined in STB 34.101.65 (Btls, see apmi.bsu.by/resources/std.html):

  • DHE-BIGN-WITH-BELT-CTR-MAC-HBELT;
  • DHE-BIGN-WITH-BELT-DWP-HBELT;
  • DHT-BIGN-WITH-BELT-CTR-MAC-HBELT;
  • DHT-BIGN-WITH-BELT-DWP-HBELT;
  • DHE-PSK-BIGN-WITH-BELT-CTR-MAC-HBELT;
  • DHE-PSK-BIGN-WITH-BELT-DWP-HBELT;
  • DHT-PSK-BIGN-WITH-BELT-CTR-MAC-HBELT;
  • DHT-PSK-BIGN-WITH-BELT-DWP-HBELT.

An example of applying a patch can be found in travis.yml.

License

Bee2evp is released under the terms of the GNU General Public License version 3 (GNU GPLv3) with the additional exemption that compiling, linking, and/or using OpenSSL is allowed. See LICENSE for more information.

bee2evp's People

Contributors

vld375 avatar

Stargazers

MrYang avatar

Watchers

James Cloos avatar  avatar

Forkers

ccdxc

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.