Skip to content

Commit bf32530

Browse files
PS-10076 [DOCS] Fix broken links in doc project (#537)
modified: docs/data-loading.md modified: docs/data-masking-function-list.md modified: docs/data-masking-overview.md modified: docs/encrypting-doublewrite-buffers.md modified: docs/encryption-functions-overview.md modified: docs/encryption-functions.md modified: docs/enforce-engine.md modified: docs/index-info-schema-tables.md modified: docs/install-myrocks.md modified: docs/jemalloc-profiling.md modified: docs/ldap-authentication.md modified: docs/limitations.md modified: docs/myrocks-performance-schema-tables.md modified: docs/post-installation.md modified: docs/procfs-plugin.md modified: docs/quickstart-apt.md modified: docs/release-notes/8.0.31-23.md modified: docs/release-notes/8.0.42-33.md modified: docs/upgrade-percona-repos.md modified: docs/utility-user.md modified: docs/variables.md modified: docs/zenfs.md
1 parent 489096f commit bf32530

27 files changed

+147
-216
lines changed

docs/data-loading.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ need to truncate the table and loading data again.
121121

122122
!!! warning
123123

124-
If you are loading large data without enabling [rocksdb_bulk_load](variables.md#rocksdb_bulk_load) or [rocksdb_commit_in_the_middle](variables.md#rocksdb-commit-in-the-middle), please make sure transaction size is small enough. All modifications of the ongoing transactions are kept in memory.
124+
If you are loading large data without enabling [rocksdb_bulk_load](variables.md#rocksdb_bulk_load) or [rocksdb_commit_in_the_middle](variables.md#rocksdb_commit_in_the_middle), please make sure transaction size is small enough. All modifications of the ongoing transactions are kept in memory.
125125

126126
## Other reading
127127

docs/data-masking-function-list.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ mysql> SELECT masking_dictionary_term_remove('trees','pine');
963963
| **Name** | **Details** |
964964
|---------------------------------------------------|-------------------------------------------------------|
965965
| [`dictionaries_flush_interval_seconds (integer, unsigned)`](#dictionaries_flush_interval_secondsinteger-unsigned) | The number of seconds between updates to the internal dictionary cache to match changes in the dictionaries table.|
966-
| [`masking_database(str)`](#masking_databasestr) | Set a different database name to use for the dictionaries table. |
966+
| [`masking_database(string)`](#masking_databasestring) | Set a different database name to use for the dictionaries table. |
967967

968968
### dictionaries_flush_interval_seconds(integer, unsigned)
969969

docs/data-masking-overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ To fix this, you can use the new [`masking_dictionaries_flush()`](data-masking-f
3939

4040
The changes also affect how row-based replication works. When dictionary changes happen on the source server, they travel through the binary log to the replica server. While the replica applies these changes to its table correctly, the dictionary term cache doesn't update right away.
4141

42-
To handle this, there's a new system setting called [`component_masking_functions.dictionaries_flush_interval_seconds()`](data-masking-function-list.html#dictionaries_flush_interval_secondsinteger-unsigned)
42+
To handle this, there's a new system setting called [`component_masking_functions.dictionaries_flush_interval_seconds()`](data-masking-function-list.md#dictionaries_flush_interval_secondsinteger-unsigned)
4343

4444
By default, it's set to 0. When you set it higher, the system starts a background process that refreshes the cache at your specified interval. This helps replicas stay in sync after receiving binary log updates. The value specifies the number of seconds between each sync.
4545

docs/encrypting-doublewrite-buffers.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ A summary of Doublewrite buffer and Doublewrite buffer encryption changes:
55
|_Percona Server for MySQL_ Versions| Doublewrite Buffer and Doublewrite Buffer Encryption Implementation|
66
|---|---|
77
|Percona Server from Percona-Server-8.0.23-14|_MySQL_ 8.0.23 implemented its own version of [parallel doublewrite encryption](https://dev.mysql.com/doc/refman/8.0/en/innodb-data-encryption.html#innodb-doublewrite-file-encryption). Pages that belong to encrypted tablespaces are also written into the doublewrite buffer in an encrypted form. The Percona implementation was reverted and the[innodb_parallel_dblwr_encrypt](#innodb_parallel_dblwr_encrypt) is deprecated and may be removed in later releases.
8-
|Percona Server from Percona-Server-8.0.20-11 to Percona-Server-8.0.22-13 inclusive|_MySQL_ 8.0.20 implemented its own [parallel doublewrite buffer](https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html), which is stored in external files (#ib\_16384\_xxx.dblwr) and not stored in the system tablespace. Percona’s implementation was reverted. As a result, [innodb\_parallel\_doublewrite\_path](xtradb-performance-improvements-io-bound-highly-concurrent-workloads.md#innodb-parallel-doublewrite-path) was deprecated. <br> However, _MySQL_ did not implement parallel doublewrite buffer encryption at this time, so Percona reimplemented parallel doublewrite buffer encryption on top of the _MySQL_ parallel doublewrite buffer implementation. Percona preserved the meaning and functionality of the [innodb\_parallel\_dblwr\_encrypt](#innodb_parallel_dblwr_encrypt) variable. |
9-
|Percona-Server-8.0.12-1.alpha to Percona-Server-8.0.19-10 inclusive|_Percona Server for MySQL_ had its own implementation of the parallel doublewrite buffer which was enabled by setting the [innodb\_parallel\_doublewrite\_path](xtradb-performance-improvements-io-bound-highly-concurrent-workloads.md#innodb-parallel-doublewrite-path) variable. <br> Enabling the [innodb\_parallel\_dblwr\_encrypt](#innodbparalleldblwrencrypt) controlled whether the parallel doublewrite pages were encrypted or not. In case the parallel doublewrite buffer was disabled ([innodb\_parallel\_doublewrite\_path](xtradb-performance-improvements-io-bound-highly-concurrent-workloads.md#innodb-parallel-doublewrite-path) was set to empty string),the doublewrite buffer pages were located in the system tablespace (ibdata1). The system tablespace itself could be encrypted by setting [innodb\_sys\_tablespace\_encrypt](encrypting-system-tablespace.md#innodb-sys-tablespace-encrypt), which also encrypted the doublewrite buffer pages.|
8+
|Percona Server from Percona-Server-8.0.20-11 to Percona-Server-8.0.22-13 inclusive|_MySQL_ 8.0.20 implemented its own [parallel doublewrite buffer](https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html), which is stored in external files (#ib\_16384\_xxx.dblwr) and not stored in the system tablespace. Percona’s implementation was reverted. As a result, [innodb\_parallel\_doublewrite\_path](xtradb-performance-improvements-io-bound-highly-concurrent-workloads.md#innodb_parallel_doublewrite_path) was deprecated. <br> However, _MySQL_ did not implement parallel doublewrite buffer encryption at this time, so Percona reimplemented parallel doublewrite buffer encryption on top of the _MySQL_ parallel doublewrite buffer implementation. Percona preserved the meaning and functionality of the [innodb\_parallel\_dblwr\_encrypt](#innodb_parallel_dblwr_encrypt) variable. |
9+
|Percona-Server-8.0.12-1.alpha to Percona-Server-8.0.19-10 inclusive|_Percona Server for MySQL_ had its own implementation of the parallel doublewrite buffer which was enabled by setting the [innodb\_parallel\_doublewrite\_path](xtradb-performance-improvements-io-bound-highly-concurrent-workloads.md#innodb_parallel_doublewrite_path) variable. <br> Enabling the [innodb\_parallel\_dblwr\_encrypt](#innodb_parallel_dblwr_encrypt) controlled whether the parallel doublewrite pages were encrypted or not. In case the parallel doublewrite buffer was disabled ([innodb\_parallel\_doublewrite\_path](xtradb-performance-improvements-io-bound-highly-concurrent-workloads.md#innodb_parallel_doublewrite_path) was set to empty string),the doublewrite buffer pages were located in the system tablespace (ibdata1). The system tablespace itself could be encrypted by setting [innodb\_sys\_tablespace\_encrypt](encrypting-system-tablespace.md#innodb_sys_tablespace_encrypt), which also encrypted the doublewrite buffer pages.|
1010

1111
For *Percona Server for MySQL* versions below *Percona Server for MySQL* version 8.0.23-14, *Percona* encrypts the `doublewrite buffer` using [innodb_parallel_dblwr_encrypt](#innodb_parallel_dblwr_encrypt).
1212

docs/encryption-functions-overview.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
## Encryption functions overview
1+
# Encryption functions overview
22

33
This document provides comprehensive information about encryption functions that transform plaintext data into encrypted ciphertext. These functions provide robust security measures that require proper documentation to implement and maintain effectively. This guide offers the necessary information for successful implementation.
44

5-
6-
75
## Overview of capabilities
86

97
This documentation will guide you through:
@@ -16,12 +14,8 @@ This documentation will guide you through:
1614

1715
* Avoiding common implementation pitfalls
1816

19-
20-
21-
2217
First, let's review some key terms you'll encounter throughout this guide.
2318

24-
2519
## Glossary of terms
2620

2721
Here's a quick reference guide to the cryptographic terms used in this document:
@@ -122,7 +116,7 @@ Percona Server for MySQL 8.0.41 introduces several important new features that e
122116

123117
### Other new features
124118

125-
* [`encryption_udf.legacy_padding_scheme`](#encryption_udflegacy_padding_scheme) system variable - provides compatibility with legacy systems and previous implementations
119+
* [`encryption_udf.legacy_padding_scheme`](encryption-functions.md#encryption_udflegacy_padding_scheme) system variable - provides compatibility with legacy systems and previous implementations
126120

127121
* Character set awareness - ensures proper handling of different character encodings during encryption operations
128122

docs/encryption-functions.md

Lines changed: 36 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -30,56 +30,24 @@
3030
3131
### Function quick reference
3232
33-
<table>
34-
<tr>
35-
<th>Category</th>
36-
<th>Function</th>
37-
<th>What It Does</th>
38-
<th>Common Use Case</th>
39-
</tr>
40-
<tr>
41-
<td rowspan="2"><strong>Encryption</strong></td>
42-
<td><a href="#asymmetric_encrypt">asymmetric_encrypt()</a></td>
43-
<td>Puts your data in a math lockbox</td>
44-
<td>Protecting sensitive data</td>
45-
</tr>
46-
<tr>
47-
<td><a href="#asymmetric_decrypt">asymmetric_decrypt()</a></td>
48-
<td>Opens the lockbox and gets your data back</td>
49-
<td>Retrieving protected data</td>
50-
</tr>
51-
<tr>
52-
<td rowspan="2"><strong>Key Management</strong></td>
53-
<td><a href="#create_asymmetric_priv_key">create_asymmetric_priv_key()</a></td>
54-
<td>Makes your secret key</td>
55-
<td>Creating your private key</td>
56-
</tr>
57-
<tr>
58-
<td><a href="#create_asymmetric_pub_key">create_asymmetric_pub_key()</a></td>
59-
<td>Creates a shareable public key</td>
60-
<td>Generating keys to distribute</td>
61-
</tr>
62-
<tr>
63-
<td rowspan="2"><strong>Digital Signatures</strong></td>
64-
<td><a href="#asymmetric_sign">asymmetric_sign()</a></td>
65-
<td>Stamps your message with your secret key</td>
66-
<td>Proving a message is from you</td>
67-
</tr>
68-
<tr>
69-
<td><a href="#asymmetric_verify">asymmetric_verify()</a></td>
70-
<td>Checks if a signature is real or fake</td>
71-
<td>Verifying message authenticity</td>
72-
</tr>
73-
</table>
33+
| Category | Function | What It Does | Common Use Case |
34+
|----------|------------|---------------|-------------------|
35+
| **Encryption** | [asymmetric_encrypt()](#asymmetric_encryptalgorithm-str-key_str) | Puts your data in a math lockbox | Protecting sensitive data |
36+
| | [asymmetric_decrypt()](#asymmetric_decryptalgorithm-crypt_str-key_str) | Opens the lockbox and gets your data back | Retrieving protected data |
37+
| **Key Management** | [create_asymmetric_priv_key()](#create_asymmetric_priv_keyalgorithm-key_len) | Makes your secret key | Creating your private key |
38+
| | [create_asymmetric_pub_key()](#create_asymmetric_pub_keyalgorithm-priv_key_str) | Creates a shareable public key | Generating keys to distribute |
39+
| **Digital Signatures** | [asymmetric_sign()](#asymmetric_signalgorithm-digest_str-priv_key_str-digest_type-padding) | Stamps your message with your secret key | Proving a message is from you |
40+
| | [asymmetric_verify()](#asymmetric_verifyalgorithm-digest_str-sig_str-pub_key_str-digest_type-padding) | Checks if a signature is real or fake | Verifying message authenticity |
41+
7442
7543
### Asymmetric encryption functions
7644
7745
These functions implement public key cryptography utilizing key pairs. The encryption and decryption operations require different keys from the same key pair.
7846
7947
| Function Name | Purpose |
8048
| --- | --- |
81-
| [asymmetric_encrypt](#asymmetric_encrypt) | Encrypts plaintext data using asymmetric cryptography. Only the corresponding key can decrypt. |
82-
| [asymmetric_decrypt](#asymmetric_decrypt) | Decrypts ciphertext that was encrypted with the corresponding asymmetric key. |
49+
| [asymmetric_encrypt](#asymmetric_encryptalgorithm-str-key_str) | Encrypts plaintext data using asymmetric cryptography. Only the corresponding key can decrypt. |
50+
| [asymmetric_decrypt](#asymmetric_decryptalgorithm-crypt_str-key_str) | Decrypts ciphertext that was encrypted with the corresponding asymmetric key. |
8351
8452
8553
### Asymmetric key management functions
@@ -88,8 +56,8 @@ These functions facilitate the generation and management of asymmetric cryptogra
8856
8957
| Function Name | Description |
9058
| --- | --- |
91-
| [create_asymmetric_priv_key](#create_asymmetric_priv_key) | Generates a private key with specified algorithm and security parameters |
92-
| [create_asymmetric_pub_key](#create_asymmetric_pub_key) | Derives the corresponding public key from a private key for distribution |
59+
| [create_asymmetric_priv_key](#create_asymmetric_priv_keyalgorithm-key_len) | Generates a private key with specified algorithm and security parameters |
60+
| [create_asymmetric_pub_key](#create_asymmetric_pub_keyalgorithm-priv_key_str) | Derives the corresponding public key from a private key for distribution |
9361
9462
9563
### Digital Signature functions
@@ -98,8 +66,8 @@ These functions implement digital signature operations for message authenticatio
9866
9967
| Function Name | Description |
10068
| --- | --- |
101-
| [asymmetric_sign](#asymmetric_sign) | Applies a cryptographic signature to a message digest using a private key |
102-
| [asymmetric_verify](#asymmetric_verify) | Validates the authenticity of a digital signature using the corresponding public key |
69+
| [asymmetric_sign](#asymmetric_signalgorithm-digest_str-priv_key_str-digest_type-padding) | Applies a cryptographic signature to a message digest using a private key |
70+
| [asymmetric_verify](#asymmetric_verifyalgorithm-digest_str-sig_str-pub_key_str-digest_type-padding) | Validates the authenticity of a digital signature using the corresponding public key |
10371
10472
### Diffie-Hellman functions
10573
@@ -109,8 +77,8 @@ These functions implement digital signature operations for message authenticatio
10977
11078
| Function Name | Description | Application |
11179
| --- | --- | --- |
112-
| [asymmetric_derive](#asymmetric_derive) | Generates a shared cryptographic secret through asymmetric key combination | When implementing secure communication channels between parties |
113-
| [create_dh_parameters](#create_dh_parameters) | Generates the prime numbers and parameters required for Diffie-Hellman key exchange | As a prerequisite for Diffie-Hellman key generation |
80+
| [asymmetric_derive](#asymmetric_derivepub_key_str-priv_key_str) | Generates a shared cryptographic secret through asymmetric key combination | When implementing secure communication channels between parties |
81+
| [create_dh_parameters](#create_dh_parameterskey_len) | Generates the prime numbers and parameters required for Diffie-Hellman key exchange | As a prerequisite for Diffie-Hellman key generation |
11482
11583
11684
### Encryption threshold variables
@@ -121,43 +89,13 @@ These functions implement digital signature operations for message authenticatio
12189
12290
Keys that are too strong might slow down your system. It's like having a super-heavy padlock that takes forever to open.
12391
124-
<table>
125-
<tr>
126-
<th>Setting Name</th>
127-
<th>What It Does</th>
128-
<th>Default</th>
129-
<th>Range</th>
130-
<th>Performance Impact</th>
131-
</tr>
132-
<tr>
133-
<td><a href="#encryption_udfdh_bits_threshold">encryption_udf.dh_bits_threshold</a></td>
134-
<td>Sets how strong Diffie-Hellman keys can be</td>
135-
<td>10000</td>
136-
<td>1024-10000</td>
137-
<td>Higher values significantly increase key generation time</td>
138-
</tr>
139-
<tr>
140-
<td><a href="#encryption_udfdsa_bits_threshold">encryption_udf.dsa_bits_threshold</a></td>
141-
<td>Sets how strong DSA keys can be</td>
142-
<td>9984</td>
143-
<td>1024-9984</td>
144-
<td>Higher values increase key generation time</td>
145-
</tr>
146-
<tr>
147-
<td><a href="#encryption_udfrsa_bits_threshold">encryption_udf.rsa_bits_threshold</a></td>
148-
<td>Sets how strong RSA keys can be</td>
149-
<td>16384</td>
150-
<td>1024-16384</td>
151-
<td>Higher values increase key generation and encryption/decryption time</td>
152-
</tr>
153-
<tr>
154-
<td><a href="#encryption_udflegacy_padding">encryption_udf.legacy_padding</a></td>
155-
<td>Turns old-style padding on or off</td>
156-
<td>OFF</td>
157-
<td>ON/OFF</td>
158-
<td>Minor impact on encryption speed, major impact on security</td>
159-
</tr>
160-
</table>
92+
| Setting Name | What It Does | Default | Range | Performance Impact |
93+
|--------------|--------------|---------|--------|--------------------|
94+
| [encryption_udf.dh_bits_threshold](#encryption_udfdh_bits_threshold) | Sets how strong Diffie-Hellman keys can be | 10000 | 1024-10000 | Higher values significantly increase key generation time |
95+
| [encryption_udf.dsa_bits_threshold](#encryption_udfdsa_bits_threshold) | Sets how strong DSA keys can be | 9984 | 1024-9984 | Higher values increase key generation time |
96+
| [encryption_udf.rsa_bits_threshold](#encryption_udfrsa_bits_threshold) | Sets how strong RSA keys can be | 16384 | 1024-16384 | Higher values increase key generation and encryption/decryption time |
97+
| [encryption_udf.legacy_padding](#encryption_udflegacy_padding_scheme) | Turns old-style padding on or off | OFF | ON/OFF | Minor impact on encryption speed, major impact on security |
98+
16199
---
162100
163101
@@ -193,7 +131,7 @@ SELECT * FROM mysql.component;
193131
---
194132

195133

196-
## Asymmetric_decrypt(*algorithm, crypt_str, key_str*){asymmetric_decrypt}
134+
## Asymmetric_decrypt(*algorithm, crypt_str, key_str*)
197135

198136
> 🔓 **Data Decryption Function**
199137
>
@@ -246,7 +184,7 @@ The function returns the original plaintext message decoded from the ciphertext.
246184
---
247185

248186

249-
## Asymmetric_derive(*pub_key_str, priv_key_str*){asymmetric_derive}
187+
## Asymmetric_derive(*pub_key_str, priv_key_str*)
250188

251189
> 🤝 **Shared secret generation**
252190
>
@@ -288,7 +226,7 @@ The function returns the original plaintext message decoded from the ciphertext.
288226
---
289227

290228

291-
## Asymmetric_encrypt(*algorithm, str, key_str*){asymmetric_encrypt}
229+
## Asymmetric_encrypt(*algorithm, str, key_str*)
292230

293231
> 🔒 **Data Encryption Function**
294232
>
@@ -338,10 +276,11 @@ The function returns the encrypted ciphertext as binary data.
338276
</details>
339277

340278
⚠️ **Size Limits**: Remember that your message size is limited by your key size and padding method. For a 2048-bit key with OAEP padding, your message must be smaller than (2048/8)-42 = 214 bytes.
279+
341280
---
342281

343282

344-
## Asymmetric_sign(*algorithm, digest_str, priv_key_str, digest_type, [padding]*){asymmetric_sign}
283+
## Asymmetric_sign(*algorithm, digest_str, priv_key_str, digest_type, [padding]*)
345284

346285
> ✍️ **Digital Signature Function**
347286
>
@@ -413,7 +352,7 @@ The function returns a digital signature as binary data that cryptographically p
413352
---
414353

415354

416-
## Asymmetric_verify(*algorithm, digest_str, sig_str, pub_key_str, digest_type, [padding]*){asymmetric_verify}
355+
## Asymmetric_verify(*algorithm, digest_str, sig_str, pub_key_str, digest_type, [padding]*)
417356

418357
> 🔍 **Signature verification function**
419358
>
@@ -495,7 +434,7 @@ The function returns a binary verification result:
495434
</details>
496435

497436
---
498-
## Create_asymmetric_priv_key(*algorithm, key_len*){create_asymmetric_priv_key}
437+
## Create_asymmetric_priv_key(*algorithm, key_len*)
499438

500439
> 🔑 **Private key generation function**
501440
>
@@ -541,7 +480,7 @@ This works for RSA and DSA keys. DH keys are quick, so no worries there.
541480

542481
---
543482

544-
## Create_asymmetric_pub_key(*algorithm, priv_key_str*){create_asymmetric_pub_key}
483+
## Create_asymmetric_pub_key(*algorithm, priv_key_str*)
545484

546485
> 🔓 **Public key extraction function**
547486
>
@@ -567,12 +506,13 @@ A public key in PEM format - another block of garbled text you can freely share.
567506
2. **priv_key_str** - Your secret private key
568507
* Must be in PEM
569508

570-
## Create_dh_parameters(*key_len*){create_dh_parameters}
509+
## Create_dh_parameters(*key_len*)
571510

572511
This function creates the special math values for Diffie-Hellman keys. It's like creating a recipe that two people will follow to create identical secret sauces without ever sharing their individual ingredients.
573512

574513
### Warning: Patience required!
575514
This can take a LONG time - much longer than making regular keys. Cancel with:
515+
576516
```
577517
KILL [QUERY|CONNECTION] <id>
578518
```
@@ -590,7 +530,8 @@ A block of special values in PEM format. You'll use these later when creating DH
590530
* Choose between 1,024 and 10,000 bits
591531
* Default is 10,000 (strongest but slowest)
592532
* Admins can adjust the maximum with encryption_udf.dh_bits_threshold
593-
## Create_digest(*digest_type, str*){create_digest}
533+
534+
## Create_digest(*digest_type, str*)
594535

595536
Creates a digest from the given string using the given digest type. The digest string can be used with asymmetric_sign and asymmetric_verify.
596537

0 commit comments

Comments
 (0)