aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--NEWS14
-rw-r--r--agent/agent.h3
-rw-r--r--agent/call-scd.c2
-rw-r--r--agent/divert-scd.c7
-rw-r--r--configure.ac2
-rw-r--r--g10/sign.c11
6 files changed, 28 insertions, 11 deletions
diff --git a/NEWS b/NEWS
index b0e7dff1e..d9e6297c7 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,18 @@
-Noteworthy changes in version 2.5.11 (unreleased)
+Noteworthy changes in version 2.5.12 (unreleased)
-------------------------------------------------
+
+ Release-info: https://dev.gnupg.org/T7756
+
+
+Noteworthy changes in version 2.5.11 (2025-07-30)
+-------------------------------------------------
+
+ * gpg: Fix a segv in key signing with notations introduced in
+ 2.5.10. [T7754]
+
+ * agent: Fix for smartcard decryption with Brainpool keys. [T7709]
+
Release-info: https://dev.gnupg.org/T7743
diff --git a/agent/agent.h b/agent/agent.h
index e891981b2..d1192f505 100644
--- a/agent/agent.h
+++ b/agent/agent.h
@@ -769,7 +769,8 @@ int agent_card_pkdecrypt (ctrl_t ctrl,
void *getpin_cb_arg,
const char *desc_text,
const unsigned char *indata, size_t indatalen,
- char **r_buf, size_t *r_buflen, int *r_padding);
+ unsigned char **r_buf, size_t *r_buflen,
+ int *r_padding);
int agent_card_readcert (ctrl_t ctrl,
const char *id, char **r_buf, size_t *r_buflen);
diff --git a/agent/call-scd.c b/agent/call-scd.c
index 28669206c..f47deb83e 100644
--- a/agent/call-scd.c
+++ b/agent/call-scd.c
@@ -609,7 +609,7 @@ agent_card_pkdecrypt (ctrl_t ctrl,
void *getpin_cb_arg,
const char *desc_text,
const unsigned char *indata, size_t indatalen,
- char **r_buf, size_t *r_buflen, int *r_padding)
+ unsigned char **r_buf, size_t *r_buflen, int *r_padding)
{
int rc;
char line[ASSUAN_LINELENGTH];
diff --git a/agent/divert-scd.c b/agent/divert-scd.c
index 15d1abd8d..cd80f09f1 100644
--- a/agent/divert-scd.c
+++ b/agent/divert-scd.c
@@ -394,7 +394,7 @@ divert_pkdecrypt (ctrl_t ctrl,
int depth;
const unsigned char *ciphertext;
size_t ciphertextlen;
- char *plaintext;
+ unsigned char *plaintext;
size_t plaintextlen;
bin2hex (grip, 20, hexgrip);
@@ -504,7 +504,7 @@ agent_card_ecc_kem (ctrl_t ctrl, const unsigned char *ecc_ct,
size_t ecc_point_len, unsigned char *ecc_ecdh)
{
gpg_error_t err = 0;
- char *ecdh = NULL;
+ unsigned char *ecdh = NULL;
size_t len;
int rc;
char hexgrip[KEYGRIP_LEN*2+1];
@@ -517,7 +517,8 @@ agent_card_ecc_kem (ctrl_t ctrl, const unsigned char *ecc_ct,
if (len == ecc_point_len)
memcpy (ecc_ecdh, ecdh, len);
- else if (len && (len - 1) * 2 == ecc_point_len - 1 && ecdh[0] == 0x02)
+ else if (len && (len - 1) * 2 == ecc_point_len - 1
+ && (ecdh[0] == 0x41 || (ecdh[0] & ~1) == 0x02))
{
/* It's x-coordinate-only (compressed) point representation. */
memcpy (ecc_ecdh, ecdh, len);
diff --git a/configure.ac b/configure.ac
index 023604b8a..eb9a0f1af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -29,7 +29,7 @@ min_automake_version="1.16.3"
m4_define([mym4_package],[gnupg])
m4_define([mym4_major], [2])
m4_define([mym4_minor], [5])
-m4_define([mym4_micro], [11])
+m4_define([mym4_micro], [12])
# To start a new development series, i.e a new major or minor number
# you need to mark an arbitrary commit before the first beta release
diff --git a/g10/sign.c b/g10/sign.c
index b3bda581c..2ba30f09c 100644
--- a/g10/sign.c
+++ b/g10/sign.c
@@ -125,10 +125,13 @@ mk_notation_policy_etc (ctrl_t ctrl, PKT_signature *sig,
xfree (item->altvalue);
item->altvalue = NULL;
}
- /* Restore the original nd and release ndmanu. */
- nd = ndmanu;
- ndmanu->next = NULL;
- free_notation (ndmanu);
+ if (with_manu)
+ {
+ /* Restore the original nd and release ndmanu. */
+ nd = ndmanu;
+ ndmanu->next = NULL;
+ free_notation (ndmanu);
+ }
}
/* Set policy URL. */