GithubHelp home page GithubHelp logo

das-labor / neopg Goto Github PK

View Code? Open in Web Editor NEW
213.0 32.0 16.0 17.17 MB

The multiversal cryptoengine!

License: Other

CMake 0.39% Nix 0.01% C 9.35% C++ 81.45% Makefile 0.18% Shell 0.37% Yacc 0.24% Objective-C 8.01% Dockerfile 0.01%
openpgp crypto

neopg's People

Contributors

bitpick avatar bjoe avatar bkircher avatar colinh avatar e7p avatar fkr avatar flanfly avatar jwilk avatar lambdafu avatar rofl0r avatar romanz avatar sphinxc0re avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

neopg's Issues

Please summarize project "status" in the README

Hello!

This project looks very interesting! I am the lead developer of Mailpile (https://www.mailpile.is/) and we currently rely on GnuPG for our OpenPGP implementation. GnuPG is not the easiest of tools to work with, so I am always on the look out for alternatives. I agree with a lot of the "opinions" you've expressed and the direction you are taking, so this project is very interesting to me!

The one thing that is somewhat unclear to me, is what the current state of this project is.

Is it experimental? Is it alpha? Is it usable as a replacement for GnuPG, and if so in what cases?

It would be really helpful if things like this were explained with just a few sentences in the project README. Thanks!

(Another less important, but related question, has to do with the project itself. Is this a hobby project? Is this sponsored by your employer? If I decide I want to build on your work, how confident can I be that development and maintenance will continue?)

Request for SM2, SM3 and SM4

Botan2 already has support for SM2/3/4 algorithms which are published by OSCCA(Office of State Commercial Cipher Administration) to meet regulations for use within China. And also, openpgp has that draft extension which can be found here:
https://datatracker.ietf.org/doc/draft-ribose-openpgp-oscca/

So, please, if you can add the support for those algorithms? Thanks.

You can run 'botan-test sm2_enc sm2_sig hash' to verify the support.

Question about licensing

How does this licensing work?

For now, many parts of NeoPG are licensed by the upstream authors under various licenses, including GPL and LGPL variants. Please refer to the copyright notice at the top of every file.

New source code contributed by the NeoPG authors is licensed under the permissive Simplified BSD license (the same license as Botan, the cryptography library we want to use).

Wouldn't that make this project (and any new source code addition on this project) a "derivative work" of those "upstream" projects ?

Embed resources

If we are serious about the "portable app" concept of providing a single binary, we need to embed some resources into the binary.

  • The translations (mo files). boost::locale::message supports this
  • The SKS Poolserver root certificate (sks-keyservers.netCA.pem).

Here is a helper binary and cmake/boost integration: https://github.com/cyrilcode/embed-resource

Packet could use header strategy

Currently, we can not influence the way headers are generated. So tests for old style headers need to count bytes manually and set a custom header.

Having different strategies (old vs new, adaptive length type vs fixed length type) could help with that.

Could also be useful to generate backward compatible output with certain compliance profiles.

The custom header could then be one of the strategies. So the solution would likely be a header strategy class (ouch) that comes in different flavors.

Find maximum key size on public keyservers

Find the maximum reasonable key size in the SKS pool. For this, do a histogram over all keys and find a reasonable cut off after eliminating outliers.Then limit http requests to that.

Use Botan Pipe and Filters

This is challenging, because:

  • GnuPG uses a push/pull architecture for write/read pipes, while Botan only supports a push/push architecture (this is why usually the read and write direction of a filter are merged in a single filter object, but only one of the parts is used).
  • GnuPG has some support for OpenPGP encodings inside the pipe implementation (for example splitting up in chunks with partial length headers)
  • GnuPG changes the filter set up dynamically (for example to insert compression/decompression after detection)

Simplifying the logic so much that we can do the final replacement will take a while. Maybe it is faster to reimplement from scratch.

Email-verifying key server

We need a simple, centralized key server that verifies email addresses, and allows to update and delete keys via the command line and web interface. Features are to be determined, but it should be very minimal:

  • Probably only needs to store key and (hashed?) email address, and during transactions a session key. No password, all operations work like "I forgot my password" mechanisms on websites.
  • Keys should fulfill some security requirements (freshness, expiration, etc).
  • Good integration into neopg.
  • Email verification by neopg command line or maybe even just a simple URL click. The registration key could be encrypted, but deletion can't be in case the key is lost. The most convenient would be to not require a full verification, and just allow the owner of the email address to set arbitrary keys.
  • Some protection against crawling.
  • If it stores email addresses in clear (rather than hashed), it can send reminder mails when the key is going to expire or becomes insecure. OTOH, not storing readable email addresses is a good idea.

Requires more thought, but we need to solve the problem of key retrieval in OpenPGP without repeating past mistakes. And although we want to support keybase.io, we don't want to put all eggs into one basket.

There is also autocrypt and pep for direct negotiation.

build or install broken on Ubuntu 18.04

Hi, it seems the build or the installation under ubuntu 18.04 is broken.

When i clone the repo i do following things:
git submodule update --init cd build cmake .. make && make test sudo make install
With v0.0.5 tag the library is created, but not installed, with master it seems the library isn't even created?

Any idea?

remove unsafe cmdline invocations

Remove all variants that mix status messages, plaintext and log messages on the command line.

  • --output FILE --verify OK
  • --verify detach_sig data OK
  • --decrypt (with verify) NOT OK

etc.

neopg curl

neopg curl should be a simple utility command to test the libcurl integration (timeout, proxy settings, etc).

For this, network settings should be global options and passed through to dirmngr also.

key generation failed when enter passphrase

neopg gpg2 --full-generate-key failed with

neopg: agent_genkey failed: GPG_ERR_NO_PASSPHRASE
Key generation failed: GPG_ERR_NO_PASSPHRASE

after entering a passphrase. without a passphrase it's working

support gpg-agent protocol

The gpg-agent protocol is also implemented by seahorse, for example. It may serve as an extension for certain use cases. We might want to support it even if we don't use it internally.

GPGME support

What is the status of porting GPGME library?
Are there bindings to other languages that work (it's python i'm interested)?

Javascript Version with Emscripten

Compile NeoPG with emscripten to Javascript and create a demo in a js terminal emulator that can be run right in the browser. At first, it should probably mock all file and web accesses (it's a demo after all).

Rework cipher preference selection

If you ask GnuPG to encrypt to a recipient that prefers "AES256, AES192, AES, CAST5, 3DES" in that order, and to another recipient that prefers the reverse order "3DES, CAST5, AES, AES192, AES256", then GnuPG will use 3DES.

This is by choice:

         /* Note the '<' here.  This means in case of a tie, we will                                                                                                                
             favor the lower algorithm number.  We have a choice                                                                                                                     
             between the lower number (probably an older algorithm                                                                                                                   
             with more time in use), or the higher number (probably a                                                                                                                
             newer algorithm with less time in use).  Older is                                                                                                                       
             probably safer here, even though the newer algorithms                                                                                                                   
             tend to be "stronger". */

For NeoPG, I want the code to always behave as if a crypto preference list has been set by the user that overrides all preferences in the selected keys. The default list should prefer AES over 3DES if it is available.

In case AES is not available in the chosen key, we should raise appropriate warnings or even abort.

I think it is possible to configure this with the right combinations of options in GnuPG, too, but it should be the only way to do it, the right defaults need to be chosen, and the rest of the code can be removed.

keybase.io support

keybase.io provides some data that can be publicly validated, for example binding of OpenPGP keys to twitter accounts and other social networks. This allows to use OpenPGP even without email, which circumvents a lot of problems, at the cost of being less private.

It's not clear at this point what supporting keybase.io support means, but it certainly includes things like key retrieval via twitter handle, for example. Maybe with twitter oauth integration, we can even send direct messages. Needs more research.

FreeBSD bus error in boost::locale::conv when charmap is not set

System: FreeBSD 11.1-RELEASE (GENERIC)

[~/neopg/build]$ gdb src/neopg 
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "amd64-marcel-freebsd"...
(gdb) run 
Starting program: /usr/home/lambdafu/neopg/build/src/neopg 
warning: Lowest section in /usr/local/lib/libicudata.so.59 is .hash at 0000000000000120

Program received signal SIGBUS, Bus error.
0x0000000800f20155 in boost::locale::conv::impl::convert_to<wchar_t> () from /usr/local/lib/libboost_locale.so.1.64.0
(gdb) bt
#0  0x0000000800f20155 in boost::locale::conv::impl::convert_to<wchar_t> () from /usr/local/lib/libboost_locale.so.1.64.0
#1  0x0000000800f1f89d in boost::locale::conv::to_utf<wchar_t> () from /usr/local/lib/libboost_locale.so.1.64.0
#2  0x0000000800f3afb1 in boost::locale::util::simple_converter_impl::simple_converter_impl () from /usr/local/lib/libboost_locale.so.1.64.0
#3  0x0000000800f3ac23 in boost::locale::util::create_simple_codecvt () from /usr/local/lib/libboost_locale.so.1.64.0
#4  0x0000000800f3e7ac in boost::locale::impl_icu::create_codecvt () from /usr/local/lib/libboost_locale.so.1.64.0
#5  0x0000000800f49b1a in boost::locale::impl_icu::icu_localization_backend::install () from /usr/local/lib/libboost_locale.so.1.64.0
#6  0x0000000800f2d7e8 in boost::locale::localization_backend_manager::impl::actual_backend::install () from /usr/local/lib/libboost_locale.so.1.64.0
#7  0x0000000800f29b27 in boost::locale::generator::generate () from /usr/local/lib/libboost_locale.so.1.64.0
#8  0x0000000800f298fd in boost::locale::generator::generate () from /usr/local/lib/libboost_locale.so.1.64.0
#9  0x000000000068b574 in boost::locale::generator::operator() (this=0x7fffffff9608, id=@0x7fffffff95a0) at generator.hpp:202
#10 0x0000000000679f3f in setup_locale () at /usr/home/lambdafu/neopg/src/neopg.cpp:28
#11 0x000000000066eb8e in main (argc=1, argv=0x7fffffffeb18) at /usr/home/lambdafu/neopg/src/neopg.cpp:105
(gdb) 

Locale settings:

$ locale   
LANG=
LC_CTYPE="C"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=

As a work-around, setting the charmap for LC_CTYPE to basically any value works:

$ LC_CTYPE=en_US.UTF-8 src/neopg 
NeoPG implements the OpenPGP standard.
Usage: src/neopg [OPTIONS] [SUBCOMMAND]
[...]

Manpage

Please build a manpage. it can be very simple at first, but it would be really helpful. There has to be one, sooner or later :)

neopg cat crashes when reading a directory

mkdir tmp
neopg cat tmp
terminate called after throwing an instance of 'Botan::Stream_IO_Error'
  what():  I/O error: DataSource_Stream::read: Source failure
Aborted (core dumped)

Key cleanup

On import, in particular of secret keys, offer to clean up the key by removing obsolete ciphers, keyserver urls, and other preferences. Lots of stuff that can go in here.

ensure NeoPG::URI and NeoPG::Http agree on URL parsing.

Mismatching URL parser can lead to security problems (for example whitelisting domain names such as "brave.com%60x.code-fu.org"). Currently, NeoPG does only check the protocol, but in case we want to do more, this issue shall remind us to be careful.

Unfortunately, libcurl doesn't expose the URL parser yet: curl/curl#2412

Ubuntu (artful)

I'm trying to compile neopg in Ubuntu.
Because there is no botan2 package available I downloaded the source and compiled it successfully. My problem was the CMake couldn't find the libusb-1.0 package. I have no idea how to investigate that problem. Any advice?

New command line syntax proposition

Hello,

I've encountered your project after I was wondering if there are any alternatives to the awful and extremely unintuitive CLI syntax of current gpg. I've discussed the option of contributing to the upstream GnuPG code an alternative executable that will use the same C functions and library that the executable gpg uses but with a different CLI syntax and git style commands and arguments and not just everything starting with --. It was discussed thoroughly in the gnupg-devel mailing list in these threads: First here and a long time afterwards here.

I just wanted to share with you my design for the new syntax which I've built strictly according to the official documentation of GnuPG. It's in this gist, I hope you'll understand the syntax of it. I've used # for a subcommand a ## for a subcommand's argument etc. Most of the options are named the same as in the original gpg syntax.

Release 0.0.6?

For the Nixpkgs upgrade to 0.0.5, I somehow fail to run the tests. After a while I noticed, that I'm able to build neopg on current master just fine. Would it be possible to get a new release? That would make the version number of the package in Nixpkgs look more nice. Alternatively I'd bump neopg to 0.0.6pre2018-11-10 in NixOS/nixpkgs#59942 .

Fails to build against recent botan

After upgrading botan2 from 2.9.0 to 2.17.2 neopg 0.0.6 fails to build.

❯ nix-build -A neopg
these derivations will be built:
  /nix/store/vrp0lffg377x1jx9aj8dn6lx7xnh00hz-neopg-0.0.6.drv
building '/nix/store/vrp0lffg377x1jx9aj8dn6lx7xnh00hz-neopg-0.0.6.drv' on 'ssh://[email protected]'...
copying path '/nix/store/wxd902wy32yvwa5300npha7baygh927r-rhash-1.4.0' from 'https://cache.nixos.org'...
copying path '/nix/store/06d9sbafqk2jk426nhi0z4fgqpz1wx7g-sqlite-3.33.0-bin' from 'https://cache.nixos.org'...
copying path '/nix/store/kl3ysil590r8k0h268qsiklbjf9lhd1y-systemd-minimal-246.6-dev' from 'https://cache.nixos.org'...
copying path '/nix/store/b2s6wzq5wcz838b4x7016rf4sf2jzja6-libusb-1.0.23-dev' from 'https://cache.nixos.org'...
copying path '/nix/store/21cib7707fqxwg9xpjx0hfa5p9bx8hvh-cmake-3.18.4' from 'https://cache.nixos.org'...
copying path '/nix/store/waa7sz7dnsmw9gmggqd4rjygxzzgxl60-sqlite-3.33.0-dev' from 'https://cache.nixos.org'...
unpacking sources
unpacking source archive /nix/store/xzhm6685vamb86bqzf789hhcm0wav492-source
source root is source
patching sources
configuring
fixing cmake files...
cmake flags: -DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF -DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF -DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_SKIP_BUILD_RPATH=ON -DCMAKE_INSTALL_LOCALEDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/share/locale -DCMAKE_INSTALL_LIBEXECDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/libexec -DCMAKE_INSTALL_LIBDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/lib -DCMAKE_INSTALL_DOCDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/share/doc/neopg -DCMAKE_INSTALL_INFODIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/share/info -DCMAKE_INSTALL_MANDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/share/man -DCMAKE_INSTALL_OLDINCLUDEDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/include -DCMAKE_INSTALL_INCLUDEDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/include -DCMAKE_INSTALL_SBINDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/sbin -DCMAKE_INSTALL_BINDIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/bin -DCMAKE_INSTALL_NAME_DIR=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6/lib -DCMAKE_POLICY_DEFAULT_CMP0025=NEW -DCMAKE_OSX_SYSROOT= -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_FIND_FRAMEWORK=LAST -DCMAKE_STRIP=/nix/store/p3kn26g5nhmx6spn37ar3mn0xjbzks3g-binutils-2.31.1/bin/strip -DCMAKE_RANLIB=/nix/store/p3kn26g5nhmx6spn37ar3mn0xjbzks3g-binutils-2.31.1/bin/ranlib -DCMAKE_AR=/nix/store/p3kn26g5nhmx6spn37ar3mn0xjbzks3g-binutils-2.31.1/bin/ar -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_INSTALL_PREFIX=/nix/store/ncjn6whq05j526darbbl8i0isyfic480-neopg-0.0.6
-- Could NOT find Git (missing: GIT_EXECUTABLE)
-- The CXX compiler identification is GNU 9.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /nix/store/s3j2gpc2s7cdn2wafm192jfp9k8jfvhs-gcc-wrapper-9.3.0/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- NeoPG v0.0.6
-- The C compiler identification is GNU 9.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /nix/store/s3j2gpc2s7cdn2wafm192jfp9k8jfvhs-gcc-wrapper-9.3.0/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Could NOT find PythonInterp (missing: PYTHON_EXECUTABLE)
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Found PkgConfig: pkg-config (found version "0.29.2")
-- Checking for module 'sqlite3'
--   Found sqlite3, version 3.33.0
-- Checking for module 'botan-2'
--   Found botan-2, version 2.17.2
-- Checking for module 'libusb-1.0'
--   Found libusb-1.0, version 1.0.23
-- Checking for module 'gnutls'
--   Found gnutls, version 3.6.15
Package libtasn1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libtasn1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libtasn1', required by 'gnutls', not found
Package libtasn1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libtasn1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libtasn1', required by 'gnutls', not found
Package libtasn1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libtasn1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libtasn1', required by 'gnutls', not found
Package libtasn1 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libtasn1.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libtasn1', required by 'gnutls', not found
-- Found Boost: /nix/store/cdsa5329z5sxklx7nbgnsl87dhi2492h-boost-1.69.0-dev/include (found version "1.69.0") found components: locale date_time
-- Found CURL: /nix/store/izq29d1nqgc348pi96rjlr8cvxysimsx-curl-7.73.0/lib/libcurl.so (found version "7.73.0")
-- Found Gettext: /nix/store/ddb7nbpq53xvdf9zdhafd1vfpyxicfqg-gettext-0.21/bin/msgmerge (found version "0.21")
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    CMAKE_INSTALL_BINDIR
    CMAKE_INSTALL_DOCDIR
    CMAKE_INSTALL_INCLUDEDIR
    CMAKE_INSTALL_INFODIR
    CMAKE_INSTALL_LIBDIR
    CMAKE_INSTALL_LIBEXECDIR
    CMAKE_INSTALL_LOCALEDIR
    CMAKE_INSTALL_MANDIR
    CMAKE_INSTALL_OLDINCLUDEDIR
    CMAKE_INSTALL_SBINDIR


-- Build files have been written to: /build/source
cmake: enabled parallel building
building
build flags: -j64 -l64 SHELL=/nix/store/516z50fm1jbpcl32qnzy7kynrh0vl22w-bash-4.4-p23/bin/bash
Scanning dependencies of target translations_1
Scanning dependencies of target neopg
Scanning dependencies of target gtest
Scanning dependencies of target gpg-error
[  0%] Generating de.gmo
[  0%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/b64dec.cpp.o
[  1%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/code-from-errno.cpp.o
[  1%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/estream.cpp.o
[  1%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/visibility.cpp.o
[  1%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/code-to-errno.cpp.o
[  1%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/strerror.cpp.o
[  1%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/estream-printf.cpp.o
[  2%] Building CXX object legacy/CMakeFiles/gpg-error.dir/libgpg-error/src/init.cpp.o
[  2%] Building CXX object 3rdparty/googletest/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o
[  2%] Built target translations_1
[  2%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/compressed_data_packet.cpp.o
[  2%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/literal_data_packet.cpp.o
[  2%] Building CXX object neopg/CMakeFiles/neopg.dir/crypto/rng.cpp.o
[  2%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/marker_packet.cpp.o
[  3%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/modification_detection_code_packet.cpp.o
[  3%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/multiprecision_integer.cpp.o
[  3%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/object_identifier.cpp.o
[  3%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/packet.cpp.o
[  3%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/data/v3_public_key_data.cpp.o
[  4%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/packet_header.cpp.o
[  4%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key_packet.cpp.o
[  4%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/data/v4_public_key_data.cpp.o
[  4%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/raw_public_key_material.cpp.o
[  4%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/dsa_public_key_material.cpp.o
[  4%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/ecdh_public_key_material.cpp.o
[  5%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/eddsa_public_key_material.cpp.o
[  5%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/ecdsa_public_key_material.cpp.o
[  5%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/elgamal_public_key_material.cpp.o
[  5%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/material/rsa_public_key_material.cpp.o
[  5%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/public_key_data.cpp.o
[  6%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_key/public_key_material.cpp.o
[  6%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/public_subkey_packet.cpp.o
[  6%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/raw_packet.cpp.o
[  6%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature_packet.cpp.o
[  6%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/data/v3_signature_data.cpp.o
[  7%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/data/v4_signature_subpacket_data.cpp.o
[  7%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/data/v4_signature_data.cpp.o
[  7%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/material/raw_signature_material.cpp.o
[  7%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/material/rsa_signature_material.cpp.o
[  7%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/material/dsa_signature_material.cpp.o
[  7%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/material/eddsa_signature_material.cpp.o
[  8%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/material/ecdsa_signature_material.cpp.o
[  8%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/signature_data.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/embedded_signature_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/exportable_certification_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/signature_material.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/signature_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/features_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/issuer_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/key_expiration_time_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/notation_data_subpacket.cpp.o
[ 10%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/key_flags_subpacket.cpp.o
[ 11%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/key_server_preferences_subpacket.cpp.o
[ 11%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/policy_uri_subpacket.cpp.o
[ 11%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/preferred_compression_algorithms_subpacket.cpp.o
[ 11%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/preferred_hash_algorithms_subpacket.cpp.o
[ 11%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/preferred_key_server_subpacket.cpp.o
[ 12%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/preferred_symmetric_algorithms_subpacket.cpp.o
[ 12%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/primary_user_id_subpacket.cpp.o
[ 12%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/reason_for_revocation_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/revocable_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/raw_signature_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/revocation_key_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/regular_expression_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/signature_expiration_time_subpacket.cpp.o
/build/source/legacy/libgpg-error/src/estream-printf.cpp: In function 'int pr_integer(estream_printf_out_t, void*, argspec_t, value_t, size_t*)':
/build/source/legacy/libgpg-error/src/estream-printf.cpp:879:12: note: the ABI of passing union with long double has changed in GCC 4.4
  879 | static int pr_integer(estream_printf_out_t outfnc, void *outfncarg,
      |            ^~~~~~~~~~
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/signature_creation_time_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/signature_target_subpacket.cpp.o
[ 13%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/trust_signature_subpacket.cpp.o
[ 14%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/signature/subpacket/signers_user_id_subpacket.cpp.o
[ 14%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/symmetrically_encrypted_data_packet.cpp.o
[ 14%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/symmetrically_encrypted_integrity_protected_data_packet.cpp.o
[ 14%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/trust_packet.cpp.o
[ 14%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/user_attribute/subpacket/image_attribute_subpacket.cpp.o
In file included from /build/source/neopg/openpgp/literal_data_packet.cpp:6:
/build/source/neopg/openpgp/literal_data_packet.h:14:38: warning: 'visibility' attribute ignored [-Wattributes]
   14 | const NEOPG_UNSTABLE_API std::string LITERAL_DATA_CONSOLE = "_CONSOLE";
      |                                      ^~~~~~~~~~~~~~~~~~~~
[ 15%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/user_attribute/subpacket/raw_user_attribute_subpacket.cpp.o
[ 15%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/user_attribute/user_attribute_subpacket.cpp.o
[ 15%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/user_attribute_packet.cpp.o
[ 15%] Building CXX object neopg/CMakeFiles/neopg.dir/openpgp/user_id_packet.cpp.o
[ 15%] Building CXX object neopg/CMakeFiles/neopg.dir/parser/openpgp.cpp.o
[ 15%] Building CXX object neopg/CMakeFiles/neopg.dir/proto/http.cpp.o
[ 16%] Building CXX object neopg/CMakeFiles/neopg.dir/parser/parser_input.cpp.o
[ 16%] Building CXX object neopg/CMakeFiles/neopg.dir/proto/uri.cpp.o
[ 16%] Building CXX object neopg/CMakeFiles/neopg.dir/utils/stream.cpp.o
[ 16%] Building CXX object neopg/CMakeFiles/neopg.dir/utils/time.cpp.o
[ 16%] Linking CXX static library libgpg-error.a
[ 16%] Built target gpg-error
Scanning dependencies of target ksba
Scanning dependencies of target assuan
[ 16%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/system-posix.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-buffer.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-error.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-handler.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-inquire.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-io.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/reader.cpp.o
[ 17%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/writer.cpp.o
[ 19%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/asn1-parse.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-listen.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/asn1-func.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-logging.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-pipe-connect.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-pipe-server.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-socket.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/der-encoder.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/asn1-func2.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/ber-decoder.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan-uds.cpp.o
[ 20%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/ber-help.cpp.o
[ 21%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/assuan.cpp.o
[ 21%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/client.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/cert.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/context.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/cms.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/cms-parser.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/certreq.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/crl.cpp.o
[ 22%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/debug.cpp.o
[ 23%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/system.cpp.o
[ 23%] Building CXX object legacy/CMakeFiles/assuan.dir/libassuan/src/server.cpp.o
[ 24%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/ocsp.cpp.o
[ 24%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/keyinfo.cpp.o
[ 24%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/oid.cpp.o
[ 24%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/name.cpp.o
[ 25%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/dn.cpp.o
[ 25%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/time.cpp.o
[ 25%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/util.cpp.o
/build/source/neopg/openpgp/object_identifier.cpp: In member function 'const string NeoPG::ObjectIdentifier::as_string() const':
/build/source/neopg/openpgp/object_identifier.cpp:99:24: warning: 'std::string Botan::OID::as_string() const' is deprecated: Use OID::to_string [-Wdeprecated-declarations]
   99 |   return oid.as_string();
      |                        ^
In file included from /nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/ber_dec.h:11,
                 from /build/source/neopg/openpgp/object_identifier.cpp:8:
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/asn1_obj.h:252:58: note: declared here
  252 |       std::string BOTAN_DEPRECATED("Use OID::to_string") as_string() const
      |                                                          ^~~~~~~~~
[ 25%] Building CXX object legacy/CMakeFiles/ksba.dir/libksba/src/asn1-tables.cpp.o
[ 25%] Linking CXX static library libassuan.a
[ 25%] Built target assuan
[ 25%] Linking CXX static library libksba.a
[ 25%] Built target ksba
[ 26%] Linking CXX shared library libneopg.so
[ 26%] Built target neopg
Scanning dependencies of target neopg-tool
Scanning dependencies of target gcrypt
[ 26%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/context.cpp.o
[ 26%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/global.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/sexp.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/hmac256.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/misc.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/secmem.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/visibility.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/crc.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/src/stdmem.cpp.o
[ 28%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/ecc.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/ecc-eddsa.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/ecc-gost.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/ecc-misc.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/ecc-curves.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/elgamal.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/ecc-ecdsa.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/des.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/dsa.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/rsa.cpp.o
[ 30%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/sha1.cpp.o
[ 31%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/sha512.cpp.o
[ 31%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/sha256.cpp.o
[ 31%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/whirlpool.cpp.o
[ 31%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/cat_command.cpp.o
[ 31%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/md4.cpp.o
[ 31%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/armor_command.cpp.o
[ 31%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/md5.cpp.o
[ 32%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/hash_command.cpp.o
[ 32%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/command.cpp.o
[ 32%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/keccak.cpp.o
[ 32%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/packet/dump/json_dump.cpp.o
[ 32%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/compress_command.cpp.o
[ 33%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/rmd160.cpp.o
[ 33%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/packet/dump/hex_dump.cpp.o
[ 33%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/camellia-glue.cpp.o
[ 33%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/camellia.cpp.o
[ 33%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/packet/dump_packet_command.cpp.o
[ 33%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/packet/dump/legacy_dump.cpp.o
[ 33%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/blowfish.cpp.o
[ 34%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/random_command.cpp.o
[ 34%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/packet_command.cpp.o
[ 34%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/packet/dump_packet_sink.cpp.o
[ 34%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/cli/version_command.cpp.o
[ 34%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/io/streams.cpp.o
[ 34%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/rijndael.cpp.o
[ 34%] Building CXX object neopg-tool/CMakeFiles/neopg-tool.dir/io/hex_filter.cpp.o
[ 35%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/idea.cpp.o
[ 35%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cast5.cpp.o
[ 35%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/twofish.cpp.o
[ 35%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/rfc2268.cpp.o
[ 35%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/mac-cmac.cpp.o
[ 35%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher.cpp.o
[ 37%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-cbc.cpp.o
[ 37%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-cfb.cpp.o
[ 37%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-ofb.cpp.o
[ 37%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-ctr.cpp.o
[ 37%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-aeswrap.cpp.o
[ 38%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-ccm.cpp.o
[ 38%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-cmac.cpp.o
[ 38%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-gcm.cpp.o
[ 38%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-poly1305.cpp.o
[ 38%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-ocb.cpp.o
[ 38%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-xts.cpp.o
[ 39%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/cipher-selftest.cpp.o
[ 39%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/pubkey.cpp.o
[ 39%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/pubkey-util.cpp.o
[ 39%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/mac.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/mac-hmac.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/md.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/mac-gmac.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/mac-poly1305.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/kdf.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/poly1305.cpp.o
[ 40%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/primegen.cpp.o
[ 41%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/scrypt.cpp.o
[ 41%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/hash-common.cpp.o
[ 41%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/dsa-common.cpp.o
[ 41%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/cipher/rsa-common.cpp.o
[ 41%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/ec.cpp.o
[ 42%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-add.cpp.o
[ 42%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-bit.cpp.o
[ 42%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-cmp.cpp.o
[ 42%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpicoder.cpp.o
[ 42%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-div.cpp.o
[ 43%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-gcd.cpp.o
[ 43%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpih-div.cpp.o
[ 43%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpih-mul.cpp.o
[ 43%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-inline.cpp.o
[ 43%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-inv.cpp.o
[ 44%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-mod.cpp.o
[ 44%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-mpow.cpp.o
[ 44%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-mul.cpp.o
[ 44%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-pow.cpp.o
[ 44%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpi-scan.cpp.o
[ 44%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpiutil.cpp.o
[ 46%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/mpih-add1.cpp.o
[ 46%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/generic/mpih-mul1.cpp.o
[ 46%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/generic/mpih-lshift.cpp.o
[ 46%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/generic/mpih-mul2.cpp.o
[ 46%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/generic/mpih-mul3.cpp.o
[ 47%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/generic/mpih-rshift.cpp.o
[ 47%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/mpi/generic/mpih-sub1.cpp.o
[ 47%] Building CXX object legacy/CMakeFiles/gcrypt.dir/libgcrypt/random/random.cpp.o
In file included from /build/source/neopg-tool/cli/compress_command.cpp:8:
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/comp_filter.h:11:24: error: expected constructor, destructor, or type conversion before '(' token
   11 | BOTAN_DEPRECATED_HEADER(comp_filter.h)
      |                        ^
In file included from /nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/types.h:14,
                 from /nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/secmem.h:11,
                 from /nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/filters.h:12,
                 from /nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/comp_filter.h:13,
                 from /build/source/neopg-tool/cli/compress_command.cpp:8:
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/mem_ops.h: In function 'void Botan::copy_mem(T*, const T*, std::size_t)':
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/mem_ops.h:136:4: error: 'assertion_failure' is not a member of 'Botan'
  136 |    BOTAN_ASSERT_IMPLICATION(n > 0, in != nullptr && out != nullptr,
      |    ^~~~~~~~~~~~~~~~~~~~~~~~
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/mem_ops.h: In function 'std::size_t Botan::buffer_insert(std::vector<_Tp, _Alloc>&, std::size_t, const T*, std::size_t)':
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/mem_ops.h:233:4: error: 'assertion_failure' is not a member of 'Botan'
  233 |    BOTAN_ASSERT_NOMSG(buf_offset <= buf.size());
      |    ^~~~~~~~~~~~~~~~~~
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/mem_ops.h: In function 'std::size_t Botan::buffer_insert(std::vector<_Tp, _Alloc>&, std::size_t, const std::vector<T, Alloc2>&)':
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/mem_ops.h:247:4: error: 'assertion_failure' is not a member of 'Botan'
  247 |    BOTAN_ASSERT_NOMSG(buf_offset <= buf.size());
      |    ^~~~~~~~~~~~~~~~~~
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/filter.h: In member function 'void Botan::Filter::send(const std::vector<unsigned char, Alloc>&, std::size_t)':
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/filter.h:83:10: error: 'assertion_failure' is not a member of 'Botan'
   83 |          BOTAN_ASSERT_NOMSG(length <= in.size());
      |          ^~~~~~~~~~~~~~~~~~
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/cipher_mode.h: In member function 'void Botan::Cipher_Mode::update(Botan::secure_vector<unsigned char>&, std::size_t)':
/nix/store/am5drb1pqlwfyrgz62c0f8c0pv589lwi-botan-2.17.2/include/botan-2/botan/cipher_mode.h:114:10: error: 'assertion_failure' is not a member of 'Botan'
  114 |          BOTAN_ASSERT(buffer.size() >= offset, "Offset ok");
      |          ^~~~~~~~~~~~
[ 47%] Linking CXX static library libgcrypt.a
[ 47%] Built target gcrypt
make[2]: *** [neopg-tool/CMakeFiles/neopg-tool.dir/build.make:121: neopg-tool/CMakeFiles/neopg-tool.dir/cli/compress_command.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 47%] Linking CXX shared library libgtest.so
[ 47%] Built target gtest
Scanning dependencies of target gtest_main
[ 48%] Building CXX object 3rdparty/googletest/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.o
[ 48%] Linking CXX shared library libgtest_main.so
[ 48%] Built target gtest_main
Scanning dependencies of target gcrypt-secmem-test
Scanning dependencies of target gpg-error-test
Scanning dependencies of target ksba-test
Scanning dependencies of target assuan-test
Scanning dependencies of target test-libneopg
Scanning dependencies of target gcrypt-test
[ 48%] Building CXX object legacy/CMakeFiles/gcrypt-secmem-test.dir/libgcrypt/tests/t-secmem.cpp.o
[ 48%] Building CXX object legacy/CMakeFiles/ksba-test.dir/libksba/tests/ksba-test.cpp.o
[ 48%] Building CXX object legacy/CMakeFiles/gcrypt-secmem-test.dir/libgcrypt/tests/gcrypt-secmem-test.cpp.o
[ 48%] Building CXX object legacy/CMakeFiles/gpg-error-test.dir/libgpg-error/tests/t-strerror.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/gpg-error-test.dir/libgpg-error/tests/gpg-error-test.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/ksba-test.dir/libksba/tests/t-oid.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/gpg-error-test.dir/libgpg-error/tests/t-b64dec.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/ksba-test.dir/libksba/tests/t-dnparser.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/gpg-error-test.dir/libgpg-error/tests/t-printf.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/gpg-error-test.dir/libgpg-error/tests/t-syserror.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/ksba-test.dir/libksba/tests/t-crl-parser.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/assuan-test.dir/libassuan/tests/fdpassing.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/gcrypt-test.dir/libgcrypt/tests/gcrypt-test.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/assuan-test.dir/libassuan/tests/assuan-test.cpp.o
[ 50%] Building CXX object legacy/CMakeFiles/gcrypt-test.dir/libgcrypt/tests/hmac.cpp.o
[ 50%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/marker_packet_tests.cpp.o
[ 50%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/multiprecision_integer_tests.cpp.o
[ 50%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/literal_data_packet_tests.cpp.o
[ 50%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/compressed_data_packet_tests.cpp.o
[ 51%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/modification_detection_code_packet_tests.cpp.o
[ 51%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/eddsa_public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/object_identifier_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key_packet_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/packet_header_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/data/v4_public_key_data_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/data/v3_public_key_data_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/elgamal_public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/raw_public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/dsa_public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/ecdsa_public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/ecdh_public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/public_key_material_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/public_key_data_tests.cpp.o
[ 53%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_key/material/rsa_public_key_material_tests.cpp.o
[ 55%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature_packet_tests.cpp.o
[ 55%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/public_subkey_packet_tests.cpp.o
[ 55%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/signature_data_tests.cpp.o
[ 55%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/data/v3_signature_data_tests.cpp.o
[ 55%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/data/v4_signature_data_tests.cpp.o
[ 55%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/material/raw_signature_material_tests.cpp.o
[ 56%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/material/dsa_signature_material_tests.cpp.o
[ 56%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/data/v4_signature_subpacket_data_tests.cpp.o
[ 56%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/material/rsa_signature_material_tests.cpp.o
[ 56%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/material/eddsa_signature_material_tests.cpp.o
[ 57%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/signature_material_tests.cpp.o
[ 57%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/material/ecdsa_signature_material_tests.cpp.o
[ 57%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/signature_subpacket_tests.cpp.o
[ 57%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/embedded_signature_subpacket_tests.cpp.o
[ 57%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/exportable_certification_subpacket_tests.cpp.o
[ 57%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/features_subpacket_tests.cpp.o
[ 58%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/issuer_subpacket_tests.cpp.o
[ 58%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/key_expiration_time_subpacket_tests.cpp.o
[ 58%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/key_flags_subpacket_tests.cpp.o
[ 58%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/key_server_preferences_subpacket_tests.cpp.o
[ 58%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/notation_data_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/policy_uri_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/preferred_compression_algorithms_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/preferred_hash_algorithms_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/preferred_key_server_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/preferred_symmetric_algorithms_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/primary_user_id_subpacket_tests.cpp.o
[ 59%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/reason_for_revocation_subpacket_tests.cpp.o
[ 60%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/raw_signature_subpacket_tests.cpp.o
[ 60%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/regular_expression_subpacket_tests.cpp.o
[ 60%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/revocable_subpacket_tests.cpp.o
[ 61%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/signature_creation_time_subpacket_tests.cpp.o
[ 61%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/revocation_key_subpacket_tests.cpp.o
[ 61%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/signature_target_subpacket_tests.cpp.o
[ 61%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/signature_expiration_time_subpacket_tests.cpp.o
[ 61%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/signers_user_id_subpacket_tests.cpp.o
In file included from /build/source/neopg/openpgp/literal_data_packet_tests.cpp:6:
/build/source/neopg/openpgp/literal_data_packet.h:14:38: warning: 'visibility' attribute ignored [-Wattributes]
   14 | const NEOPG_UNSTABLE_API std::string LITERAL_DATA_CONSOLE = "_CONSOLE";
      |                                      ^~~~~~~~~~~~~~~~~~~~
[ 61%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/signature/subpacket/trust_signature_subpacket_tests.cpp.o
[ 62%] Linking CXX executable gcrypt-secmem-test
[ 62%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/symmetrically_encrypted_data_packet_tests.cpp.o
[ 64%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/symmetrically_encrypted_integrity_protected_data_packet_tests.cpp.o
[ 64%] Linking CXX executable ksba-test
[ 64%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/trust_packet_tests.cpp.o
[ 64%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/user_attribute/subpacket/image_attribute_subpacket_tests.cpp.o
[ 64%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/user_attribute/subpacket/raw_user_attribute_subpacket_tests.cpp.o
[ 64%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/user_attribute/user_attribute_subpacket_tests.cpp.o
[ 65%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/user_attribute_packet_tests.cpp.o
[ 65%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/openpgp/user_id_packet_tests.cpp.o
[ 65%] Linking CXX executable gpg-error-test
[ 65%] Built target gcrypt-secmem-test
[ 65%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/parser/openpgp_tests.cpp.o
[ 65%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/parser/parser_input_tests.cpp.o
[ 65%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/proto/http_tests.cpp.o
[ 65%] Built target ksba-test
[ 65%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/utils/stream_tests.cpp.o
[ 66%] Building CXX object neopg/tests/CMakeFiles/test-libneopg.dir/__/proto/uri_tests.cpp.o
[ 66%] Built target gpg-error-test
[ 66%] Linking CXX executable assuan-test
[ 66%] Built target assuan-test
[ 66%] Linking CXX executable gcrypt-test
[ 66%] Built target gcrypt-test
make[1]: *** [CMakeFiles/Makefile2:1658: neopg-tool/CMakeFiles/neopg-tool.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 66%] Linking CXX executable test-libneopg
[ 66%] Built target test-libneopg
make: *** [Makefile:160: all] Error 2
builder for '/nix/store/vrp0lffg377x1jx9aj8dn6lx7xnh00hz-neopg-0.0.6.drv' failed with exit code 2

Remove s2k modes 0 and 1

These are insecure. For decrypting existing data, they might be slightly useful, but they should be removed from the user interface entirely.

Low-level packet parser

See PR #60.

  • Public-Key Encrypted Session Key Packet
  • Signature Packet
    • Signature Data
      • Signature Data (V3)
      • Signature Data (V4)
        • Signature Subpacket Data (V4)
    • Signature Material
      • RSA
      • DSA
      • Ecdsa
      • Eddsa
      • Raw
    • Signature Subpackets
      • SignatureCreationTime
      • SignatureExpirationTime
      • ExportableCertification
      • TrustSignature
      • RegularExpression
      • Revocable
      • KeyExpirationTime
      • PreferredSymmetricAlgorithms
      • RevocationKey
      • Issuer
      • NotationData
      • PreferredHashAlgorithms
      • PreferredCompressionAlgorithms
      • KeyServerPreferences
      • PreferredKeyServer
      • PrimaryUserId
      • PolicyUri
      • KeyFlags
      • SignersUserId
      • ReasonForRevocation
      • Features
      • SignatureTarget
      • EmbeddedSignature
  • Symmetric-Key Encrypted Session Key Packet
  • One-Pass Signature Packet
  • Secret-Key Packet
  • Public-Key Packet
    • Public-Key Data
      • Public-Key Data (V3)
      • Public-Key Data (V4)
    • Public-Key Material
      • RsaPublicKeyMaterial
      • DsaPublicKeyMaterial
      • ElgamalPublicKeyMaterial
      • EcdsaPublicKeyMaterial
      • EcdhPublicKeyMaterial
      • EddsaPublicKeyMaterial
      • Raw
  • Secret-Subkey Packet
  • Compressed Data Packet
  • Symmetrically Encrypted Data Packet
  • Marker Packet
  • Literal Data Packet
  • Trust Packet
  • User ID Packet
  • Public-Subkey Packet
  • User Attribute Packet
    • User Attribute Subpacket
      • Image Attribute Subpacket
      • Raw User Attribute Subpacket
  • Sym. Encrypted and Integrity Protected Data Packet
  • Modification Detection Code Packet

Compatibility programs

If we hardlink "gpg2" to neopg, neopg should automatically choose the gpg2 subcommand, etc. This will allow for easy backwards-compatibility. But if this is useful hinges on the question how compatible we can be. In particular, if we are compatible enough to run enigmail or similar.

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.