Skip to content

Instantly share code, notes, and snippets.

@ppolakov
Last active April 14, 2021 11:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ppolakov/b51d20a4ee53d42719bbb7e280dd9370 to your computer and use it in GitHub Desktop.
Save ppolakov/b51d20a4ee53d42719bbb7e280dd9370 to your computer and use it in GitHub Desktop.
SPEC file for Monocypher
Name: monocypher
Version: 3.1.2
Release: 1%{?dist}
Summary: Boring crypto that simply works
License: BSD or CC0
URL: https://monocypher.org/
Source0: https://monocypher.org/download/%{name}-%{version}.tar.gz
BuildRequires: gcc
BuildRequires: make
%description
Monocypher is an easy to use cryptographic library. It provides functions for
authenticated encryption, hashing, password hashing and key derivation, key
exchange, and public key signatures. It is:
- Small. Monocypher contains under 2000 lines of code, small enough to allow
audits. The binaries can be under 50KB, small enough for many embedded targets.
- Easy to deploy. Just add monocypher.c and monocypher.h to your project. They
compile as C99 or C++ and are dedicated to the public domain (CC0-1.0,
alternatively 2-clause BSD).
- Portable. There are no dependencies, not even on libc.
- Honest. The API is small, consistent, and cannot fail on correct input.
- Direct. The abstractions are minimal. A developer with experience in applied
cryptography can be productive in minutes.
- Fast. The primitives are fast to begin with, and performance wasn't
needlessly sacrificed. Monocypher holds up pretty well against Libsodium,
despite being closer in size to TweetNaCl.
%package devel
Summary: Development files for monocypher
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: pkgconfig
%description devel
This package contains the development files for monocypher.
%prep
%autosetup
%build
export CFLAGS="${RPM_OPT_FLAGS}"
%make_build CFLAGS="${RPM_OPT_FLAGS}"
%install
%make_install PREFIX=%{_prefix} LIBDIR=%{_libdir}
rm -v %{buildroot}%{_libdir}/*.a
%check
make check CFLAGS="${RPM_OPT_FLAGS}"
%files
%doc AUTHORS.md README.md CHANGELOG.md
%license LICENCE.md
%{_libdir}/libmonocypher.so.3
%files devel
%{_includedir}/*
%{_mandir}/man3/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/%{name}.pc
%changelog
* Wed Mar 31 2021 Patrik Polakovič <patrik@alphamail.org> - 3.1.2-1
- Initial package.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment