A Powerful, Easy-to-Use, Compact, Cross-Platform and Installation-Free Crypto Tool. 一个强大,易用,小巧,跨平台且免安装的加密解密签名工具。

Overview

ICON

GpgFrontend

Language License CodeSize Codacy Badge GitHub release (latest by date) FOSSA Status

GpgFrontend is a Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP Crypto Tool.

By using GpgFrontend, you can quickly encrypt and decrypt text or files. Or at the same time as the above operations, you can add your own signature to let others know that this document or this paragraph of text was issued by you. Please take the initiative to protect privacy in your own hands, instead of relying on servers and algorithms provided by large companies.

Notice: GpgFrontend does not provide an embedded gnupg binary library and needs to be installed by the user. This is to ensure safety and avoid code or binary files involved in encryption and decryption being implanted in the backdoor during the delivery process.

If you find this tool useful and promising, welcome to encourage me through STAR this project. Thanks!

>> Quick Start

>> Code & Binary Security

>> 简体中文文档

macOS Screenshot
Windows Screenshot Ubuntu Screenshot

Workflows Status:

Build & Package


Table of Contents

Features

  • Can run on Windows, Linux and macOS.
  • Open source, free, no need to install.
  • Just double-click, and then you can use it freely.
  • Supports multiple languages.

Usage

Quick Start

Fast Text Encryption

Encryption can be done in just a few clicks.

GIF

Fast Text Decryption

I want to see what you wrote right away.

GIF

Fast File Encryption & Sign

What about files?

GIF

More Helpful Operation

Read the animated pictures in the Document to learn more awesome operations.

How to Run it

Windows

  1. If you haven't installed gnupg, please Download gnupg-w32-******.exe and install it.
  2. Download GpgFrontend Windows Edition from the latest release
  3. Unzip gpgfrontend-windows-latest-*******.zip
  4. Go into the directory and double click GpgFrontend.exe.

macOS

  1. If command gpg is not available, please use homebrew to install it first.
  2. Download GpgFrontend macOS edition from the latest release
  3. Double-Click GpgFrontend.dmg to load it
    • macOS will automatically decompress the zip file and then you will be able to see the dmg
  4. Double click and run it (due to macOS security policy, you may need a little more step).
  5. If it satisfies you, you can drag it into your Application folder.

Debian/Ubuntu/CentOS

  1. Install gnupg (If you have already followed please skip)
    • For Debian/Ubuntu
      $ sudo apt update
      $ sudo apt install gpg
    • For CentOS
      $ sudo yum install gnupg 
  2. Download GpgFrontend Linux edition from the latest release
  3. Give GpgFrontend-***.AppImage permission to execute
    $ chmod u+x ./GpgFrontend-***.AppImage
  4. Just double-click GpgFrontend-***.AppImage to run it.

Document

for more usage information, please read document.

Purpose

The GpgFrontend project inherit from a relatively mature but not maintained gpg4usb project. It inherits the stable, easy-to-use, compact, and installation-free features of gpg4usb, and plans to support some new features of OpenPGP based on it and continue to improve it.

GpgFrontend will add more functions in the future to improve the ease of use of GPG in end-to-end transmission. At the same time, the addition of new functions does not affect the old basic functions. My personal strength is always limited. GpgFrontend welcomes volunteers to join. You can use the GitHub platform to file an issue, or submit a pull request.

The GpgFrontend project is as open source, and it also insists on using open source codes and libraries.

Build

The tutorial for building the software will be released shortly. Before the relevant documents are released, you can refer to the project-related Github Action file if you know it.

Contract

If you want to contact me individually, you can email [email protected].

Contributing & Bugs Report

Feel free to dive in! Open an issue or submit PRs.

Maintainers

@Saturneric.

LOGO

logo

LICENSES

GpgFrontend itself is licensed under the GPLv3.

FOSSA Status

Dependency

There are some libraries and binary included in the zip-file which (may) have different licenses, for more information check their homepages. You can also obtain the sources from there.

gnupg: https://gnupg.org/

gpg4usb: https://www.gpg4usb.org/

QT 5.15.2(opensource): https://www.qt.io/

MSYS2: https://www.msys2.org/

mingw-w64: http://mingw-w64.org/doku.php

AppImage: https://appimage.org/

rapidjson: https://github.com/Tencent/rapidjson

Application Bundles: Link

The icons of this software use materials from Alibaba Iconfont. The Alibaba vector icon library is free to use. The icons in the free library aren't registered as trademarks. There is no copyright issue involved and can be used commercially.

Comments
  • Error while decrypt or verify files if encrypted or signed with himself

    Error while decrypt or verify files if encrypted or signed with himself

    Hi,

    I got the last (2.3.4) GnuPG installed then I use the 2.0.4 portable version of GpgFrontend.

    If I verify or decrypt files (ok with text) encrypted or signed with GpgFrontend I get an error :

    [#] Decrypt Operation[Failed] No data
    
    [#] Verify Operation [Failed] No data
    [>] Could not find information that can be used for verification.
    

    If I try to encrypt or verify with Kleopatra I have also an error.

    If I encrypt or sign with kleopatra and then decrypt or verify with GpgFrontend it works fine.

    I asked a friend to check and I got the same.

    Any idea ?

    bug 
    opened by Plagouille 9
  • missing Qt libraries, although installed - AppImage could solve this!

    missing Qt libraries, although installed - AppImage could solve this!

    The error message under Ubuntu 20.04 LTS, which is the latest LTS-version (Long Term Support). ./gpgfrontend: /lib/x86_64-linux-gnu/libQt5Core.so.5: versionQt_5.15' not found (required by ./gpgfrontend)`

    At the same time in same system:

    ls -lah /lib/x86_64-linux-gnu/|grep -i libQt5Core
    -rw-r--r--   1 root root 1.3K Apr  9  2020 libQt5Core.prl
    lrwxrwxrwx   1 root root   20 Apr  9  2020 libQt5Core.so -> libQt5Core.so.5.12.8
    lrwxrwxrwx   1 root root   20 Apr  9  2020 libQt5Core.so.5 -> libQt5Core.so.5.12.8
    lrwxrwxrwx   1 root root   20 Apr  9  2020 libQt5Core.so.5.12 -> libQt5Core.so.5.12.8
    -rw-r--r--   1 root root 5.3M Apr  9  2020 libQt5Core.so.5.12.8
    

    So, the qt5-default (not qt-default as guided at readme.md) is obviously too old version... Would suggest to search newest version of Qt, e.g. in Debian-based systems:

    apt-cache search qt|grep default
    qt3d-defaultgeometryloader-plugin - Qt 3D default geometry loader plugin
    qt5-default - Qt 5 development defaults package
    

    Yet another check:

    file gpgfrontend 
    gpgfrontend: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=8bc5bd7e72243f0332b83be64125e154fd92ea1f, for GNU/Linux 3.2.0, not stripped
    

    That Qt library version issue could be solved, if AppImage version would be available for Linux. Then all dependencies would be included inside container and it can be used also in both: older and newer distros without dependency issues.

    Public AppImage repositories:

    Then it would be also easier for people to search apps in AppImage format at one place.

    There is also AppImage Launcher, which makes launching AppImage files and creating appropriate menu item easier.

    opened by edmundlaugasson 6
  • AppImage integration with system via AppImageLauncher

    AppImage integration with system via AppImageLauncher

    Hereby I propose to improve AppImage version of GpgFrontend to allow integrate it with system using AppImage Launcher. This has two core features:

    • creating appropriate ~/.local/share/applications/*.desktop for easy running the app from main menu by making AppImage file automatically also executable - all this happens graphically and automatically.
    • allowing to update the app This improvement would complete the AppImage transition. Once the AppImage file is downloaded, right-click on that and open with AppImage Launcher would do the trick.
    opened by edmundlaugasson 5
  • Windows: GnuPG - Update to current version 2.3.7 (?)

    Windows: GnuPG - Update to current version 2.3.7 (?)

    Hey, I came to know GpgFrontend only by today - and yes, it looks great.

    One question, though - I noticed that the current release-zip comes with GnuPG 2.3.6.

    So I wonder about your update policy... are you going to bundle the new GnuPG (currenlty 2.3.7) anytime soon? Or do you stick with the shipped version for some time?

    Thank you.

    opened by panther2 3
  • Doesn't work on Ubuntu 22.04

    Doesn't work on Ubuntu 22.04

    It doesn't work on newest ubuntu 22.04 because Ubuntu has newest libraries:

    $ ldd /usr/bin/GpgFrontend 
    ...
    	libicui18n.so.66 => not found
    	libicuuc.so.66 => not found
    	libcrypto.so.1.1 => not found
    ...
    

    libicui is libicuXXX.so.70.1, libcrypto is libcrypto.so.3

    bug 
    opened by nicraMarcin 3
  • Enhancement Feature Request: Add gpg-zip function to encrypt or sign files into an archive

    Enhancement Feature Request: Add gpg-zip function to encrypt or sign files into an archive

    I often have large groups of files in a folder that I would like to encrypt into an archive for easy and secure transport.

    Command line gpg-zip encrypts or signs files into a gpg-ized tar and recognizes several options to specify keys and the zip output path. It would be great to have this command visualized for professional users.

    enhancement 
    opened by newtype0 3
  • Doesn't work with big enough files.

    Doesn't work with big enough files.

    Hi,

    I tried the app with image files and it doesn't work as expected. Just load a file, do encrypt, then decrypt and original file is broken. I tested with a picture, it doesn't work. When I tried just simple text message typed right a way in the window, it works.

    My OS is Ubuntu 18.04.

    opened by oracle1wr 3
  • Importing issue

    Importing issue

    I generated a keypair on my linux machine, exported it with passphrase and everything went fine. Made a testimport on my linux machine, all fine. But when I now try to import the gfe pack (through "key management"->"import key"->"keypackage") on my windows machine the keyfields are blank. Ofcourse I rebooted Windows and tried to start gpgfrontend as admin, no difference. ~ Image 1: import on linux machine image ~ Image 2: import on windows machine image ~

    bug 
    opened by KDropZ 2
  • Support for OpenBSD

    Support for OpenBSD

    Unfortunately, there is no direct binary files for OpenBSD. And for me, to fulfill all the dependencies is quite hard. Yeah, I would appreciate if you could consider adding support for OpenBSD...

    enhancement 
    opened by liups233 2
  • Seg Fault by uploading to KeyServer

    Seg Fault by uploading to KeyServer

    I use the recent version 'v1.3.1-beta.2'. I created a new key with RSA 4096bit and directly clicked on "upload to keyserver" -> Segmentation Fault.

    Do you have any idea?

    opened by noppelmax 2
  • Do not assume locations of libraries.

    Do not assume locations of libraries.

    Lines in src/gpg/CMakeLists.txt are odd:

        message(STATUS "Link GPG Static Library For Unix")
         target_link_libraries(gpg
                /usr/local/lib/libgpgme.a /usr/local/lib/libgpg-error.a /usr/local/lib/libassuan.a
                 Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
    

    Surely not /usr/local/lib! It's also odd that there are multiple paths for each operating system. I can install the library anywhere I would want to. It's also odd to force the use of static library. The proper way would be to do like:

    // already searches /usr/local/lib by itself, because it should be listed in `CMAKE_LIBRARY_PATH`
    find_library(gpgme NAMES libgpgme.a)
    target_link_libraries(gpg PUBLIC
           ${gpgme}
    )
    

    That way If I want to I can cmake -D GPGME=/my/path/to/libgpgme.a specify manual path.

    opened by Kamilcuk 2
  • "gpg not installed correctly"?

    OS: macOS 12.5.1 (21G83) gpg: 2.3.7_1


    When starting GPGFrontend, I get the following warning:

    Gnupg(gpg) is not installed correctly, please follow the ReadME instructions in Github to install Gnupg and then open GpgFrontend.

    However, I do have the latest gpg installed via brew. Could it be a problem that I use brew on a non-admin account? On my system, brew is installed in /Users/user/homebrew/bin/gpg (where "user" is my non-admin user account). Note that I on purpose separate my admin and user account so making my user account admin is not an option.

    How can this be solved?:)

    opened by flippflapp 0
  • Ubuntu 22.04 absent QT dependencies in 2.0.9

    Ubuntu 22.04 absent QT dependencies in 2.0.9

    Hello! I found that some dependencies are absent during install deb package on Ubuntu. After installing them separately everything works okay.

    dpkg: зависимости пакетов не позволяют настроить пакет gpgfrontend:
     gpgfrontend зависит от libqt5core5a (>= 5.9), однако:
      Пакет libqt5core5a не установлен.
     gpgfrontend зависит от libqt5gui5 (>= 5.9), однако:
      Пакет libqt5gui5 не установлен.
     gpgfrontend зависит от libqt5widgets5 (>= 5.9), однако:
      Пакет libqt5widgets5 не установлен.
     gpgfrontend зависит от libqt5network5 (>= 5.9), однако:
      Пакет libqt5network5 не установлен.
     gpgfrontend зависит от libqt5printsupport5 (>= 5.9), однако:
      Пакет libqt5printsupport5 не установлен.
     gpgfrontend зависит от libconfig++9v5 (>= 1.5), однако:
      Пакет libconfig++9v5 не установлен.
    
    bug 
    opened by armanzor 0
  • AppImage special-directories don`t work

    AppImage special-directories don`t work

    Hello, there is .appimage in the release, but it use $HOME directory for .gnupg directory`s locate when I create ./gpg-frontend.home/ directory. This is usually the case when a old AppimageKit is used.

    What is special-directories - https://github.com/AppImage/AppImageKit#special-directories

    enhancement 
    opened by anareksik47 0
  • Windows :

    Windows : "general error" when creating new keys / Registry and environment usage

    Hi, firstly thanks for your great work on a modern GUI.

    I face a "general error" when creating new keys and cannot import existing gpg keyrings. This happens on machines where also eg GNUPT/GPGShell are installed using GnuPG 1.x On a fresh VM with Win11 Gpgfrontend works fine, both installer version and portable.

    It seems to be that , in case it does not exist, a new AppData\Roaming\gnupg\ is created. In my case, further to GPG 1.x also installed this already has gpg keyrings in it.

    My suspicion is that GpgFrontend also makes use of registry entries gpgProgram and/or HomeDir. As in my case gpgProgram is point ing to gpg.exe 1.x this would maybe explain the general error.

    May I therefore ask if there is any configuration file for GpgFrontend which allows to specify for keys and program a custom path to use ?

    Thanks

    Edit : found the logfile. Apparently the Frontend uses correctly gpg 2.3.6 coming with the App. So, no issue there. The error is coming here. I enclose the lofile.

    ERROR gpg_err_code_t GpgFrontend::check_gpg_error_2_err_code(gpgme_error_t, gpgme_error_t) [ Error 1 ] Source: GPGME Description: General error 20220513T002002.log

    enhancement 
    opened by Achim16 4
Releases(v2.0.9)
Owner
Saturn&Eric
A College Student. Love Tech and Exploration.
Saturn&Eric
A lightweight, secure, easy-to-use crypto library suitable for constrained environments.

The Hydrogen library is a small, easy-to-use, hard-to-misuse cryptographic library. Features: Consistent high-level API, inspired by libsodium. Instea

Frank Denis 419 Sep 29, 2022
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.7k Sep 26, 2022
TLS/SSL and crypto library

Welcome to the OpenSSL Project OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit for the Transport Layer Security (TLS) protoco

OpenSSL 19.5k Oct 2, 2022
The UAPKI is crypto library for using in PKI with support of Ukrainian and internationlal cryptographic standards.

UAPKI The UAPKI is crypto library for using in PKI with support of Ukrainian and internationlal cryptographic standards. Fork from Cryptonite. Expert

null 23 May 27, 2022
PTHash is a C++ library implementing fast and compact minimal perfect hash functions

Fast and compact minimal perfect hash functions in C++.

Giulio Ermanno Pibiri 79 Sep 23, 2022
DARKCAT Project - A Strong Prototype Crypto-Locker

Darkcat is an Open Source Crypto-locker directed at an audience with an interest in the field of Cyber Security. The locker is similar to how very obnoxious Ransomwares operate using 2-Layer Key Encryption with the intent of making it almost impossible to recover any key from memory even during the event of Encryption.

Alexander Töpfer 28 Jul 21, 2022
Malware that replaces copied crypto addresses with yours.

Crypto-Clipper Malware which replaces copied crypto addresses with yours. ?? Features Multiple cryptos supported (BTC, LTC, ETH, DOGE, DASH, NEO, BCH,

Voltic 7 Sep 21, 2022
An open source, portable, easy to use, readable and flexible SSL library

README for Mbed TLS Mbed TLS is a C library that implements cryptographic primitives, X.509 certificate manipulation and the SSL/TLS and DTLS protocol

Arm Mbed 3.8k Oct 3, 2022
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Sep 30, 2022
Mbedcrypto - a portable, small, easy to use and fast c++14 library for cryptography.

mbedcrypto mbedcrypto is a portable, small, easy to use, feature rich and fast c++14 library for cryptography based on fantastic and clean mbedtlsnote

amir zamani 37 Jun 16, 2022
This repository aims to provide an easy-to-use implementation of the Secure Hash Standard as specified in FIPS 180-4

HashLibCpp This repository aims to provide an easy-to-use implementation of the Secure Hash Standard. (currently implemented are SHA224, SHA256 and SH

ADD1609 1 Feb 2, 2022
XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner

XMRig is a high performance, open source, cross platform RandomX, KawPow, CryptoNight and AstroBWT unified CPU/GPU miner and RandomX benchmark. Official binaries are available for Windows, Linux, macOS and FreeBSD.

null 7.2k Oct 6, 2022
wtf is a distributed, code-coverage guided, customizable, cross-platform snapshot-based fuzzer designed for attacking user and / or kernel-mode targets running on Microsoft Windows.

wtf is a distributed, code-coverage guided, customizable, cross-platform snapshot-based fuzzer designed for attacking user and / or kernel-mode targets running on Microsoft Windows.

Axel Souchet 1k Oct 5, 2022
:lock: Don't use this repo, use the new monorepo instead:

trezor-crypto Heavily optimized cryptography algorithms for embedded devices. These include: AES/Rijndael encryption/decryption Big Number (256 bit) A

TREZOR 495 Sep 26, 2022
A useful tool for identifying the architecture, platform type, compiler, and operating system specifications by preprocessor feature support.

Platform-Detector Cross-Platform Information Detector It is a useful tool for identifying the architecture, platform type, compiler, and operating sys

Kambiz Asadzadeh 10 Jul 27, 2022
An easy way to decrypt UIKit app.

Decrypter An easy way to decrypt UIKit app and export non-encrypted installer ipa file. Working on arm mac, iOS version coming soon. Special Thanks ht

Lakr Aream 124 Oct 4, 2022
free C++ class library of cryptographic schemes

Crypto++: free C++ Class Library of Cryptographic Schemes Version 8.4 - TBD Crypto++ Library is a free C++ class library of cryptographic schemes. Cu

null 3.6k Sep 26, 2022
FractalCrypt - Free cryptoarchiver permitting any number of hidden volumes for deniable encryption

FractalCrypt - Free cryptoarchiver permitting any number of hidden volumes for deniable encryption

Ivan Serov 353 Oct 1, 2022
x509cert is a tool and library for generating X.509 certificates and certificate requests.

x509cert is a tool and library for generating X.509 certificates and certificate requests. It is written in C99 and uses BearSSL to decode keys and compute signatures.

Michael Forney 10 Sep 5, 2022