das-labor / neopg Goto Github PK
View Code? Open in Web Editor NEWThe multiversal cryptoengine!
License: Other
The multiversal cryptoengine!
License: Other
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?)
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.
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 ?
If we are serious about the "portable app" concept of providing a single binary, we need to embed some resources into the binary.
Here is a helper binary and cmake/boost integration: https://github.com/cyrilcode/embed-resource
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 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.
Options:
This is what everybody else seems to be using instead of boost::format, which is slow and also had some surprises up its sleeve: https://github.com/fmtlib/fmt
Replacing the occurences of boost::format with this should be straight forward. It is not a header-only library, but just one header and one source file. https://github.com/gabime/spdlog comes with a header-only version included, in case we want to use that.
This is challenging, because:
Simplifying the logic so much that we can do the final replacement will take a while. Maybe it is faster to reimplement from scratch.
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:
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.
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 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 OKetc.
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.
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
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.
What is the status of porting GPGME library?
Are there bindings to other languages that work (it's python i'm interested)?
See "secure wifi transfer" in openkeychain.
Right now the actual timeout used is 1000x higher than it should be.
The social graph API in facebook allows PGP key retrieval.
https://developers.facebook.com/docs/graph-api/reference/v2.2/user
This ticket is one of the several placeholder tickets that are concerned with key retrieval alternatives to keyservers. See #19, #20.
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).
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 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.
β¦or in any language without memory/overflow or similar issues.
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]
[...]
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 :)
Unfinished code is in the repository, currently the output is mixed legacy/json.
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)
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.
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
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?
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.
Suggested by Neal: https://hackage.haskell.org/package/hOpenPGP
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 .
Hi, it would be nice, if your Makefile has an uninstall target
See discussion here: cbd2fc5
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
These are insecure. For decrypting existing data, they might be slightly useful, but they should be removed from the user interface entirely.
The agent protocol could be easier to use. Some ideas:
See also: https://github.com/romanz/trezor-agent, https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-August/013008.html
See PR #60.
See https://neopg.io/blog/encryption-spoof/ for details.
These commits help:
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.