Skip to content

Conversation

@vcsjones
Copy link
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

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
Member Author

@bartonjs early feedback welcome

@vcsjones
Copy link
Member Author

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

@vcsjones
Copy link
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
Member

@bartonjs early feedback welcome

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

@vcsjones
Copy link
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