Skip to content

Improve performance of decrypt one shots#65725

Merged
vcsjones merged 5 commits intodotnet:mainfrom
vcsjones:decrypt-direct-oneshot
Mar 11, 2022
Merged

Improve performance of decrypt one shots#65725
vcsjones merged 5 commits intodotnet:mainfrom
vcsjones:decrypt-direct-oneshot

Conversation

@vcsjones
Copy link
Copy Markdown
Member

@vcsjones vcsjones commented Feb 22, 2022

  • If the destination is big enough, even for padded modes, decrypt directly to the user supplied buffer. If the padding is invalid, then the data written to the buffer is zeroed. If the padding is valid, then the padding bytes are zeroed so the padding is not "beyond" what was reported in bytesWritten.
  • If the destination is impossibly small, i.e. the buffer is too short by more than one block, bail out early.
  • If the plaintext is sufficiently small, decrypt in to a stack buffer and copy to the destination if the padding is valid.
  • Otherwise, decrypt all but the last block directly to the user buffer. The last block is decrypted in to a stack buffer. If the last block does not fit in the user buffer, zero everything that was written so far. Otherwise, copy the last block to the user buffer.

Contributes to #55601

Remaining work:

  • Better unit tests on boundary conditions
  • Gather performance metrics for all platforms under all conditions

@ghost ghost added the area-System.Security label Feb 22, 2022
@ghost ghost assigned vcsjones Feb 22, 2022
@ghost
Copy link
Copy Markdown

ghost commented Feb 22, 2022

Tagging subscribers to this area: @dotnet/area-system-security, @vcsjones
See info in area-owners.md if you want to be subscribed.

Issue Details
  • If the destination is big enough, even for padded modes, decrypt directly to the user supplied buffer. If the padding is invalid, then the data written to the buffer is zeroed. If the padding is valid, then the padding bytes are zeroed so the padding is not "beyond" what was reported in bytesWritten.
  • If the destination is impossibly small, i.e. the buffer is too short by more than one block, bail out early.
  • If the plaintext is sufficiently small, decrypt in to a stack buffer and copy to the destination if the padding is valid.
  • Otherwise, decrypt all but the last block directly to the user buffer. The last block is decrypted in to a stack buffer. If the last block does not fit in the user buffer, zero everything that was written so far. Otherwise, copy the last block to the user buffer.

Contributes to #55601

Author: vcsjones
Assignees: vcsjones
Labels:

area-System.Security

Milestone: -

@vcsjones
Copy link
Copy Markdown
Member Author

@bartonjs early feedback welcome

@vcsjones
Copy link
Copy Markdown
Member Author

Hmmm. Something is not quite right here... so maybe hold off on reviews.

@vcsjones
Copy link
Copy Markdown
Member Author

Ohhh. We need to handle overlapping source / destination. I... think... if the source and destination overlap we go back to the original behavior and do everything in a rented buffer.

@bartonjs
Copy link
Copy Markdown
Member

@bartonjs early feedback welcome

Early feedback is ✔️- nice work. (Few nits/questions)

@vcsjones
Copy link
Copy Markdown
Member Author

Benchmarks show a decent improvement that scales with the size of the ciphertext to be decrypted for padded data.

Details

GuaranteedBufferSize tests are where the destination is >= to the input size, even with padding, so the destination is unambiguously big enough.

ExactBufferSize is where the data is padded, and the destination is big enough to hold the de-padded data, but we need to two-step the decrypt because we don't know how big the padding is.

|                           Method |        Job |      Toolchain | DataSize |  Padding |                                     Algorithm |             Mean |           Error |          StdDev |           Median | Ratio | RatioSD |  Gen 0 | Gen 1 | Gen 2 |   Allocated |
|--------------------------------- |----------- |--------------- |--------- |--------- |---------------------------------------------- |-----------------:|----------------:|----------------:|-----------------:|------:|--------:|-------:|------:|------:|------------:|
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |       16 |    PKCS7 |       Internal.Cryptography.AesImplementation |         586.7 ns |         4.01 ns |         3.75 ns |         585.6 ns |  0.99 |    0.01 | 0.0200 |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |       16 |    PKCS7 |       Internal.Cryptography.AesImplementation |         593.2 ns |         5.78 ns |         5.41 ns |         591.3 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |       16 |    PKCS7 |       Internal.Cryptography.AesImplementation |         593.6 ns |         5.07 ns |         4.74 ns |         595.4 ns |  0.98 |    0.01 | 0.0200 |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |       16 |    PKCS7 |       Internal.Cryptography.AesImplementation |         606.1 ns |         6.77 ns |         6.34 ns |         607.9 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |       16 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      10,873.0 ns |        29.89 ns |        26.49 ns |      10,864.8 ns |  0.98 |    0.01 | 0.0153 |     - |     - |       168 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |       16 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      11,128.9 ns |       156.99 ns |       131.09 ns |      11,182.6 ns |  1.00 |    0.00 |      - |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |       16 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      11,041.7 ns |       214.22 ns |       263.08 ns |      10,922.9 ns |  1.03 |    0.03 | 0.0153 |     - |     - |       168 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |       16 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      10,794.1 ns |        72.09 ns |        63.91 ns |      10,780.2 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |       16 | ANSIX923 |       Internal.Cryptography.AesImplementation |         588.3 ns |         4.61 ns |         4.32 ns |         589.5 ns |  0.99 |    0.01 | 0.0200 |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |       16 | ANSIX923 |       Internal.Cryptography.AesImplementation |         591.1 ns |         2.46 ns |         1.92 ns |         590.8 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |       16 | ANSIX923 |       Internal.Cryptography.AesImplementation |         586.1 ns |         9.79 ns |         9.16 ns |         581.0 ns |  0.97 |    0.02 | 0.0200 |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |       16 | ANSIX923 |       Internal.Cryptography.AesImplementation |         603.1 ns |         4.13 ns |         3.86 ns |         605.4 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |       16 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      10,692.8 ns |        43.37 ns |        38.45 ns |      10,696.6 ns |  0.98 |    0.01 | 0.0153 |     - |     - |       168 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |       16 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      10,910.8 ns |        41.72 ns |        39.03 ns |      10,901.8 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |       16 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      10,672.5 ns |        44.21 ns |        41.35 ns |      10,656.4 ns |  0.98 |    0.00 | 0.0153 |     - |     - |       168 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |       16 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      10,872.0 ns |        53.10 ns |        49.67 ns |      10,880.8 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      112 |    PKCS7 |       Internal.Cryptography.AesImplementation |         593.4 ns |         8.19 ns |         7.66 ns |         597.0 ns |  1.00 |    0.02 | 0.0200 |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      112 |    PKCS7 |       Internal.Cryptography.AesImplementation |         593.4 ns |         8.45 ns |         7.90 ns |         591.4 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      112 |    PKCS7 |       Internal.Cryptography.AesImplementation |         579.3 ns |         7.56 ns |         7.07 ns |         575.9 ns |  0.97 |    0.02 | 0.0200 |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      112 |    PKCS7 |       Internal.Cryptography.AesImplementation |         598.7 ns |         8.63 ns |         8.07 ns |         600.9 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      112 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,727.3 ns |        54.78 ns |        51.24 ns |      13,707.6 ns |  1.01 |    0.01 | 0.0153 |     - |     - |       168 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      112 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,576.4 ns |        34.84 ns |        29.09 ns |      13,577.5 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      112 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,499.5 ns |        56.73 ns |        53.07 ns |      13,505.4 ns |  1.01 |    0.01 | 0.0153 |     - |     - |       168 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      112 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,409.7 ns |        48.25 ns |        40.29 ns |      13,395.6 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      112 | ANSIX923 |       Internal.Cryptography.AesImplementation |         592.3 ns |         9.91 ns |         9.27 ns |         597.3 ns |  0.99 |    0.02 | 0.0200 |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      112 | ANSIX923 |       Internal.Cryptography.AesImplementation |         598.6 ns |         7.32 ns |         6.84 ns |         602.1 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      112 | ANSIX923 |       Internal.Cryptography.AesImplementation |         582.7 ns |        10.65 ns |         9.97 ns |         579.4 ns |  0.97 |    0.03 | 0.0200 |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      112 | ANSIX923 |       Internal.Cryptography.AesImplementation |         598.0 ns |         7.18 ns |         6.72 ns |         601.7 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      112 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,477.2 ns |        39.64 ns |        37.08 ns |      13,468.7 ns |  0.99 |    0.01 | 0.0153 |     - |     - |       168 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      112 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,555.5 ns |        64.38 ns |        53.76 ns |      13,545.9 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      112 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,678.1 ns |        41.93 ns |        39.22 ns |      13,691.4 ns |  0.99 |    0.01 | 0.0153 |     - |     - |       168 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      112 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,835.9 ns |       183.36 ns |       171.52 ns |      13,828.6 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      113 |    PKCS7 |       Internal.Cryptography.AesImplementation |         592.5 ns |         1.80 ns |         1.68 ns |         592.1 ns |  1.01 |    0.02 | 0.0200 |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      113 |    PKCS7 |       Internal.Cryptography.AesImplementation |         587.3 ns |        10.78 ns |        10.09 ns |         581.3 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      113 |    PKCS7 |       Internal.Cryptography.AesImplementation |         586.1 ns |         6.34 ns |         5.93 ns |         586.9 ns |  0.98 |    0.03 | 0.0200 |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      113 |    PKCS7 |       Internal.Cryptography.AesImplementation |         597.5 ns |        11.53 ns |        15.39 ns |         593.1 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      113 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,729.4 ns |       273.20 ns |       408.92 ns |      13,577.3 ns |  0.98 |    0.04 | 0.0153 |     - |     - |       168 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      113 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      14,002.6 ns |       271.15 ns |       361.97 ns |      13,830.1 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      113 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,715.9 ns |       265.98 ns |       381.46 ns |      13,602.4 ns |  1.00 |    0.03 | 0.0153 |     - |     - |       168 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      113 |    PKCS7 | Internal.Cryptography.TripleDesImplementation |      13,818.6 ns |       149.67 ns |       132.68 ns |      13,787.0 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      113 | ANSIX923 |       Internal.Cryptography.AesImplementation |         590.5 ns |         3.26 ns |         2.72 ns |         590.5 ns |  0.98 |    0.01 | 0.0200 |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      113 | ANSIX923 |       Internal.Cryptography.AesImplementation |         601.5 ns |         4.48 ns |         4.19 ns |         604.0 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      113 | ANSIX923 |       Internal.Cryptography.AesImplementation |         597.1 ns |         3.82 ns |         3.57 ns |         598.7 ns |  0.97 |    0.01 | 0.0200 |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      113 | ANSIX923 |       Internal.Cryptography.AesImplementation |         612.5 ns |         7.67 ns |         7.18 ns |         610.7 ns |  1.00 |    0.00 | 0.0200 |     - |     - |       128 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |      113 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,524.4 ns |        43.52 ns |        40.71 ns |      13,510.1 ns |  0.98 |    0.01 | 0.0153 |     - |     - |       168 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |      113 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,811.2 ns |       151.69 ns |       118.43 ns |      13,798.0 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |      113 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,484.9 ns |        16.70 ns |        13.04 ns |      13,485.8 ns |  0.99 |    0.00 | 0.0153 |     - |     - |       168 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |      113 | ANSIX923 | Internal.Cryptography.TripleDesImplementation |      13,567.0 ns |        46.48 ns |        43.48 ns |      13,562.1 ns |  1.00 |    0.00 | 0.0153 |     - |     - |       168 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242880 |    PKCS7 |       Internal.Cryptography.AesImplementation |     470,612.9 ns |     9,193.31 ns |    12,272.81 ns |     463,023.4 ns |  0.76 |    0.02 |      - |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 |    PKCS7 |       Internal.Cryptography.AesImplementation |     619,813.4 ns |     2,072.71 ns |     1,938.82 ns |     619,809.4 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242880 |    PKCS7 |       Internal.Cryptography.AesImplementation |     469,437.9 ns |       626.77 ns |       586.28 ns |     469,369.5 ns |  0.76 |    0.00 |      - |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 |    PKCS7 |       Internal.Cryptography.AesImplementation |     617,849.6 ns |     2,883.83 ns |     2,697.53 ns |     618,081.4 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242880 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 151,532,076.1 ns | 1,117,835.70 ns |   933,443.44 ns | 151,044,187.5 ns |  1.00 |    0.01 |      - |     - |     - |       372 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 151,263,502.8 ns |    98,924.84 ns |    92,534.36 ns | 151,253,416.5 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,690 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242880 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 150,123,174.7 ns |   101,504.79 ns |    84,761.09 ns | 150,114,156.2 ns |  0.99 |    0.00 |      - |     - |     - |       672 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 151,298,470.8 ns |   108,637.45 ns |   101,619.54 ns | 151,302,031.2 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,830 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242880 | ANSIX923 |       Internal.Cryptography.AesImplementation |     462,274.0 ns |     1,166.00 ns |       973.66 ns |     462,367.1 ns |  0.76 |    0.00 |      - |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 | ANSIX923 |       Internal.Cryptography.AesImplementation |     608,395.4 ns |     2,703.86 ns |     2,396.90 ns |     608,768.3 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242880 | ANSIX923 |       Internal.Cryptography.AesImplementation |     466,711.5 ns |     1,358.15 ns |     1,134.12 ns |     466,663.4 ns |  0.77 |    0.00 |      - |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 | ANSIX923 |       Internal.Cryptography.AesImplementation |     610,059.0 ns |     3,228.99 ns |     3,020.40 ns |     609,327.1 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242880 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 150,133,022.4 ns |    97,051.13 ns |    81,042.09 ns | 150,108,729.0 ns |  1.00 |    0.00 |      - |     - |     - |       372 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 150,317,036.4 ns |   136,252.68 ns |   120,784.45 ns | 150,266,021.0 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,830 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242880 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 150,179,859.0 ns |   463,619.59 ns |   387,143.35 ns | 149,941,625.0 ns |  0.98 |    0.02 |      - |     - |     - |       588 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242880 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 153,105,250.7 ns | 2,613,239.54 ns | 2,444,425.89 ns | 151,943,218.8 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,690 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242881 |    PKCS7 |       Internal.Cryptography.AesImplementation |     464,878.3 ns |     7,224.24 ns |     6,404.10 ns |     461,438.8 ns |  0.76 |    0.01 |      - |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 |    PKCS7 |       Internal.Cryptography.AesImplementation |     608,337.9 ns |     1,958.46 ns |     1,831.94 ns |     608,026.3 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242881 |    PKCS7 |       Internal.Cryptography.AesImplementation |     462,573.8 ns |     2,430.42 ns |     2,154.51 ns |     461,855.3 ns |  0.75 |    0.01 |      - |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 |    PKCS7 |       Internal.Cryptography.AesImplementation |     613,740.5 ns |     2,649.26 ns |     2,478.12 ns |     613,394.9 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242881 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 149,930,852.6 ns |    72,360.56 ns |    60,424.34 ns | 149,932,229.2 ns |  0.98 |    0.01 |      - |     - |     - |       372 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 152,845,918.0 ns | 2,407,489.33 ns | 2,251,967.01 ns | 152,782,437.5 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,690 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242881 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 149,995,015.6 ns |   120,463.01 ns |    94,049.60 ns | 149,960,124.9 ns |  1.00 |    0.00 |      - |     - |     - |       672 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 |    PKCS7 | Internal.Cryptography.TripleDesImplementation | 150,418,968.1 ns |   193,352.91 ns |   171,402.31 ns | 150,373,156.2 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,690 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242881 | ANSIX923 |       Internal.Cryptography.AesImplementation |     462,924.7 ns |       736.76 ns |       689.17 ns |     462,943.7 ns |  0.76 |    0.00 |      - |     - |     - |       128 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 | ANSIX923 |       Internal.Cryptography.AesImplementation |     607,908.1 ns |     3,762.64 ns |     3,519.57 ns |     608,243.7 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242881 | ANSIX923 |       Internal.Cryptography.AesImplementation |     462,571.0 ns |       621.70 ns |       581.54 ns |     462,424.2 ns |  0.73 |    0.03 |      - |     - |     - |       128 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 | ANSIX923 |       Internal.Cryptography.AesImplementation |     624,272.6 ns |    10,581.67 ns |    17,385.98 ns |     616,225.1 ns |  1.00 |    0.00 |      - |     - |     - |     8,321 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
| Decrypt_Cbc_GuaranteedBufferSize | Job-JCRJRQ |         branch |  5242881 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 150,077,247.6 ns |   193,002.76 ns |   161,166.04 ns | 149,997,708.5 ns |  1.00 |    0.00 |      - |     - |     - |       532 B |
| Decrypt_Cbc_GuaranteedBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 150,332,885.4 ns |   175,792.81 ns |   146,794.96 ns | 150,269,323.0 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,858 B |
|                                  |            |                |          |          |                                               |                  |                 |                 |                  |       |         |        |       |       |             |
|      Decrypt_Cbc_ExactBufferSize | Job-JCRJRQ |         branch |  5242881 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 150,022,249.2 ns |   168,141.98 ns |   140,406.17 ns | 149,988,062.5 ns |  0.99 |    0.01 |      - |     - |     - |       492 B |
|      Decrypt_Cbc_ExactBufferSize | Job-ZDOVDV | main @ febaf76 |  5242881 | ANSIX923 | Internal.Cryptography.TripleDesImplementation | 151,277,945.5 ns | 1,455,558.24 ns | 1,215,457.05 ns | 150,409,052.0 ns |  1.00 |    0.00 |      - |     - |     - | 2,097,830 B |

@vcsjones vcsjones marked this pull request as ready for review March 10, 2022 16:52
@vcsjones vcsjones merged commit b3e380e into dotnet:main Mar 11, 2022
@vcsjones vcsjones deleted the decrypt-direct-oneshot branch March 11, 2022 00:17
@ghost ghost locked as resolved and limited conversation to collaborators Apr 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants