Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arsulegai/gocryptobenchmark
Benchmarks crypto libraries against openssl libraries
https://github.com/arsulegai/gocryptobenchmark
benchmark benchmarking crypto go golang openssl
Last synced: 4 days ago
JSON representation
Benchmarks crypto libraries against openssl libraries
- Host: GitHub
- URL: https://github.com/arsulegai/gocryptobenchmark
- Owner: arsulegai
- License: apache-2.0
- Created: 2019-05-02T10:40:18.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-07-27T02:20:00.000Z (over 5 years ago)
- Last Synced: 2023-08-03T06:53:45.561Z (over 1 year ago)
- Topics: benchmark, benchmarking, crypto, go, golang, openssl
- Language: Go
- Size: 32.2 KB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go Crypto Benchmark
Go Crypto Benchmark is a tool developed to perform benchmark activities on
different popular algorithms. Tool supports Go Crypto and OpenSSL wrapper
libraries.## Introduction
The tool will run popular cryto algorithms on the machine, reporting the
benchmark numbers on the hardware.**Note:** The tool uses forked version of [OpenSSL wrapper](https://github.com/spacemonkeygo/openssl)
which can be found [here](https://github.com/arsulegai/openssl).
All credits to the original authors.## Prerequisites
The project has dependency on following libraries
* OpenSSL version 1.1.1, please refer to docker/Dockerfile for information
on installing it on Ubuntu if there's no debian distribution available.## Build
### Docker build dependencies
The build has been tested on these versions and same is recommended.
* Docker version 18.06
* Docker compose version 1.22.0### Procedure
Run the following to generate `bin/gocryptobenchmark`
(no Go compiler required):
```
docker-compose -f docker/compose/docker-compose-build.yaml up
```
**Note:**
1. Generated binary is targeted for Ubuntu 18.04. Binary would be
stored in `bin` directory.
2. If the build is successful, docker-compose up should exit with
status code 0.## Run
To run the benchmark using the OpenSSL and Go crypto, run the following:
```
./bin/gocryptobenchmarkwhere
is one of
Sha256
Sha384
Sha512
Sha3_256
Sha3_384
Ecdsa_P256
is one of
openssl
crypto
```
For example, to benchmark Ecdsa_P256, the command is
```
./bin/gocryptobenchmark Ecdsa_P256 openssl
./bin/gocryptobenchmark Ecdsa_P256 crypto
```
**Note:** For ECDSA P256, the data is first hashed using SHA 256.## Troubleshooting
### Machine in proxy network
If you're using the tool on a machine in a proxy network environment, the build
may fail to get required packages. Please create a file `config.json` with following
contents and place it under `/home/$USER/.docker/` directory. Create the directory
if not present already. The file looks like the following```
{
"proxies":
{
"default":
{
"httpProxy": "http://proxy-address-here:80",
"httpsProxy": "http://proxy-address-here:443",
"noProxy": "127.0.0.1,localhost",
"hkpProxy": "http://proxy-address-here:443"
}
}
}
```
## Contributing
This software is in development phase and is Apache 2.0 licensed. We accept
contributions via [GitHub](https://github.com/arsulegai/GoCryptoBenchmark) pull
requests.
Each commit must include a `Signed-off-by:` in the commit message
(`git commit -s`). This sign-off means you agree the commit satisfies the
[Developer Certificate of Origin (DCO)](https://developercertificate.org/).## License
This software is licensed under the [Apache License Version 2.0](LICENSE)
software license.© Copyright 2019, Intel Corporation.