- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Jul 13 2023
Jul 12 2023
Fixed in master.
Will backport into 2.4, after testing.
Jul 11 2023
Jul 10 2023
Jul 7 2023
Updated the patch:
Jul 6 2023
This is a patch for master (which uses nPth for gpg):
I'm trying to use a thread for computation of hashing. It works, but no performance gain, due to nPth.
I do:
npth_unprotect (); gcry_md_write (mfx->md, mfx->buf, mfx->written); npth_protect ();
to expect hashing is done in parallel.
Jul 5 2023
It seemed I was wrong that it is due to buffering.
In the use case of --sign and --encrypt, hashing is done with IOBUF's 64KiB buffer (already).
I observed the benchmark by libgcrypt (Windows emulation 32-bit on Debian):
Thank you for your report.
Jul 3 2023
OK. I'll take the signing part (possible performance improvement).
I looked through the code. What I observed is:
- By jussi's improvements, AEAD code is optimized with AEAD_ENC_BUFFER_SIZE of 64KiB
- this contributes much for better performance
- If we invoke gpg --sign | gpg --encrypt then we can take advantage of multiple CPUs (but gpg is currently not automatically threaded in that way)
- signing could be improved likewise, using larger buffer like 64KiB
- CFB+MDC, it uses two functions together; encryption and hashing, and not with larger buffer like 64KiB
- when signed, it also does hashing for signing, so three functions
The case in check_special_filename is fixed. So, there is no cases in GnuPG where the value of out of range is silently converted to wrong value.
Remaining places are:
Jun 30 2023
Jun 29 2023
Except a case, all use cases of translate_sys2libc_fd_int is with a result of integer from command line argument.
Jun 28 2023
Add the check of digest algorithm for EdDSA in: rCd15fe6aac10b: cipher:ecc:fips: Only allow defined digest algo for EdDSA.
Changes are pushed.
No, there are use cases in GnuPG, where we specify the hash algo for signing, and our own tests/benchmark.c.
For the first issue, I added a check in: rCf65c30d470f5: cipher:ecc:fips: Reject use of SHAKE when it's ECDSA with RFC6979.
Jun 27 2023
We need to keep the gpgtar part of commit in rG2756147e392c: gpg,sm,tools: Use string for option --*-fd..
The changes are intrusive to other implementations (POSIX and Windows 32-bit).
So, I revert the changes of replacing translate_sys2libc_fd_int.
Jun 26 2023
I don't argue about the technical necessity for the change. I agree the fact it works (without such changes).
Jun 23 2023
Fixed in master.
Pushed a change in master.
Applied.
Jun 22 2023
I found the case of X.509, which also uses fixed length output for RSA-PSS and ECDSA: https://www.rfc-editor.org/rfc/rfc8692.html
The use cases are:
- oPassphraseFD for gpgsm, gpg
- oStatusFD for gpg-auth, gpg-wks-client, gpg-card, gpg-pair-tool, gpgtar, gpgconf, gpgsm, gpg, gpgv
- oLoggerFD for gpgsm, gpg, gpgv
- oAttributeFD for gpg
- oCommandFD for gpg
- oOverrideSessionKeyFD for gpg
Jun 21 2023
Thank you. Now, I see the reason for conf/ sub directory.
Jun 20 2023
Thank you.
Applied to master, 2.4 branch and 2.2 branch.
Thank you.
Applied to master, 2.4 branch, and 2.2 branch.
Jun 19 2023
Here is a possible change (... to master, assuming it's good to support use case of RFC 8702):
diff --git a/cipher/keccak.c b/cipher/keccak.c index 22c40302..76e08cb5 100644 --- a/cipher/keccak.c +++ b/cipher/keccak.c @@ -1630,8 +1630,8 @@ const gcry_md_spec_t _gcry_digest_spec_sha3_512 = const gcry_md_spec_t _gcry_digest_spec_shake128 = { GCRY_MD_SHAKE128, {0, 1}, - "SHAKE128", shake128_asn, DIM (shake128_asn), oid_spec_shake128, 0, - shake128_init, keccak_write, keccak_final, NULL, keccak_extract, + "SHAKE128", shake128_asn, DIM (shake128_asn), oid_spec_shake128, 32, + shake128_init, keccak_write, keccak_final, keccak_read, keccak_extract, _gcry_shake128_hash_buffers, sizeof (KECCAK_CONTEXT), run_selftests @@ -1639,8 +1639,8 @@ const gcry_md_spec_t _gcry_digest_spec_shake128 = const gcry_md_spec_t _gcry_digest_spec_shake256 = { GCRY_MD_SHAKE256, {0, 1}, - "SHAKE256", shake256_asn, DIM (shake256_asn), oid_spec_shake256, 0, - shake256_init, keccak_write, keccak_final, NULL, keccak_extract, + "SHAKE256", shake256_asn, DIM (shake256_asn), oid_spec_shake256, 64, + shake256_init, keccak_write, keccak_final, keccak_read, keccak_extract, _gcry_shake256_hash_buffers, sizeof (KECCAK_CONTEXT), run_selftests
Reading RFC 8702, I realized that it defines the hash size in the use of CMS as: SHAKE128 : 32-byte SHAKE256 : 64-byte.