aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: be0ff21691dd8d840c8954d66b17e21f7fe9396e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
<img width="100" height="100" align="right" style="position: absolute;right: 0;padding: 12px;top:12px;" src="https://github.com/saturneric/Blob/blob/master/logos/icon.png?raw=true" alt="ICON"/>

# GpgFrontend

![Language](https://img.shields.io/badge/language-C%2B%2B-green)
![License](https://img.shields.io/badge/License-GPL--3.0-orange)
![CodeSize](https://img.shields.io/github/languages/code-size/saturneric/GpgFrontend)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/d1750e052a85430a8f1f84e58a0fceda)](https://www.codacy.com/gh/saturneric/GpgFrontend/dashboard?utm_source=github.com&utm_medium=referral&utm_content=saturneric/GpgFrontend&utm_campaign=Badge_Grade)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/saturneric/gpgfrontend)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend.svg?type=small)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend?ref=badge_small)
[![Build & Package](https://github.com/saturneric/GpgFrontend/actions/workflows/release.yml/badge.svg?branch=main)](https://github.com/saturneric/GpgFrontend/actions/workflows/release.yml)

GpgFrontend is a Free, Open Source, Powerful, Easy-to-Use, Compact, Cross-Platform [OpenPGP](https://www.openpgp.org/)
Crypt Tool. Also, it's one of the excellent GUI Frontends for Modern [GnuPG](https://www.gnupg.org/) (gpg).

By using GpgFrontend, you can quickly encrypt and decrypt text or files. You can also digitally sign your text or files.
**GpgFrontend does not need to depend on any server, therefore it may be one of the last lines of defense in protecting
your privacy.** Please use this tool to transmit or store information that you regard as very precious. You can also use
it to guarantee the authenticity of your information.

[Languages Supported](#languages-support) by GpgFrontend that are widely used in most countries and regions around the
world, including English, Chinese, French, Russian, German, Spanish, Portuguese, Arabic, etc.

**Notice:** GpgFrontend does not provide an embedded [gnupg](https://gnupg.org/) (gpg) binary 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 back-door during the delivery process.**

GpgFrontend is permanently free, and you can also "donate" it through the STAR project. Thanks!

[>> Overview <<](https://www.gpgfrontend.pub/#/overview) |
[>> Code & Binary Security <<](https://gpgfrontend.pub/#/about/code-binary-verify)
| [>> Track Development <<](https://global.git.codesdream.com/)

<img src="https://github.com/saturneric/Blob/blob/master/screenshots/main-ubuntu.png?raw=true" alt="Ubuntu Main Screenshot"/>

## Table of Contents

- [Usage](#usage)
- [User Manual](#user-manual)
- [Build Source Code](#build-source-code)
- [Languages Support](#languages-support)
- [Contract](#contract)
- [Licenses](#LICENSES)

## Usage

Here are some common usages to help you understand what GpgFrontend does and where it comes in handy. The interface
presented may not be exactly the same as the latest stable release.

### Text Encryption

Encryption can be done in just a few clicks.

![GIF](https://github.com/saturneric/Blob/blob/master/gif/encrypt-sign.gif?raw=true)

### Text Decryption

I want to see what you wrote right away.

![GIF](https://github.com/saturneric/Blob/blob/master/gif/decrypt-verify.gif?raw=true)

### File Encryption & Sign

What about files?

![GIF](https://github.com/saturneric/Blob/blob/master/gif/encr-sign-file.gif?raw=true)

## User Manual

GpgFrontend provides detailed documentation on his main features. If you want to know how to install with it, please
read the [User Manual](https://www.gpgfrontend.pub/#/quick-start) instead of README.

## Build Source Code

For some capable users, building Gpg Frontend from source code is a good option. We encourage people to freely build,
package and distribute their own versions. The way we build in common systems is as follows:

Note: "$" Symbols indicate commands to be executed with a normal user. Before you start, please clone the latest stable
version code for users around the world.

```shell
$ git clone --recurse-submodules https://github.com/saturneric/GpgFrontend.git
```

如果你在中国大陆,可以使用这个仓库

```shell
$ git clone --recurse-submodules https://git.codesdream.com/GpgFrontend.git
```

### For Windows

Before building, you need to install MSYS2. After installation, open the MSYS2 terminal (MSYS2 MinGW 64-bit), enter the
MSYS2 directory, and execute the following commands:

```shell
pacman --noconfirm -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-make mingw-w64-x86_64-cmake autoconf 
pacman --noconfirm -S --needed make texinfo mingw-w64-x86_64-libconfig mingw-w64-x86_64-boost automake 
pacman --noconfirm -S --needed mingw-w64-x86_64-qt5 libintl msys2-runtime-devel gettext-devel mingw-w64-x86_64-gpgme
pacman --noconfirm -S --needed mingw-w64-x86_64-ninja mingw-w64-x86_64-gnupg mingw-w64-x86_64-libarchive
```

After executing these commands, you will start compiling.

```shell
$ cd GpgFrontend
$ mkdir build && cd build
$ cmake -G Ninja  -DCMAKE_BUILD_TYPE="Release" ..
$ ninja
```

After compiling, a release directory will be generated, which contains executable files that can be run directly.

```shell
$ ./release/GpgFrontend.exe
```

### For macOS

Install and compile dependencies.

```shell
$ brew install cmake git autoconf automake qt@5 texinfo gettext [email protected] 
$ brew install boost ninja
$ brew unlink gettext && brew link --force gettext
$ brew link qt@5
```

Build the code separately for debug.

```shell
$ cd GpgFrontend
$ mkdir build && cd build
$ cmake -G Ninja  -DCMAKE_BUILD_TYPE="Debug" -DOPENSSL_ROOT_DIR=/usr/local/opt/[email protected]  ..
$ ninja
$ ./release/GpgFrontend # run the program
```

Build the code and make the App Bundle.

```shell
$ cd GpgFrontend
$ mkdir build && cd build
$ cmake -G Ninja  -DCMAKE_BUILD_TYPE="Release" -DOPENSSL_ROOT_DIR=/usr/local/opt/[email protected] ..
$ ninja
$ macdeployqt ./release/GpgFrontend.app
```

### For Ubuntu 18.04 And Later

Install and compile dependencies.

```shell
$ sudo apt-get update
$ sudo apt-get -y install gettext texinfo git ninja-build cmake
$ sudo apt-get -y install gcc g++ build-essential binutils autoconf automake 
$ sudo apt-get -y libboost-all-dev qt5-default
$ sudo apt-get -y install gpg # If you need to run directly after building.
```

Build the code and make the deb package.

```shell
$ cd GpgFrontend
$ mkdir build && cd build
$ cmake -G Ninja  -DCMAKE_BUILD_TYPE="Release" -DGPGFRONTEND_GENERATE_LINUX_INSTALL_SOFTWARE=ON ..
$ ninja
$ ninja package
```

Build the code separately for debug.

```shell
$ cd GpgFrontend
$ mkdir build && cd build
$ cmake -G Ninja  -DCMAKE_BUILD_TYPE="Debug" ..
$ ninja
$ ./release/GpgFrontend # run the program
```

Package the AppImage.

```shell
$ cd GpgFrontend
$ mkdir build && cd build
$ cmake -G Ninja  -DCMAKE_BUILD_TYPE="Release" ..
$ ninja
$ mkdir ./AppImageOut
$ cd ./AppImageOut
$ wget -c -nv https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
$ chmod u+x linuxdeployqt-continuous-x86_64.AppImage
$ ./linuxdeployqt-continuous-x86_64.AppImage ../release/gpgfrontend/usr/share/applications/*.desktop -appimage
```

## Languages Support

The supported languages are listed here. Some languages use machine translation and have not been verified. If you want
to join translation and verification work, please refer to  [here](https://gpgfrontend.pub/#/translate-interface).

### Supported Languages

'zh_CN', 'zh_TW', 'zh_HK', 'es_ES', 'fr_FR', 'de_DE', 'pl_PL', 'ru_RU', 'ja_JP', 'it_IT',
'ko_KR', 'pt_BR', 'ar_SA', 'ar_IQ', 'hi_IN', 'af_ZA', 'sq_AL', 'be_BY', 'bg_BG', 'ca_ES',
'hr_HR', 'cs_CZ', 'da_DK', 'nl_NL', 'et_EE', 'fa_IR', 'fi_FI', 'fr_CA', 'he_IL', 'id_ID',
'lt_LT', 'de_AT', 'de_CH', 'el_GR', 'es_MX', 'iw_IL', 'uk_UA', 'en_US', 'en_GB', 'en_AU',

Notice: Most translations are generated by Google's automatic translation machine.If you find that a certain translation
is wrong, you are welcome to join the translation work to provide a more suitable human translation.

## Contract

Please refer to [here](https://www.gpgfrontend.pub/#/contract) for my contact details.

### Contributing & Bugs Report

Feel free to dive in! [Open an issue](https://github.com/saturneric/GpgFrontend/issues/new) or submit PRs if you prefer
to use GitHub. For anonymous users, Git patches can be delivered by [mail](mailto:[email protected]).

### Project Maintainer

[@Saturneric](https://github.com/saturneric)

### Project's LOGO

![logo](https://github.com/saturneric/Blob/blob/master/logos/gpgfrontend-logo.jpg?raw=true)

## LICENSES

GpgFrontend itself is licensed under the [GPLv3](COPYING).

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend?ref=badge_large)

### 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

gpgme: https://gnupg.org/software/gpgme/index.html

Qt(opensource): https://www.qt.io

MSYS2: https://www.msys2.org

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

AppImage: https://appimage.org

JSON for Modern C++: https://github.com/nlohmann/json

SMTP Client for Qt (C++): https://github.com/bluetiger9/SmtpClient-for-Qt

Qt-AES: https://github.com/saturneric/Qt-AES

vmime: https://www.vmime.org/

MacOS Application
Bundles: [Link](https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1)

The icons of this software use materials from [Alibaba Iconfont](!https://www.iconfont.cn/). 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.