1
0

fix: improve manual

This commit is contained in:
Saturneric 2023-02-25 16:19:54 +08:00
parent 78c40e5b97
commit 28faad7203
14 changed files with 782 additions and 531 deletions

View File

@ -1,58 +1,69 @@
# Basic Concepts # Basic Concepts
If you don't know GPG, or PGP, you may need to learn some basic concepts here before using Gpg Frontend. This reduces If you don't know GPG, or PGP, you may need to learn some basic concepts here
the chance of you making mistakes, such as distributing your private key to the world. before using Gpg Frontend. This reduces the chance of you making mistakes, such
as distributing your private key to the world.
## The most basic concepts you must know ## The most basic concepts you must know
First, you need to generate a key pair, which you can imagine as a key ring. Each key pair has at least two keys, a To begin using GPG, you must first generate a key pair, which can be thought of
public key and a corresponding private key. These two keys form a key pair. There can also be multiple public keys and as a key ring. Each key pair includes at least two keys: a public key and a
their (one-to-one correspondence) private keys in a key pair, which will be described later. The public key can be corresponding private key. Together, these keys form a key pair. It is possible
released to the outside world. Others can use your public key to encrypt the information they want to give you. The for a key pair to include multiple public keys and their corresponding private
private key is kept by yourself. If it is leaked, your encryption will no longer be meaningful. keys, but this will be explained later.
What you need to know is that the public key is used to encrypt information, and the ciphertext encrypted by others The public key can be shared with others, allowing them to encrypt information
using the public key you released is guaranteed to be decrypted only by the corresponding private key of your key pair. they wish to send to you. The private key must be kept secure, as its disclosure
This process involves some The principle of cryptography, you can trust this process unless no one knows your private would render your encryption ineffective.
key except you. The reverse of this process is also valid, you can encrypt a message with your private key, and someone
else decrypts the message with your public key. The significance of this inverse process is that if the person using the
public key cannot normally decrypt a message encrypted with the private key, then it is certain that the message does
not come from the person who owns the private key corresponding to the public key. . This process can also be trusted.
It can be seen that this reverse process establishes a process of signing and then verifying. Information encrypted with
the private key can be seen as a signature. Others can use the public key to verify that the signature is valid.
If you just want to use the tool, you don't need to understand the cryptography behind it, you just need to remember the It is important to understand that the public key is used for encryption and
above. that any ciphertext encrypted using your public key can only be decrypted using
the corresponding private key of your key pair. This process relies on
cryptographic principles and is trustworthy unless your private key is known to
someone else. The reverse process is also valid: you can encrypt a message using
your private key and someone else can decrypt it using your public key. This
process establishes a mechanism for signing and verifying information.
Information encrypted with the private key can be considered a signature, and
others can use the public key to verify that the signature is valid.
If you want to know more, you can read on. For most users, it is not necessary to understand the cryptography behind GPG,
but it is helpful to remember the basic principles described above. For those
interested in learning more, further reading is recommended.
## Multiple pairs of public and private keys in a key pair ## Multiple pairs of public and private keys in a key pair
In a key pair, there is at least one pair of public key and private key, but there is no limit to the maximum number of In a key pair, there is always at least one public-private key pair, but there
pairs. You can generate another pair of public and private keys (we call them subkeys), and then add them to the key is no limit to the maximum number of pairs. It is possible to generate
pair, but it is worth noting that the newly added public and private key pairs are the same as the first pair. Pairs additional pairs of public and private subkeys and add them to the key pair.
have a public key and private key (which we call the primary key) pair associated. However, it should be noted that the newly added subkeys are identical to the
original pair, as each pair consists of one public key and one private key,
which we refer to as the primary key pair.
You can specify which process a subkey pair is used for. For example, the first key pair is used for encryption and Users can specify the purpose of each subkey pair. For instance, the first key
decryption, the second key pair is used for signing and verification, or the third key pair can be used for encryption pair can be used for encryption and decryption, the second for signing and
and decryption. Used to do the above two key pairs at the same time. Please specify these things when generating the verification, and the third for both encryption/decryption and
subkey. signing/verification. It is important to specify the intended usage when
generating subkeys.
The master key is automatically generated when the key pair is generated, and the subkey can be added by the user at The master key is automatically generated when the key pair is created, and
will. users can add subkeys as needed.
When generating the master key or subkey, you can choose some algorithms such as RSA, DSA, etc. You do not need to When generating the master key or subkeys, users can select algorithms such as
understand the specific principles of these. You just need to know that subkeys generated by certain algorithms cannot RSA or DSA. It is not necessary to understand the underlying principles of these
perform certain processes (such as encryption and decryption), but can only perform certain processes (such as signing algorithms. However, it is important to note that subkeys generated by certain
and verification). It is worth mentioning that for RSA, you can choose the key length when using the algorithm, you can algorithms may only perform specific processes, such as signing and
think that the key verification, and cannot perform others, such as encryption and decryption.
Additionally, for RSA, users can choose the key length when using the algorithm.
## The first pair of public and private keys in a key pair (primary key) ## The first pair of public and private keys in a key pair (primary key)
The first pair of public and private keys (master key) in a key pair is very critical, because subsequent public and The initial public-private key pair (master key) in a key pair is crucial, as
private keys (sub-keys) are linked to them, you can think that if someone else gets yours Master key (including public all subsequent sub-keys are linked to it. If someone were to obtain the master
and private key information), he can generate sub-keys based on the information of the master key, and then he can use key (including both the public and private key information), they could generate
the sub-keys he generated to impersonate you and communicate with others. sub-keys based on that information and use them to impersonate the key owner and
communicate with others.
Therefore, the private key of the master key (the public key can be released to others) must not be leaked. The Therefore, it is essential that the private key of the master key is kept
disclosure of its private key means that the entire key pair is no longer safe and must be stopped immediately. confidential, while the public key can be shared with others. If the private key
of the master key is compromised, it renders the entire key pair vulnerable and
must be immediately discontinued.

View File

@ -1,7 +1,11 @@
# Contract # Contract
Contents related to business and politics are rejected. GpgFrontend is for all mankind. If you have any questions We do not accept content related to business and politics on this platform, as
about technology and improving this software, please feel free to contact me. this tool is meant for the benefit of all humanity. However, if you have any
inquiries or suggestions regarding the technology and improvement of this
software, please do not hesitate to contact me.
Please use plain text to reach out to me via email, as HTML is not preferred.
## About ME ## About ME
@ -23,8 +27,10 @@ You can write to me in following languages.
## GPG Public Key Info ## GPG Public Key Info
This is the PGP public key that I use for a long time. You can use this public key to establish encrypted communication Here is the PGP public key that I have been using for a long time. You can use
with me. Please use plain text for encrypted communication, do not use rich text formats. this public key to establish secure and encrypted communication with me. Please
use plain text for any encrypted communication and avoid using rich text formats
such as HTML.
``` ```
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----

View File

@ -2,77 +2,90 @@
## What is GpgFrontend? ## What is GpgFrontend?
GpgFrontend is a cross-platform encryption tool that conforms to the OpenPGP standard. It is committed to making GnuPG GpgFrontend is a cross-platform encryption tool that adheres to the OpenPGP
easier to use, so that more people can use the tool to protect their privacy during their communications on Internet. standard. Its goal is to simplify the use of OpenPGP, making it more accessible
for individuals to protect their privacy.
## Relationship between OpenPGP(PGP) and GnuPG(GPG) ## Relationship between OpenPGP(PGP) and GnuPG(GPG)
OpenPGP(PGP) is a data encryption and decryption standard, and GpgFrontend supports it. GnuPG(GPG) is a cryptographic OpenPGP is a standard for data encryption and decryption, which is supported by
software used to encrypt, sign communication content and manage keys for asymmetric cryptography. It follows the GpgFrontend. GnuPG is a cryptographic software that is used for encrypting,
OpenPGP standard. GpgFrontend drives GnuPG at runtime to implement operations such as encryption and decryption. signing, and managing keys for asymmetric cryptography, and it follows the
OpenPGP standard. GpgFrontend operates GnuPG at runtime to perform various
operations such as encryption and decryption.
## How to obtain and use GpgFrontend? ## How to obtain and use GpgFrontend?
The various versions of GpgFrontend will be released in the GitHub repository, and you can find and download the latest The various versions of GpgFrontend will be released in the GitHub repository,
version [HERE](https://www.gpgfrontend.pub/#/downloads). After downloading, you can refer to the instructions in README and you can find and download the latest version
and you can start using it in just a few steps. [HERE](https://www.gpgfrontend.pub/#/downloads). After downloading, you can
refer to the instructions in ReadME and you can start using it in just a few
steps.
## How to deal with 'ENV Loading Failed'? ## How to deal with 'ENV Loading Failed'?
The reason for this problem is that GpgFrontend failed to find the GnuPG in your machine. You can follow suggestions The reason for this problem is that GpgFrontend failed to find the GnuPG in your
below. machine. You can follow suggestions below.
### macOS ### macOS
For macOS users, please install GnuPG for OSX [Here](https://sourceforge.net/p/gpgosx/docu/Download/). Or just use Homebrew For macOS users, please install GnuPG for OSX
to install GpgFrontend. By executing command: [Here](https://sourceforge.net/p/gpgosx/docu/Download/). Or just use Homebrew to
install GpgFrontend. By executing command:
`brew install --cask gpgfrontend`. `brew install --cask gpgfrontend`.
If you have installed GnuPG under a custom path, you can add the "bin" directory of GnuPG in to PATH. If you have installed GnuPG under a custom path, you can add the "bin" directory
of GnuPG in to PATH.
### Linux ### Linux
For Linux users, please install GnuPG through apt or yum. For Linux users, please install GnuPG through apt or yum.
If you have installed GnuPG under a custom path, you can add the "bin" directory of GnuPG in to PATH. If you have installed GnuPG under a custom path, you can add the "bin" directory
of GnuPG in to PATH.
### Windows ### Windows
For Windows users, GnuPG is now integrated in the latest version of GpgFrontend, we recommend you to download the For Windows users, GnuPG is now integrated in the latest version of GpgFrontend,
latest GpgFrontend if you don't have any ideas. we recommend you to download the latest GpgFrontend if you don't have any ideas.
Or, you can download GnuPG installers for Windows [HERE](https://www.gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.4.0_20221216.exe). Or, you can download GnuPG installers for Windows
[HERE](https://www.gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.4.0_20221216.exe).
Try to reinstall GnuPG through installer when you have already install it. Try to reinstall GnuPG through installer when you have already install it.
### More Tips? ### More Tips?
For more tips, you can see the quick start manual [HERE](quick-start.md). It provides more information on For more tips, you can see the quick start manual [HERE](quick-start.md). It
dealing this situation. provides more information on dealing this situation.
## I found some bugs in GpgFrontend, what should I do? ## I found some bugs in GpgFrontend, what should I do?
If you find a defect in GpgFrontend, you are welcome to create an issue in the GitHub repository to describe the If you find a defect in GpgFrontend, you are welcome to create an issue in the
problem. When I see your issue, I will respond as soon as possible. If you do not have a GitHub account, please email my GitHub repository to describe the problem. When I see your issue, I will respond
as soon as possible. If you do not have a GitHub account, please email my
personal mailbox. For contact information, please see [Contract](contract.md). personal mailbox. For contact information, please see [Contract](contract.md).
## Can I modify the code of GpgFrontend? ## Can I modify the code of GpgFrontend?
If you have any good ideas, you are free to modify the code of GpgFrontend. You are welcome to submit a Pull Request to If you have any good ideas, you are free to modify the code of GpgFrontend. You
add your good ideas to the next version. are welcome to submit a Pull Request to add your good ideas to the next version.
You can contribute completely anonymously, and you can email me patches. You can contribute completely anonymously, and you can email me patches.
## Why should I install GnuPG additionally? ## Why should I install GnuPG additionally?
The source code of GpgFrontend does not contain operations such as encryption and decryption, which requires Gnupg to The source code of GpgFrontend does not contain operations such as encryption
provide support. In addition, for users with higher security requirements, they can let GpgFrontend drive their trusted and decryption, which requires Gnupg to provide support. In addition, for users
copy of GnuPG. This design improves the security of GpgFrontend. with higher security requirements, they can let GpgFrontend drive their trusted
copy of Gnupg. This design improves the security of GpgFrontend.
## What is the release version with BETA? ## What is the release version with BETA?
The release version with the word "beta" means that some modules of this version have not yet been thoroughly tested. In The release version with the word "beta" means that some modules of this version
addition, some support for the beta version may not be complete. But rest assured, I will test after the beta version is have not yet been thoroughly tested. In addition, some support for the beta
released, and release a stable version at an appropriate time. version may not be complete. But rest assured, I will test after the beta
version is released, and release a stable version at an appropriate time.
But starting from 2.0.0, BETA versions will not be released unless there are special circumstances. But starting from 2.0.0, BETA versions will not be released unless there are
special circumstances.

View File

@ -1,52 +1,64 @@
# Encrypt & Sign File # Encrypt & Sign File
Gpg Frontend provides a convenient and fast way to operate on files. The concept of encryption and decryption files is GpgFrontend offers a fast and convenient method for working with files. The
almost the same as text, except that the input and output of file operations can be binary. encryption and decryption process for files is nearly identical to that of text,
with the exception that file operations involve binary input and output.
## File Extension Introduction ## File Extension Introduction
For ciphertext in ASCII format, its filename suffix is usually asc, and you can directly open such files with a text For ciphertext in ASCII format, the file extension is typically "asc" and these
editor. However, if the ciphertext is binary, its file extension will be gpg. Usually, binary ciphertext files are files can be opened with a text editor. On the other hand, if the ciphertext is
smaller than ASCII format. in binary format, the file extension will be "gpg". Binary ciphertext files are
generally smaller than ASCII format.
Before v2.0.4, the ciphertext files generated by GpgFrontend are all in ASCII format. But starting from v2.0.4, Before version 2.0.4, GpgFrontend generated ciphertext files exclusively in
GpgFrontend will generate ciphertext files in binary format by default. you can change this setting in settings. ASCII format. However, beginning with version 2.0.4, GpgFrontend now generates
ciphertext files in binary format by default. This setting can be adjusted in
the program's settings.
![image-20220112073548736](_media/encrypt-decrypt-file/image-20220112073548736.png) ![image-20220112073548736](_media/encrypt-decrypt-file/image-20220112073548736.png)
## File Browser ## File Browser
In the top menu file option, you can open the file browser(Ctrl/Command + B). Then by using the file browser, first From the top menu's "File" option, you can access the file browser by pressing
enter your working directory. Then right-click the file you need to operate, and then select the operation you want in Ctrl/Command + B. By using the file browser, you can navigate to your working
the pop-up menu. directory and right-click on the file you wish to work with. This will open a
pop-up menu, where you can select the operation you want to perform on the file.
![image-20220112072034647](_media/encrypt-decrypt-file/image-20220112072034647.png) ![image-20220112072034647](_media/encrypt-decrypt-file/image-20220112072034647.png)
There are two control buttons at the top of the file tab. The one on the left is the up level, and the one on the right Located at the top of the file tab are two control buttons. The button on the
is to enter or refresh the corresponding path in the input box on the left. left allows you to navigate up one level in the directory hierarchy, while the
button on the right refreshes the input box on the left with the corresponding
path.
On the far right is a button with useful options that you can tick to show system files or hidden files. On the far right of the file tab, there is a button with useful options that you
can select to show system files or hidden files.
![image-20220112072335503](_media/encrypt-decrypt-file/image-20220112072335503.png) ![image-20220112072335503](_media/encrypt-decrypt-file/image-20220112072335503.png)
### Encrypt & Sign ### Encrypt & Sign
This method provides encryption and signature functions, which GpgFrontend recommend, so that the receiver can know that GpgFrontend recommends using the encryption and signature functions in this
the ciphertext comes from you. You can select one or more recipients' public key and your own private key to complete method, so that the recipient can verify that the ciphertext originates from
this operation. you. You can select one or more recipients' public keys as well as your own
private key to complete this operation.
This operation generates a file with the gpg extension. The file with this suffix contains both encrypted content and When the operation is complete, a file with the ".gpg" extension is generated.
signed content. This file contains both encrypted content and signed content.
![Peek 2022-01-12 07-26](_media/encrypt-decrypt-file/Peek-2022-01-12-07-26.gif) ![Peek 2022-01-12 07-26](_media/encrypt-decrypt-file/Peek-2022-01-12-07-26.gif)
### Decrypt & Verify ### Decrypt & Verify
This ciphertext is verified while decrypting, which can improve security. In addition, you can also perform Only Verify When decrypting this ciphertext, it undergoes verification, which enhances
operations and this operation will verify without decryption. To use this operation, you need to select a file with a security. Additionally, you can perform a "Only Verify" operation which verifies
gpg or asc extension, which contains the ciphertext and signature content. the content without decrypting it. To use this operation, you must select a file
with a ".gpg" or ".asc" extension, which contains the ciphertext and signature
content.
In order to encourage users to check whether the ciphertext is signed or not when decrypting, Gpg Frontend does not To encourage users to verify whether the ciphertext is signed or not when
provide a separate decryption operation here. decrypting, Gpg Frontend does not provide a separate decryption operation for
this.
![Peek 2022-01-12 07-24](_media/encrypt-decrypt-file/Peek-2022-01-12-07-24.gif) ![Peek 2022-01-12 07-24](_media/encrypt-decrypt-file/Peek-2022-01-12-07-24.gif)

View File

@ -1,83 +1,111 @@
# Encrypt & Decrypt Text # Encrypt & Decrypt Text
To start encryption and decryption operations, you need to prepare your plain text. In addition, you also need a public To begin encryption and decryption operations, you must first prepare your plain
key that can perform encryption operations. How to generate such a key can be found in the chapter on generating a key text. Additionally, you will need a public key that is capable of performing
pair. encryption operations. Information on how to generate such a key can be found in
the chapter on generating a key pair.
## Encrypt ## Encrypt
The Encrypt operation itself uses a public key and does not require a private key. Remember that whoever you want to The Encrypt operation itself uses a public key and does not require a private
send it to encrypts it with whose public key. For people who don't use gpg very often, they often get confused and use key. Remember that whoever you want to send it to encrypts it with whose public
key. For people who don't use gpg very often, they often get confused and use
their own keys to encrypt ciphertext. their own keys to encrypt ciphertext.
Note that if you want to encrypt your text and send it to "foo", you need to know foo's public key first. Then you need Note that if you want to encrypt your text and send it to "foo", you need to
to encrypt your text with foo's public key instead of using your public key. Before encrypting, check to see if the know foo's public key first. Then you need to encrypt your text with foo's
public key has cryptographic capabilities. This can be viewed in the usage column of the key toolbox (the letter E public key instead of using your public key. Before encrypting, check to see if
stands for encryption). the public key has cryptographic capabilities. This can be viewed in the usage
column of the key toolbox (the letter E stands for encryption).
It is worth mentioning that if you only use foo's public key to encrypt the ciphertext, no one but foo's own private key It is worth mentioning that if you only use foo's public key to encrypt the
can decrypt the ciphertext. There is a situation where you want ciphertexts to be decrypted by multiple people ( ciphertext, no one but foo's own private key can decrypt the ciphertext. There
including yourself), please check their corresponding public keys before doing so. After an encryption operation, if you is a situation where you want ciphertexts to be decrypted by multiple people (
misuse (some people's public keys are found to be missing), you can use the undo operation to restore your original including yourself), please check their corresponding public keys before doing
so. After an encryption operation, if you misuse (some people's public keys are
found to be missing), you can use the undo operation to restore your original
ciphertext before closing GpgFrontend. ciphertext before closing GpgFrontend.
### Only Encrypt ### Only Encrypt
In this case, you only encrypt the ciphertext, and the ciphertext will be shorter. Because in operation, the ciphertext In this case, you only encrypt the ciphertext, which results in a shorter
does not contain additional signature information to determine the identity of the encryptor. If you don't want to ciphertext. This is because the ciphertext does not contain additional signature
receive your graphemes knowing your identity, use this method to generate your ciphertexts. information that identifies the encryptor. If you do not want the recipient to
know your identity, use this method to generate your ciphertexts.
After the encrypted operation, there is no additional information display in the information board except for the prompt After the encryption operation, no additional information will be displayed in
of whether the operation is successful. the information board except for a prompt indicating whether the operation was
successful.
![Peek 2022-01-12 07-16](_media/encrypt-decrypt-text/Peek 2022-01-12 07-16.gif) ![Peek 2022-01-12 07-16](\_media/encrypt-decrypt-text/Peek 2022-01-12 07-16.gif)
### Encrypt Sign ### Encrypt Sign
By encrypting and signing at the same time, not only can the text be protected, but the recipient can also know that To encrypt and sign text, you need to first prepare the plaintext and have a
thecipher text is from your hand. This encryption is often used in scenarios where both parties need to ensure that the public key that can perform encryption operations. The public key used for
decrypted text is credible, and in general, in that scenario, the upper reaches know each other. The ciphertext encryption should belong to the intended recipient, not yourself. It is
generated by this operation is longer because of the additional signature information attached to it. important to verify that the recipient's public key has cryptographic
capabilities for encryption before proceeding.
Before doing so, you only need to select the public key(s) you need to use for encryption. Halfway through the If you want the recipient to know that the ciphertext is from you, you can also
encryption operation, you'll be asked to choose the private key you need to use for signing. That is, the signer. If you choose to sign the text while encrypting it. This ensures that the decrypted
don't find the key you want in the Signaler list, confirm that your private key can be used for encryption and is valid. text is credible and comes from your hand. This method is commonly used when
To check whether the key can be used for signing, please check the usage column in the key toolbox on the right (letter both parties need to ensure the authenticity of the decrypted text, and
S stands for signature). You can select the public key to use for encryption, or you can select the public key to use typically in scenarios where both parties know each other.
for signing.
For this type of ciphertext, you can use the validate operation to see if the ciphertext is trustworthy before To encrypt and sign at the same time, select the public key(s) you need to use
decryption. for encryption, and during the encryption process, select the private key you
need to use for signing. This private key should belong to you and should have
the capability for signature operations. You can verify this by checking the
usage column in the key toolbox on the right (letter S stands for signature).
When the operation is complete, information about the cryptographic operation and the signature operation is displayed The ciphertext generated by this operation is longer than ciphertext generated
in the Infomation Board. You can view information about the signature, such as the pattern of your signature and the by only encryption because of the additional signature information attached to
algorithm used (you can indirectly see which subkey you used to sign). Please note the distinction between the dates it. After the operation is complete, information about the cryptographic and
used in your signature messages in UTC and not your local time. signature operations will be displayed in the Infomation Board, including
information about the signature pattern and algorithm used. Note that the dates
used in the signature messages are in UTC, not your local time.
To verify the authenticity of the ciphertext before decryption, you can use the
validate operation. Once the ciphertext is verified, you can proceed with
decryption using your private key.
![GIF](https://github.com/saturneric/Blob/blob/master/gif/encrypt-sign.gif?raw=true) ![GIF](https://github.com/saturneric/Blob/blob/master/gif/encrypt-sign.gif?raw=true)
## Decrypt ## Decrypt
Paste the ciphertext you obtained directly, gpg will automatically select the appropriate key in the list for When decrypting the ciphertext, you can simply paste the obtained ciphertext
decryption. Always remember to decrypt with the private key. into GpgFrontend, and it will automatically select the appropriate private key
for decryption. It is important to note that decryption must be performed with
the private key associated with the public key used for encryption.
![Peek 2022-01-12 07-18](_media/encrypt-decrypt-text/Peek-2022-01-12-07-18.gif) ![Peek 2022-01-12 07-18](_media/encrypt-decrypt-text/Peek-2022-01-12-07-18.gif)
Whether a key pair can be used for decryption will not be displayed in the usage column. You only need to remember that When decrypting a ciphertext, it is not necessary to check the usage column in
a valid private key can be used to decrypt the ciphertext encrypted with the related public key. the key toolbox to determine if the key is valid for decryption. Instead, you
need to use a valid private key that corresponds to the public key used for
Regarding whether this key is a public key or a private key, you can check the type column in the key toolbox. However, encryption. You can identify whether a key is a public key or a private key by
you do not need to check the corresponding key before decryption. And when all your local keys cannot be used for checking the type column in the key toolbox. If all your local keys are not
decryption, the program will prompt decryption failure. valid for decryption of the ciphertext, the program will display a decryption
failure message.
## Decrypt Verify ## Decrypt Verify
While decrypting, you can learn some information about the encryptor of the key (if you signed it during encryption). During decryption with verification, GPG will check the signature attached to
the ciphertext to ensure its authenticity. This provides an additional layer of
security and helps to prevent tampering with the encrypted message.
Whether a key pair can be used for verification will not be displayed in the usage column, you only need to remember a To perform decryption with verification, you need to select a file with a ".gpg"
valid public key can be used for verification. or ".asc" extension, which contains the ciphertext and signature content. If the
signature is valid, GPG will decrypt the message and display it in plain text.
Otherwise, it will display an error message indicating that the signature is not
valid.
This is a good habit regardless of whether the encryptor has signed in advance. Because you cannot infer from the format It is important to note that whether a key pair can be used for verification
of the ciphertext whether it has been signed or not. So, use decryption operations with verification whenever possible. will not be displayed in the usage column. Instead, you need to remember that a
valid public key can be used for verification. Therefore, it is a good habit to
always verify the signature during decryption, regardless of whether the
encryptor has signed in advance. This helps to ensure the authenticity and
integrity of the decrypted message.
![Peek 2022-01-12 07-10](_media/sign-verify-text/Peek-2022-01-12-07-10.gif) ![Peek 2022-01-12 07-10](_media/sign-verify-text/Peek-2022-01-12-07-10.gif)

View File

@ -1,118 +1,150 @@
# Generate Key Pair & Subkey # Generate Key Pair & Subkey
For GpgFrontend, to understand the key, you must first understand two concepts: key pair and subkey. Sure, let's go through the process of generating a key pair and subkeys.
A key pair can be compared to a key ring. When it is generated, there is a key in the ring called the primary key. This To generate a key pair using GpgFrontend, follow these steps:
primary key can do the intended operation (encryption, decryption, etc.). At the same time, keep this in mind, only
through the primary key can you open the keychain to add new keys to it.
The sub-keys can be analogous to the keys you add to the key pair later, and each of them can independently perform 1. Open GpgFrontend and click on the "Generate Key" button.
operations such as encryption and decryption. It can be considered that the primary key mentioned above is a special 2. Fill in the required information, such as your name and email address.
subkey. 3. Choose the type of key you want to generate (RSA or ECC).
4. Set the key size and expiration date, if desired.
5. Create a passphrase to protect your private key.
6. Click "Generate" to create your key pair.
When there is no primary key in the key pair, you will not be able to open the key ring to add a new sub key, but you Once your key pair is generated, you can add subkeys to it by following these
can still use this sub key if it is changed to exist for your operations. This mechanism is very helpful to the security steps:
of the key.
Let's see how to generate them next. 1. Select the key pair you want to add a subkey to.
2. Click on the "Add Subkey" button.
3. Choose the type of subkey you want to add (encryption, signing,
authentication, or all).
4. Set the subkey size and expiration date, if desired.
5. Create a passphrase to protect your subkey.
6. Click "Add" to create your subkey.
You can add multiple subkeys to a key pair, each with their own specific
purposes. This allows you to have more control over your key pair's security and
usage.
## Generate Key Pair ## Generate Key Pair
You can quickly grasp the operation of generating a key pair through the following animation. You can quickly understand the process of generating a key pair by watching the
following animation.
![GIF](https://github.com/saturneric/Blob/blob/master/gif/generate-key-pair.gif?raw=true) ![GIF](https://github.com/saturneric/Blob/blob/master/gif/generate-key-pair.gif?raw=true)
### Name & Email & Comment ### Name & Email & Comment
These three fields are used to facilitate people to distinguish this key pair from the card key pair. For these three The three fields, including name, email, and comment, are used to help users
options, except for name and email, which are required, comments are optional. differentiate this key pair from other key pairs they may have. Among these
three options, name and email are mandatory, while comment is optional.
In addition, the length of the name is required to be greater than 5 letters, as long as the email conforms to the It is important to note that the name should be at least 5 characters long, and
format (no actual existence is required). the email should follow the correct format (no actual email account is
required).
![uid](https://github.com/saturneric/Blob/blob/master/screenshots/uid.png?raw=true) ![uid](https://github.com/saturneric/Blob/blob/master/screenshots/uid.png?raw=true)
### Expiration Date ### Expiration Date
You can set an expiration date for the key pair. After this date, the key may still be used normally, but the operation Setting an expiration date for the key pair is a way to limit the validity of
it does will be logically invalid (especially for signature operations). GpgFrontend recommends and defaults this date the key over time. Once the expiration date is reached, the key can still be
to two years later. If you wish, check the Never expire checkbox to make this key pair never expire. used, but its operations, especially signature operations, will be considered
invalid. By default, GpgFrontend suggests setting the expiration date to two
years after generation, but you can also choose to check the "Never expire"
checkbox to make the key pair permanent.
But don't worry, you can change this option at any time after generation, even long after the expiration date (as long It's important to note that this option can be changed at any time after
as the primary key exists). generation, even after the expiration date has passed, as long as the primary
key still exists.
![expiration-date](https://github.com/saturneric/Blob/blob/master/screenshots/expriation-date.png?raw=true) ![expiration-date](https://github.com/saturneric/Blob/blob/master/screenshots/expriation-date.png?raw=true)
### Key Size & Algo ### Key Size & Algo
These two options are related. In general, different encryption algorithms have different optional lengths. GpgFrontend Setting an expiration date for the key pair is a way to limit the validity of
will give you sufficient hints on the UI so that you will not go wrong. the key over time. Once the expiration date is reached, the key can still be
used, but its operations, especially signature operations, will be considered
invalid. By default, GpgFrontend suggests setting the expiration date to two
years after generation, but you can also choose to check the "Never expire"
checkbox to make the key pair permanent.
Just remember that the larger the key length, the more secure, but it will be slower when performing operations. It's important to note that this option can be changed at any time after
generation, even after the expiration date has passed, as long as the primary
key still exists.
![keysize-algo](https://github.com/saturneric/Blob/blob/master/screenshots/keysize-algo.png?raw=true) ![keysize-algo](https://github.com/saturneric/Blob/blob/master/screenshots/keysize-algo.png?raw=true)
### Passphrase ### Passphrase
You can set a key to protect the primary key, which is very important when the primary key is leaked. When the Do not Setting a password to protect the primary key is crucial in case of a security
set password check box is not checked, an interface for you to enter the password will pop up during the process of breach. If the "Do not set password" checkbox is unchecked, you will be prompted
generating the password. Just follow the prompts. After setting the password, when you need to use the primary key for to enter a password during the key pair generation process. Follow the prompts
operation, you may enter the password to unlock it to set the password. Once the password is set, whenever you need to use the
(some systems have a password networkAccessManager to take over this process). primary key for an operation, you will need to enter the password to unlock it
(some systems have a password manager to automate this process).
You can also check the checkbox to not set a protection password for the primary key, but due to security However, you can also check the "Do not set password" checkbox to skip setting a
considerations, this is not recommended. protection password for the primary key. But this is not recommended due to
security concerns.
### Usage ### Usage
In the option of generating a key pair, you can specify the usage for the first subkey of the key pair, which is the When generating a key pair, you can specify the usage for the first subkey,
primary key. There are four options: which is the primary key. There are four options:
![usages](https://github.com/saturneric/Blob/blob/master/screenshots/usages.png?raw=true) ![usages](https://github.com/saturneric/Blob/blob/master/screenshots/usages.png?raw=true)
- Encryption: After generation, it can be used for encryption operations. - Encryption: Once generated, this key can be used for encryption purposes.
- Signing: After generation, it can be used for signature operations. - Signing: Once generated, this key can be used for signature purposes.
- Certification: Popular understanding can be used to unlock this key ring (key pair). Only the primary key can check - Certification: This key can be used to certify or verify other keys. Only the
this function. primary key can have this usage.
- Authentication: It can perform authentication operations like SSH keys. - Authentication: This key can be used for authentication purposes, such as with
SSH keys.
The third of these four uses (authentication purposes) can only be owned by the primary key. In addition, some usages The third of these four uses (authentication purposes) can only be owned by the
are not available when using certain algorithms for encryption. For example, when the DSA algorithm is selected, the primary key. In addition, some usages are not available when using certain
algorithms for encryption. For example, when the DSA algorithm is selected, the
encryption uses are disabled. encryption uses are disabled.
## Generate Subkey ## Generate Subkey
We can add sub-keys to the generated key pair. The subkey does not need to fill in the name, email and comment options. It is possible to append subkeys to an existing key pair. The subkey does not
The rest is basically the same as generating the key pair. require the input of a name, email, or comment, as the remaining steps are
essentially identical to those for generating a key pair.
![GIF](https://github.com/saturneric/Blob/blob/master/gif/generate-subkey.gif?raw=true) ![GIF](https://github.com/saturneric/Blob/blob/master/gif/generate-subkey.gif?raw=true)
### Extra note ### Extra note
Here are some tips you might want to know. These tips will help you better understand the above concepts and use this Below are some guidelines that may prove useful in comprehending the
tool correctly. aforementioned concepts and utilizing this tool accurately.
#### primary key & Subkey #### primary key & Subkey
A key pair can have multiple subkeys and one primary key. Using this design reduces the risk of key leakage. For subkey, A single primary key can be accompanied by several subkeys within a key pair.
After the subkey is leaked, you can revoke it at any time to reduce the loss. However, when the primary key is leaked, This setup mitigates the risk of key leakage. In the event that a subkey is
the entire key pair will be insecure (the popular reason is that the main force can be used to manage this key pair). exposed, it can be revoked promptly, thus limiting the damage. However, if the
primary key is leaked, the entire key pair becomes vulnerable, as the primary
key enables management of the entire key pair.
Therefore, the recommended approach is to generate multiple subkeys after creating the key pair, and export the master Hence, it is advisable to generate multiple subkeys upon creating the key pair
key separately and store it in a safe place. This operation is not yet supported by GpgFrontend, you need to use the gpg and store the master key separately in a secure location. This operation is not
command to perform it. But gpgfrontend can identify and prompt the user whether the primary key exists or not. This is yet supported by GpgFrontend; therefore, the gpg command must be used to carry
very important, because some special operations (adding subkeys, signing other keys, etc.) cannot be performed without it out. However, GpgFrontend can detect and notify the user whether the primary
the primary key. key exists or not, which is critical since certain actions, such as adding
subkeys or signing other keys, necessitate the presence of the primary key.
#### Some practical tips #### Some practical tips
The purpose of the primary key cannot be changed after it is generated. If the primary key of this key pair does not Once generated, the primary key's intended purpose cannot be altered. However,
have a certain purpose, but a certain sub-key has this purpose, this key pair can still be used for operations if a subkey has been designated for a specific purpose that the primary key
corresponding to this purpose. lacks, the key pair can still be utilized for activities related to that
purpose.
For example, when you generated the key pair, you didn't check the encryption usage. Don't worry, you can generate a
subkey and check the encryption usage. In this way, this key pair can still perform encryption operations.
For instance, suppose you overlooked the encryption usage while creating the key
pair. In that case, generating a subkey and configuring it for encryption usage
would enable the key pair to perform encryption operations.

View File

@ -1,93 +1,111 @@
# Import & Export Key Pair # Import & Export Key Pair
GpgFrontend provides multiple ways for users to import or export key paris. Here we will introduce some classic GpgFrontend provides various methods for importing or exporting key pairs, some
operations. Read the guide. of which are outlined below. Please refer to the guide for more information.
## Import Key Pair ## Import Key Pair
You can find the import options in the toolbar. You can choose several import methods according to your actual To access the import options, navigate to the toolbar and select the desired
situation. Lets introduce these methods. method based on your specific requirements. Additionally, you can access
additional options by selecting the action menu in the key management section.
![image-20220110194143231](_media/import-export-key-pair/image-20220110194143231.png) ![image-20220110194143231](_media/import-export-key-pair/image-20220110194143231.png)
In fact, you can find this action menu in key management, and here you can do more actions. In fact, you can find the action menu in the key management section, which
provides access to additional key management options beyond those available in
the toolbar.
![image-20220110200530182](_media/import-export-key-pair/image-20220110200530182.png) ![image-20220110200530182](_media/import-export-key-pair/image-20220110200530182.png)
### File ### File
When you select this option, you need to select a public key or private key file that meets the standard. The file you This option allows you to select a public or private key file in text format
choose should be in text format, with any extension. with any extension to import.
### Editor ### Editor
You can paste the contents of the key file on a blank text label page. Then click this option, GpgFrontend will You can paste the contents of a key file onto a blank text label page and
automatically recognize and import the corresponding key. GpgFrontend will automatically recognize and import the corresponding key.
### Clipboard ### Clipboard
You can copy the contents of the key to your system clipboard somewhere else. Then, after selecting this option, the You can copy the contents of a key to your system clipboard and then select this
corresponding key will be imported. option to import the corresponding key.
### Keyserver ### Keyserver
After selecting this option, you can enter the email or ID corresponding to the key in the pop-up selection, and then This feature enables users to search for and import public keys from a key
select the appropriate key server. Then after clicking the search button, GpgFrontend will list the public keys that can server. Users must first enter the email or ID associated with the desired key
be imported in the key server. You can import them together, or you can choose to double-click the table row to import and select the appropriate key server. Upon clicking the search button, a list
the corresponding public key. Note: The keys imported in this way are all public keys. of public keys that can be imported from the server will be displayed. Users can
choose to import multiple keys together or double-click on a specific table row
to import a corresponding public key. It is important to note that when using
this method, only public keys can be imported.
A detailed description of this part can be found [Here](./key-server-operations.md). A detailed description of this part can be found
[Here](./key-server-operations.md).
### Dropdown on Key Toolbox ### Dropdown on Key Toolbox
You can drag the key file directly to the key toolbox, and then follow the prompts of GpgFrontend to import the key. You can drag the key file directly to the key toolbox, and then follow the
prompts of GpgFrontend to import the key.
## Export Key Pair ## Export Key Pair
Deriving the public key of a key pair with the private key means deriving either the public key or the private key or When deriving the public key of a key pair using the private key, you can derive
both of all the keys present in the key pair. If there are very many keys in the key pair, the exported data will be either the public key or the private key or both of all the keys present in the
very long. Similar to import, there are multiple export methods. key pair. However, if there are numerous keys in the key pair, the exported data
can be lengthy. Multiple export methods are available, which are similar to the
import process.
For Gpg Frontend, the exported data is encoded in ASCII, which ensures data compatibility between computers. In Gpg Frontend, the exported data is encoded in ASCII to ensure compatibility
between computers.
### Export Public Key ### Export Public Key
you can find this operation in many places.The following will introduce them one by one. You can find this operation in many places. The following will introduce them
one by one.
#### Append Public Key to Editor #### Append Public Key to Editor
Right-click a row in the key toolbox, and click Append Select Key(s) to Editor in the pop-up menu item. You will find To append a public key to the editor in GpgFrontend, right-click on a row in the
that the public key that the key is right appears at the end of your text label page. You can freely copy the content to key toolbox and select "Append Select Key(s) to Editor" from the pop-up menu.
any place. This will add the public key of the selected key to the end of the text label
page. You can then copy the content to any location as needed.
#### Export on the Key Pair at Operations Tab #### Export on the Key Pair at Operations Tab
You can do this as shown in the screenshot below, which will store the data to a file. Please select a suitable To export a public key using the Key Pair at Operations Tab, follow the steps
directory to store this file containing the public key data before going anywhere. shown in the screenshot below. This will save the data to a file. Before
proceeding, please make sure to choose a suitable directory to store the file
containing the public key data.
![image-20220110194707813](_media/import-export-key-pair/image-20220110194707813.png) ![image-20220110194707813](_media/import-export-key-pair/image-20220110194707813.png)
### Export multiple public keys at once ### Export multiple public keys at once
You can export all public key data in multiple key pairs at one time, and you can select the key pairs you want to To export public key data for multiple key pairs at once, select the desired key
export on the key management interface. Then, you can click Export to Clipboard. pairs on the key management interface and click on the "Export to Clipboard"
option. This will copy the data to your system clipboard, which you can then
paste into any application or file.
![image-20220110195325342](_media/import-export-key-pair/image-20220110195325342.png) ![image-20220110195325342](_media/import-export-key-pair/image-20220110195325342.png)
### Export Private Key ### Export Private Key
You can find private key options everywhere in the detail's page that contains the private key (primary key or subkey). Private key options are available in various locations on the detail page that
Then you can select a location, and GpgFrontend will export the corresponding private key content to that location contains the private key (either the primary key or subkey). From there, you can
later. select a destination and GpgFrontend will export the corresponding private key
content to that location.
![image-20220110200109284](_media/import-export-key-pair/image-20220110200109284.png) ![image-20220110200109284](_media/import-export-key-pair/image-20220110200109284.png)
Exporting the private key also exports the public key and private key data, because the private key data without the Exporting the private key also exports both the public key and private key data,
public key is meaningless by itself, you cannot deduce the public key from the private key. as the private key data alone is meaningless without the corresponding public
key. Thus, the private key content is typically bundled with the public key
Generally speaking, the private key content will be bundled with the public key content to export and export. Please content during export. However, it's essential to note that the private key file
note: the private key file can never be disclosed to others. If it is leaked, it means that all ciphertexts encrypted by should never be disclosed to others. If leaked, it could compromise the security
the key are no longer safe. of all ciphertexts encrypted by the key.
You can export the private key data in your key pair in two ways. You can export the private key data in your key pair in two ways.
@ -96,5 +114,5 @@ You can export the private key data in your key pair in two ways.
### Securely export and transfer as a Key Package ### Securely export and transfer as a Key Package
You can package the private key data or public key data of multiple key pairs into a Key Package to allow them to be To securely transfer private key or public key data of multiple key pairs
securely transferred between your PC devices. This part of the function will be introduced in the feature. between your PC devices, you can package them into a Key Package.

View File

@ -1,113 +1,137 @@
# Key Server Operations # Key Server Operations
You want to use encrypted communication, but in some cases, you only know the email address to which your message is There are certain scenarios where you require encrypted communication but only
sent, but you don't know what the public key of the owner of the email address is. have the recipient's email address and do not possess the recipient's public
key. Additionally, in the event that your key has been inadvertently exposed, it
becomes necessary to notify the holders of your public key to discontinue its
use for sending encrypted information. In such cases, the key server can be
utilized to facilitate key information sharing. You can upload your public key
information to the key server, or search and retrieve the required public key
using email addresses or key IDs.
This is one situation, and another situation is that your key is accidentally leaked. How do you notify the person who Upon uploading your public key information to the key server, it is transmitted
holds your public key to stop using your public key to continue sending you encrypted information? For these people, you across key servers globally, making it accessible to individuals worldwide.
may not even know their names or contact information. In the above cases, you may be able to use the key server to GpgFrontend features key server interaction capabilities, which enable users to
complete the sharing of key information. You can upload your public key information to the key server, or search or pull rapidly share their public key, search for and import required public keys using
the public key you need from the key server by email address and key ID. mouse operations. It is essential to note that once public key information is
uploaded to the key server, it cannot be deleted and will be retained
Once the public key information is uploaded to the key server, it will be transmitted between the key servers until indefinitely. However, the public key of the old key pair can be overwritten by
finally all the key servers store your public key for access by people all over the world. updating when a subkey is added to the key pair.
GpgFrontend provides the ability to interact with the key server. Through mouse operation, you can quickly use the key
server to share your public key, or search and import the public key you want. It should be noted that once the public
key information is uploaded to the key server, it means that the public key information cannot be deleted from the key
server and will always be retained. but when you add a subkey to your key pair, the public key of the old key pair can
be overwritten by updating.
## Import Public Key From Key Server ## Import Public Key From Key Server
In the main page or in the key manager's Import key operation mode, there is a key server option. After selecting this In the main page or in the key manager's Import key operation mode, there is a
option you can see such an interface. key server option. After selecting this option you can see such an interface.
![import-keys-fomr-keyserver](_media/key-server-operations/import-keys-fomr-keyserver.png) ![import-keys-fomr-keyserver](_media/key-server-operations/import-keys-fomr-keyserver.png)
You can get a list of public keys associated with a key server by searching for Key ID, fingerprint or email address via You can get a list of public keys associated with a key server by searching for
the search box. If there is a suitable public key in the list, you can import it by double-clicking it. Key ID, fingerprint or email address via the search box. If there is a suitable
public key in the list, you can import it by double-clicking it.
![import-keys-fomr-keyserver-1](_media/key-server-operations/import-keys-fomr-keyserver-1.png) ![import-keys-fomr-keyserver-1](_media/key-server-operations/import-keys-fomr-keyserver-1.png)
When the import is complete, you can check whether the public key is actually imported through the pop-up window (no When the import is complete, you can check whether the public key is actually
need to import when the local public key is newer), and you can also check some brief information about the public key. imported through the pop-up window (no need to import when the local public key
is newer), and you can also check some brief information about the public key.
![image-20220109191357259](_media/key-server-operations/image-20220109191357259.png) ![image-20220109191357259](_media/key-server-operations/image-20220109191357259.png)
It is worth noting that the public key you imported may be expired or revoked. You can view the status of the key It is important to note that the public key you import may have expired or been
through the category tab in the key management interface. In addition to the search box, you also noticed that you can revoked. You can check the status of the key by navigating to the category tab
choose which key server to grab the public key information from by clicking on the drop-down box. How to set or add this in the key management interface. In addition to the search box, you may also
candidate list, please refer to the last section of this document: Key server related settings. notice a drop-down box that allows you to choose which key server to retrieve
the public key information from. To modify or add to this list of candidate
servers, please refer to the last section of this document: Key server related
settings.
## Export My Public Key To The Keyserver ## Export My Public Key To The Keyserver
When the current key pair has a master key, you can publish the public key information to the key server. Note that in If the current key pair has a master key, you have the option to publish the
order to be able to let users know what they are actually doing, GpgFrontend specifies that this can only be done if a public key information to a key server. It is important to note that in order to
master key exists for the local key pair. This avoids confusion about the function. avoid confusion, GpgFrontend requires the presence of a master key for this
action to be performed. This ensures that users are aware of what they are doing
and the function being performed.
### How To Use ### How To Use
You can find the entry of this operation through the operation tab of the key pair detail interface, as shown in the You can find the entry of this operation through the operation tab of the key
following figure. pair detail interface, as shown in the following figure.
![image-20220109192532368](_media/key-server-operations/image-20220109192532368.png) ![image-20220109192532368](_media/key-server-operations/image-20220109192532368.png)
Perform the operation by clicking Upload key pair to key server. Note that the naming of operations here is a bit Perform the operation by clicking Upload key pair to key server. Note that the
confusing, but this is where your public key information (not your private key) will be uploaded. naming of operations here is a bit confusing, but this is where your public key
information (not your private key) will be uploaded.
### Synchronize public key information from a key server ### Synchronize public key information from a key server
Sometimes, before you perform an encryption operation, you want to know if the public key you are using is still valid. Sometimes, before you perform an encryption operation, you want to know if the
At this point, you can get the latest information about the key from the key server (if the public key server has one). public key you are using is still valid. At this point, you can get the latest
information about the key from the key server (if the public key server has
one).
As above, you can find this action in the Actions tab of the key pair details screen, as shown in the image below. As above, you can find this action in the Actions tab of the key pair details
screen, as shown in the image below.
### Extra Information ### Extra Information
Gpg Frontend will upload the public key information to the default key server you set. The private key information is Gpg Frontend will upload the public key information to the default key server
not uploaded and should not be manually uploaded anywhere by the user. you set. The private key information is not uploaded and should not be manually
uploaded anywhere by the user.
Refer to the last section of this document on how to set the default key server. Refer to the last section of this document on how to set the default key server.
![image-20220109192532368](_media/key-server-operations/image-20220109192532368.png) ![image-20220109192532368](_media/key-server-operations/image-20220109192532368.png)
By clicking Synchronize key pair with key server, the public key information can be automatically pulled from the key The "Synchronize key pair with key server" function allows for automatic
server and compared with the local key information. After the operation is complete, you can check in the pop-up window retrieval of public key information from the key server, which is then compared
whether the key has actually been updated. It is worth noting that you will not be able to perform this operation if the with the local key information. After the operation is completed, a pop-up
private key exists locally, the reason is that you already have the key pair and you should publish the latest window will appear indicating whether the key has actually been updated. It
information for the key pair instead of accepting outdated information from the key server . should be noted that this operation is not possible if the private key exists
locally. This is because, in such a case, you already have the key pair and
should publish the latest information for the key pair instead of accepting
outdated information from the key server.
### Extra Information ### Extra Information
Gpg Frontend will automatically communicate with the default keyserver you set and get the information it wants. Refer GpgFrontend automatically communicates with the default key server that you have
to the last section of this document on how to set the default key server. set to obtain the necessary information. You can refer to the last section of
this document to learn how to set the default key server.
## Sync ALL Public Key ## Sync ALL Public Key
This is an advanced function provided by Gpg Frontend, it can synchronize all your local public key information at one This is an advanced function provided by GpgFrontend, it can synchronize all
time, if you want to know, please read [this document](../features/sync-all-public-keys.md). your local public key information at one time, if you want to know, please read
[this document](../features/sync-all-public-keys.md).
## Key Server Related Settings ## Key Server Related Settings
如何What about setting a list of keyservers? Or set a default keyserver? At this point, you need to open the Settings If you want to set a list of key servers or a default key server, you can do so
interface and find the Key Servers tab. Here you can see operations related to the key server candidate list, and see by accessing the Settings interface and navigating to the Key Servers tab. Here,
which key server is the default key server. you will find options for managing your key server candidate list and
determining which key server is set as the default.
![image-20220109195518834](_media/key-server-operations/image-20220109195518834.png) ![image-20220109195518834](_media/key-server-operations/image-20220109195518834.png)
You can enter the http or https address of the key server you want to add in the input box, and then click Add to add a To add a candidate key server to the list, simply enter the http or https
candidate key server. In order to prevent man-in-the-middle attacks, users are strongly recommended to use the https address of the key server you wish to add into the input box and click "Add". It
protocol. If you want to delete a candidate key server, you can right-click the row of the corresponding key server in is strongly recommended that users use the https protocol to prevent
the table and click Delete in the pop-up menu. If you want to edit an existing candidate key server address, you can man-in-the-middle attacks. If you wish to delete a candidate key server, simply
double-click its address in the table and edit it. right-click on the corresponding row in the table and select "Delete" from the
pop-up menu. To edit an existing candidate key server address, double-click on
the address in the table and edit it.
If you want to test the network connectivity of the servers in the key server candidate list, you can click the Test To test the network connectivity of the servers in the key server candidate
button at the bottom. Note that the test here only tells you if the keyserver is reachable, not whether the address is a list, click the "Test" button located at the bottom of the Key Servers tab.
valid keyserver. However, note that the test only determines if the keyserver is reachable, not
whether the address is a valid keyserver.
### Set Default Key Server ### Set Default Key Server
If you want to set a candidate key server as your default key server, you can right-click the row of the corresponding To set a candidate key server as your default key server, you can follow these
key server in the table, and click Set as Default in the pop-up menu. You can see if a candidate keyserver is the steps. First, locate the candidate key server you want to set as the default in
default keyserver in the first column of the table. the table. Then, right-click the row of the corresponding key server, and click
"Set as Default" in the pop-up menu. Once set, you can verify whether a
candidate key server is the default key server by checking the first column of
the table.

View File

@ -1,48 +1,56 @@
# Sign & Verify File # Sign & Verify File
Gpg Frontend provides a convenient and fast way to operate on files. The concept of signing and verifying files is Gpg Frontend provides a convenient and fast way to operate on files. The concept
almost the same as text, except that the input and output of file operations can be binary. of signing and verifying files is almost the same as text, except that the input
and output of file operations can be binary.
## File Extension Introduction ## File Extension Introduction
For ciphertext in ASCII format, its filename suffix is usually asc, and you can directly open such files with a text For ciphertext in ASCII format, its filename suffix is usually asc, and you can
editor. However, if the ciphertext is binary, its file extension will be sig or gpg. Usually, binary ciphertext files directly open such files with a text editor. However, if the ciphertext is
binary, its file extension will be sig or gpg. Usually, binary ciphertext files
are smaller than ASCII format. are smaller than ASCII format.
Before v2.0.4, the ciphertext files generated by GpgFrontend are all in ASCII format. But starting from v2.0.4, Before v2.0.4, the ciphertext files generated by GpgFrontend are all in ASCII
GpgFrontend will generate ciphertext files in binary format by default. you can change this setting in settings. format. But starting from v2.0.4, GpgFrontend will generate ciphertext files in
binary format by default. you can change this setting in settings.
![image-20220112073548736](_media/encrypt-decrypt-file/image-20220112073548736.png) ![image-20220112073548736](_media/encrypt-decrypt-file/image-20220112073548736.png)
## File Browser ## File Browser
In the top menu file option, you can open the file browser(Ctrl/Command + B). Then by using the file browser, first In the top menu file option, you can open the file browser(Ctrl/Command + B).
enter your working directory. Then right-click the file you need to operate, and then select the operation you want in Then by using the file browser, first enter your working directory. Then
the pop-up menu. right-click the file you need to operate, and then select the operation you want
in the pop-up menu.
![image-20220112072034647](_media/encrypt-decrypt-file/image-20220112072034647.png) ![image-20220112072034647](_media/encrypt-decrypt-file/image-20220112072034647.png)
There are two control buttons at the top of the file tab. The one on the left is the up level, and the one on the right There are two control buttons at the top of the file tab. The one on the left is
is to enter or refresh the corresponding path in the input box on the left. the up level, and the one on the right is to enter or refresh the corresponding
path in the input box on the left.
On the far right is a button with useful options that you can tick to show system files or hidden files. On the far right is a button with useful options that you can tick to show
system files or hidden files.
![image-20220112072335503](_media/encrypt-decrypt-file/image-20220112072335503.png) ![image-20220112072335503](_media/encrypt-decrypt-file/image-20220112072335503.png)
### Sign ### Sign
Through the right-click menu, you can quickly sign a file. This operation will generate a file with a sig or asc suffix, Through the right-click menu, you can quickly sign a file. This operation will
which contains the signature content. In this case, you need to pass this file along with the original file so that the generate a file with a sig or asc suffix, which contains the signature content.
other party can verify it. In this case, you need to pass this file along with the original file so that
the other party can verify it.
![Peek 2022-01-12 07-39](_media/sign-verify-file/Peek-2022-01-12-07-39.gif) ![Peek 2022-01-12 07-39](_media/sign-verify-file/Peek-2022-01-12-07-39.gif)
### Verify ### Verify
This operation needs to select a file with a gpg suffix (maybe invalid for the ciphertext of a binary file) or a file This operation needs to select a file with a gpg suffix (maybe invalid for the
with a sig suffix for verification. ciphertext of a binary file) or a file with a sig suffix for verification.
When selecting a file with the sig suffix, make sure that the source file is also in this directory. This means that the When selecting a file with the sig suffix, make sure that the source file is
name of the source file is just missing a sig suffix. also in this directory. This means that the name of the source file is just
missing a sig suffix.
![Peek 2022-01-12 07-40](_media/sign-verify-file/Peek-2022-01-12-07-40.gif) ![Peek 2022-01-12 07-40](_media/sign-verify-file/Peek-2022-01-12-07-40.gif)

View File

@ -1,46 +1,60 @@
# Sign & Verify Text # Sign & Verify Text
In general, the process of signing and verifying is the reverse process of encryption and decryption. When signing, the The process of signing and verifying is typically the inverse of the process of
private key is used, and when verifying, the public key is used. And just like signing one name after another on a encryption and decryption. When signing, the private key is used, and when
document, multiple private keys can be selected when signing. But there are some differences. Digital signatures can be verifying, the public key is used. Similar to signing multiple names on a
used to verify whether the content of the signature has changed, while handwritten signatures are difficult to do. document, multiple private keys can be selected when signing. However, there are
some notable differences. Digital signatures can be used to verify whether the
signature's content has been tampered with, while it is difficult to achieve the
same level of verification with handwritten signatures.
## Only Sign ## Only Sign
By signing the text, you can show that you are the only and unchangeable certification with this text. You can just sign By signing the text, you can show that you are the only and unchangeable
the text without encrypting the text like the following. certification with this text. You can just sign the text without encrypting the
text like the following.
![Peek 2022-01-12 06-50](_media/sign-verify-text/Peek-2022-01-12-06-50.gif) ![Peek 2022-01-12 06-50](_media/sign-verify-text/Peek-2022-01-12-06-50.gif)
To check whether the key can be used for signing, please check the usage column in the key toolbox on the right (letter To check whether the key can be used for signing, please check the usage column
S stands for signature). in the key toolbox on the right (letter S stands for signature).
## Sign With Encrypt ## Sign With Encrypt
You can also encrypt this short text while signing, which is equivalent to signing while encrypting. A typical usage You can also perform signing and encryption simultaneously by selecting both a
method is to check two key pairs, one is someone else's public key, which is used for encryption; the other is your own public key for encryption and your own private key for signing. This is a common
private key, which is used for signing. If you do not check any key that can be used for signing, this is possible ( practice where you check two key pairs: one belonging to someone else for
equivalent to encryption only). The only difference is that you will receive a warning. encryption, and the other being your own private key for signing. If you do not
select any key for signing, encryption-only is possible, but you will receive a
warning. It is worth noting that combining signing and encryption provides an
additional layer of security, as it ensures the recipient that the message has
not been tampered with and that it came from the sender whose identity is
verified by the digital signature.
![Peek 2022-01-12 06-54](_media/sign-verify-text/Peek-2022-01-12-06-54-16419417228411.gif) ![Peek 2022-01-12
06-54](_media/sign-verify-text/Peek-2022-01-12-06-54-16419417228411.gif)
## Verify ## Verify
After obtaining a plaintext and its signature, you can verify the signature. Please keep in mind that this form of Once you have obtained a plaintext and its corresponding signature, you can
signature is not suitable for use in emails as it will make the email less readable, if you need to sign your email, verify the signature using the public key of the signer. However, please note
please use the "New Message" function to generate the OpenPGP/MIME format sign for your email. that this form of signature is not suitable for use in emails as it can make the
email less readable.
![Peek 2022-01-12 06-56](_media/sign-verify-text/Peek-2022-01-12-06-56.gif) ![Peek 2022-01-12 06-56](_media/sign-verify-text/Peek-2022-01-12-06-56.gif)
To verify a signature with text, you need to have the corresponding public key for all included signatures. If a To verify a signature with text, you need to have the corresponding public key
suitable public key for a signature is not found locally during verification, Gpg Frontend will remind you to import it. for all included signatures. If a suitable public key for a signature is not
found locally during verification, GpgFrontend will remind you to import it.
![image-20220112070325556](_media/sign-verify-text/image-20220112070325556.png) ![image-20220112070325556](_media/sign-verify-text/image-20220112070325556.png)
## Verify With Decrypt ## Verify With Decrypt
After obtaining a ciphertext, you can try to verify it while decrypting it. This is a good habit regardless of whether It is recommended to verify a ciphertext while decrypting it, regardless of
the encryptor has signed in advance. Because you cannot infer from the format of the ciphertext whether it has been whether it has been signed by the encryptor or not. It is not possible to
signed or not. So, use decryption operations with verification whenever possible. determine from the format of the ciphertext whether it has been signed or not.
Therefore, it is a good habit to always use decryption operations with
verification when possible.
![Peek 2022-01-12 07-10](_media/sign-verify-text/Peek-2022-01-12-07-10.gif) ![Peek 2022-01-12 07-10](_media/sign-verify-text/Peek-2022-01-12-07-10.gif)

View File

@ -1,5 +1,6 @@
# Symmetric Encrypt & Decrypt Text # Symmetric Encrypt & Decrypt Text
Symmetric encryption will be triggered when you click the Encrypt button and do not check any key in the Key Toolbox. Symmetric encryption will be triggered when you click the Encrypt button and do
For symmetric encryption, you need to set a password for your encryption process. When decrypting, you need to enter not check any key in the Key Toolbox. For symmetric encryption, you need to set
the same password as the encryption process. a password for your encryption process. When decrypting, you need to enter the
same password as the encryption process.

View File

@ -1,134 +1,167 @@
# Understand Interface # Understand Interface
As a novice, you only need to quickly grasp the meaning of a few important parts of the page. You will gradually As a novice, you only need to quickly grasp the meaning of a few important parts
discover other functions in the next exploration. The interface may not be the same for different versions. of the page. You will gradually discover other functions in the next
exploration. The interface may not be the same for different versions.
![Interface](https://github.com/saturneric/Blob/blob/master/screenshots/interface-introduce.png?raw=true) ![Interface](https://github.com/saturneric/Blob/blob/master/screenshots/interface-introduce.png?raw=true)
## Text Editor ## Text Editor
In the text editing area, you can type text at will. Or create a new tab through the New option in the top file menu. In the text editing area, you are free to type any text you want, or create a
Tabs can be moved, closed, and so on. new tab using the "New" option in the file menu at the top. You can easily move
or close tabs as needed.
You can operate your text through the options in the Operations Bar. Or you can use some common shortcuts(ctrl+c/v/s) to You can perform various operations on your text using the options provided in
copy-paste save or even find operations. the Operations Bar, or you can use common shortcuts like Ctrl+C/V/S to copy,
paste, and save or even find operations.
The text edited in the text box is UTF8 encoded and does not have any formatting. Not providing any formatting (plain The text you edit in the text box is encoded in UTF8 and has no formatting. This
text) ensures that the reality of redaction in a message is not confusing. I plan to join rich text editors in the plain text format ensures that any redacted message is not confusing. Although
future, but the details are still under consideration. we plan to add rich text editing in the future, the details are still under
consideration.
### Large text file support ### Large text file support
Here, GpgFrontend supports opening some of the larger files without being stuck. However, when opening a relatively GpgFrontend provides support for opening larger files without getting stuck.
large file, you cannot edit this tab until the file has been totally read. Although this will make you unable to edit However, when opening a relatively large file, you will not be able to edit the
the file, you can still view it. tab until the entire file has been read. Even though editing the file is not
possible during this time, you can still view it.
## Information Board ## Information Board
The result of your operation on the current tab page will be printed in the Information Board: success or failure. In GpgFrontend displays the result of your current tab page operation in the
addition to the success and failure information, its text will also contain other information to help you understand the Information Board, indicating whether the operation was successful or not. The
details of your encryption, decryption, signature and other operations. Depending on your language settings, the output text in the Information Board also includes additional information to help you
in the dashboard will vary. understand the specifics of your encryption, decryption, signature, and other
operations. The output displayed in the dashboard may vary based on your
language settings.
I used the information board as a solution to be able to display more information in the same space. In the future, a The Information Board was created to allow for the display of more information
graphical interface display of this information will be introduced, which can help users understand the actual role of in the same space. However, in the future, GpgFrontend plans to introduce a
this information. graphical interface to enhance the user's understanding of this information.
### Font Color ### Font Color
- **Green**: When the operation succeeds and the results of the operation are verified and no problems are found, the - **Green**: When the operation succeeds and the results of the operation are
font color will be green. verified and no problems are found, the font color will be green.
- **Yellow**: When the operation succeeds and there are some problems with the result testing of the operation at that - **Yellow**: When the operation succeeds and there are some problems with the
time, the font turns yellow, which is a reminder to the user. At this time, the user needs to check the details of the result testing of the operation at that time, the font turns yellow, which is
operation. a reminder to the user. At this time, the user needs to check the details of
- **Red**: When the operation is unsuccessful or there is a serious conflict with the result of the operation, the font the operation.
color will turn red, and the user will need to carefully check the details of the operation to ensure security. - **Red**: When the operation is unsuccessful or there is a serious conflict
with the result of the operation, the font color will turn red, and the user
will need to carefully check the details of the operation to ensure security.
### Font Size ### Font Size
When you feel that the font of the information board is too small, you can set the font size in the Application column When you feel that the font of the information board is too small, you can set
of the settings. The font size defaults to 10 and can be set to a range of between 9 and 18. the font size in the Application column of the settings. The font size defaults
to 10 and can be set to a range of between 9 and 18.
### Information Board Actions Menu ### Information Board Actions Menu
The dashboard actions menu provides some commonly used actions for information board content. This enables users to The dashboard actions menu provides some commonly used actions for information
quickly record large pieces of content in the Information Board for other uses. board content. This enables users to quickly record large pieces of content in
the Information Board for other uses.
#### Copy #### Copy
This enables users to quickly record large pieces of content in the Information Board for other uses. This enables users to quickly record large pieces of content in the Information
Board for other uses.
#### Save File #### Save File
The operation stores the contents of the information board in the file system in UTF-8 format. Although the output file The operation stores the contents of the information board in the file system in
does not have a suffix name, in fact this file is in plain text format. UTF-8 format. Although the output file does not have a suffix name, in fact this
file is in plain text format.
#### Clear #### Clear
This action immediately empties the information board. The empty operation includes the contents of the information This action immediately empties the information board. The empty operation
board and all the statuses. The emptying operation occurs automatically when you make the next operation (encryption, includes the contents of the information board and all the statuses. The
etc.). emptying operation occurs automatically when you make the next operation
(encryption, etc.).
### Optional Actions Menu ### Optional Actions Menu
There will also be a column of Optional Actions Menu below the Information Board. If there are other auxiliary There will also be a column of Optional Actions Menu below the Information
operations that can be done after your operation is completed (display more detailed information, send encrypted text Board. If there are other auxiliary operations that can be done after your
through email, etc.), the entry points for these auxiliary operations will be displayed here. operation is completed (display more detailed information, send encrypted text
through email, etc.), the entry points for these auxiliary operations will be
displayed here.
## Key ToolBox ## Key ToolBox
Here is a list of key pairs stored on your machine that can be used for Gpg operations. The key lists in the Toolbox Here is a list of key pairs stored on your machine that can be used for Gpg
have multiple categories that correspond to different usage scenarios. The toolbox also provides some commonly used operations. The key lists in the Toolbox have multiple categories that
operations, all of which are in the Key List Menu. correspond to different usage scenarios. The toolbox also provides some commonly
used operations, all of which are in the Key List Menu.
### Usage ### Usage
Most operations related to Gpg need to specify a key pair (such as encryption, decryption, signature, etc.). You can Most operations related to Gpg need to specify a key pair (such as encryption,
select the check box in the first column of the table in the key toolbox to specify one or more keys for your operation. decryption, signature, etc.). You can select the check box in the first column
Classifications that contain only public keys are often used in cryptographic scenarios. of the table in the key toolbox to specify one or more keys for your operation.
Classifications that contain only public keys are often used in cryptographic
scenarios.
### Classification ### Classification
The Toolbox provides a categorical display through tabs. All classifications do not include all expired or revoked keys. The Toolbox provides a categorical display through tabs. All classifications do
If you want to view expired or revoked keys, use the Key Manager. The default classification contains all private and not include all expired or revoked keys. If you want to view expired or revoked
public keys. The operation takes only the key from the currently selected classification as input. keys, use the Key Manager. The default classification contains all private and
public keys. The operation takes only the key from the currently selected
classification as input.
### Columns ### Columns
It is important to understand this list. Now let me take you to understand it step by step. It is important to understand this list. Now let me take you to understand it
step by step.
- Select: Turn the checkbox in this column to let Gpg Frontend know that you specify the key of this row for your next - Select: Turn the checkbox in this column to let Gpg Frontend know that you
operation. specify the key of this row for your next operation.
- Type: See this column to let you know the type of key and whether the primary key exists in your key pair. - Type: See this column to let you know the type of key and whether the primary
- `pub` means this is a public key, Can be used for encryption or verification operations. key exists in your key pair.
- `pub/sec` The key pair contains both public and private keys. It can be used for almost all operations(Need to - `pub` means this is a public key, Can be used for encryption or
combine the usage column to determine this). verification operations.
- `pub/sec#` The key pair contains a public key and a private key, but the primary key is not in the key pair. This - `pub/sec` The key pair contains both public and private keys. It can be
shows that you will not be able to do some special (add subkeys, sign other key pairs, etc.) used for almost all operations(Need to combine the usage column to
- `pub/sec^` A key pair has one or more keys (subkeys or master keys) in the smart card. determine this).
- `pub/sec#^`The above two situations occur at the same time. - `pub/sec#` The key pair contains a public key and a private key, but the
primary key is not in the key pair. This shows that you will not be able
to do some special (add subkeys, sign other key pairs, etc.)
- `pub/sec^` A key pair has one or more keys (subkeys or master keys) in
the smart card.
- `pub/sec#^`The above two situations occur at the same time.
- Name: The identity information of the key pair. - Name: The identity information of the key pair.
- Email Address: The identity information of the key pair. - Email Address: The identity information of the key pair.
- Usage: This determines which operations the key pair can use. Composed of four capital letters, each capital letter - Usage: This determines which operations the key pair can use. Composed of four
represents a usage. capital letters, each capital letter represents a usage.
- `C` Certificate. Generally, the key pair that contains the primary key will have this usage
- `E` Encrypt. The key pair can be used for encryption operations.
- `S` Sign. The key pair can be used for sign operations.
- `A` Authenticate. The key pair can be used to perform operations like SSH authentication.
- Validity: One of the concepts of Gpg, simply put it represents the degree of trust in this key. - `C` Certificate. Generally, the key pair that contains the primary key
will have this usage
- `E` Encrypt. The key pair can be used for encryption operations.
- `S` Sign. The key pair can be used for sign operations.
- `A` Authenticate. The key pair can be used to perform operations like SSH
authentication.
- Validity: One of the concepts of Gpg, simply put it represents the degree of
trust in this key.
## Operations Bar ## Operations Bar
Here, you can perform corresponding operations by clicking the buttons above. For example, after typing text in a text Here, you can perform corresponding operations by clicking the buttons above.
editor and setting the key you want to use in the key toolbox, you can click the encryption button to perform the For example, after typing text in a text editor and setting the key you want to
use in the key toolbox, you can click the encryption button to perform the
operation. operation.
Some operations need to specify the key, and some are not used, which will be explained in other corresponding parts of Some operations need to specify the key, and some are not used, which will be
the document. explained in other corresponding parts of the document.
### Customize ### Customize
Some operations you may not use for a long time, at which point you can uncheck the relevant function group in the view Some operations you may not use for a long time, at which point you can uncheck
of the top menu. Conversely, for some of the operations you use frequently, you can also add here. the relevant function group in the view of the top menu. Conversely, for some of
the operations you use frequently, you can also add here.

View File

@ -1,166 +1,203 @@
# View Key Pair Details # View Key Pair Details
Right-click the key pair in the key toolbox or key management interface and click Show key details to view the Right-click the key pair in the key toolbox or key management interface and
information about the key pair. click Show key details to view the information about the key pair.
This part may involve a brief introduction to gpg-related concepts, and it will be relatively long. This part may involve a brief introduction to gpg-related concepts, and it will
be relatively long.
The screenshot below is my friend's public key that I got from the key server. The screenshot below is my friend's public key that I got from the key server.
![image-20220110185144734](_media/view-keypair-info/image-20220110185144734.png) ![image-20220110185144734](_media/view-keypair-info/image-20220110185144734.png)
Below is a private key I randomly generated. You can find that the biggest difference between him and the above is that Below is a private key I randomly generated. You can find that the biggest
the key pair with only the public key is only used for encryption, and if you have the private key, you can do more difference between him and the above is that the key pair with only the public
things (it also depends on your algorithm, DSA can only for signature). key is only used for encryption, and if you have the private key, you can do
more things (it also depends on your algorithm, DSA can only for signature).
![image-20220110185215204](_media/view-keypair-info/image-20220110185215204.png) ![image-20220110185215204](_media/view-keypair-info/image-20220110185215204.png)
## General Info ## General Info
This interface provides some useful information to assist you in proper management of the key pair. This interface provides some useful information to assist you in proper
management of the key pair.
### Owner ### Owner
Through this section, you can understand the owner of this key pair. This information is not fixed and unchangeable. You Through this section, you can understand the owner of this key pair. This
can create a new UID in the UID section and set it as the main UID to change it. information is not fixed and unchangeable. You can create a new UID in the UID
section and set it as the main UID to change it.
According to the OpenPGP protocol, this part is divided into Name, Email, and Comment. According to the OpenPGP protocol, this part is divided into Name, Email, and
Comment.
![image-20220110185740491](_media/view-keypair-info/image-20220110185740491.png) ![image-20220110185740491](_media/view-keypair-info/image-20220110185740491.png)
### Primary key ### Primary key
This part is the information of the primary key of the key pair. The primary key is very important, because without it, This part is the information of the primary key of the key pair. The primary key
the key pair cannot perform related management operations such as adding and revoking sub-keys (similar to the key ring is very important, because without it, the key pair cannot perform related
cannot be opened). Let's introduce the information of the primary key separately below. If you want to learn more, see management operations such as adding and revoking sub-keys (similar to the key
the [Basic Concepts](../basic-concepts.md) section. ring cannot be opened). Let's introduce the information of the primary key
separately below. If you want to learn more, see the [Basic
Concepts](../basic-concepts.md) section.
The absence of the master key means that the private key of the master key does not exist, but neither the public key The absence of the master key means that the private key of the master key does
nor the private key exists. Please remember: Each subkey and primary key consists of a pair of public and private keys. not exist, but neither the public key nor the private key exists. Please
remember: Each subkey and primary key consists of a pair of public and private
keys.
![image-20220110185819775](_media/view-keypair-info/image-20220110185819775.png) ![image-20220110185819775](_media/view-keypair-info/image-20220110185819775.png)
#### Key ID #### Key ID
The unique identifier of the key is fixed and unchanging. Note that this key ID is the key ID of the primary key. The The unique identifier of the key is fixed and unchanging. Note that this key ID
key ID is uniquely determined after the key is generated. Compared with the fingerprint, the key ID will be shorter and is the key ID of the primary key. The key ID is uniquely determined after the
key is generated. Compared with the fingerprint, the key ID will be shorter and
more user-friendly. more user-friendly.
#### Algorithm #### Algorithm
Algorithm used for key generation. Note that this also refers to the generation algorithm of the primary key. The Algorithm used for key generation. Note that this also refers to the generation
generation algorithm determines the properties and capabilities of the key. Algorithms such as RSA can be used for algorithm of the primary key. The generation algorithm determines the properties
encryption and signature, but DSA can only be used for signature, but the DSA key length can be shorter. and capabilities of the key. Algorithms such as RSA can be used for encryption
and signature, but DSA can only be used for signature, but the DSA key length
can be shorter.
#### Key Size #### Key Size
The length of the primary key. It can be said that the longer the key, the harder it is to crack the ciphertext, but at The length of the primary key. It can be said that the longer the key, the
the same time, the more time it takes for a single operation. Generally speaking, a length of 2048 bits is safe enough ( harder it is to crack the ciphertext, but at the same time, the more time it
This refers to the key generated using the RSA algorithm). takes for a single operation. Generally speaking, a length of 2048 bits is safe
enough ( This refers to the key generated using the RSA algorithm).
#### Normal Usage #### Normal Usage
What can the key pair conceptually be used for (including the conceptual usage of the primary key and sub-key). When the What can the key pair conceptually be used for (including the conceptual usage
primary key or subkey generation can be used to sign, but it has already expired or does not exist, the signature usage of the primary key and sub-key). When the primary key or subkey generation can
will still be displayed here. be used to sign, but it has already expired or does not exist, the signature
usage will still be displayed here.
#### Actual Usage #### Actual Usage
The actual usage of the primary key and all subkeys. It is the union of their usage. If there is only one primary key in The actual usage of the primary key and all subkeys. It is the union of their
the key pair that can be used for signing, but this primary key does not exist. Then the signature usage will not appear usage. If there is only one primary key in the key pair that can be used for
here, only in Normal Usage. In addition, when there is only one subkey that can be used for signing, if it has expired, signing, but this primary key does not exist. Then the signature usage will not
the signature purpose will not be displayed here. appear here, only in Normal Usage. In addition, when there is only one subkey
that can be used for signing, if it has expired, the signature purpose will not
be displayed here.
#### Expires on #### Expires on
The expiration time of the primary key. When the primary key expires, it will be invalid. You cannot use it for any The expiration time of the primary key. When the primary key expires, it will be
operation. In addition, the subkeys in the key pair will also be unavailable. Fortunately, you can change the expiration invalid. You cannot use it for any operation. In addition, the subkeys in the
time of the primary key at any time, or even set it to never expire. The prerequisite for this is that the primary key key pair will also be unavailable. Fortunately, you can change the expiration
exists in the key pair. time of the primary key at any time, or even set it to never expire. The
prerequisite for this is that the primary key exists in the key pair.
#### Last Update #### Last Update
The time when the content of the key pair was last updated. Operations such as adding a UID or subkey will modify the The time when the content of the key pair was last updated. Operations such as
content of the key pair. adding a UID or subkey will modify the content of the key pair.
#### Secret Key Existence #### Secret Key Existence
Shows whether the actual content of the primary key exists. When the primary key does not exist, if there are still Shows whether the actual content of the primary key exists. When the primary key
available subkeys in the key pair, the key pair can still be used for normal operations. However, in the above case, the does not exist, if there are still available subkeys in the key pair, the key
content of the key pair cannot be modified (that is, operations such as adding UID or subkey cannot be performed), and pair can still be used for normal operations. However, in the above case, the
the key pair cannot sign other key pairs. content of the key pair cannot be modified (that is, operations such as adding
UID or subkey cannot be performed), and the key pair cannot sign other key
pairs.
### Fingerprint ### Fingerprint
![image-20220110190639502](_media/view-keypair-info/image-20220110190639502.png) ![image-20220110190639502](_media/view-keypair-info/image-20220110190639502.png)
The fingerprint of the key pair is used for humans to quickly compare whether the key pair is the expected key pair. The fingerprint of the key pair is used for humans to quickly compare whether
This field is unique for all keys in the world. You can absolutely do this with the key ID mentioned above. the key pair is the expected key pair. This field is unique for all keys in the
world. You can absolutely do this with the key ID mentioned above.
This also refers to the fingerprint of the primary key. This also refers to the fingerprint of the primary key.
## UID Info ## UID Info
UID is used to identify the key, and this mechanism is mainly used to facilitate human identification. You can compare UID stands for User ID, and it is a mechanism used to identify a key, primarily
the UID to the accompanying name tag on a key ring, indicating who the key ring belongs to. Humans can roughly identify for the purpose of human identification. It can be compared to a name tag that
whether a key pair is what he expected by looking at the UID, but to accurately identify it, fingerprints or key id need accompanies a key ring, indicating who the key ring belongs to. By looking at
to be compared. A key can have one or more UIDs. A key pair has one and only one primary UID. the UID, humans can get a rough idea of whether a key pair is what they
expected, but for accurate identification, fingerprints or key IDs need to be
compared. A key can have one or more UIDs, while a key pair can have only one
primary UID.
The primary UID on the interface is always the first in the list. The primary UID is always listed first in the interface.
![image-20220110190943207](_media/view-keypair-info/image-20220110190943207.png) ![image-20220110190943207](_media/view-keypair-info/image-20220110190943207.png)
UID has three elements, Name, Email, Comment. The name must be greater than or equal to five characters, and the email UID has three elements, Name, Email, Comment. The name must be greater than or
must conform to the format. Comment rules are relatively loose. equal to five characters, and the email must conform to the format. Comment
rules are relatively loose.
### Signature of UID ### Signature of UID
The bottom half of the interface is the signature of the UID you checked in the list of UIDs (not checked in the box). The lower section of the interface displays the signature of the User ID (UID)
that was selected from the list of UIDs, not the one that was checked in the
box.
This is a key trust system. The person who gets your public key actually gets a copy of your key ring, but only the This is a key trust system. When someone receives your public key, they obtain a
public key and your nameplate are on the key ring. He can sign your brand with his private key, which means he copy of your key ring with only your public key and nameplate. They can then use
recognizes your brand and the public key on the entire key ring. He can then upload the keyring with his signature to their private key to sign your nameplate, indicating that they recognize your
the keyserver, and if a lot of people do this one after another, the public key on the keyserver will have a bunch of brand and the public key on the entire key ring. Afterward, they can upload the
signatures. If there are a lot of signatures on the nameplate, it means that many people recognize the public key and keyring with their signature to the keyserver. If many people follow suit, the
endorse it, so that the public key can be trusted by everyone. public key on the keyserver will have numerous signatures. The more signatures
on the nameplate, the more people recognize and endorse the public key, making
it trustworthy.
You can use the primary key of another key pair to sign a UID. In repeating, in general. When the primary UID of a key You can also use the primary key of another key pair to sign a UID. Generally,
pair has many valid signatures attached, it will be more trustworthy than without a valid key pair. when the primary UID of a key pair has many valid signatures, it is considered
more trustworthy than if it had none.
## Subkey Info ## Subkey Info
The sub-key mechanism is an important content of gpg, which enhances flexibility and security, but also brings a certain The sub-key mechanism is a crucial feature of GPG that improves both flexibility
degree of complexity, making it difficult for beginners to understand.If you have absolutely no idea about this, you can and security. However, it also introduces some complexity, which can make it
refer to the [Basic Concepts](../basic-concepts.md) section first. challenging for beginners to comprehend. If you are completely unfamiliar with
this concept, you may find it helpful to consult the below documentation.
[Basic Concepts](../basic-concepts.md)
![image-20220110192348006](_media/view-keypair-info/image-20220110192348006.png) ![image-20220110192348006](_media/view-keypair-info/image-20220110192348006.png)
In order to help you understand this concept and get a preliminary grasp, you only need to read the following points: To get a basic understanding of this concept, the following points can be
considered:
- A key pair can be compared to a key ring, with a primary key(a pair of public and private keys) and multiple subkeys ( - A key pair can be likened to a key ring, comprising of a primary key (a pair
or no subkeys). of public and private keys) and multiple subkeys (or none).
- Each subkey and primary key consists of a pair of public and private keys. - Each subkey and primary key comprises a pair of public and private keys.
- The sub-key can do relate operations (such as signing, encryption) when the primary key is not present or cannot. - The subkey can perform related operations (such as signing, encryption) in the
- The functions of the sub-keys can overlap. When both sub-keys can be used for signing, the earliest generated one is absence or unavailability of the primary key.
selected for this operation. - The functions of subkeys can overlap, and when both subkeys can be used for
- The sub-key can use more algorithms than the primary key, but generally they have the same effect on daily operations. signing, the one generated earlier is selected.
- The disclosure of the subkey only affects the subkey, and the entire key pair is in danger after the disclosure of the - Subkeys can use more algorithms than the primary key, but usually have the
primary key. same effect on daily operations.
- The disclosure of a subkey only affects that subkey, while the disclosure of
the primary key endangers the entire key pair.
The primary key and all subkeys in the key pair are listed on the interface. The first key in the list must be the main The primary key and all subkeys in the key pair are displayed on the interface.
key, regardless of whether it actually exists or not. Some information about the key is listed below. In fact, you can The first key in the list must be the main key, regardless of its existence.
know by observation that the information of the primary key here is exactly the same as the information of the first Some information about the key is also listed below. In fact, it can be observed
that the information of the primary key here is the same as that of the first
tab. tab.
### Key In smart card ### Key In smart card
Whether it is in the smart card refers to whether the key is moved to the smart card. Moving the key to the smart card Whether it is in the smart card refers to whether the key is moved to the smart
will change the structure of the key and is irreversible. card. Moving the key to the smart card will change the structure of the key and
is irreversible.
### Operations ### Operations
In this column, what you can do is different for a key pair that has only a public key or a key pair that includes a In this column, what you can do is different for a key pair that has only a
private key. public key or a key pair that includes a private key.
Here's what you can do with a public key-only key pair. Here's what you can do with a public key-only key pair.
@ -171,4 +208,3 @@ And the screenshot below lists what a key pair containing a private key can do.
![image-20220110193555076](_media/view-keypair-info/image-20220110193555076.png) ![image-20220110193555076](_media/view-keypair-info/image-20220110193555076.png)
These operations will be scattered in the documentation to explain in detail. These operations will be scattered in the documentation to explain in detail.

View File

@ -1,77 +1,92 @@
# Overview of GpgFrontend # Overview of GpgFrontend
--- ---
![Language](https://img.shields.io/badge/language-C%2B%2B-green) ![Language](https://img.shields.io/badge/language-C%2B%2B-green)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/saturneric/gpgfrontend) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/saturneric/gpgfrontend)
![License](https://img.shields.io/badge/License-GPL--3.0-orange) ![License](https://img.shields.io/badge/License-GPL--3.0-orange)
![CodeSize](https://img.shields.io/github/languages/code-size/saturneric/GpgFrontend) ![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) [![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)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend?ref=badge_shield) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fsaturneric%2FGpgFrontend?ref=badge_shield)
**GpgFrontend** is a Powerful, Easy-to-Use, Compact, Cross-Platform, and **GpgFrontend** is a Powerful, Easy-to-Use, Compact, Cross-Platform, and
Installation-Free [OpenPGP](https://www.openpgp.org/) Crypto Tool. Installation-Free [OpenPGP](https://www.openpgp.org/) Crypto Tool.
By using GpgFrontend, you can quickly encrypt and decrypt text or files. Or at the same time as the above operations, By using GpgFrontend, you can quickly encrypt and decrypt text or files. Or at
you can add your own signature to let others know that this document or this paragraph of text was issued by you. 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.
Furthermore, it visualizes most of the common operations of gpg commands. It aims to allow ordinary users to quickly use Furthermore, it visualizes most of the common operations of gpg commands. It
gpg and make professional users more convenient. GpgFrontend supports new features of GnuPG 2.x. aims to allow ordinary users to quickly use gpg and make professional users more
convenient. GpgFrontend supports new features of GnuPG 2.x.
**The corresponding release version for this **The corresponding release version for this
Document: [v2.0.4](https://github.com/saturneric/GpgFrontend/releases/tag/v2.0.4)** Document: [v2.0.4](https://github.com/saturneric/GpgFrontend/releases/tag/v2.0.4)**
## Interface ## Interface
Note: For different operating system and system style settings, GpgFrontend may look different.Documentation can also Note: For different operating system and system style settings, GpgFrontend may
vary widely from release to release. Please check the corresponding program release version for the document. look different.Documentation can also vary widely from release to release.
Please check the corresponding program release version for the document.
![image-20220109192100901](_media/overview/image-20220109192100901.png) ![image-20220109192100901](_media/overview/image-20220109192100901.png)
## Origin ## Origin
The GpgFrontend project inherit from a relatively mature but not maintained [gpg4usb](https://www.gpg4usb.org/) project. The GpgFrontend project inherit from a relatively mature but not maintained
It inherits the stable, easy-to-use, compact, and installation-free features of gpg4usb, and plans to support some new [gpg4usb](https://www.gpg4usb.org/) project. It inherits the stable,
features of OpenPGP based on it and continue to improve it. 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.
## Purpose ## Purpose
Let more people all over the world (even if they don't know the command line and programming) can use GnuPG to safely The aim of GpgFrontend is to enable people worldwide, even those without command
send information to the destination in a safe way. Free software belongs to the common wealth of all mankind, but there line or programming experience, to safely transmit information to their desired
are still many people who cannot use these wealths due to the limitation of knowledge and usage habits. We should break destination. Although free software is a common asset for all humankind, there
this pattern. GpgFrontend is committed to improving the ease of use and intuitiveness of the free software GnuPG, so are still many individuals who are unable to benefit from it due to their
that more and more people can use it. limited knowledge and usage habits. We need to break this cycle. GpgFrontend is
dedicated to enhancing the ease-of-use and intuitiveness of the free software
GnuPG, with the ultimate goal of making it accessible to a broader audience.
The GpgFrontend project is as open source, and it also insists on using open source codes and libraries. The GpgFrontend project is as open source, and it also insists on using open
source codes and libraries.
### Free forever ### Free forever
GpgFrontend will be free forever, and you don't need to worry about being asked to pay a fee to use the software one GpgFrontend will be free forever, and you don't need to worry about being asked
day. to pay a fee to use the software one day.
## Source Code ## Source Code
The original code repository of Gpg Frontend is hosted on the server of Codes Dream, and each submission will be The original code repository of Gpg Frontend is hosted on the server of Codes
submitted to the code repository first. You can click [Here](https://global.git.codesdream.com/GpgFrontend.git) to visit Dream, and each submission will be submitted to the code repository first. You
the original code repository and track development progress. can click
[Here](https://git.codesdream.com/?p=public/main/GpgFrontend.git;a=summary) to
visit the original code repository and track development progress.
注意:中国用户请访问[这里](https://git.codesdream.com/main/GpgFrontend.git) 注意:中国用户请访问[这里](https://git.codesdream.com/main/GpgFrontend.git)
### License ### License
GpgFrontend source code is under a GPL-3.0 license, which means that GpgFrontend is free software. You may exercise the The source code for GpgFrontend is licensed under the GPL-3.0 license, which
rights set forth in the Licence under the conditions of compliance with the rules of the Licence. ensures that GpgFrontend is open-source software. You have the right to exercise
the rights specified in the license, subject to compliance with the terms of the
license.
### Contribution ### Contribution
At the same time, the addition of new functions does not affect the old basic functions. My personal strength is always Furthermore, the addition of new features does not compromise the existing core
limited. GpgFrontend welcomes volunteers to join. You can use the GitHub platform to file an issue, or submit a pull functionality. As an individual, my capabilities are limited. Therefore,
request. GpgFrontend welcomes volunteers to contribute to the project. You can file
issues or submit pull requests through the GitHub platform. Additionally, you
You can also submit questions and code contributions by email, please send me problem reports and patches. can submit your questions and code contributions via email. Please feel free to
send problem reports and patches to me.
## Privacy Guarantee ## Privacy Guarantee
GpgFrontend has no servers and does not require servers to run. In addition to the public key transfers allowed by the GpgFrontend operates without servers, and does not require servers to be
OpenPGP protocol to the public key server unexpectedly, GpgFrontend does not collect and upload any additional operational. While it utilizes the OpenPGP protocol for public key transfers, it
information. does not collect or upload any additional information.
For users with high security requirements, a version with no Internet access capability will be available in the future. For users with elevated security requirements, a version of GpgFrontend will be
available in the future which will not have internet access capability.