I’ve just set up my new github account: https://github.com/polarfox13
I don’t publish everything and I also use other platforms besides GitHub, so the profile says little about my coding activities.
I’ve just set up my new github account: https://github.com/polarfox13
I don’t publish everything and I also use other platforms besides GitHub, so the profile says little about my coding activities.
I have no idea what I’m doing. 🙈 This is my first try. 😵💫
I TRUST IN RUST. 🙏 🦀
Rust – is a systems programming language focused on safety, speed and concurrency.
Firstable I’ll install rust.
Then GTK.
rustc --version
cargo --version
Create a new Rust project:
cargo new gtk_crab_app cd gtk_crab_app Creating binary (application) `gtk_crab_app` package note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Add the necessary dependencies to your Cargo.toml
file:
[dependencies]
...
Replace the contents of src/main.rs
with the following code:
...
Build and Run the Application:
cargo build
cargo run
# cargo clean
Using GnuPG (GPG) in the terminal to send and receive messages and encrypted files involves several steps. Here is a basic guide to help you get started.
Make sure you have GnuPG installed on your system. You can check by running:
gpg --version
If it’s not installed, you can install it using your package manager. For example, on Debian-based systems:
sudo apt-get install gnupg
or arch-based systems:
sudo pacman -S gnupg
If you haven’t already created a GPG key pair, you can do so with:
gpg --full-generate-key
Follow the prompts to select the key type, key size, expiration date, and to enter your user ID and passphrase.
To share your public key with others, you can export it:
gpg --export -a "Your Name" > publickey.asc
Replace “Your Name” with the name or email associated with your key.
To send an encrypted message to someone, you need their public key. If you receive a public key file (e.g., friendkey.asc), import it using:
gpg --import friendkey.asc
To encrypt a message for a recipient, you can use:
echo "Your secret message" | gpg --encrypt --armor -r "Recipient Name" > message.asc
Replace “Recipient Name” with the name or email associated with the recipient’s public key. The –armor option creates an ASCII-armored output.
To decrypt a message you received, use:
gpg --decrypt message.asc
You will be prompted for your passphrase if the message is encrypted with your public key.
To encrypt a file, use:
gpg --encrypt -r "Recipient Name" file.txt
This will create an encrypted file named file.txt.gpg.
To decrypt an encrypted file, use:
gpg --decrypt file.txt.gpg > decrypted_file.txt
You can send the encrypted file (file.txt.gpg) via email or any other file transfer method. Only the recipient with the corresponding private key can decrypt it.
gpg --list-keys
Delete a Key: To delete a key, use:
gpg --delete-key "Key Name"
Conclusion
This guide provides a basic overview of sending and receiving messages and files using GnuPG in the terminal. For more advanced features and options, refer to the GnuPG documentation or use man gpg in the terminal for more details.
Last time, we exported our public key. As my key expired I created a new pair.
Now, we will list our secrets key, where we can see our key ID. We remember, it’s the last 8 characters of the string.
Note: You should never publish your private key! It’s top secret!
– I’m just doing this here for demonstration purposes (anyway, I replaced this key with random numbers).
gpg --list-secret-keys
[keyboxd]
---------
sec rsa4096 2024-08-22 [SC]
7B865B1FB3B2731D4414F4A9319CA618681215D8
uid [ultimate] Chaot (Test) <creative-chaos.dev@proton.me>
ssb rsa4096 2024-08-22 [E]
Then we export the private key to a file. You will be prompted to type in your password.
gpg --armor --export-secret-keys 681215D8 > privatekey.asc
Here’s the privatekey.asc file. Keep it secure and never give it away. Don’t confuse it with your public key.
cat privatekey.asc
-----BEGIN PGP PRIVATE KEY BLOCK-----
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
=Tl9U
-----END PGP PRIVATE KEY BLOCK-----
Now we know our key pair and will already be able to encrypt a file.
We’ll create a file named message.txt. I’ll use vim for it. Alternatively you can use nano. But nano has different commands than vim.
vim message.txt
Vim: In Vim, we’ll have to enable the ‘insert’-mode by typing ‘i’.
# This is just a comment. You should type i and then press enter.
Vim: Now I can insert some text, by typing in the keyboard.
Hello Bob,
how are you?
Kind Regards,
Alice.
~
~
~
~
-- INSERT --
Vim: Now I press ESC-button to exit the insert mode.
# This is just a comment. You should press ESC to exit insert mode.
Vim: As we left insert mode, we can now save and exit, by typing ‘:wq’
# This is just a comment. You should press :wq and ENTER to exit insert mode.
Hello Bob,
how are you?
Kind Regards,
Alice.
~
~
~
~
:wq
Now we left vim.
We can check our message.txt with the cat command:
cat message.txt
This will be the output:
cat message.txt
Hello Bob,
how are you?
Kind Regards,
Alice.
Now we want to encrypt the message.txt file.
gpg --encrypt --recipient creative-chaos.dev@proton.me message.txt
This will create an encrypted file called message.txt.gpg
. We can check it with the cat command. The contents are not meant to be human-readable, that’s why it looks strange. As I want to test the encryption I type in my mail adress, but if you want to send the message to someone else you should use their resp. the recipient’s mail.
cat message.txt.gpg
�
Z�WJT:�TEvj(䡞B!�.q�ʣC&PI����8|�|U���#��9y��N�(P�l.IG���Ђ,D��s.xXj
�nwɷ�v�.T�*z����XCJ&�yY lcThjr<�l���+|�@w�4b���".������n��U� �9�+
8�f����I�BE�th
qo!-����$W.ߩ9
�d���^*OeaL�O5Uc�(�k�k�WBZ'�qO�3�[f]�"k���K��⩲�㌲/
�{��:��Eyw>���c�#���@@2=l�
���
j�ݍ�ڍZn���[
��!& ׇ��9,�#*2Y�T�%�$����g�>�;ҷyF���jـf4��m���:�<�h�ו����+�5o�2�#����-�mȹ��]�N�<�?�d���Rn%%8�fdOU[3�]����=9�W�ԙ���`��z*����$tl0��;�*�~"�ڛR�?�v4��0���PEk�;^;�H�w �%|���9���P�4�%/��`k�Ĭ4���d�b7t1T�}�$,*fg��;��G8/�T��N������ﭛ��86���&v����s���T����@F���q����x���)�����5�
So let’s decrypt this file with the command:
gpg --decrypt message.txt.gpg > decrypted_file.txt
You will be prompted to type in your password.
gpg --decrypt message.txt.gpg > decrypted_file.txt
gpg: encrypted with rsa4096 key, ID 1E5AAA7F574A543A, created 2024-08-22
"Chaot (Test) <creative-chaos.dev@proton.me>"
Now we check our decrypted file with the cat command:
cat decrypted_file.txt
Will show this output:
cat decrypted_file.txt
Hello Bob,
how are you?
Kind Regards
Now you know how to encrypt and decrypt files.
Oh, I forgot to mention that you should import your communication partner’s public keys beforehand.
To verify and sign a GPG key from a recipient that you have imported into your GnuPG keyring, you can follow these steps:
Step 1: Import the Recipient’s Key
If you haven’t already imported the recipient’s key, you can do so with the following command:
gpg --import /path/to/recipient-key.gpg
or
gpg --import /path/to/keyfile.asc
Or using a keyserver. You can import a key directly from a keyserver using the recipient’s email address or key ID. This is useful for obtaining public keys that have been shared publicly. Use the following command:
gpg --keyserver keyserver.ubuntu.com --recv-keys <key-id>
Or using the Web Key Directory (WKD). If the recipient’s key is available in a Web Key Directory, you can use the following command to locate and import it:
gpg --locate-keys recipient@example.com
Or Importing from a Clipboard
If you have copied the key to your clipboard (for example, from a website or email), you can paste it into a file and then import it. For example you can use nano or vim.
Step 2: List Keys
To verify that the key has been imported successfully, you can list the keys in your keyring:
gpg --list-keys
Step 3: Verify the Key
Before signing the key, you should verify the key’s authenticity. This typically involves checking the key’s fingerprint and ensuring that it matches what the recipient has provided. You can check the fingerprint with:
gpg --fingerprint recipient@example.com
Make sure to compare the displayed fingerprint with the one provided by the recipient through a trusted channel (e.g., in person, over a secure chat, etc.).
Step 4: Sign the Key
If you are satisfied that the key is legitimate and you trust the recipient, you can sign their key. To do this, use the following command:
gpg --sign-key recipient@example.com
This command will prompt you to confirm that you want to sign the key. You may also be asked to enter your passphrase if your private key is protected.
Step 5: Verify the Signature
After signing the key, you can verify that the signature has been added successfully by listing the key again:
gpg --list-sigs recipient@example.com
You should see your signature listed alongside the recipient’s key.
Step 6: Export the Signed Key (Optional)
If you want to share the signed key with others or upload it to a keyserver, you can export the signed key:
gpg --export -a recipient@example.com > signed-key.asc
Step 7: Upload the Signed Key to a Keyserver (Optional)
If you want to upload the signed key to a keyserver so that others can see your signature, you can do so with:
gpg --send-keys recipient@example.com
By following these steps, you can verify and sign a GPG key from a recipient, enhancing the trustworthiness of the key in the web of trust.
To upload your GPG key to a keyserver, you can follow these steps:
Step 1: Identify Your Key
First, you need to identify the key you want to upload. You can list your keys with the following command:
gpg --list-keys
This will display all the keys in your keyring along with their key IDs.
Step 2: Choose a Keyserver
You can choose from various keyservers to upload your key. Some popular keyservers include:
# keyserver.ubuntu.com
# pgp.mit.edu
# keys.openpgp.org
# pgp.key-server.io
Step 3: Upload Your Key
Once you have identified the key you want to upload and chosen a keyserver, you can use the following command to upload your key:
gpg --keyserver keyserver.ubuntu.com --send-keys
Replace with the actual key ID or email address associated with your key. For example:
gpg --keyserver keyserver.ubuntu.com --send-keys ABCD1234
Step 4: Verify the Upload
After uploading your key, you can verify that it has been successfully uploaded by searching for it on the keyserver. You can do this using the following command:
gpg --keyserver keyserver.ubuntu.com --search-keys your-email@example.com
This will search for your key using your email address. If it appears in the results, the upload was successful.
By following these steps, you can successfully upload your GPG key to a keyserver, making it available for others to find and use.
In the end, GnuPG is used to encrypt files. When it comes to emails, consider that metadata is also transmitted, which can reveal information about the sender, recipient, and the time of communication. There is an ongoing discussion about which is better – email encryption or messengers with encryption. Since email encryption is rarely used, messengers are more practical. Therefore, my idea for a client titled ‘Pretty-Nice-Privacy’. However, I am still in the conceptual phase.
Using a keyserver for managing and distributing GPG keys can be convenient, but there are several security concerns to consider:
1. Privacy and Anonymity:
- Public Exposure: Keys uploaded to a keyserver are generally public. This means that anyone can search for and retrieve your key, along with any associated user IDs (like your email address). If you are concerned about privacy, consider whether you want your key and associated information to be publicly accessible.
- Email Address Exposure: If your key is associated with an email address, that email address becomes publicly visible, which could lead to spam or targeted attacks.
2. Key Integrity:
- Key Spoofing: There is a risk that someone could upload a malicious key that impersonates you. If users do not verify the key’s fingerprint or check for signatures from trusted sources, they might inadvertently trust a fraudulent key.
- Lack of Trust: Keyservers do not inherently verify the authenticity of the keys they host. Users must rely on their own verification processes (e.g., checking fingerprints, using a web of trust).
3. Keyserver Reliability:
- Downtime and Availability: Keyservers can experience downtime or become unavailable, which may hinder your ability to retrieve keys when needed.
- Data Loss: If a keyserver is compromised or experiences data loss, keys may be lost or corrupted.
4. Key Revocation:
- Revocation Issues: If you revoke a key, it may take time for the revocation to propagate across all keyservers. Users may still find and use the old key until the revocation is fully recognized.
- Stale Keys: Users may encounter outdated or stale keys that have not been updated or removed from the keyserver.
5. Man-in-the-Middle Attacks:
- Key Interception: If a user retrieves a key from a keyserver without verifying its fingerprint, they may be vulnerable to man-in-the-middle attacks, where an attacker could provide a malicious key instead of the legitimate one.
6. Keyserver Trustworthiness:
- Trust in Keyserver Operators: Users must trust the operators of the keyserver to manage the keys securely. If the keyserver is compromised, it could lead to unauthorized access to keys or other sensitive information.
7. Legal and Regulatory Concerns:
- Data Retention and Compliance: Depending on the jurisdiction, keyservers may be subject to data retention laws or regulations that could impact user privacy.
Mitigation Strategies
To mitigate these concerns, consider the following best practices:
- Verify Key Fingerprints: Always verify the fingerprint of a key through a trusted channel before trusting it.
- Use Multiple Keyservers: Consider using multiple keyservers to increase redundancy and availability.
- Limit Personal Information: If privacy is a concern, consider using a pseudonym or limiting the personal information associated with your key.
- Regularly Update and Revoke Keys: Keep your keys up to date and promptly revoke any keys that are no longer in use or have been compromised.
- Educate Users: Encourage users to understand the importance of verifying keys and the potential risks associated with using keyservers.
You should be aware of these security concerns and taking appropriate precautions, so you can use keyservers more safely and effectively.
Here’s a simple guide to writing a Bash script:
nano
or vim
: bash
nano myscript.sh
Add the Shebang: The first line of your script should specify the interpreter. For Bash, use:
bash
#!/bin/bash
Write Your Script: Below the shebang, you can write your commands. For example:
bash
#!/bin/bash
echo "Hello, World!"
Save the File: Save and exit the text editor.
Make the Script Executable: You need to give the script execute permissions:
bash
chmod +x myscript.sh
Run the Script: You can run your script by typing:
bash
./myscript.sh
Here’s a simple example of a Bash script that lists files in a directory:
bash
#!/bin/bash
echo "Listing files in the current directory:"
ls -l
In the crypto scene there’s a lack of an easy tutorial for email encryption. I thought as I would dedicate myself it, as I am using encryption tools for a long time and have witnessed the development of messengers.
I have an idea for an application called ‘Pretty Nice Privacy’, with a user interface – which is a play on words of ‘Pretty Good Privacy‘. Here’s the background story of Pretty Nice Privacy. Pretty Nice Privacy has a cute mascot, that guides you in a smooth way through the process of generating key-pairs.
But here I want to provide a guide without User Interface. It looks complicated, but it’s actually quite simple 😀 but cumbersome. The tutorial here does not solve the usability problem, which is why I want to design the UI that can be easily installed on a mobile phone or computer.
I chose it to be an open-source project, and here’s why. In a nutshell: Proprietary software is malware.
The problem with my application is that the UI poses a security risk, which is why I would prefer terminal instructions. So I would NOT recommend my own application. :’D Apart from that, I am not an IT security expert.
Prerequisites:
Here’s some further information, if you’re interested, but you can skip this and continue with Step 1.
Bash, or the Bourne Again SHell, is a command-line interpreter for Unix and Linux systems. It allows users to execute commands, run scripts, and automate tasks through a text-based interface. Bash supports features like command history, job control, and scripting capabilities, making it powerful for both interactive use and programming. It is the default shell for many Linux distributions and is widely used for system administration, software development, and automation tasks.
Symmetric cryptography uses the same key for both encryption and decryption, making it fast and efficient but requiring secure key distribution; examples include AES and DES. Asymmetric cryptography, on the other hand, employs a pair of keys: a public key for encryption and a private key for decryption, enhancing security by eliminating the need to share the private key; RSA is a well-known example. Hybrid cryptography combines both methods, using asymmetric cryptography to securely exchange a symmetric key, which is then used for the actual data encryption, balancing speed and security.
The origins of cryptography can be traced back to ancient Egypt, where hieroglyphics were used to encode messages, and the earliest known example of a substitution cipher dates back to around 1900 BCE, found in the tomb of the Egyptian scribe Khnumhotep II, demonstrating the use of simple encryption techniques to protect information.
PGP was introduced in 1991. GnuPG is generally considered secure and is widely used for encryption and signing of data and communications. It is an implementation of the OpenPGP standard and provides a robust framework for public-key cryptography. GnuPG, or GNU Privacy Guard, is an open-source software tool that implements the OpenPGP standard for data encryption and signing. It allows users to securely exchange information using public-key cryptography, where each user has a pair of keys: a public key for encryption and a private key for decryption. GnuPG supports various strong encryption algorithms, including AES and RSA, ensuring robust security for communications and files. Users can create, manage, and revoke their cryptographic keys easily. The software is actively maintained, with regular updates to address security vulnerabilities. GnuPG is widely used for secure email communication and file encryption, and its open-source nature allows for public review and auditing of its code, contributing to its credibility and trustworthiness.
RSA (Rivest-Shamir-Adleman) is a widely used public-key cryptographic system that enables secure data transmission. It relies on the mathematical properties of large prime numbers. Here’s a breakdown of the key concepts:
- Public and Private Keys: RSA uses a pair of keys:
- Public Key: This key can be shared with anyone and is used to encrypt data.
- Private Key: This key is kept secret and is used to decrypt data that was encrypted with the corresponding public key.
- Key Length: The length of the RSA key (measured in bits) determines its security level. A longer key length generally means stronger security because it makes it more difficult for an attacker to break the encryption through brute force methods.
- 4096 Bits: This is currently considered a very strong key length. It provides a high level of security and is recommended for sensitive data.
Consider, that in the early 1990s, the U.S. government classified strong encryption as a munition, which meant that it was subject to export controls. This made it illegal to export software that implemented strong encryption, including RSA, without a special license. The controversy gained public attention when a group of cryptographers, including Bruce Schneier, created a T-shirt that featured the RSA algorithm. The shirt was intended to promote the idea that strong encryption should be freely available and not restricted by government regulations. The slogan on the shirt famously read, “The only thing that can stop a bad guy with a gun is a good guy with a gun,” which was a play on the idea that strong encryption is necessary for protecting privacy and security. In 1993, the U.S. government began an investigation into Zimmermann for potentially violating export laws. The investigation focused on whether he had illegally exported PGP by making it available online. The case remains a significant chapter in the history of digital rights and privacy advocacy.
What we gonna do is to create a key of pairs (public and private key), that will be used for encrypting and decrypting mails. Your private key should be top secret and treated as a password. The public key can be shared with others or published if you like. (You should also read the chapter about signing keys and the security issues related to uploading keys on official key servers.)
Step 1 – Open Terminal (bash) and type in:
gpg --full-generate-key
Step 2 – Select kind of key (1)
Step 3 – Follow the instructions
gpg (GnuPG) 2.4.5; Copyright (C) 2024 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(9) ECC (sign and encrypt) *default*
(10) ECC (sign only)
(14) Existing key from card
Your selection?
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072)
I always choose the highest standard – 4096 bits.
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)
Now you specify how long the key should be valid. For testing purposes I just type 1, for 1 day. Then I enter my name, email-adress and follow the instructions.
Key is valid for? (0) 1
Key expires at Mo 19 Aug 2024 22:18:50 CEST
Is this correct? (y/N)
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Chaot
Email address: creative-chaos.dev@proton.me
Comment: Test
You selected this USER-ID:
"Chaot (Test) <creative-chaos.dev@proton.me>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
gpg: directory '/home/username/.gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/home/username/.gnupg/openpgp-revocs.d/21AD8FD9D13D55D8E4C8B110B3A11A88B4C5FDC3.rev'
public and secret key created and signed.
pub rsa4096 2024-08-18 [SC] [expires: 2024-08-19]
21AD8FD9D13D55D8E4C8B110B3A11A88B4C5FDC3
uid Chaot (Test) creative-chaos.dev@proton.me
sub rsa4096 2024-08-18 [E] [expires: 2024-08-19]
Here’s my public key listed. But you can access it again with the command ‘gpg –list-keys’. Important: Don’t confuse it with your private key, which we export later.
gpg --list-keys
[keyboxd]
---------
pub rsa4096 2024-08-18 [SC] [expires: 2024-08-19]
21AD8FD9D13D55D8E4C8B110B3A11A88B4C5FDC3
uid [ultimate] Chaot (Test) <creative-chaos.dev@proton.me>
sub rsa4096 2024-08-18 [E] [expires: 2024-08-19]
The long string of characters is your key ID. The short key ID is typically the last 8 characters of this string. In my case my key ID is the last 8 characters, so it’s B4C5FDC3.
Now I would like to export my public key as a file. When I want a plain text, I just type ‘gpg –export –a “Your Name or Key ID”‘ or ‘gpg –export -a “Your Name or Key ID” > publickey.asc’. The flag -a
: This option specifies that the output should be in ASCII armor format (plain text).
This is the output of ‘gpg –export -a “B4C5FDC3”. So this is my public key right now in ASCII format. I just can copy paste this piece of text and send to my communication partner – who should also have gpg.
gpg --export -a "B4C5FDC3"
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
wqRo6U79a96kyMsm+Of/ZPZEKxH7mg==
=3CoL
-----END PGP PUBLIC KEY BLOCK-----
This key will expire tomorrow [expires: 2024-08-19]. So if you to write me an encrypted message, don’t use this key. I will provide soon another key.
When I type in ‘gpg –export -a “B4C5FDC3” > publickey.asc’, the output will be saved in my home directory.
gpg --export -a "B4C5FDC3" > publickey.asc
I can now open the file with any text editor, e.g. vim, or just access via command line. There will be shown the same output as above. As the file is located in the home directory and I type in ‘cat publickey.asc
‘, it shows me the content of the file. The cat
command in bash shell is short for “concatenate”. It is commonly used in the terminal to perform several functions related to text files.
cat publickey.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBGbCWkQBEADdPCI+tOrH//gdYRrksGRLiJdDcreHqo3ouQbFX6CKGmnAANRG
gjapIaj9J6iz9uKwcjJKN44sJMXKc2dzOgEmX3RMMhSoODnh2xR7VD9ul7ZadY1+
LgOuOJwocg1wmQnRGSnzo/V07yxvWtKBcVEiuLSFFBpUDeOwTiTIeCaCISPMDWnw
CEzoqsfoY8Lcu0vmgqOrEWTsaaP2yO8NVxFrqC/jcs+zmD8sFUtMAx0TnS8MbnBT
Z8KlnUm4NYDziPayV323A10xkz6Z14HPT2O5nSvsd7DwFeOKEvmFXRzGHRX34NDC
EQsw5MOLn4mJ6wlgvlVCmAIgmiDp4I12/eEVwuBnMYsI/uukyHCzjdAyjki0Ye+V
OAGcVv8W1WwYmT0RbUkFgRY/51ruSDR5PhZpKeGZ5+IOe7DZuIprY5Ovn+TCN/PO
RwzmxL5e7ZDi3bqmovYItPf0okiJCwLL2dkVTCFE1m2C9/VO3LiVt8WOSfQAhd8h
z9VloVYJ9a8Ts/Kf+dRajoVjEQk+GOItTA/q/1JK1/zeJgrGIfQ5IF0Bqzic010k
av2cl2R4s+T78PNU7N29Z7hdEROPF6JuBRNC5Uux463m4iPfvsl1so0MgWuipxPY
nY185Ue8qwHBQqj8MElkllF43gjjzk43IbVjr1Y9xZSGLjUEJgKn0LTjWQARAQAB
tCtDaGFvdCAoVGVzdCkgPGNyZWF0aXZlLWNoYW9zLmRldkBwcm90b24ubWU+iQJX
BBMBCABBFiEEIa2P2dE9VdjkyLEQs6EaiLTF/cMFAmbCWkQCGwMFCQABUYAFCwkI
BwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQs6EaiLTF/cN04xAA1nHzUMmc1G/Q
/j85XnjMmq8PqzeHfmWBiBEMY4aePeskYsz7IC2jWo9TttTrwHHPU6AgIX70glJl
rKD55gopS0VGS6chD7KA2U9I8P2zNJksdeqkAczIPaT+1+3puksqmrvnDtAeCuiC
SFDOZA6QXVRAuwjKbxp8LPaT7+hdMvkZ16iM8bRStGvgnCRqFInA2vadUrFmxtF/
P0Adl+edux/SBD7IUsOU46581mMgApjBdfTzWvNyZjwS8cxMa6V8wZ5FvCLIkJnw
s8UvNhNDvtfl6mhFWN5levJDBrp8Ye8vld9q9+ql00FqhgIxXiBUY7dYkiCR5z4/
IjQIizUE3TQRSymEIgPqbNGqOu137NZl/c3icBsvk8t5kCuruw0qp9RUhxaNa8dT
N/UwVTcak7Y+9zh1ysk/V3WFsJZ4o10oyOP7f7WiOwyu8oh9g0sVsB87dw856HxB
Iq3Hy2uwE0Dmv2nJeepgCHuYXoY0SqlA0JG9MCA3UoyR5SsvuDlz/bW+hWfZZzl5
TOWrUZp3WdNGaPJpobqJJwfIS0CTxpxCYkjJSXHdFoAWfKE66+jaIdd2kDTkSagL
oKtNP/Ove53QcyYPF5S9C9AejtSDoQ647i3cDgNK5TDvPE+zcZbmMpgjWNppOOUj
LDam2UocoGvmJOfeLvz9AA/KPr75rR25Ag0EZsJaRAEQAJ3Jqu3QatGdZ1/b6Fug
9ZoPe30wt05XSeViNodsi8HkCkZVksxPClPcH3Vuwj/JTSDIbGIEK7Q9aPe4ZHZ0
HIynABBJb6YNCcQj5DbIignFTHPlnE2uZTnNBcxIC+bIEykdxAVeXNFB96qwMlyl
KDFCfNTzygPDZmNVKVBrOQVZIeWK2Zo5QDdPv2Vt790ijdkJsS2mbaD7Dz5u/FH+
FyQYXnr/KGVN7SSwm2p3wAJ9SEX8sc3jMOYaAIfxJAoXGa2jRGChT+UhqN2mYAd7
ncjGy0mw0OYe5bwq6RWDQm4pkY4xyeUSMPHtI3R/CaparvAnpsiD4sdTLLMs8EUY
KSYupmvEn++Am+oxDCb396FZMT0ascURzmMsjMwq+pya8u/sjYdF3ZaMwtFLPCCN
7RyRfFb3uRJiuSOtlkvf+AEVxb/5DTMIh/LHD2kL5tU5RQHAWfqpx6GCwiKUTUuy
aCdkAPVn7diBNV8UpSvzOrsII57YICRNe8z2EH4KyN7vFpBUvqV1H8AzteXygd+K
HC0/dnflxVLw7Bl1oFC4yisvzpuM8xCvNGxf7KoB015rI4LMGIYuLOjNNP0UItwt
TqXInCGwSlZfT8Kx3vK2PDTaiDxF5pdUsKw3VF+BdfBMum2OueDRjlAtmlhzKrYu
xxCdaWQNlDz5YgXDQ8VTesVZABEBAAGJAjwEGAEIACYWIQQhrY/Z0T1V2OTIsRCz
oRqItMX9wwUCZsJaRAIbDAUJAAFRgAAKCRCzoRqItMX9w9FPEACTSqUuleHrP1X+
F/ZFya+DFYLEnqbn2CFk/s4OGVFX28zHXKQwqihZJyGHYxz7GJi3cmOzAKcEzOw/
44aU3gFxR5dXkc4QgVOKYhbn+Nxg5mINmKO/ezcjNA8eHqLSBKLWys81OSl6s47f
zyOKk20wePMrsflVczeDb4XmWtssColbEtomGCMtgiatvoDZTTgKPF9thSCk+JZM
Qtj6V1PDGc7JaikYY0kSGtvC49GNmfuchE8RHi34SsmDww7zlQRIXlA4pe5nGDgI
TH7TmIbDiN6fpGk7GsBfYr8km9fz68q4LGkG7A75aC+zmtrlgaf3kNh+gzSgiaM4
qk9ZIT7yy9ZhyE4/+GpLCM+2kbWZGjC0SjHOFIk1MKpb6Hh1YXoJkHYapw4snUec
zHNv+dN/cWfSB07TRTtB9JAMz8EPBcu1dN0LxFXKuqVB/sfZArIdM6dW+ZNx2yWD
ukWgC9X/g3UtXMQ7sSSSbEM7C8ahxb2BWWZq3MZ/hxhr6GyXC2POJjBA2L+g5nwD
G2gy3pPbNlzfWZ7xLIuDrQqCD/xLJVBVveWkzo1Ws2K0l+PW38CLyo4FdKbPQ6PB
vtzX7iCpIen/KltuTq31NXX9zjjTmp7+G2SPBZA/75CnoS88i7DIrReU6n9FHW+P
wqRo6U79a96kyMsm+Of/ZPZEKxH7mg==
=3CoL
-----END PGP PUBLIC KEY BLOCK-----
…to be continued.
Part 2 will be about private key, encrypting and decrypting messages. It will be about signing messages and the issue about key servers.
After this tutorial, I will create some drafts for the user interface of my application, ‘Pretty Nice Privacy,’ and possibly code the script I’ve written.
About a year ago, I created a landing page for a web application idea called “Goffin,” an idea for a learning assistant that uses personalized flashcards to help users stay focused and avoid procrastination.
After some coding experience, I feel ready to implement the application, which aims to combine features of a vocabulary trainer, to-do list, and note-taking app, all while incorporating a charming cockatoo mascot to motivate users. I plan to make the project open-source.
I hope Goffin can help others overcome procrastination while also allowing me to explore my passion for design and creativity.
Goffin is a learning assistant with personalized flashcards. Miss Goffin helps you stay focused and avoid procrastination.
Here I wrote a little text about the abilities of this cool cockatoos Goffins.
Goffin’s cockatoos, also known as Cacatua goffiniana, are a species of cockatoo native to the Tanimbar Islands in Indonesia. They are known for their striking appearance, with a white body, a distinctive crest, and a playful personality.
In terms of intelligence, Goffin’s cockatoos are highly intelligent birds. They have demonstrated problem-solving abilities and are capable of using tools, which is a sign of advanced cognitive skills. Research has shown that they can manipulate objects to achieve specific goals, such as retrieving food.
One notable study highlighted their ability to solve complex tasks, including lock picking. Goffin’s cockatoos have been observed using their beaks and feet to manipulate locks and other mechanisms to access food rewards. This ability showcases their dexterity and problem-solving skills, making them one of the more intelligent bird species.
Overall, Goffin’s cockatoos are not only intelligent but also curious and social, which makes them fascinating pets for those who can provide the necessary care and stimulation. However, their intelligence also means they require mental challenges and social interaction to thrive.
4096 account ai algorithm angry app application assistant bash bash script basic bucket bug cargo cockatoo code coding crab cryptography design dev developer development dev time e-mail encryption e2ee email encryption gimp github gnome gnupg goffin gpg gpl graphic design green tea gtk hint hints ide inkscape journey layer layer 8 learning license list lists lockpicking mail main.rs mascot messenger mit new notes open source pgp practice pretty good privacy pretty nice privacy privacy private key problem project projects proprietary public-key-cryptography public key pulsar roadmap rsa rust script selection server shell ssh status update strange strange thoughts study studying task tasks template terminal text editor thoughts todo toml ui user interface design vector vim web web development website 🦀